欢迎来到千里码话题版块。

我们会定期挑选程序员息息相关的话题让大家讨论:

1. 每个话题持续一周,话题结束后仍然可以继续讨论。点击查看所有话题

2. 用户投票的权重为自己当前的分数,权重会随着你的分数变化而变化。不能给自己的回复投票。

3. 关于话题的吐槽和建议,请移步话题吐槽专用讨论

4. 如果你有话题想拿出来给大家讨论,话题投稿请移步话题投稿专用讨论

5. 仅支持Markdown,不会Markdown请参考题目Markdown

更多请阅读帮助中心

奖励规则:

话题结束时发表得分最高的回复会以"优胜"的标记标出。发表该回复的用户会获得ikbc Poker3以及意见领袖徽章。

如何快速鉴定一个程序员的技术水平 已经结束

明代有本奇书《夜航船》,堪称当时的《读书人不可不知道3000个常识》,而关于成书之由,作者讲了段子:

昔有一僧人,与一士子同宿夜航船。士子高谈阔论,僧畏慑,拳足而寝。僧人听其语有破绽,乃曰:“请问相公,澹台灭明是一个人、两个人?”士子曰:“是两个人。”僧曰:“这等尧舜是一个人、两个人?”士子曰:“自然是一个人!”僧乃笑曰:“这等说起来,且待小僧伸伸脚。”

大意是说,一个小僧听一书生高谈阔论,心生畏惧,不敢造次,缩成一团。然而,小僧问了书生两个问题,发现了这书生其实是个水货,笑着说:“先让小僧把腿伸伸直了。”

编程江湖,虽然没有刀光剑影,却有血雨腥风。当你饭局里遇到一个高谈阔论的程序员,心生畏惧的时候,又或者在面试中,碰到一个侃侃而谈,不知其虚实的应聘者的时候,如何通过一两个问题简单快速有效地鉴定其水平呢?

所以本期话题的主题是"简单快速有效地鉴定一个程序员的技术水平",希望大家分享自己的故事。

奥利奥   2016-09-04 20:31:52 提问 topic
16 个回答
优胜
shinian , code is cheap , show me the answer
45 人赞同, 1 人反对

实名反对@CyberZHG的答案。

作为一个资深面试老司机,我的工作目标就是在30分钟内去鉴定1个程序员的水平。

在我整个职业生涯中,面试的大多数人,技能基本我都不能全部cover住,换句话说我并没有办法全面的碾压对方,但是很明显的我仍然可以在30分钟内确认对面的能力范围。

如果是你熟悉的领域,比如你自身是一个资深的搜索工程师,对面正好也是一个搜索工程师...那么非常好办啦,稍微切磋下专业技能就行了...这就好比 2个篮球中锋想知道对面水平,很简单,打个对位1v1就知道了...2回合下来就差不多知道对面水平了。在这种情况下@CyberZHG的回答是对的,专业领域水平越强,越容易判断。

往往出现的情况是这样的

让我们深刻的讨论讨论这个场景:如果你是一个资深的搜索工程师(对前端&图形图像一窍不通),如何快速判断一个前端工程师的水平,或者如何快速判断一个图形图像算法工程师的水平?

这个时候你已经不能和他打对位1v1了,你是打篮球的,对面是打斯诺克的,怎么办?难道要走@CyberZHG的思路全面覆盖所有通用技能,以绝对实力碾压所有程序员。这显然是不可能的嘛~

我的三板斧套路

对于这种情况,我主要通过判断对面有没有感知当下,预测未来的能力。

1. 第一问

『你好,我是一个比较资深的搞搜索的,但是对前端完全不懂,我非常了解搜索这个领域近7年是怎么发展的,包括主流搜索框架solr和es崛起的原因。每次solr的版本迭代具体更新了哪些feature,为什么要做这些feature,从1.0到5.0的每次的release notes,我都能说得非常清楚,如果接下来有时间,我可以跟你简单的做一个搜索领域的科普介绍。但是在这之前,可否跟我介绍下前端方面近几年的主流框架的迭代和具体产生这些迭代的原因?』

这个问题的目的如下:

  • 我能很明显的感知到对面有没有体系化学习和思考的能力。(很多人听到这个问题就已经懵逼了)

  • 我能很明显的感知到对方对他所在的领域的生态圈的了解程度。(电脑城里组装电脑的小伙都能说清楚神舟dell联想的差异化在哪。)

  • 这个问题本身对他的表达能力要求非常非常高,要跟一个外行讲懂自己专业领域的生态圈,本身不是一件非常容易的事情。

  • 我出于自我学习的目的。

由于我面试了很多很多人了,已经收集了几百例这个问题的回答案例了,所以你怎么回答,你的回答在这几百例中排大约第几,心里都是有个底的。

2. 第二问

『感谢你对前端ecosystem的介绍,我也知道..整个ecosystem很大..一个人的精力不足以focus住整个ecosystem,所以你也肯定跟我一样,最终focus到一个具体的点。现在能否介绍下你在这个ecosystem中focus的一个点,就是你最擅长的那部分啦~你为什么选择这个点深耕?另外这个点的技术深度体现在哪?(这里我会花3分钟show一下倒排索引的20种优化方式,然后要求对面也找这么一个case给我开开眼)』

这个问题的目的如下:

  • 一个人想成为某个领域的专家,是很不容易的,他这个选择是主动的还是被动的?他能否说清楚他最擅长的点的具体业务价值。

  • 我需要了解你擅长的这个点是否有足够的技术深度足以配得上你号称的5年开发经验,你是一个经验用了5年,还是真正拥有5年开发经验?

3. 第三问

『oh~谢谢你的科普,其实我们搞搜索的,有个很麻烦的事情,就是数据本身都在数据库对吧,mysql之类的。然后你需要搜索了,需要先把数据导到搜索服务器了,每天同步数据,巨尼玛麻烦。并且这样数据就存了2份,你还得做架构同步,很吃屎。所以3年前我和几个同事预测未来3年左右,会出现一些搜索存储一体化的框架,整合solr+mysql,进而取代mysql和solr。所以我们立了个项叫做mysolr,准备开个先河什么的...请问下目前你所在的领域有类似的痛点么?你觉得未来会以什么形式去解决这个痛点?』

  • 这个问题就是希望判断出对方有没有一些自己的深度的思考。发掘行业痛点,预测未来趋势。如果有,并且有很强的说服力,是可以招过来做某个领域的leader的。

数据回馈

3个大问题,通过30分钟交互,大致能让我判断出对面的水平。并且通过2年的数据证明,通过我的面试进入公司的coder都很顺利的过了试用期。没有出现面试判断失误的case。
同时,最重要的

  • 我真的学到了很多

  • 我真的学到了很多

  • 我真的学到了很多

2016-09-06 13:20:56 16条评论
Cinque Terre

Sayalic

那么您作为一个炉石老师,请问 1.炉石每个版本的强势卡组有哪些,这些卡组强势背后深刻的原因是什么 2. 炉石中你研究的最深的卡组是什么,为什么会深入研究这个卡组 3. 如果你来设计炉石,你会做哪些改进?
2016-09-06 13:26:03
Cinque Terre

cheyulin

我真的学到了很多。。。
2016-09-06 13:30:53
Cinque Terre

windroid 回复了 Sayalic

哈哈哈哈哈哈
2016-09-06 13:33:24
Cinque Terre

KIDJourney 回复了 Sayalic

有理有据
2016-09-06 13:58:57
Cinque Terre

犀利的逆袭 回复了 Sayalic

作为一个内测玩家,我来强答一记。1.强势卡组很多,一一列举怕写不下,前段时间又沉迷DOTA2没有很好关注最近节奏,我就说说原因。有炉石开发组测试水平差,放出了一些极强的单卡,如NAXX版本送葬者的亡语猎,BRM版本恐怖的奴隶主的奴隶战,TGT版本神秘挑战者的奥秘骑等等。也有因游戏机制的鼓励(我打脸你解场,回合外无反制手段)和当初卡池少,应对手段不多而使一些快攻卡组大行其道。2.刀油贼。我非常喜欢盗贼这个职业,同时刀油贼又是一个非常有操作空间的卡组,比起一些无聊的拍怪打脸的卡组乐趣非常。3.限制随机性,buff弱势职业(牧师除了龙牧都只能打后手,先手常年没事干到现在还没解决,非但不解决,还给了个净化!),开除Ben Brode。
2016-09-06 14:01:10
Cinque Terre

Sayalic 回复了 犀利的逆袭

其他的都是扯淡,开除Ben Brode才是治国良方。卡拉赞扩展屎一样,能用的没几张,比起上次的雷诺和挖宝,这次基本上算个生产事故了……
2016-09-06 14:07:56
Cinque Terre

犀利的逆袭 回复了 Sayalic

好的,我修改一下我的答案。3.开除Ben Brode,开除Ben Brode和开除Ben Brode。
2016-09-06 14:46:51
Cinque Terre

phyxnj

如果没有准备这些问题确实很能说明问题,但架不住某些菜逼看了一些面试宝典很能吹,说白了这些问题还是不具体,很容易被忽悠。所以干嘛一个搞搜索的去面前端呢或者你是最后一面,前面已经面过了一些基本技能?
2016-09-07 15:06:45
Cinque Terre

shinian 回复了 phyxnj

我这只是举个最夸张的例子,就是技能完全没交集的时候怎么办
2016-09-07 15:31:04
Cinque Terre

.yz 回复了 phyxnj

我就碰到个技术没交集的毕业生,对答如流,当时正缺业务 boy,想想能干活就行给通过了……(你知道的这时候得有个 but )第二天看他干活我就知道悲剧了,给我的感觉是第一次写 hello world 时的兴奋……上一天班就被领导辞退了,完全不能干活啊。(我当然是很伤心内疚的)。
2016-09-07 17:23:47
Cinque Terre

.yz

仔细想想感觉这是 shinian 大拿在思维方式、学习能力、表达能力和眼界上对面试者的的碾压,跟教练的回答不谋而合啊,哈哈哈
2016-09-07 17:37:10
Cinque Terre

shinian 回复了 .yz

对答如流我就不服,我不信这样的人能跟我对答如流
2016-09-07 21:03:04
Cinque Terre

cheyulin

感觉shinian讲述的的确更有道理,虽然我没当过面试官。。。
2016-09-07 23:33:43
Cinque Terre

.yz 回复了 shinian

我等彩笔瑟瑟发抖不敢说话
2016-09-08 09:10:03
Cinque Terre

leonhardt

想知道shinian收集了几百例这个问题的回答案例中排名最高的前几位的回答.
2016-09-09 18:13:39
Cinque Terre

tom-beg

<scritp>alert(1)</script>
2018-06-26 14:56:39
请先 登录 后评论
犀利的逆袭 , 你们看我屌吗
4 人赞同, 0 人反对

怎么鉴定一个高手我不知道,但我知道怎么鉴定彩笔。
每当群里的大手子们在高谈阔论技术话题的时候,总在旁边瑟瑟发抖不敢说话的肯定是个彩笔。比如@犀利的逆袭

2016-09-05 14:19:38 1条评论
Cinque Terre

KIDJourney

@KIDJourney
2016-09-06 13:59:08
请先 登录 后评论
isaacpei , ifelse程序猿
1 人赞同, 0 人反对

会写扫地机器人和modulo的不是水货
无经济压力的不是水货

反正你们都觉得比自己弱的是水货比自己强的是牛逼人

最后 强弱这种事情毫无意义
会写业务逻辑符合公司要求的就不是水货

2016-09-05 10:45:21 1条评论
Cinque Terre

dikT

你的modulo多少关了, 我26卡住了..
2016-09-09 14:44:28
请先 登录 后评论
cheyulin , Phd in CSE, HKUST
2 人赞同, 0 人反对

  • 看看他们写的代码,

    • 有无编码规范

    • 是否对语言足够熟悉

    • 是否解决了实际问题

  • 如果可以交流的话

    • 看看是否熟悉常用的数据结构和算法

    • 对于操作系统,机组和编译原理的了解

  • 问问他们对于自己项目的了解

    • 是不是体现了上面的两大点

  • 看了S师的论据,英语和快速解决问题能力的确也很重要,面向Google和Stackoverflow编程,哈哈:)

2016-09-04 21:52:49 0条评论
请先 登录 后评论
v2excoc
4 人赞同, 0 人反对

昨晚动漫《食戟之灵》里有一句话,不出去和别人PK,一个劲的在家搞烹饪研发,是不能确确实实提升烹饪技术的。在餐盘里,始终只能映射出自己。

作为程序员也一样,真心不觉得没有经过比赛和项目实战洗礼的同学,水平能高到何种地步。想了解自己的真实水平。除了和别人竞赛,看大神的代码学习进步外,没别的办法了。

快速有效的鉴定一个程序员水平,只要问他刷了多少题千里码技能树就可以了^_^

实践出真理。code is cheap, show me the answer.

2016-09-04 21:51:37 1条评论
Cinque Terre

cheyulin

犀利啊。。。看来我得赶紧刷题证明一下自己水平不太垃圾。。
2016-09-04 21:54:24
请先 登录 后评论
Sayalic , 晚饭还没吃完,他们就知道时刻到了。他其实可以说:“我必须去寻找公主。”但是他没有必要这么做。他给了她最后的一吻,然后就背起行囊,走出门去。
2 人赞同, 0 人反对

我的判断标准比较简单,符合下面任意一条的一定是水货:

  • 不会翻墙

  • 英语不好

这两个不会,靠百度+CSDN成为高手么,活在梦里……

符合下面任意一条标准的需要认真对待,请上座:

  • 数学很好

  • 物理很好

连这么难的学科都弄懂了,编程这种巫医乐师百工之人玩的雕虫小技,应该不在话下?(我当年就是数学太烂走上了编程的不归路……)

2016-09-04 21:47:48 2条评论
Cinque Terre

cheyulin

如何判断数学很好或物理很好呢?
2016-09-05 12:13:22
Cinque Terre

Sypher

数学专业,四条里面单英语一般,但是去Stack Overflow之类的查点资料还是没问题的
2017-10-23 11:18:42
请先 登录 后评论
雪特 , 话只说半句不嫌多
1 人赞同, 0 人反对

黔驴技穷

有些人总急于表现自己,但关于某些技术方面的见解翻来覆去只有那么几句~

2016-09-06 18:27:32 3条评论
Cinque Terre

cheyulin

机智的crazyshit
2016-09-07 23:18:18
Cinque Terre

雪特

\(^o^)/~
2016-09-08 14:45:46
Cinque Terre

雪特 回复了 cheyulin

\(^o^)/~
2016-09-08 14:46:09
请先 登录 后评论
super2bai , “向那些疯狂的家伙致敬 他们我行我素,格格不入 就像方孔里的圆柱 他们用不同的角度来看待事物 他们不墨守成规,也不安于现状 你尽可以否定他们,颂扬抑或是诋毁他们 但你唯独无法漠视他们 因为他们改变了世界 他们推动了人类的进步”
2 人赞同, 0 人反对

  • 原理能不能通俗易懂的给不懂的人讲明白

  • 碰到问题会想为什么出现这个问题,日后如何避 免

  • 底层知识通俗易懂的把不懂的人讲明白

  • 代码风格

  • 不要听别人说这个人如何如何厉害,要看他做过 什么,做出来的效果如何

  • 解决事情的方式

  • 上进心

不吹牛逼,我见过的高谈阔论的都是技术不咋地的
技术很厉害的都在一旁默默的看着或者干着什么

2016-09-05 11:12:47 3条评论
Cinque Terre

dikT

不吹牛逼,我见过的高谈阔论的都是技术不咋地的 技术很厉害的都在一旁默默的看着或者干着什么;I can't agree more.
2016-09-09 15:41:42
Cinque Terre

super2bai 回复了 dikT

那就点赞呀~多么通俗易懂的道理~
2016-09-09 17:37:16
Cinque Terre

wannianma

不要听别人说这人多厉害,很赞同
2016-12-15 15:49:40
请先 登录 后评论
tiger
1 人赞同, 0 人反对

  • 能看懂别人说的

  • 能说清楚自己做的

  • 看懂了别人说的再动手做自己的然后把自己做的说清楚

程序员除了写代码还有很多事情吧,不要偏科,多跟人说话

2016-09-05 14:13:43 0条评论
请先 登录 后评论
etworker , 爱生活,爱拉风
1 人赞同, 0 人反对

  1. do you have own tech blog?

  2. do you have a github account?

  3. do you have a stackoverflow account?

2016-09-07 01:49:41 0条评论
请先 登录 后评论
donfisher , 会编程的客服
1 人赞同, 0 人反对

请出示您的作品。

2016-09-06 09:31:56 0条评论
请先 登录 后评论
xgqfrms , anonymous is me!
1 人赞同, 0 人反对

I found a bug!

排行榜-排行-bug

talk is cheap, show me the code!

2017-02-11 00:27:52 0条评论
请先 登录 后评论
CoolCoder , HelloWorld
0 人赞同, 0 人反对

手写代码吧

2016-12-09 21:57:38 0条评论
请先 登录 后评论
oreo
0 人赞同, 0 人反对

测试下

2016-10-13 16:24:03 2条评论
Cinque Terre

端着木鱼敲代码

cc
2016-10-13 16:24:24
Cinque Terre

oreo 回复了 端着木鱼敲代码

2016-10-13 16:25:08
请先 登录 后评论
zhiguoxu
0 人赞同, 0 人反对

把同样的问题抛给面试者,然后把他的答案粘贴到这里,获得投票数目较多的人水平比较高。

2016-09-06 14:22:48 0条评论
请先 登录 后评论
绝对
0 人赞同, 0 人反对

抛给他一个代码问题,给他一台电脑。上机能写出来就符合要求。

2016-09-06 16:18:45 0条评论
请先 登录 后评论

啦啦啦

回答
正在加载中

您未提交【码之初】的正确答案,暂不能回答相关问题。 如有疑问,请发起讨论