笔试出了一个简单的排序题。他是想考察啥的

meluo 发布于 2015/03/20 19:26
阅读 2K+
收藏 0

今天下课,跟老师谈了一些找工作的事,老师说:公司招聘的笔试程序题一般都很简单,但可以刷下去一大片人。大家说说这是为什么,我个人认为是没有考虑代码的可扩展性和重用性。

老师出了一个实现加减乘除运算的题,让我们去做,大部分人老师给了10分。考虑设计模式的老师给的分数是20---40分。大家说说怎样做才可以及格,让公司录用你,带上代码最好。

加载中
0
修改登录密码
修改登录密码

这要看面试官到底想考察什么。

到底是想考察你的编码风格、编码基础能力、算法能力、编码正确性和严谨性、编码可扩展性和可重用性。

一层比一层要求高,代码量也随之增加。  

不过要是他给你一个简单的排序题让你做10分钟但是按照可扩展可重用的标准给你打分,

那就去年卖表吧

0
修改登录密码
修改登录密码

公司用人一般的还是注重基本功和学习潜力。

这个不是看几天面试指南就能解决的 

0
K不是你的帝
K不是你的帝
我上次面试就有个很简单的题,就是考察你的代码风格!
0
金拱门
金拱门

首先,我推荐你拥有github或者oscgit的个人主页。然后你每天都要提交代码,这样别人查阅你的贡献图将会对你有一个非常初步的了解:这家伙很勤奋。

其次,面试题考察什么其实看眼缘为主。有些时候你还真的要相信。

meluo
meluo
那你说我惨了,长的猥琐没法救了
0
方棱
方棱
“莫用程序思维去揣度人心”
meluo
meluo
我在应聘的时候,可以问,你是想考察我哪方面能力,编码风格?
0
亓斌哥哥
亓斌哥哥

看到你的文章后, 我写的代码:

public class Test {
	public static void main(String[] args) {
		Do<Integer> d = new Do<Integer>(10, 5);
		System.out.println(d.todo(new Add()));
		System.out.println("***********************");
		System.out.println(d.todo(new Multiply()));
	}
}

class Multiply implements Plugin<Integer> {
	@Override
	public Integer todo(Integer t1, Integer t2) {
		return t1 * t2;
	}
}

class Add implements Plugin<Integer> {
	@Override
	public Integer todo(Integer t1, Integer t2) {
		return t1 + t2;
	}
}

class Do<T> {
	private T x;
	private T y;
	
	public Do(T x, T y) {
		this.x = x;
		this.y = y;
	}
	
	public T todo(Plugin<T> plugin) {
		return plugin.todo(this.x, this.y);
	}
}

interface Plugin<T> {
	public T todo(T t1, T t2);
}



youlovebaby
youlovebaby
大哥,虽然逻辑简单,最好还是加一下函数功能描述,参数以及返回值啊
0
amidk
amidk

设计模式之禅里面的例子,不知道你老师会给多少分

public enum Calculator {

	ADD("+") {

		@Override
		public int exec(int a, int b) {
			return a + b;
		}

	},

	SUB("-") {
		public int exec(int a, int b) {
			return a - b;
		}
	};

	String value;

	private Calculator(String value) {
		this.value = value;
	}

	public String getValue() {
		return this.value;

	}

	public abstract int exec(int a, int b);

}



0
guor
guor

引用来自“成为朝拜者”的评论

设计模式之禅里面的例子,不知道你老师会给多少分

public enum Calculator {

	ADD("+") {

		@Override
		public int exec(int a, int b) {
			return a + b;
		}

	},

	SUB("-") {
		public int exec(int a, int b) {
			return a - b;
		}
	};

	String value;

	private Calculator(String value) {
		this.value = value;
	}

	public String getValue() {
		return this.value;

	}

	public abstract int exec(int a, int b);

}



10分能给你2分就不错了,1. 乘除运算没得 2. 运算溢出没考虑 3. 若把ADD、SUB看作是操作符,真心不知道为什么要一个value成员,即使要换个名字可好
amidk
amidk
如果你真的在面试的话,劝你不用这么纠结。
0
IMU
IMU
记住一句话,不要为了设计而设计,不要做多余的设计。再还没学会跑之前,也许好好爬就是最好的,能把你现阶段的代码写到最好那就OK了
0
中山野鬼
中山野鬼

引用来自“IMU”的评论

记住一句话,不要为了设计而设计,不要做多余的设计。再还没学会跑之前,也许好好爬就是最好的,能把你现阶段的代码写到最好那就OK了
哈,这是大实话。我的态度就是,目标设计达到指标下,怎么简单怎么来,怎么(开发)快怎么来。
返回顶部
顶部