1
imn1 2015-07-19 16:22:47 +08:00
功高盖主
|
2
em70 2015-07-19 16:23:33 +08:00 via Android
这些问题对面试来说太大了,笔试合适。面试可以多跟他聊聊他做过的东西,有什么独特见解,基本就能了解一个人的水平了。
|
3
mthli 2015-07-19 16:26:08 +08:00
这些算法问题不难吧...
|
4
cxshun 2015-07-19 16:28:01 +08:00
其实感觉楼主你的组长的问题很值得你考虑一下,你让他写这些貌似体现不了工作水平啊,毕竟工作中不大可能要这样去写atoi函数啥的,斐波拉契我都忘记是啥来的,但要写还是可以写出来的,只是这对工作有什么帮助吗?不见得有多大的帮助吧。我觉得你组长的话想要表达的就是这样的意思,个人理解哈。
你可以拿一些工作中的需求,让他去做,感觉会更合理点。 |
5
zhjits 2015-07-19 16:28:16 +08:00
这也太简单了吧……
|
6
wy315700 2015-07-19 16:28:21 +08:00 1
|
8
em70 2015-07-19 16:34:18 +08:00
@wy315700 每个人认知是有局限的,计算机技术分支那么多,难道我随便说一个东西,你都能非常了解吗,面试的本质是去了解一个人,不是去考核一个人. 如果这份工作对某一类的知识要求比较高,应该加入笔试环节.
|
9
jadetang OP @cxshun 斐波拉契数列,一般人会给出一个递归的解法,那么就会有
1. 重复计算的问题。 2. 递归过深,stack memory 溢出的问题。 如果,面试者说,可以用hashmap之类的数据结构缓存中间计算结果,我可能会问,如果这个函数需要在多线程环境下调用的话怎么样。 atoi的问题,考察的更是面试定位问题的能力,应该通过沟通,明确输入值的范围,以及进一步明确我的需求,例如,如果字符串格式错误要求怎么处理,溢出了是返回 Int.Max_value 还是报错。 实习生,没工作经验,我能问什么呢。 |
10
wy315700 2015-07-19 16:37:33 +08:00
@em70
看的是你的熟练程度,而不是答案本身,比如问你一个问题,你思考一分钟作答和你不假思索就能作答,给人的感觉前者就是你很生疏,后者就是你很熟练。 以前记得TX有一道变态的面试题,30秒写一个二叉树搜索。。。 |
11
jadetang OP @em70 第二个面试,简历上写了,学院ACM协会干事,多次获得校级ACM的奖项。 我问个atoi,感觉很符合他的履历啊。
|
12
em70 2015-07-19 16:39:58 +08:00
@jadetang
精通JAVA你就跟他聊聊JAVA嘛,让他说他用JAVA做过什么,用了什么技术,有什么难点,是怎么解决的,真要是精通的人,问到他擅长的地方,应该滔滔不绝,两眼放光.咱就是要知道的是他擅长什么,然后判断他擅长的东西是否适合我们团队,而不是要知道他不会什么. 我觉得你们组长说得对,你自己都不知道自己要招什么样的人. |
14
wy315700 2015-07-19 16:42:48 +08:00
@em70
这么问其实容易出问题。。。 曾经我同学公司面试了一个人,说是内核专家,精通内核,然后讲起来是滔滔不绝,正好他们公司缺少懂内核的,然后就收了他。 然后,然后,收了以后发现,他就会make,,,,其他一窍不通。 还是得问一些细节技术问题。 |
15
em70 2015-07-19 16:44:52 +08:00 1
@jadetang 你就让他去说自己玩过什么算法,干嘛要给他出题去限制他呢,反而很多真实情况没了解到. 切记,面试不是考核,不是用我们懂的东西去考别人. 而是充分了解这个人,判断他的长项在哪里,也许你擅长的东西,他不擅长,你就判断他不行,那这不是一次成功的面试.
|
16
nomemo 2015-07-19 16:46:13 +08:00
反正我只有一道必问题,字符串是否是合法的ip地址
|
17
em70 2015-07-19 16:50:29 +08:00
|
18
icylord 2015-07-19 16:51:56 +08:00
这不都是很基本的问题么。
|
19
caixiexin 2015-07-19 16:52:56 +08:00
学校出来的没项目经验的话,考算法题蛮正常的,不过放在面试里会不会浪费时间吗?
也许人家以为是笔试才会有的,昨晚没复习XD 跟着老大面试过几次,基本上最后都是绕到对方熟悉的领域,这时候有些人到就会说得眉飞色舞,然后整个气氛会很和谐(前提是他们说的我们也懂- -)。有的时候从这个方面能了解到他的学习能力,独立思考的能力,自己面对难题的态度,为人处世等等,也算是个加分项。 ps:当年校招我也好怕考算法题和逻辑题,就算学校学过,一紧张也是会脑袋空白- - |
20
wy315700 2015-07-19 16:53:01 +08:00
|
21
dangge 2015-07-19 16:53:27 +08:00 via Android
作为某搞过ACM的蒟弱,我表示校级ACM的奖基本上都水的不行……
八道题能做出来三道就是奖,里面还有两道水题… 当然,杭电那种的校级ACM应该不差……不过这种情况应该并不多见…… |
22
jadetang OP @dangge 我没搞过acm,不过哪些题目是ACM肯定会的啊?atoi太难了吗? reserve a linkedlist?
|
23
Actrace 2015-07-19 16:59:08 +08:00
所以说,如果你要招一个一线码农.需要考察细节,那么请在笔试环节进行,然后加上打分,这样大家都不浪费时间.
但是你要招高级程序员,要招技术管理人员,那么请找会坎的,不会坎的技术管理是没有一个全局观的,不论是在管理上,还是在技术上. 就人脑而言,学的东西多了,大部分只是基本上都只是一些抽象记忆的索引而已,然后高级程序员的不同之处就在于,人家起码有索引. 建议搞清楚以上两点再去招聘. |
24
caixiexin 2015-07-19 16:59:32 +08:00
还有,如果是跟老大一起面试的话,我也不敢在旁边多嘴2333,我发现我也会追着细节问,但是老大就点到即止。
主要还是看你跟组长平常关系怎么样- -,如果玩得好的话,面试完后找他交流下心得咯,如果不是很铁的话,还是慎言(职场关系好可怕- -||)。 |
25
xiaocong1 2015-07-19 17:01:46 +08:00 via Android
其实问得太细,特别是口述的话。对一些不常用的东西,容易答不全。但是不代表那个人就不会
|
26
cxshun 2015-07-19 17:05:27 +08:00
@jadetang 重新看了一下兄弟你的问题,先不纠结是否应该问这些问题,但你引导了,还没有思路,或者说一点思路都没有,那这个面试者能力真的不大行。
确实这些问题如果往细了问可以引出很多东西。 实习生这块确实不好把握,一般就他的项目让他说说在项目中遇到什么问题,学习到什么。 |
27
Keita1314 2015-07-19 17:06:18 +08:00
楼主是魅族的吧,校招面试写代码再正常不过了,去年百度,腾讯,网易,美团等公司校招面试都经历过现场代码的,相反魅族就没有,面试官是一个中年大叔,问了许多Java的基础问题以及一些JVM的问题,还有数据库索引,后来发了offer,只有9K,还要先去实习,就拒了,不过面试官水平还是不错的。
|
31
mengjue 2015-07-19 18:20:31 +08:00
算法是一个程序员的基本功,如果给了提示,还是毫无头绪,那说明简历是假的。其实面试就问问基本问题,可以筛掉好多很烂的喜欢吹牛的末流程序员。
|
32
letv 2015-07-19 18:50:35 +08:00
这题目不难吧?感觉要是只说思路的话,完全没问题。写代码虽然难些,但也不是做不到啊。
|
33
rming 2015-07-19 18:58:46 +08:00
比起提问题,我可能更希望听听面试者喜欢什么,擅长什么
|
36
microget 2015-07-19 19:45:48 +08:00
lz没有介绍下面试的岗位简介,招人就是招合适的,不是任何开发岗位都需要算法。
|
37
k9982874 2015-07-19 20:09:44 +08:00 via iPhone
我想知道撸主平时的主要工作是什么,有时间关注这些劳什子东西
|
40
mahone3297 2015-07-19 20:45:37 +08:00 1
我觉得lz问的一点问题都没有,问题也都不是很难。。。
有人说,可能连斐波拉契数列是什么也不知道。这有关系吗?一点关系都没有,这才正好!然后,面试关可以告诉你,斐波拉契数列的定义,这个定义也很好懂,不难。然后,考你解决问题的思路。。。 第二个,acm,atoi不会。。。能说什么呢?lz已经根据那人的特征(acm),问那个人问题了。回答不出来,还能说什么呢? |
41
fgwww 2015-07-19 21:14:07 +08:00 via iPad
面试是一件非常难的事情,连韦尔奇都不过认为自己选对人的概率才80%。
|
42
bigboyq 2015-07-19 21:34:54 +08:00 via iPad
我忍不住上来吐槽,楼主是在拿一个框框框人,框子套下去,套的进去就是合适的,套不进去就不合适。
我觉得面试是判断别人简历真实性的机会(人品和性格),深化下去就是根据简历内容和言谈判断培养性(有些人简历很烂,口才也很烂,但其实很有学习能力和吃苦,原因就是被之前的人带傻了,以为程序员就是要背N种算法之类。。。),然后面试可以给笔试做捡漏(比如一个MySQL专家做oracle的题目就很吃亏,但是上手会很快,笔试题目又不可能水平那么高) 忍不住吐槽,不好意思 |
43
junnplus 2015-07-19 21:40:19 +08:00 via Android
我想说弱校的校级acm就是个水
|
44
breeswish 2015-07-19 21:57:17 +08:00
并不觉得楼主问的问题有什么问题…
|
45
rwalle 2015-07-19 22:01:08 +08:00
楼主说的不都是再基础不过的题目吗
|
46
loryyang 2015-07-19 22:39:00 +08:00
写不了代码有diao用?会说会扯然并卵
架构师等除外 |
48
wh1100717 2015-07-19 23:06:05 +08:00
所以工作三四年的面试前还是需要刷一下leetocde呗?(虽然我就是这么干的...) 不过答上来的就真的优秀了吗? 这个可能需要思考一下。 面试不同level的人可能应该有不同的侧重点吧... 算了.. 继续刷题去了...
|
49
lincanbin 2015-07-19 23:10:12 +08:00
斐波那契数列当然是写通项公式,我都会背了。
你要招什么人,你让他拿出作品就是了。 |
50
br00k 2015-07-19 23:13:21 +08:00
说解题思路比较好,手写代码我表示经常短路。
|
51
owlsec 2015-07-19 23:24:44 +08:00
你们组长有问题吧。。。这些第一题斐波纳挈应该会,第二个如果写上自己参加ACM这些东西应该手到擒来啊。。。特别连讲思路都不会。。。
|
52
loveuqian 2015-07-19 23:29:48 +08:00
我也不会写 atoi
而且还百度了一下看别人写的实现。。也看不明白。。。 |
53
Andiry 2015-07-19 23:38:04 +08:00 via Android
这么简单的题都不能算是算法题了,答不上来只能说明水平稀烂
|
54
messyidea 2015-07-19 23:39:01 +08:00
斐波那契可以用矩阵加快速幂,atoi应该也简单的。。我这种基本没获过什么奖的菜鸟都能答出来。。
|
55
bigcoon 2015-07-19 23:50:39 +08:00
我特么这几年白混了,我连acm是啥都不知道。。
从人生的角度来说楼上说的都有道理,没有是非之分,因为大家的角度不同, LZ可能想找一个基础知识扎实一点的人,这没错啊,有的人想找一位解决问题能力的人,这也没错, 这只是需求不一样罢了,所以LZ不用纠结了,不符合你要求的人不要也罢,主要是你想找的人是你们公司或者项目需要的人么? |
56
rayyang88 2015-07-20 00:53:21 +08:00
斐波那契数列也要考虑这么多东西啊。。。楼主面试我的话我肯定跪了= =
|
57
chengzhoukun 2015-07-20 01:06:29 +08:00
也在校acm队里打过酱油,但是没参加过省级、地区级比赛,我都不好意思写到简历上
|
58
hitigon 2015-07-20 01:22:18 +08:00
你组长好烂...
|
59
qige023 2015-07-20 01:40:31 +08:00
楼上都说的很好,我补充一点的。相对于算法而言,工作久了,越觉得一个人的责任心,好奇心,学习能力和灵活性比这些定性的算法要求要有用的多。要知道,现在计算机来说性能基本是过剩的,过早优化也是恶魔,我们需要的是能快速理解需求的基础上快速实现,对产品快速迭代。
工作两年应该多问点项目,不要搞斐波那契了。虽然不难,但真的不觉得对于实际项目而言,有什么卵用。。。回到楼主那个斐波那契数列的二三问,说什么鬼哈希表,多线程、甚至多进程调用的,实际环境里不就一个redis就能搞定了,唉。。。 |
61
Kabie 2015-07-20 02:26:50 +08:00
每次讨论面试题总有人跳出来说什么算法面试没用。。。
我觉得面试要你手写红黑树肯定过分了......但是就一个斐波那契……一个atoi也叫算法吗?。。。 一个十行以内的函数都写不出。。。还能指望什么工作能力。。。 |
62
msg7086 2015-07-20 03:24:02 +08:00
一个连斐波那契数列都写不出的人竟然还可以胜任软件开发这样的工作岗位?
楼上觉得这么问不妥的同学们你们到底是在什么样的环境下工作的? 还是说我们的应届生已经不堪到要放低标准到这个程度才行了? |
63
msg7086 2015-07-20 03:27:54 +08:00
做个对比。我这边排名100名开外的三流大学,本科毕业生最起码的要求是能够编写Linux上的USB内核驱动(操作系统课,必修),能够手算常用算法的复杂度(算法课,必修),能够在C下手写变长数组、简单的树和堆栈队列(数据结构课,大一必修)。
这样学完出来的水平不一定能找到很好的工作,必须要特别优秀的才行。 |
64
shenyi26 2015-07-20 03:34:13 +08:00
总比拿会不会翻墙来面试人的傻逼高端
|
65
Andiry 2015-07-20 04:25:13 +08:00
@msg7086 为什么OS的作业是写USB驱动?写个调度器或者内存分配器都比驱动这种依葫芦画瓢,毫无技术含量的东西有意思得多了。
|
66
chinajik 2015-07-20 04:32:28 +08:00
不搞竞赛的.. 我觉得这些算法真的扯得比较远..
我是有幸初/高中参加过 NOIP 的.. 回去见原来带队的老师, 他说现在校队都只从理科实验班里面选了.. 别为难这些学生了, 很多都是兴趣或者行业前景来就业的, 放他们条生路吧.. 不会工作中慢慢磨练就好了.. 他要是要1w 2w 的月薪那这个水平当然要有的.. 你要是几 k 问问能不能干活, 三观是否端正就好.. |
67
chinajik 2015-07-20 04:44:31 +08:00
@jadetang
跟你说个实例,我们互联网公司, 校招回母校的招了个 ACM 学生, 大学用的 c+ 公司第一语言是 java教他, 搞个文件上传搞不定说看 java 不爽巴拉巴拉.. 算法真的不 care.. 一个公司如果一月千万进账真不缺这种人.. 怕的就是眼高手低的. 现在很多公司拼业务的, 你硬要这种算法去拼, 真的要搞死. 楼主是确实可能不知道要招什么样的人, 你问的内容决定招进来的干啥, 做业务的自然不需要拼算法, 能前后端都写最好, 如果是做偏运维就多懂点 linux, 写中间件开发那就算法要熟. 我自己是写业务的..对接个借口, 真的那点算法复杂度真的没多想, 跑通就不错了...大量的都是负载监控脚本 |
68
chinajik 2015-07-20 04:49:39 +08:00
中国劳动力廉价的很..
我们那边, 那种大卖场里面卖衣服的销售月薪都是6k 一个月.. 有时候看一些应届生几k 也是干得津津有味.. 态度只要端正, 需要的真就是个机会.. 以后的年轻人必定比我们更加牛逼, 现在已经很多初中都能写网站的. 有些时候冲劲一来了, 挡都挡不住.. 能做事,好相处,多些包容和机会,不要去打击他们. 这个行业才能兴荣.. |
71
jadetang OP @bigboyq 我忍不住上来吐槽,楼主是在拿一个框框框人,框子套下去,套的进去就是合适的,套不进去就不合适。
----- 面试不就是这样吗,我拿职位要求这个框子框人,有什么问题? 我觉得面试是判断别人简历真实性的机会(人品和性格), ----- 他说他搞过ACM,还得过奖,atoi类似于acm中的hello world的水平,他答的不好,我自然怀疑他简历有夸大的成分,这也没什么问题吧? |
72
exch4nge 2015-07-20 08:58:55 +08:00
我觉得楼主问的并没有什么不妥,都是些基本的题目,斐波那契那题用递归的话,没几行就能写出来,搞ACM的atoi都不会那就真水了。
你跟组长好像欠缺沟通,你俩共同面试的话,至少得制定个大概分工,确定招人的水平,以及大概的题目难度之类的。 |
73
smithtel 2015-07-20 09:09:54 +08:00
恩,其实是你组长不会。
|
77
tabris17 2015-07-20 09:33:27 +08:00
叫人写斐波拉契数列不是侮辱人么?
你好歹让人写个FFT算法啊 |
79
66beta 2015-07-20 09:43:57 +08:00
楼主处世不深啊,大三学生做过了一个课后题自称精通,就还信人家了?
|
82
mhycy 2015-07-20 09:59:40 +08:00
借楼求问,到底该写精通还是写略懂。。囧
|
83
jadetang OP @tabris17 首先,java是没有尾递归优化的,其次,斐波拉契数列 f(n) = f(n-1) + f(n-2)是没有尾递归优化之说的吧,求教一下。
|
85
tabris17 2015-07-20 10:08:11 +08:00
@jadetang
斐波拉契数列的尾递归写法 int Fibonacci(int n, int a, int b) { if (n<=2) { return b; } else { return Fibonacci(n-1, b, a+b); } } 我的意思是,可以尾递归的都能很方便地转换成循环表示。另外Scala支持尾递归的嘛 |
86
geew 2015-07-20 10:09:13 +08:00
我觉得看岗位需求而定吧 要是你们招的岗位侧重于需要算法相关的东西那就问咯 如果只是普通的业务之类的东西 其实问问工作上的问题比较好 不过我觉得算法的东西每个程序员基本都要懂一些吧 起码有自己的思路才好
|
88
wind3110991 2015-07-20 10:20:11 +08:00
这两个都不会写还做程序员- -,我觉得你没错啊
|
89
DT27 2015-07-20 10:20:33 +08:00
什么事斐波拉契数列....ACM、stoi又是什么鬼。。。 31l 口中的“末流程序员”路过。。。
|
90
jetyang 2015-07-20 10:26:23 +08:00
支持楼主,建议你们leader改成单人面试,这样就不会尴尬了
|
91
ChenYounG 2015-07-20 10:43:48 +08:00
感觉我在转向程序员的道路上。。一篇灰暗。。。
|
92
meteor 2015-07-20 10:57:17 +08:00
又是面试Java
serverlet 应该叫 servlet |
93
ant_sz 2015-07-20 10:59:56 +08:00
@cxshun 我觉得 atoi 这种东西还是值得考察的。并不是说考 atoi 是因为以后用得着,而是因为写这个可以考察面试者思考问题的思路。atoi 是一个典型的并不需要很多算法知识,但是需要思维特别缜密的函数。我觉得这个在工作中是很有用的,你写一个函数,不能说就常见的输入类型可以处理,遇到比较edge的case就挂了。思维不够缜密的话会经常写出这种有bug的代码,所以 atoi 我觉得是一个好题。
|
95
5thcat 2015-07-20 11:20:21 +08:00
|
96
pi1ot 2015-07-20 12:31:39 +08:00
你这个组长有问题。
|
97
winking 2015-07-20 12:42:17 +08:00 1
支持楼主。atoi只能算再基本不过的编程题,哪有什么复杂的算法。
另外,我一直认为,无论再怎么优化面试流程,如果不写代码,面试结果的准确性偏差是很大的。 可以这么说,面试代码写不好,可能误筛掉一些人才(如google的那个例子),但是更容易识别出大量的水货。 面试代码写得好,基本上招进来的人不会太离谱。 这也是为什么google/ms/amazon等公司坚持面试写代码的原因。 |
98
angetchao 2015-07-20 12:48:57 +08:00
网上算法一大堆,还问这种没什么技术含量的东西,开发软件重要的是开发什么功能,而不是一堆数组索引算法。楼主专业点问开发什么软件需要什么功能,那些功能尚未被别人开发。
|
99
linxy 2015-07-20 13:27:06 +08:00
我也支持LZ,像这样简单的一些东西,如果是一个科班出身的程序员,在课程上都会讲到的。都是一些必知必会的常识性的问题。
更何况像是LZ面的人,简历上写的如此厉害。 |
100
canautumn 2015-07-20 13:39:09 +08:00
感觉面试者不是想简单了就是智商堪忧。斐波那契数列不是用循环就很简单吗,这不应该是一些编程教材学到循环的时候的例子么。当然,要说从这里出发考递归也可以,recursion再加上Memoization都可以考,用斐波那契都是最简单的例子,然后用循环解法从1开始算其实就是动态规划,只不过这个太简单了以至于不像动态规划了。
|