怎样花两年时间去面试一个人

Joel Spolsky曾经感叹:招聘难,难于上青天(此处笔者稍加演绎:))。他有两个辛辣但不乏洞察力的断言:真正的牛人也许一辈子就投大概4次简历,这些家伙一毕业就被好公司抢走了,并且他们的雇主会给他们不赖的待遇,所以他们也不想挪窝。(刚刚去世的Dennis Ritchie就是这样一个人)而“人才”市场上能找到的大多都不是什么人才。招到这帮人轻则费钱重则把你公司搞挂。

(当我把这篇文章给邹欣老师review的时候,他说了另外两点:1. 最好的人也许不投简历,就决定去哪里了。所以要在他们做决定前找到他们。2. 比较差的会投很多次简历,找不到工作的时间越多,投的简历越多,给整个pool 带来很多噪音,top10%的简历也许根本不算全部人的top10%。)

诚然,也许没有哪个行业像IT行业这样,无形资产占据公司的绝大多数资产。拒坊间传言比尔·盖茨就曾经说过类似这样的话:只要允许我带走100个人我可以再造一个微软。这话没搜到原版出处,但是从一个侧面反映了IT公司当中智力资产所占的比例之重。

所以一个自然的推论就是,招聘也许是一个公司决策当中最最重要的一个环节。Joel Spolsky把他在这方面的观察,体会和洞见集结成了一本小册子《Smart and Gets Things Done》,开篇就挑战“产品是公司成败的关键”这个传统观念,他认为创造最适合工程师生活的环境,留下最优秀的人才才是最先最重要的一步,接下来好的产品是水到渠成的事情。国内iapp4me.com创始人郝培强正是这个理念,所以他在微博上说

我们是小公司,工资开的不高,也不招太多的人,但是电脑都是iMac27,iMac21,Macbook pro15,基本上比很多大公司都好多了。软件没盗版,刚才photoshop的正版我也收了。中午管饭,公司备伞。哈哈。节日假正常放,从不加班,早晨11点上班,下午6点下班。我是有资格说某些大公司的员工苦逼的。

事实上,米国找个人尚且难成这样,搞得Joel还费心费力写本书语重心长地劝企业们要善待好工程师,国内找个人更是难上加难,国内高质量问答社区知乎创始人周源就曾经在知乎上分享他呕心沥血的招人历程,看完真是让人慨叹这年头找个靠谱的人多不容易(这条知乎问答还有很多精彩的跟帖):

其实从 08 年到现在,我一直想这事能不能有点窍门,或者是实用的方法,结论是几乎没有。我用过的大家都用的方法:

  • 在水木上发贴子(有点效果)
  • 在蓝色理想上发贴子(无效)
  • 在技术邮件组里发贴子(无效)
  • 买 51job/智联 最便宜的服务(有点效果)
  • 给所有可以想到的人打电话,请他们推荐(无效)
  • 给所有和你讨论过创业,喝过点小酒的人打电话(无效)
  • 约前同事私下谈(有效)

我用过的大家可能没有用的方法:

  • 上 twitter,看 XXX 的 follower,一个一个看,看他们的 twitter,博客,Google Reader 分享,想办法搞到邮件,联系,半夜电话骚扰。
  • 上豆瓣,前端后端挑几本重量级的书,去找想看,看过,正在看这本书的人,一个一个看,看他们的活动,博客,Google Reader 分享,想办法搞到邮件,联系,半夜电话骚扰。
  • 找同事,问他们都看什么技术博客,想办法搞到邮件,联系,半夜电话骚扰。

正是这样的不容易,才有不少公司走内部培养的办法,这里的逻辑是:一上来就招到靠谱的人太难了,但找一块靠谱的璞玉然后雕琢雕琢相对就简单很多。这倒是个办法,但这样做的人难免就陷入了纠结:培养好了,人跑了怎么办。这也不能怪招聘的公司,的确是人之常情。其实解决的办法也很简单,培养的时候进行适当引导,让员工发挥自己的主动学习能力,这样不但人得到更多成长,公司也不会觉得投入太多患得患失。所谓师傅领进门修行在个人。

但是,这仍然还是没有解决根本的问题,就是招聘真的很困难。应聘者固然觉得自己是在“海投”,大海捞针一般。而招聘者何尝不也是这种大海捞针的感觉。这就好比两个人谈恋爱,都想和对方好上,但是偏偏就聊不到一块去。

招聘真的很困难。以至于招聘者每年需要绞尽脑汁出新笔试题,以免往年的笔试题早就被人背熟了。出题很费脑子,要出的不太简单也不太难,能够滤掉绝大多数滥竽充数的但又要保证不因题目不公平而滤掉真正有能力的,要考虑审题人的时间成本就只能大多数用选择题,而选择题又是可以猜答案的(极少有人会在选了答案之后还敢在空白的地方写为什么选某答案的原因的)。更悲催的是,有些题目出的连公司的员工们自己都会做错(真的是员工们做错了吗?还是题目本身就出错了?)

笔试完了之后如果还没有被鄙视就要进入面试环节,姑且不说笔试题的种种弊端,就说面试环节,短短几个小时的面试(大多数公司也许连几个小时的面试时间都没有),既需要全面考察基本知识,又要考察编程素养,还要考察(也许最重要的)性格心态。再然后还有一项根本没法考察但却占据程序员相当一部分工作时间的:debug能力。面试官不但得找准问题,不因对方一题答对而妄下结论,也不因一题打错而就扼杀机会,还要以管窥豹,从一朵花看到整个世界,从面试人的举止言谈,分析问题的方式,甚至写程序的笔迹来观察这个人的性格,做事的方式和心态,简直是要面试官具备心理分析师的水准才行。

这厢要招人的雇主苦不堪言,那边找工作的人也是一团乱麻。绝大多数应届生直到毕业也不清楚他们想要去的公司到底需要什么样的能力,或者说,他们到底需要具备什么样的能力才能在应聘季节拥有自己的选择权。中国虽然本科教育环境差,但是同样有很多的人在本科希望整点东西出来,他们有一腔的激情和抱负,有强大的动力,但就是不知道自己需要掌握哪些技能才能满足雇主的要求,求告无门,整年整年苦闷的像没头苍蝇一样乱撞(我就收到过很多次这样的来信,他们往往很想学点东西,但又不知道哪些重要哪些不重要,到底该学到什么程度,不知道导致不确定,不确定导致决策瘫痪,干脆嘛也不动,荒废时间)。

什么叫熟练?什么又叫精通?那么扎实呢?两年的YY经验又意味着什么?能这么简单的量化吗?同样是两年的“实践”有的人能真的学到点东西,有的人也许近似一无所得。那么实习呢?很多人都一定要在简历上弄个实习经验,这个又能说明多少问题呢?大作业呢?得奖呢?有一次我面试一位同学,据简历说编译原理课的大作业得了一等奖,可我一问什么是递归下降,就傻眼了。

这个现实的结果就是,现在绝大多数应届简历而言,也许最具信息量的部分不是“精通XXX,熟悉YYY,掌握ZZZ”,不是“在UUU实习过”,也不是这个项目那个作业,反倒是越来越被认为不重要的一项:毕业学校毕业学校本不应该是最具信息量的,它之所以最具信息量只是源于一个悲剧的事实:简历上其他条目实在信息量太少了。所以靠谱的面试者往往学会了无视简历上华而不实的内容,只相信面试的时候亲眼所见,扫两眼简历也就罢了,最后还得自己捋起袖子慢慢面。而应聘者也许也知道招聘的也不会细细纠简历上的条目,所以什么词也都敢往上捅,反正先过了HR筛简历这关再说。从经济学角度来讲,应聘者的这种策略是正确的,没有代价(因为目前似乎没有公司会去给已经申请过的人做一个诚信数据库),但至少有可能会带来巨大的收益。应聘成了博彩。而博彩式的应聘给招聘公司带来了巨大的筛选压力。简历成了摆设。

那么招聘这个关系里面的第三者——学校——所处的位置呢?学校更关心的是毕业率和就业率,这似乎是件好事,有这个为目标,那么老师们似乎应该努力让自己的学生多学点东西。可惜就业的质量似乎不是最重要的指标,此其一。其二老师本身大多数没有丰富的业界经验,根本不知道企业整整需要的人才是什么样的,可能花了精力,但却培养不出雇主真正需要的人。另一方面,老师所起的作用很多时候甚至是一个负面的作用,例如布置大作业表面上看上去是培养学生的能力,我们姑且不说抄袭,假设每个人都做了,那么大作业本身能够衡量多少东西呢?能否衡量代码质量,能否衡量团队协作能力?能否衡量交流能力?考虑到大作业用到的东西往往都是书里面现成的,大作业甚至不能衡量学习能力。而学习能力简直算是这个行业最重要的能力没有之一了

所以,简而言之,如果把人才培养/招聘这件事情本身类比做一个项目,那么这整个项目迄今为止就是一个巨大的失败。为什么这么说呢:

  • 和需求严重脱节:作为人才需求方的雇主的需求到底是什么?绝大多数应聘者都没搞清。更严重的是,这却一点都不是应聘者的错。因为雇主是stakeholder,是雇主自己的责任得去说清楚需求是什么。结果应聘者实现的不是雇主想要的,雇主想要的应聘者没有实现。
  • 应聘者雇来培训自己的人根本不管事:学生交了学费,就相当于雇老师来培训自己,可培训者根本也不了解(或不关心)他的客户们的需求。这里,学生是需求方,老师则是实现方。弄清需求的职责在后者,可后者也弄不清。
  • 学生自己也弄不清:学生自己既是需求方(需要特定技能),也是实现方。可他们自己也弄不清需求到底是什么。

以上三点还不是最严重的,最严重的在下面:

  • 明白需求是什么的也不知道怎么实现:怎么去培养现代IT企业真正需要的人才?特别地,实战能力怎么培养?代码素养怎么培养?协作沟通能力怎么培养?学习能力怎么培养?就算这些都知道怎么培养,又怎么给在象牙塔里头,离催命之日还遥遥无期的学生提供足够的动力呢?而学生自己就算知道该学哪些技能,又怎么知道具体怎么着手?什么是最有效率的学习方法?又如何让自己保持学习的热情?

以上这些问题,就是当下人才培养/招聘的惨淡现状。简而言之,在雇主和学生之间,横梗着一条巨大的鸿沟,两头都很着急,两头都有动力,但就是没有方法,君住长江头妾住长江尾。像微软谷歌这样的,干脆和高校合作,直接插手本科或硕士的教育,从而保证到时有足够强的候选,某种程度上,这的确是根本解决之道,可一来这代价太大了,非一般企业承受得起,二来这影响面也太小了。

这一切,也许将在未来的5年发生根本的变化。

《Switch: How to Change Things When Change Is Hard》(中译《瞬变》)里面指出,表面上看来非常困难的改变,也许是因为根本就没有抓住要害。在书中作者通过大量案例分析和心理学研究,雄辩地指出以下几点促成改变的关键之处:

  • 触动内心的大象:要改变的人必须要有情感层面的动力。有一些特定的方法能够比另一些方法更能对人的情感产生触动。
  • 给出清晰、明确的目标:目标一定不能含糊,模棱两口的目标让人无所适从,导致决策瘫痪。例如最近我们组在招实习生,我在微博上发了一条招聘信息,其中提到“扎实”的系统底层知识,有同学就写信来问,怎么叫“扎实”。我傻眼了。比尔·盖茨就以目标清晰明确著称,不仅在战略制定上,“每个人桌面上都有一台PC”,而且居然还体现在招聘上——“如果你读完了TAOCP,那么就给我投简历吧”。多么清晰,明确的目标啊——虽然高了点,也许这就是比尔·盖茨至今还没被应聘邮件淹没的原因:)
  • 给前进的道路扫清障碍:人是懒惰的,只要有借口就会不想往前。如果既有明确的目标,同时道路又直直指向目标,一览无余,只等你开始往前走,那么便没有借口,一往无前。

那么让我们对照上面看看,可以做什么?

首先,内心的大象不需要触动,中国有足够多的人足够早就开始焦虑就业的事情,只是不知道往哪使劲,这部分人如果把劲头用到正确的事情上面也许足以满足现在的IT企业人才饥渴了。至于其他人,好吧,也许身边的人开始动起来他们也会被触动。

然后是清晰、明确的目标。这一点上目前雇主们的做法可谓好坏参半,好的一点是大家都强调要有实践经验,要有团队协作精神,坏的一点就在基础知识和技能的要求方面,可谓再含糊不过了:“精通XX语言”,“扎实的XX功底”,“熟悉XX技术”,甚至看上去最具量化感的描述“X年YY经验”其实都根本说明不了多少东西,在信息量方面还不如我家门口菜市场上一家卖酥油饼的店门口挂的横幅——“三天不硬、至少六层!”。

很多朋友也许注意到一个现象,现在企业对招聘者简历的要求也在变得越来越灵活变通,例如ThoughtWorks在招聘的时候就希望招聘者能给出自己的博客地址,博客对IT行业的意义也许胜过其他所有行业,一个积累多年的技术博客比任何简历都更能说明问题。台湾的郭安定也说“为什么写技术博客对新人如此重要”。可惜这个做法也有一个弊端:并不是所有技术牛人都写博客,有人就是只干不说型的,而就算写博客,乃至动手写过一阵子的,写一个常年的博客,也远比你想象的更为困难,因为很多时候,写(说)得靠谱比做得靠谱更难。所以这个过滤器很多时候用不上。

但是这的确表明了一个思考的方向,就是寻找更具鉴别力的过滤器,Stackoverflow Careers 2.0之所以强大,是因为Joel Spolsky和Jeff Atwood这两位常年混社区的资深博主创造性地将一个人在社区的活动历史浓缩成为一系列的量化数值,由于这个历史很长期,所以鉴别力非常高。但它同样也有问题,就是对于应聘者来讲相当花费时间,而且并不是花时间(在Stackoverflow上回答问题)就一定能花到点子上。

到底什么特征才是既通用,又能够有效地鉴别高低应聘者的特征呢?这个特征必须不像博客那样难以实现,同时又必须有足够的区分度

有的地方在要求填写简历的时候必须填上平时都访问哪些技术网站。恩,很不错的尝试,可区分度仍然还是不够,因为上网站上查东西毕竟只占现阶段大多数应届生的少数信息来源,特别是当我们看重得更多的是应届应聘者的系统性的知识基础的时候,网上的东西虽然丰富,但属于提高班,也更为琐碎,什么是更系统的知识来源呢?答案其实大家都知道——

书。

我一向认为,很多时候,是否好好看完一本好书,对一个人的提升往往能达到质的区别。就算不好好看完一本好书,马马虎虎看完,只要书是真的好书,也肯定会有很大的提高。我在面试的时候就经常询问对方看过哪些技术书籍,经常上哪些网站,订哪些博客。这里头尤其数书籍这一项的区分度最高。此外,好书和坏书的差别,从本质上,就是学习效率和大方向的差别。一本烂书可以浪费你半年的时间,但一本好书却可以为你带来真正扎实的基础和开阔的视野。人们常常用“内功”来形容扎实的基础,认为学好了内功以后学什么都快,其实一点没错,好的“内功”书不仅讲清楚深刻的原理,而且指明技术的本质,刻画领域的地图。好的书抓住不变量,让人能够触类旁通。好的书不仅介绍知识,而且阐释原则,介绍那些万变不离其宗的东西。读烂书浪费时间,但读好书却节省时间

象牙塔内的学生受到视野的限制,往往择书不慎,事倍功半,烂书不仅浪费时间,还会打击人的积极性,让人对知识心生恐惧,认为很难掌握,殊不知只是作者没有讲好(或者没有翻译好)。因此,为招聘头疼的公司完全可以给出“应聘俺们公司前必读的十本书”,也不一定要每个公司都不一样,在某个技术子领域有影响力的人,或者创始人们,可以来定义具有代表性的书单。

我们姑且把这个计划叫做“书单计划”,容易看到“书单计划”具备以下几个卓越的优点:

  1. 清晰、明确。完全可度量。
  2. 防伪:读没读过,随便一问便知。而正因为应聘者也知道这事不像实习经验可以忽悠,所以也不敢乱往简历上捅词。
  3. 不在乎是否“泄题”:书单完全公开的,无所谓,本来就是要你去读的。想背题?背书吧。真能背下来说明认真看了。
  4. 管你用心不用心读,只要读了,读完了,就有区别。真正的好书,你想不被吸引都难。据我观察很多人就是不知道该去读什么书。
  5. 不存在“怎么做”的障碍:所有人都知道怎么读书——一页一页读。
  6. 不需要招聘者投入精力:书单在此,就这么简单,您看着办。
  7. 评估的负担很大程度转移到了应聘者的身上:是不是认真看完了,有没有心得体会,您自己掂量。没看完别来找我们。

“书单计划”能很大程度上起到强鉴别器的作用,看了就是看了,必然能学到东西,没看就是没看。知道和不知道,区别是本质的其实很多企业内部培训,根本上其实还不就是叫员工去看之前没看过的书或者资料嘛。最后,除了鉴别作用之外,它还是一个清晰促进的目标,是完全不花精力的培养

当然,“书单计划”的背后是另一个悲剧的现实,如果不是因为这个现实,这个计划也完全没有必要,那就是,中国IT大学教育当中要求要学的书,和企业真正需要你去读的书相比,不是完全不够用,就是写的不够好,或者更悲剧的就是根本用不上,所以在这个大背景下出来的牛人都是自己淘书自己学的。微软高级开发测试工程师,《Windows用户态程序高效排错》作者熊力就在微博上说过:“我当年毕业的时候总结了一个公式:第一份工作的月薪=大学四年买过的技术书籍价格的总和。”

但是光有“书单计划”还不够,因为书籍只能管基础知识这一块,一些更难以量化衡量的实战“能力”又怎么办呢?至少目前为止,除了“练”之外好像还没有特别好的办法。可是在象牙塔里面做的项目,或大作业,真的能起到练的作用吗?前面说了,学生会知道自己最终要交差的不是雇主,而是老师,于是就以老师能够评判的标准来默认要求自己了,老师能够评判编码素养?代码风格?文档?设计?协作?甚至连著名的Joel 12条的第一条“是否用源代码管理系统”都没法通过。所以大多数时候,大作业能起到的作用近乎0。

但是如果这一切是由雇主来评判的,这个“作业”是由雇主来给出的,就完全不一样了。一想到作业是要作为简历的一部分的,能不紧张嘛。能不好好做嘛。能不学到点东西嘛?

可是这事儿能实现吗?雇主能给学生出大作业吗?也许一两个关系好的高校可以,可是中国那么多学生呢?

为什么不能呢?如果像书单那样,列出各个技术领域“推荐在学校期间尝试的项目”,至于动不动手做,那是学生自己的问题。做的,自然能够得到锻炼,面试的时候自然能得到更大的优势。

可问题是,面试的人又怎么来评估呢?这不又回到了没法有效评估的怪圈了吗?答案很简单,但这个答案,直到最近几年,才真正成为现实——

GitHub

GitHub诞生于08年春天,第一年便产生了4万6千个公共项目,大约一年半之后用户就已经达到10万用户之巨。而到今年九月份,GitHub已经迎来了百万级用户。Host超过两百万个项目。

增长的太快了!就像Twitter一样。这样疯了一般的增长只能说明一个事实——人们等待这个产品太久了

Social Coding

真实的项目,真实的流程,真实的人名,一切代码review, check-in, test, build, document, 甚至讨论,计划,brianstorming,流程,一切的一切,都是项目历史的一部分,都可以像棋局那样复盘。有经验的面试者只要稍稍扫两眼一个人的GitHub历史,挑出几个check-in历史看一看,便完全能够迅速判断这个人是否满足他的要求。不再需要费劲心机地去想题目,去观察,去揣测,去花费大量的时间的同时还只能采样到几个极为有限的点。

不像象牙塔里面大作业,这里有源代码管理系统,自动化build,有check-in,有review,有分工,有合作,最重要的是——这是一个集市,一个超出象牙塔的集市,牛人相互吸引,你可以在互联网上找到和自己拥有共同兴趣的一帮人,真正做起一点事情,而不是交差,不需要受限于几十个人的一个小班级。Here Comes Everybody

为什么我这么有信心?因为这事儿已经发生了。这个想法也完全不是我原创的

正如很多事情一样,现在在国内发生的事情,往往是美国那头的历史。今年7月中旬,纽约一家公司的工程师老大发了一篇博客文章:Github is Your New Resume。指出一个惊人但再合理不过的事实:越来越多的IT公司在招聘的时候要求应聘者给出GitHub账号。甚至已经有人为GitHub写了根据GitHub上的历史自动生成简历的工具

仔细想想,这是必然的趋势,没有比这个再合理的事情了,既然StackOverflow的历史能够作为简历,GitHub的历史不本该就是更好的简历吗:你想要具有实战经验,懂check-in懂review懂test和代码质量的重要性,懂交流和沟通的重要性,你本就应该在一个真实的项目当中去锻炼这些东西,而这些在目前已经完全可以办到。正如邹欣老师所说,你的工作就是最好的面试

这件事情放在早几年,是完全没法做到的,因为我们那时候还没有GitHub。正如没有Twitter,没有微博之前,很多事情都不会成为可能一样,你有千钧之力,缺乏一个合适的支点,也没法撬动一整个社群。无组织中的组织,具有强大的杠杆效应。

这个事情里面,我唯一提出的东西就是:在目前国内这个现状下,苦闷的招聘者应该主动行动,给出一些建议项目,正如前面提到的书单计划一样,招聘者需要给出的只是引导和清晰明确的目标,剩下的事情,应聘者自然会去完成,这些项目可以是实验项目,也可以是完全能做出点卖钱的东西的项目(如果好好做的话),唯一的不可或缺的前提是,项目不能太小,单人就能完成的项目不理想,一两个月就能完成的项目不理想,最好足够大到能够锻炼到方方面面,偏大一点倒是无所谓的,因为一个尚未完成的项目完全可以作为简历。当然,可以想见的是,真到了那个时候,学生们肯定又是不会满足于仅去做那些已经有许多人做过的项目了所以这里企业们一开始所建议的项目只是一个《Nudge》,是滚雪球之前需要的一点初始动能。后面的事情,他们自己会完成。

“GitHub计划”同样有一些明显的、甚至不可替代的优点:

  1. 清晰、明确,完全可度量。
  2. 防伪:同样不担心“泄题”。你伪造不了GitHub历史,伪造不了check-in历史,review comments,文档,交流记录…
  3. 它不但是招聘,也是不花精力的培养。善哉善哉。
  4. 评估的责任很大程度上交给了应聘者自己。

从你的GitHub旅程开始,你就已经一脚踏进了真正的企业,而企业的面试也已经开始。

书单+GitHub,就相当于一个两年左右的面试。

没有什么面试比持续两年的面试更具有信息量。

书单,加上项目,已经基本上覆盖了所需的全部技能。最妙的是,有太多的人在焦急的等待着他们未来的雇主给出明确的信号,他们想投入精力,去学习和实践,去成为企业需要的人,但是他们就是不知道往什么方向走,所谓有动力没方向。所以,雇主给出了清晰明确的要求,相信对于很多人来说反倒是一个解脱:“终于知道该干什么了”。《编程之美》为什么常居畅销榜?因为它透露了雇主眼中的需求,明确、清晰的需求,可以实现,并且知道怎么去实现的需求。

你提前两年就开始面试和培养未来的候选者,而且还不需要你花出一分精力,而且人家还很乐意,没有比这更完美的面试了。

想一想,以后那些没见过世面的公司看见你拿出GitHub账号给他看,该是多么惊讶同时又觉得多么合理。

而这一切,只是因为两个小小的改变:

  1. 由需求方(雇主)给出了清晰、明确的目标。
  2. GitHub这样的平台。

那么,学校/老师在这个事情当中的位置呢?说实话我不知道。没有哪个行业像IT行业这样特殊:没有什么东西不能够(应该)在互联网上学到的。自组织的力量完全大过传统的教育方式。而且,既然雇主都当了领路人了,我不知道还有中间开发商什么事儿。(注:这里说的是软件开发,并非计算机科学研究,后者另当别论

那么,这个改变会发生吗?多久会发生呢?当然,它在国外已经发生了,所以问这个问题多少有点无趣。但我还是预计很快就会在国内发生,毕竟,不是已经有人要求出示博客,和经常浏览的网站了吗?也许5年左右(4年本科和6年硕士的中间值?))就会深刻改变整个人才培养/招聘的格局。当然,我并不是预言家,所以不要把我的时间估计当真,我能肯定的是,这种方式是必然的大势所趋。

刚才我就收到一位同学邀请我上知乎回答一个问题“找工作的首要原则是什么?”,当然,这个问题的答案是:“弄清雇主的需求到底是什么”。


列一下我所认为的,你面试微软前必须要读的十本书:

  1. Code: The Hidden Language of Computer Hardware and Software (《编码的奥秘》)
  2. Computer System: A Programmer’s Perspective (《深入理解计算机系统》) / Windows via C/C++ (《Windows核心编程》 / 《程序员的自我修养》
  3. Code Complete 2(《代码大全》)/ The Pragmatic Programmer (《程序员修炼之道》,我也把这本书称为《代码小全》)
  4. Programming Pearls (《编程珠玑》) / Algorithms / Algorithm Design / 《编程之美》
  5. The C Programming Language
  6. The C++ Programming Language / Programming: Principles and Practice Using C++ / Accelerated C++
  7. The Structure and Interpretation of Computer Programs (《计算机程序的构造和解释》)
  8. Clean Code / Implementation Patterns
  9. Design Patterns (《设计模式》) / Agile Software Development, Principles, Patterns, and Practices
  10. Refactoring (《重构》)

(注:1. 以上同一条目下用“/”隔开的表示任选,当然你也可以都读了,相信我,时间是足够的。2. 读这些书并不意味着逐字逐句从第一页读到最后一页——当然你也可以这么做。怎么是聪明高效的读法,可以参考我之前写的关于如何阅读和查找/鉴别书籍/资料的博文

注意:以上是我个人认为你面试微软开发职位前必须要读的10本书,它不代表我的雇主的观点。它也只是一个初步的书单,肯定会受到我个人经验和眼界的限制。欢迎大家提意见。

此外,IT不同子领域的必读书单可能千差万别,所以在发布之前我把这篇文章发给了一些朋友,他们给出了自己的书单(你是不是能看到一些有趣的共同点呢):

云风(中国游戏编程先行者,前网易游戏部门资深程序员,简悦创始人):

如果面试,我会挑以下的我自己读过的书,让人选择他也读过的部分,再了解他对这些书的理解。这些书其实本质上就是两类,对所面对的东西(程序语言也好,操作系统也好,底层设施也好)本身的理解程度。以及另一类:对设计思想和原则的理解:

  1. C++编程思想
  2. Effective C++
  3. 深度探索C++对象模型
  4. C++语言的设计和演化
  5. C专家编程
  6. C陷阱与缺陷
  7. C语言接口与实现
  8. Lua程序设计
  9. Linkers and Loaders
  10. COM本质论
  11. Windows核心编程
  12. 深入解析Windows操作系统
  13. 程序员修炼之道
  14. 代码大全
  15. UNIX编程艺术
  16. 设计模式
  17. 代码优化:有效使用内存
  18. 深入理解计算机系统
  19. 深入理解LINUX内核
  20. TCP/IP 详解

冯大辉(丁香园CTO,贝塔咖啡创始人):

  1. 软件随想录
  2. 黑客与画家
  3. 重来
  4. UNIX编程艺术
  5. 编程人生

洪强宁(豆瓣技术总监):

StackOverflow上有一个程序员必读书单帖子,这里仅列出top10,更多参考这里

  1. Code Complete 2
  2. The Mythical Man-Month (《人月神话》)
  3. Code: The Hidden Language of Computer Hardware and Software (《编码的奥秘》)
  4. TAOCP (不解释)
  5. The Pragmatic Programmer (《程序员修炼之道》)
  6. Design Patterns (《设计模式》)
  7. The Structure and Interpretation of Computer Programs (《计算机程序的构造和解释》)
  8. Refactoring (《重构》)
  9. The C Programming Language
  10. Introduction to Algorithms (《算法导论》)

郑昀(窝窝团研发副总裁):

  1. 工程师入门:
    1. Code Complete 2
    2. 程序员修炼之道
    3. 深入理解计算机系统
  2. 工程师升级:
    1. 设计模式
    2. 重构——改善既有代码的设计
  3. 工程师转型:
    1. 快速软件开发——有效控制与完成进度计划
    2. 人月神话
    3. IT项目管理那些事儿
    4. 软件随想录
    5. 最后期限
    6. 走出软件作坊
    7. 你的灯亮着吗?——发现问题的真正所在

张峥(微软亚洲研究院副院长):

  1. Algorithms (by Sanjoy Dasgupta, Christos Papadimitriou and Umesh Vazirani)
  2. Data Structure and Algorithms
  3. The C Programming Language
  4. The Design of the UNIX Operating System
  5. Compilers (龙书)
  6. Computer Architecture: A Quantitative Approach
  7. Flow
  8. Outliers (why hard work and luck are both important)

邹欣(MSRA创新工程中心首席研发经理):

关于创新的书籍(http://book.douban.com/doulist/1253169/):

  1. The Myths of Innovation
  2. The Innovator’s Dilemma
  3. The Innovator’s Solution
  4. Crossing the Chasm
  5. Inside Intuit
  6. 盛田昭夫
  7. 杰克·韦尔奇自传
  8. 梦断代码
  9. Innovation
  10. 浪潮之巅

关于“精通”的一篇博客《技能的反面:魔方和模仿》:

http://www.cnblogs.com/xinz/archive/2011/08/07/2129751.html

在我教的《现代软件工程》课上,除了教科书,每个学生要看另一本相关的书籍并写读书分析。这个博客有一些同学的读书报告:
http://www.cnblogs.com/OMG-Team/archive/2011/10/25/2223247.html


读好书是如此的重要,因为好书往往带领你去到更好的书,更大的世界。

275 Comments

  1. Kenneth Chin | | Reply

    其实 Github 的核心在于解决了不透明度的问题,一个行业不透明度越高,代表信息流通的难度越大,人们会倾向于使用欺骗和防御策略。以世界历史为例,交通和信息设施发展的几个阶段同时也是世界经济快速发展的几个阶段(车辆、航海、航空、高铁),降低流通壁垒是非常有效的促进发展的手段。谁把这个壁垒降得低,谁就占有优势。

    就我个人的经验,能够获得各大公司青睐的,往往有如下几种人:
    1、拥有一个 Blog 并撰写相关领域文章。
    2、在相关社交平台上活跃(技术或综合亦可)。
    3、在简历或About Me或类似产品/功能中详细记录项目进度,尤其是如何解决问题的过程。

    同样,我们也偏爱这样的机构:公开其工作、决策模式。如经常披露 Workflow 或 Case 的 Creative Agency 往往获得更多青睐。

    上市公司要求公开财报也是同样原理。

    因而我个人认为本文的重点抓得还是不够准,关键是要搞出一个能够降低流通壁垒的模式——无论规模大小,总能促使交易双方获利。

  2. DaemonJun | | Reply

    感触太多!让我醍醐灌顶

  3. bgh | | Reply

    拒坊间传言,应该是根据的据吧

  4. 白亦初 | | Reply

    写得真好。
    作为产品经理,我们的标准更加模糊不清,找工作太费力。
    很想写个产品经理招聘指南,但我可能无法给出一个像招工程师这么明确的办法,只能去伪存真。

    • 傅思 | |

  5. 邱睿 | | Reply

    看您的文章真的是享受。观察问题和思考原因,最后给出解决办法!
    每每一针见血。

  6. joker | | Reply

    读完文章,感觉大学不如上技校呢。。

    • Jerry_Shan | |

      原文指出:“现在绝大多数应届简历而言,也许最具信息量的部分不是“精通XXX,熟悉YYY,掌握ZZZ”,不是“在UUU实习过”,也不是这个项目那个作业,反倒是越来越被认为不重要的一项:毕业学校。”身在北邮,心向技校。

    • zf | |

      你去技校读半年,你就知道技校有多不靠谱。

    • zf | |

      你以为技校的老师就抓住了雇主需求?

    • zionfuo | |

      github上星星多一点

  7. mr.lid | | Reply

    很幸运能够看到这样的人和这样的博客,可惜我不是学计算机的,,,有没有一些工程电子方面的牛人博客推荐下哈!

  8. 落英 | | Reply

    谨受教

  9. cino | | Reply

    如果传统行业有这样氛围就好了

  10. 故河 | | Reply

    工科思维说工科人才养成,不服不行,不得不服。

  11. 尚123456 | | Reply

    老哥您的文章,每一次读都是一种收获,一种享受!

  12. MetalMax | | Reply

    虽然是早些年的文章了,还是受益匪浅

  13. 夕_久 | | Reply

    好文章!从企业的角度是如何筛选人,从个人的角度即是如何提升自己的核心竞争力!

  14. 楊晴翰 | | Reply

    後輩斗膽補充 – 微軟那段出處應該是 安德魯·卡內基說的:如果把我的厂房设备、材料全部烧毁,但只要保住我的全班人马,几年以后,我仍将是一个钢铁大王。 –

  15. mimosaaaaaaaa | | Reply

    很需要这种过来人的引导!

  16. JK | | Reply

    30岁了,重新来读还有机会么?

    • 颜晋南 | |

      活到老学到老,几岁都有机会。

  17. Jason | | Reply

    这么好的博客竟然没有人顶,感谢楼主对招聘说得如此透彻,也让作为一个学生的我找准了方向。另外,我在美国读书,前几天面试实习生的时候的确被要求出示github账号,没有的话不考虑。

  18. 颜晋南 | | Reply

    读好书是如此的重要,因为好书往往带领你去到更好的书,更大的世界。
    我想加上一句,有些公认的好书你读起来没有感触,那么你是提前读了。过几年在回头看看。

    • Jyunichi | |

      是有同感。

  19. 寻找DCM | | Reply

    讲了好多非招聘人要去了解的知识

  20. 余若文 | | Reply

    看得我不敢写评论,这是什么心理机制?

  21. 大鹏HUST | | Reply

    阐述了一个很好的思路

  22. xirong | | Reply

    再次阅读,清晰明了,验证了目前的一些想法,推荐给所有看到的人阅读,花15分钟,仔细思考,一定不辜负你的时间。

  23. 风满楼i | | Reply

    感谢博主的文章,干货满满,对我的帮助很大。

  24. seo | | Reply

    现在在国内发生的事情,往往是美国那头的历史–

  25. Aflext Yang | | Reply

    赞一个

  26. 雪帅 | | Reply

    啦啦 什么叫扎实的基本功

  27. lifeng | | Reply

    感谢刘先生写的这一篇文章,目前我还是大三的一名学生。半年前看了这篇文章以后一直照着您所说的方法去做,其实也就是看书啦。虽然目前我看的书和您上面所推荐的有很大的不同,但是我体会到了这篇文章中所描述的思想。
    这就像教育领域中的过程性评价,能够反应出一个人在一定阶段所做过的事情。

    感谢你写了这篇文章,不想竟深刻影响了我的2014年。所以今年的拜年信息我就在这里发给你了,

    2014年度迷之影响(李子)十大风云人物之一刘未鹏先生,谢谢!

  28. 点滴生活 | | Reply

    招聘也许是一个公司决策当中最最重要的一个环节

  29. sobird | | Reply

    怎么那都能见到你~

  30. 江南烟雨 | | Reply

    如果更早一点看到这篇文章….

  31. zyjhon | | Reply

    看看!

  32. 王博做个吃货 | | Reply

    <怎样花两年时间去面试一个人>.从你出生,接触互联网开始,你的每一个进步都可以由你的博客,github,记录.分享进步和经验也是积累财富.嗯,每个人都有这样的机会了.

  33. yokoboy | | Reply

    不错的文章,知道自己缺什么了。 感觉好久没有认认真真读一本书了,好书读的太少了,技术类书籍也都是浏览着读 的。

  34. gxichun | | Reply

    不错的文章,GitHub+书单

  35. Camel | | Reply

    读完之后,自己的感觉首先是惭愧,惭愧自己即将完结的本科四年和研究生两年半;同时感到震撼,为作者有理有据的阐述所震撼;当然,最重要的还是深深地被作者的观点所折服。虽然自己的学生生涯所剩不多,但是我会从现在开始,重新整顿自己,慢慢积累。
    谢谢前辈。

  36. 张旭 | | Reply

    聪明的你学会了么

  37. 张旭 | | Reply

    豁然开朗,聪明的你学会了么

  38. Jack一伟 | | Reply

    醍醐灌顶,我能转到我个人博客吗?我会标明出处,谢谢!

  39. 新思想周文强 | | Reply

    明天就要高考了。
      今年,我有一个外甥女参加高考。前几天我打电话叮嘱她:别紧张,做好自己就行。但这种话,估计她听多了,未必记在心里。
      高考前,那么多评论、感言,不乏有平常心对待高考的建议。但,该紧张的人还是紧张,不紧张的人,要么胜券在握,要么胜负已定。那些撕书减压的孩子们,在漫天飘散的纸屑中,依稀能够看见他们焦虑的眼神,以及勉强露出的笑脸。谁说不是呢,背负太多期待的他们,怎么可能轻松得起来?

      但我对外甥女说的是真心话,因为这出自于我的人生体会。

      我是一个高考落榜生,至今在单位档案里的最高学历仍是高中毕业。1992年参加高考,名落孙山后,我没有选择再来一次。后来自己也很纳闷,当时竟然丝毫都没有这种打算,觉得考不上就拉倒。不过,能否上线,往往考前就已经心里有底了。分数高的,只要考试不失常就没问题,分数差距太大,指望超常发挥是不可能的,而我恰属于后面一种。因为偏科太厉害,我自己都不抱奢望。作为一个未考先败的人,高考已无输赢可言。
      参加高考的过程,我差不多都忘记了。只记得那年夏天下着大雨,我们搭车赶往设在市区一所重点高中的考场。中午时,许多人到外面下饭馆,或者买快餐。当我吃好饭走回考场,望见班上平时成绩最好的女生,坐在校园操场边的石板上,一手拿着馒头往嘴里送,一手握着书本,眼睛盯着。她抬起头来,和我对视了一眼。看到她似乎睡眠不足、精神憔悴的样子,我百感交集,感觉我们就像两个世界的人。

      虽然我对高考落榜后的生活有过无数遐想,但我没想到,高考会以有形或无形的方式继续影响我的人生。因为考不上大学,我进修了两年自费大专,由于学历不被正式认可,所以只能自谋出路,在工厂、广告公司、贸易公司跌打滚爬。在后来的许多个夜晚,我确实偶尔还会后悔,当年为何不重视高考。
      不过,也因为高考落榜,我不用继续读自己不喜欢的课本,而是心无旁骛地钻进自己的爱好,狠狠地读了几年书。也因为高考落榜,我早早就体验到人生的酸甜苦辣,迅速地成熟起来。更因为高考落榜,我才能不走寻常路,以自己的方式抵达理想。

      今天,当我坐在电脑前写这篇文章,还应该感谢的是自己当年落榜了。否则的话,考上大学后的我会成为什么样子?我可能因为读了几年大学,失去了自己的爱好,也可能因此变成另外一个我。那个我快不快乐,这是没准的事,但可以确信,现在这个我过得很好。那个啃馒头的女同学,后来以班上第一名的成绩考上重点大学。她毕业后一直在银行工作,这或许是许多人梦想的稳定职业。但说老实话,我觉得自己充满挫折变化的人生,也很精彩。

      人生就是这样,因其不无复杂而更加丰满,也因其充满偶然性而更加有趣。高考,只是人生旅途上的一个站点,而非通往成功的终点。穿过它,也许你将走上一条光明大道。绕过它,说不定你又将发现另一片绿洲。高考胜出,就像赢了一场球,而输了的人,依然有机会换个场地继续参加比赛。

      这不是在贬低高考和上大学的作用,而是想说,对个人来讲,关键是如何以自己的方式去寻找与定位人生价值。如果自己觉得好,那么一切皆好,就算输了高考也无妨。

    请把这篇文章转给你最关心的人!

    欢迎关注公众微信平台:ntcc41316 新思想周文强
    很多朋友都来感谢我们,其实你们最应该感谢的就是那些无私把这些文章分享出去的人,他们才是最无私伟大的。是他们吧正能量带了出去,传播出去。你要不要帮助自己的朋友呢?

    传递正能量 实现中国梦
    官方学习型 微信号/QQ:779889491
    公众微信平台:ntcc41316

    分享智慧 关注微信:ntcc41316

  40. icefighter | | Reply

    数字化的时代,一切皆可以数字化,面试、招聘也是一样

  41. FATman13CC | | Reply

    挖个坟,打个酱油。

  42. Scinart | | Reply

    好文,分享之。

  43. 有风 | | Reply

    面试真的很难。我前后面试人数不下2,300,真正找到合适人才的寥寥无几。

  44. 御宅暴君 | | Reply

    除了书,还有新时代的学习材料:MOOC. 如今 edX 都支持内嵌 Certificate 到 LinkedIn 了。于是应聘者只需亮出咱家的四大神器给企业瞧瞧即可:Blog you write, Projects you code, Books you read, MOOCs you register!

    • FATman13CC | |

      好像经常看见你。。

  45. junefan | | Reply

    我学算法之前就是看了你这篇博客,然后认为算法不重要,没认真学,结果现在找工作面试的时候,人家问到后面就是问这个,搞得我现在只能临时抱佛脚,我希望下次你别再说出这样的评论,大学能够学习到的都应该鼓励。

    • 江夜 | |

      人的精力是有限的,不是"大学学到的都应该鼓励",有些投入要考虑成本和回报。工作面试的时候算法问的多,不能代表算法一定重要,很多公司把算法看成是你编程能力的展现,或者你"聪明与否"的表现。

    • crystalenn | |

      =.=这个真的是仁者见仁,我老板就认为算法很重要,当然他是硬件工程师出身……

    • KF | |

      我很诧异,你看上面的书,没有学习算法? 你怎么看的?

    • hank | |

      他哪里说算法不重要了……

    • 路人 | |

      他哪里说了算法不重要

    • liu | |

      作者什么时候说算法不重要了,去看http://blog.csdn.net/pongba/article/details/4202575文章,作者提到他不注意算法,在面微软也挂掉了,经验啊

    • 逆风的星光 | |

      哪一句说算法不重要了。。。我貌似没看见呀!还是作者修改过原文了?

    • 夏路 | |

      上面少列了一本,《剑指offer》

  46. X-Dick | | Reply

    大一新生,看完这些对未来的3年半怎么走有了一点的想法。

  47. fur | | Reply

    我竟然读完了 mark一下以后可以回看

  48. 茫然 | | Reply

    也正是“怎样花两年去谋取自己想要的工作”

  49. 茫然 | | Reply

    也正是“怎样花两年去谋取自己想要的工作”

  50. 卧冬 | | Reply

    很符合现实 ,虽然从计算机行业出发的,其他行业的人也受益匪浅

  51. sherlock | | Reply

    TAOCP

  52. 尼玛电车贼 | | Reply

    程序员专用主页yaodot.com,代码日记本,搜索快速切换,IT网站导航,程序员必备!!!

  53. icylogic | | Reply

    好文。我觉得IT领域里,web开发相关方面的公司,尤其是创业团队,对于这种新的找人方法会感兴趣,但是其他领域,特别是大公司,跟进地可能就会比较慢了。不过作为应聘一方自己看这些书也没什么坏处,可能对于短时间内应聘没帮助,对未来还是有好处。

  54. 谢平涛 | | Reply

    知识多烦恼少

  55. 安徒生不后悔 | | Reply

    我是一个学计算机的本科生。今年大二了,本来很迷茫的不知道怎么做,看完你的很多文章之后收获颇大有顿悟之感。谢谢

  56. 张美 | | Reply

    招聘是泪~~~~苦逼招聘~中

  57. kangk | | Reply

    妈呀,有一次醍醐灌顶了.呵呵.

  58. ramanu_jan | | Reply

    说了很多想知道得,谢谢!

  59. 小木木彡X2 | | Reply

    通篇看完,的确获益良多,但是我觉得在国内这样的大环境下,博主关于gihub的类似项目构想基本上不能实现,因为中间如果存在资金操作环节的话,以中国这样的政治结构,项目资金不亏空才怪……

    • zf | |

      感觉你的话好深奥啊。中国的政治结构是什么样的啊?

  60. xixi | | Reply

    谢谢,感觉方向明确多了

  61. | | Reply

    今年看了不少书。读了博主的文章,确有拨云见日的感觉。读什么样的书是很生要的。跟着牛人的脚步,总是能有所提高的。

  62. 言午 | | Reply

    从csdn追到这里,受益颇多。可您在csdn上的blog似乎在发一些很无聊的文章,大牛的号也被盗了吗?

  63. 乐乐乐 | | Reply

    实力决定前途,思维改变层次。。。各位加油。。。

  64. lzrm4a1 | | Reply

    好文。废话少说,给我看你的Github + 豆瓣书单。

  65. 蒙面超人23 | | Reply

    实践是检验真理的唯一标准!能说会道的前提是你要有真材实料,否则到真正考验你的时候自会搬起石头砸自己的脚。机会永远只留给那些有准备的人,脚踏实地,认清目标,前进前进前进进。不要我什么都会,也不要不会我可以学,精通熟悉掌握才是真理,现实可是残酷的,机不可失时不再来。动起来!

  66. 码农同学 | | Reply

    自己仔细读完了,很受用。

  67. Fish | | Reply

    谢谢

  68. Lisa LIN | | Reply

    好久没看,居然有一篇这样好的文章。

  69. 妞and乱 | | Reply

    好东西就是要收起来

  70. jackie | | Reply

    至少这篇文章对我(本科在读)很有用!看你的很多文章和经历,可以解决自己的很多问题。
    谢谢!!

  71. lovestone | | Reply

    希望职业为码农或想成为码农的朋友能够读到~

  72. Fresh | | Reply

    如果有一天我能回来的话,我会感谢博主
    突然间清醒了好多

  73. chuanyi | | Reply

    这么长时间。。。

  74. WellsiteDS | | Reply

    比起求职者大堆的项目以及职责介绍,这些内容确实会更加有分量:
    1. 保持更新并且有价值的技术博客地址
    2. github帐户的链接或者其他开源项目的链接
    3. 有高质量的提问和解答的历史记录IT社区帐户
    4. 列举看过的最推荐的5-10本技术书籍
    5. 分享RSS订阅的链接
    6. 一封为特定的公司以及职位定制的求职信,好的程序员应具备好的写作能力
    7. 社交帐户,如推特或者微博 – 如果账户涉及过多个人隐私就免了
    8. 有特色、有创意、有意思的展现形式以及内容

    从另一方面来说,如果招聘方在上面各个方面都有积累的,并且能将这些内容以及团队的文化 展现在JD中的话,可以更好的让求职者估算一下公司与个人的匹配值,节约双方的时间。

    招好的开发人员难,找好工作不容易。不管怎么样,双方都要坚持积累,终会遇到合适的另一方。

  75. frabbit | | Reply

    经师兄推荐来看此博客~ 写的很赞~

  76. 指点简历-指点简历排版 | | Reply

    1)周源,那个叫招聘渠道资源总结表,可惜有IT,不懂HR
    2)用读书,或者理解,来判断人,这个在图灵出版社,上周六的活动中,已经有人做出非常系统的分享
    源文件
    iDev创业技术沙龙-第十九期 数据挖掘专场-基于微观视角:阅读价值.pptx
    《Excel图表之道》阅读价值提示笔记 图文版+文本版.xls
    配套的DEMO,EXCEL
    —————
    相关的评论
    ●形成知识摘要
    ●这个要加些实质的读后感受会更好!
    ●楼主真是用心,表格也做的不错
    ●楼主太好了,谢谢!
    ●这种做读书笔记的方法 让我很受启发 感谢楼主分享
    ●很有创意啊
    ●谢谢楼主分享
    ●够细
    ●很细致,让人耳目一新
    ●楼主真是有心人啊,谢谢。
    ●感谢楼主分享。
    ●楼主的读后感很有趣,也很有意思。
    ●LZ的笔记做的好详细啊

  77. an9 | | Reply

    这篇文章太强大了,以至于我要分几天才能看完。

  78. _包罗万象_ | | Reply

    看完的第一感觉就是想到了葛大爷的一句经典台词:“21世纪最贵的是什么—人才”。尤其是对高科技行业来说人才的确是太重要了!

  79. windy_star | | Reply

    看到这篇文章之后的感触”宁静致远

  80. vsgod | | Reply

    太长了,实在没耐心读完,不过前面很多观点还是不错的,吸收了,嚯嚯

  81. NatasG | | Reply

    希望大家都能看到。

  82. xlpan0010 | | Reply

    急!!未鹏老师,你好!其实我老早就想问你一些问题的,但是因为害怕问题太初级,所以一直试图从其他的渠道解决它们,没敢问,但是有些问题似乎不问你这样的大牛真的不行,我被这些问题困扰得太久,快要饿死在干草堆之间了!我是江苏人,毕业于一所江苏的普通本科,电子信息工程专业,今年一直在准备考计算机专业的研究生,复习得还可以,做了些模拟结果还不错,但是在学校的选择上我是始终有一些犹豫,在南大和交大之间,在网上问了很多学长学姐,两所学校我也都去过,了解了一些与这两所学校相关的信息,但是始终还是有些疑问,所以这件事情一直悬着,我网报的时候两个都报了,但是现场确认的时间到了,必须得做出决定了,无奈之下就来请教你了,希望你能帮我解决一些疑惑。首先,我说一些我对这两所学校的认识,不知道对不对。(若不是考研,我是无意讨论这两所学校之间的比较之类的问题的,我知道那不好没意义,但是现在这个问题对我很现实。)南大的传统和氛围很好,更适合学习,数学和计算机的积累相对而言也更厚实一些,如果以后发现自己想搞学术,那也应该是个好地方,但是因为地理位置和学校的规定,出去实习不大可能,不方便,也不允许,而且校园招聘会可能相对而言会少一些,这两个因素可能导致了就业上的劣势。而交大地理位置好,无论是实习还是就业机会很多也很方便,但是可能传统和氛围相对而言没有南大好,风气上可能有些浮躁。我想问的问题是:(1) 实习与否对于就业究竟有多大的影响?那些好的企业会不会因为没有实习经历而不给一个南大的学生展示自己的机会,过不了简历关,即使按照他在简历上说他的数学算法编程都很好?或者说实习与否能在多大程度上决定简历通过与否?(2) 好像实习生是可以转正式员工的,这样对于不让出来实习的学校的学生就会失去很多的机会,一般来说,企业每年在招新员工的时候会有多少比例是来自于原来的实习生?(3) 南大和交大在就业上的另外一个区别就是校园宣讲会相对而言可能会少一些,这对就业有什么影响?如果一个企业去了交大但没去南大开宣讲会,他们对待交大和南大学生的简历会是一样的吗?只能在网上提交简历的南大的学生在进入这家企业的机会上和交大学生是均等的吗?(4) 好几位南大学长说只要你足够的牛,就业就没有问题,我想知道对于没有实习经历的南大学生来讲,真的是这样的吗?真的可以抵消没有实习造成的影响吗?如果真的是这样的,那么这里的“牛”是应该是怎样的概念,即要具备哪些知识和能力才能抵消没有实习带来的影响?这些又是否都能靠在学校里就能学到手?(5) 另外,了解了南大计算机研究生的部分就业去向,好像留在南京的居大多数,去北京上海的IT名企的不多,这是为什么?是因为习惯了呆在南京而不想去北京上海的名企,而不是不能去,事实上很多人也是能够拿到那些企业的offer的?还是说其实很多人是想去北京上海那边的名企的,但是因为一些因素使得去比较困难?问题有些多,但是这些都是长期困扰我的问题,真心而迫切的希望得到你的指点!!PS:(1)在《我是一只IT小小鸟》里你和徐宥学长的文章我最爱读,而你们又都是南大的,这使我坚信南大的氛围是很好的,有利于培养踏实深刻的人。(2)我觉得这些问题可能发邮件说比较好,我的邮箱是xlpan0010@163.com。

  83. 土元养殖 | | Reply

    俺是标题党,花两年时间去面试一个人?这样的代价是不是太大了啊

  84. 飞fei | | Reply

    思维方式的引导,超水平,写的太棒了。

  85. 陈蓉 | | Reply

    不惧大神者入。天涯资深用户慎入。

  86. Ying--Eva | | Reply

    编程计算机面试书籍

  87. 习习视角 | | Reply

    刘老师的这篇文章写的很好,看后很受启发。之前我一直觉得微博和博客经营的好的话会是自己应聘时的有力法码,这几天在看一些招聘信息时也发现了一些有雇主会要求你列出经常浏览的几个网站,现在看完文章后我觉得豆瓣可能也是一个可以考虑的衡量应聘者的渠道。

  88. YinYan博客 | | Reply

    文章写的很好,分析了招聘过程中的实际问题,总结的很到位,对于找工作的朋友来说,确实可以调整一些角度或者心态!

  89. 陆仕桑 | | Reply

    我觉得,不管是招聘者和应聘者,有一点很重要,那就是心态。对的上,就能擦出火花。还有一点很重要,就是拥抱变化,也许有人一开始挺好,后来变差,或者一开始不大好,后来变好,能有应对这种长期变化的机制,比死死盯住几天的招聘活动更重要。

  90. 智缺王仁侠 | | Reply

    这个题目见过许多次,今天是第一次认真看了内容……

  91. astrol | | Reply

    努力中…

  92. tider_ys | | Reply

    亮点是后面的几串书单

  93. 蓝曲羽衣 | | Reply

    高薪 诚聘网络兼职发帖人员!发帖待遇:发帖按条计算有效每条3元。多劳多得!100元左右/天。每天可做。工资日结!应聘要求:要求会上网,浏览网页熟悉、会论坛发帖流程,每天能提供一定的上网时间。(不会的可以学一下,很简单)(本公司所有招聘职位不需要交纳任何费用)详情加入地址:http://www.116jz.com

  94. 姚鹏 | | Reply

    振聋发聩,醍醐灌顶的好文~

  95. 徐鹏 | | Reply

    受教了,分析的很好

  96. 侯涛 | | Reply

    我觉得如果简历里直接贴上书单有些太显得装吧。。。况且现在还没成为风气,不过如果面试者问到的话可以谈谈

  97. muxueqz | | Reply

    获益非浅,同时发现很多朋友 ^_^ cc @袁源 @freestar

  98. jink | | Reply

    唉,很多东西,光靠看书是没用的,打个比方The Pragmatic Programmer这书,如果没有XXXXX行编码以及维护的经验,是体会不到书里强调的意义的。

  99. yanghui | | Reply

    即将毕业,代码写了不少,有些迷茫,看了博主的文章,心里有敞亮了不少

  100. 张永田 | | Reply

    有个疑问请教刘未鹏大牛,我近一年找过一些实习,在这过程中,我发现,几乎每次只要简历筛过,就都能通过终面拿Offer。但经过两份实习工作之后,我发现自己好像实际工作中的任务都完成得不太好,没法让头儿和我自己有信心说出“好”这个字儿。觉得自己参加笔试面试信心十足表现很好(跟打了鸡血似的),但工作中表现却一般(跟鸡血劲儿过去了似的)。您在招人的时候遇到过这样儿的吗?这里面有没有什么可能的逻辑在里面?多谢多谢!

  101. tachen | | Reply

    新一代农民学习!

  102. jocleyn007 | | Reply

    鹏老大,读了你的《暗时间》受益匪浅。但是不太明白你里面“编程素养”的意思。如果一个人想发展编程为他的专业领域技能(你书中提到的核心竞争力,哈),那么该如何培养“编程素养”呢?,就我目前的知识,理解的是从fundamental knowledge开始,注重该领域编程的“不变量”,掌握他的蓝图以及特点,然后加以时日的编程量训练。是这个意思吗?还请鹏老大指教!!不胜感激~~

  103. haitao | | Reply

    我一直主张 反向出题,即请应聘者给你出一个题目,然后详细解释:背景知识、考察点、为什么出这样题
    这样,既知道他的关注方面的广和深、判断能力。。。。

  104. Summerdream | | Reply

    虽然不从事IT方面的工作,但是您的文章也给正准备跳槽的我很多的启发。

  105. xgwang | | Reply

    看书多看涉及本质的书会更多的给人提升。本科学习体系结构,编译原理的时候,我觉得非常没用,觉得搞cpu,编译器的人才有必要学习。 现在则觉得这才是能让一个人脱胎换骨的知识。
    对于编码语言层次的内容,我觉得在线技术学习和读书同样重要,社区是推动语言发展的强大动力。
    至于github,我记得TIOBE的统计是c/c++语言位于前列,但是在github的活跃语言中却位居10位左右。这个区别,c/c++工程师懂的。。。

  106. 木毅子 | | Reply

    思维完善后 技术还会远吗

  107. 海晓 | | Reply

    这不叫面试,这叫”寻找人才”

  108. william_duan | | Reply

    如何在面试的时间里去了解一个人的技术水平,学习能力以及沟通能力是一件非常难的事情。我可以通过下面的一些方式去看应聘者的能力。
    1.通过谈话,看应聘者的沟通以及语言组织能力,是不是能够把问题理解到位并给出简洁明了的回答。
    2.通过工作之余的学习(看书,研究源码,自己做的项目)看应聘者的自我学习与提高能力,以及对于行业的热爱程度。
    3.看至今的工作履历,看应聘者与岗位的大致契合度,当然里面写的工作及技术相关内容一般只相信30%左右。
    4.应聘者的技术能力,现在还没有想到好的方法,苦恼中。。。。

    • 海晓 | |

      非常同意第二条,第四条我更关注他们有没有”开源”方面的经验,有时也会有效果.

  109. arwen | | Reply

    我不是IT专业的,偶然到这儿,看到跟我接触的,很不一样的世界。里面好多术语好多书我都没有读过,不过我赞同你,关于好书的解释和定义:好书抓住不变量。以前我说不上来,现在我晓得原来可以这么定义。谢谢哥哥告诉我好些很棒的方法,向你表示感谢。

  110. 麦时 | | Reply

    很好的文章,沉甸甸的积累。
    里面介绍的有些条都可以归结为:考察应聘者的“兴趣”。对什么感兴趣,自然会想去了解它。

  111. benbencat | | Reply

    C++ primier对初学者是精典,对大牛们,这个是小学课本,呵呵

  112. 周转箱模具 | | Reply

    通篇阅读您的文章,获得收益匪浅,以后会常来的!

  113. 90后PM | | Reply

    营养文章,看到了国内的一些滞后,不过这也正好提供了机遇,不知道是否有人在做中国版的github了,我觉得一定会有市场的

  114. 孟三军 | | Reply

    您好! 请问我能转载您的文章到我的博客吗?
    我是一只IT还没长成的小鸟,喜欢您的文章,能否转载并注明出处?谢谢啦~

  115. boydc | | Reply

    我想问一个问题,招聘一个人确实是困难,因为要在很短的时间内考量那么多的素质,同时,相对来讲,应聘也困难,要在很短的时间内展示那么多的素质,尤其的debug的能力真的很难展示。请问您有这方面的建议吗?

  116. boydc | | Reply

    APUE是经典,可能在平台上局限了,C++ Primer大而泛之,适合做参考书,所以可能没推荐这两本

  117. 冯鹤伊 | | Reply

    此文真是精彩,值得反复阅读几遍啊!

  118. pzz | | Reply

    以前看到暗时间这篇文章的时候,马上就被吸引住了,接着看了其他的几篇博文,感触非常大,博客的旁征博引,从中学到了很多东西,现在《暗时间》出书了,一定要看看!

  119. 脚脚 | | Reply

    智力分两种,一种流体智力,一种晶体智力。前者对应于思维的速度,解决问题的能力;后者对应于知识和经验的累积。窃以为,读书和项目都是好的增进后者的方法,但是不一定对前者有益。
    关于“读书的方法尽人皆知,就是一页一页读”不敢苟同。比读书更加重要的,我觉得是读书引发的思考,联系实际,知识迁移,以及进一步提出问题的能力以及强烈的求知欲。单纯的列出书单,然后把读书这件事情量化掉,我觉得是很危险的一件事情。今天教育界或者经济界出的很多事情,我想根源都是盲目追求速度。如果一个孩子为了进微软拼命看书,每天最大的乐趣是发现自己多读了多少页,读完之后搜寻一下网络上的书评,copy几个思考,然后心满意足的话,这真是悲哀。相信这也是破坏求知欲的一种途径。
    如何测量个人基础知识,性格和能力是心理测量学一直努力研究的话题。从来没有哪一种测验或者指标可以有包治百病的神奇效果。不同方法和指标有不同的优劣,一般还是像临床的诊断一样,采取的是综合判断。
    一味的努力寻找神奇指标,是不是本身也是“追求速度”,过于浮躁的征兆呢?

  120. 刘学政博客 | | Reply

    博主的文章好长哦,实在抱歉,没看完啊。

  121. Flash | | Reply

    面试对每个来说都是个挑战

  122. 爱情礼物 | | Reply

    楼主写得很好,指出了现在IT企业招聘难和IT小小鸟面试难的问题

  123. bird1015 | | Reply

    未鹏大哥列出的那10本书我看过5、6本,还有云风列出的也看了基本,而且都是这一年中看的,有几本待看的。感觉讲的很有道理,想去GitHub看看。正在回过头来整理这几本书的笔记,无赖这一年都快结束了。

  124. towertop | | Reply

    这是个定律。CPU不是性能瓶颈,IO才是。
    越来越相信,在社会化大生产的趋势下,人和软件一样,prensent一层变得越来越重要。

  125. hustlijian | | Reply

    每次重读,都有新的收获,让我这个本科生有了学习的大概方向和方式和动力,很感谢。现在准备把你所有的blogs阅读一遍。

  126. qin fan | | Reply

    经常看楼主的文章,感觉很不错!最近对自己的程序能力非常失望,希望楼主指点一二。现在大三。虽然大一学过c++但基本上不会,一直用的是java。老师让实现一个语言模型的简单公式获取得分,做了整整n天,没做出来。不是不理解,而是写不出了,可能是逻辑混乱?自己程序确实写的不多,但希望楼主有时间指点一下,如何来培养自己的那种能力?可能问的问题您以前的文章都讲过,因为不知道如何走下去。在此,先谢过!!!!!

  127. hpghy | | Reply

    这篇文章有意思,回头继续看

  128. 折翼 | | Reply

    很喜欢你博客的文章不知是否可以转载

  129. NGloom | | Reply

    过来膜拜大牛~~

  130. zhangjunjun | | Reply

    深表同感,不过现在很多时候不是我评判不准面试者水平高低,而是面试者根本达不到公司标准,许多基础都不过关。来公司正式上班发现某些人表现比面试差一些的也是有,但只要能融入公司文化,基本还是问题不大。即便在十分注重技术的公司,工作中涉及到日常事务处理、人际沟通的成分也不少,对纯技术的要求并没有那么高,也不需要看完那么多书。

    我的博客:www.pyfans.com

  131. sworing | | Reply

    我觉得像C++ Primer这样的书是参考型的,给人感觉很像是知识点的罗列。要看就看一些思维形成的过程的书,作者这个博客一直都是在传达这样的思想。

  132. 东东 | | Reply

    最近才在网上发现你博客,写的入木三分,非常好。有个问题想请教,在你的博文中有很多”相关链接“,我在想,平时你是怎么管理这些零散的链接(或知识)的呢。以至于你写文章的时候能想起他们,并链接之。这些链接很好,能极大的扩展读者获取的信息量。但同时我又很受这些链接的困扰。经常文章看到一半,又去看链接中的内容了。结果链接中又还有其他的链接。。。最后发现自己在剪牦牛毛了。那,应该怎么样对待这些链接。让我既可以集中精力在博文上(最初要做的事),又可以通过他们获取更多的知识(做这事带来的其他好处)。ps:从一篇文章的构思,下笔到成文,一般会花去你多少时间呢?

  133. mg12 | | Reply

    这个文章关于找人那段很有道理, 是需要主动出击, 也在尝试一些网站中挖掘适合的人.

    P. S. 这么多年了, 你终于换界面了. 不过我老觉得一样的便于阅读.

  134. 站长工具 | | Reply

    文章非常好,教育的普及,实际上已经抬高了人才的门槛,想从流水线式的人才生产线中找到合乎要求的,不是件容易事.

  135. 子猴 | | Reply

    粗略地看了一下,博主写得还是蛮好的,佩服一下!
    另外也顺便收藏一下博主的博客

  136. 小鱼 | | Reply

    昨天一群人还在tjlug的线下聚会上提到了您的这篇文章,讨论了半天,真心的一大片赞同声。对我们这种计算机新人来说,真的是指明了前进的方向。谢谢您~

  137. stonewang | | Reply

    唉,有点羡慕技术人员。我是想互联网产品工作的,平时看书很多,但都是杂书。互联网方面的书单不知哪里有权威可靠的?

  138. etcola | | Reply

    这篇文章直接说到我心坎上了。书单+Github可以让非科班出身的我直接自信起来。

  139. 小武哥 | | Reply

    最近在看刘兄的《暗时间》,才发现了这个博客,只感觉相见恨晚啊,很多类似的经历,感同身受!

  140. veryzhang | | Reply

    不知道是否是行业的区别,我想知道工作之后的程序员还有多少时间能去github提交代码呢?还是说这篇文章只是针对应届生的?

  141. 黄铂钧 | | Reply

    一看ZZ就不是开发部门的…

  142. 小葱葱 | | Reply

    好文章~
    一直觉得自己书读的太少了

  143. qiangrw | | Reply

    受教了,师兄!

  144. 曲天 | | Reply

    拜读了,个人博客和项目经历的确是衡量一个人兴趣和实际水平的指标。

  145. mmx_craft | | Reply

    读书也是分阶段的: 有的书是啥时候看都有启发, 就是如此, 没写过代码的,写过代码的都能受益匪浅. 也是如此啊,很多问题都是以前的书没写清楚啊. 上学的时候,有这些书就好了.

    算法书, 是拼思考能力, 写没写代码,有没有工作经验都有用. 可惜工作了之后,能静下心研究的时间不多啊.

    没有实际的经验,很多书读了也没用. 够经典吧, 没有实际用C++编码思考2年之前了,看了没啥感觉的. 好书经得起时间的考验啊. 大学生,没有项目经验, 这种书, 会背了估计也难得有感悟啊. 没有做过项目的学生,估计读了没啥感觉的, 我倒是觉得好入门一点, 看了感悟比人月神话多. 可能层次没到吧. 嘿嘿.

  146. 张超凡 | | Reply

    我爱死你了,之前的世界太小了。。。

  147. lihua | | Reply

    大二了,迷茫不知道学点什么,看了你的文章,有些启发!谢谢了!

  148. OpenERP_Jeff | | Reply

    我的新公司刚刚成立,招聘的第一个人就是开源社区里的哥们。我们一起在论坛里回答别人的问题,坚持做完一个开源项目。我在网上接单我们一起做收到的钱一起分,不断讨论开源的业务模式。

    确实用了两年,今天他正式给我回复会加入我的小公司,和我一起把想法实现。

    经历过的坎坷,回头看一定很美。

  149. 无锋之刃 | | Reply

    好书 => 综合信息源,全面/准确/翔实/权威/系统化,技术边界清晰;
    好书的索引 => 信息检索入口;
    Wikipedia => 信息/背景信息来源;
    Google => 可靠可信的信息检索工具;
    牛人博客/书单 => 随时可参考的同行评审工具;

    师傅 => 行业/项目/产品经验的主要来源;
    同事 => 查缺补漏的好助手;
    项目 => 实践之地;
    项目文档 => 系统构建思想/信息主要来源;

    优质纯文本界面编辑器 => 不会阻碍思维的信息整合工具;
    优质浏览器 => 不会阻碍思维的信息阅读工具。

    基本联想到这么多。

    欢迎大家稳步图灵社区讨论。

  150. james | | Reply

    页面好像少了一个回到顶部的功能哈。

  151. kuohuforever | | Reply

    很感谢你,分享你的思路很受启发,谢谢

  152. 九幽 | | Reply

    写得很好,不过建议排版上加强一下,呵呵。应届毕业生学习了!

  153. camelwoo | | Reply

    不错

  154. passerby | | Reply

    想起宋公说的:“大学就是要教在外面学不到的东西。”

  155. bingfeng | | Reply

    实际情况是,你就是把那些书全部读过也仅仅是个开始。必须有一个上规模的项目来实践你的知识才可以。看到的知识是别人的,实践的知识才是自己的。检阅对比下一下我自己读过的。

    精度:至少读过两次,有深入理解;
    简读:读过一次,了解其基本内荣;
    翻过:跳跃性翻过其中一半(含)以上的章节;
    未读:仅仅少量翻过或者从未碰过。

    刘未鹏:
    1.Code: The Hidden Language of Computer Hardware and Software (《编码的奥秘》) 精读
    2.Computer System: A Programmer’s Approach (《深入理解计算机系统》) / Windows via C/C++ (《Windows核心编程》 / 《程序员的自我修养》 全部精读
    3.Code Complete 2(《代码大全》)/ The Pragmatic Programmer (《程序员修炼之道》,我也把这本书称为《代码小全》) 两部全部简读
    4.Programming Pearls (《编程珠玑》) / Algorithms / Algorithm Design / 《编程之美》 第一本精读,第二本翻过
    5.The C Programming Language 精读
    6.The C++ Programming Language / Programming: Principles and Practice Using C++ / Accelerated C++ 都简读
    7.The Structure and Interpretation of Computer Programs (《计算机程序的构造和解释》) 精读,并实现一个LISP解释器
    8.Clean Code / Implementation Patterns 第一本未读,第二本翻过
    9.Design Patterns (《设计模式》) / Agile Software Development, Principles, Patterns, and Practices 第一本精读,第二本未读
    10.Refactoring (《重构》) 简读

    云风(中国游戏编程先行者,前网易游戏部门资深程序员,简悦创始人):

    1.C++编程思想 翻过
    2.Effective C++ 精读
    3.深度探索C++对象模型 简读
    4.C++语言的设计和演化 简读
    5.C专家编程 精读
    6.C陷阱与缺陷 简读
    7.C语言接口与实现 精读
    8.Lua程序设计 未读
    9.Linkers and Loaders 翻过
    10.COM本质论 翻过
    11.Windows核心编程 精读
    12.深入解析Windows操作系统 翻过
    13.程序员修炼之道 精读
    14.代码大全 简读
    15.UNIX编程艺术 简读
    16.设计模式 精读
    17.代码优化:有效使用内存 未读
    18.深入理解计算机系统 精读
    19.深入理解LINUX内核 未读
    20.TCP/IP 详解 翻过

    冯大辉(丁香园CTO,贝塔咖啡创始人):
    1.软件随想录 精读
    2.黑客与画家 精读
    3.重来 未读,好像没听说过。原始书名叫什么?
    4.UNIX编程艺术 简读
    5.编程人生 精读

    洪强宁(豆瓣技术总监):

    StackOverflow上有一个程序员必读书单帖子,这里仅列出top10,更多参考这里。
    1.Code Complete 2 简读
    2.The Mythical Man-Month (《人月神话》) 精读
    3.Code: The Hidden Language of Computer Hardware and Software (《编码的奥秘》) 精读
    4.TAOCP (不解释) 未读
    5.The Pragmatic Programmer (《程序员修炼之道》) 简读
    6.Design Patterns (《设计模式》) 精读
    7.The Structure and Interpretation of Computer Programs (《计算机程序的构造和解释》) 精读
    8.Refactoring (《重构》) 简读
    9.The C Programming Language 精读
    10.Introduction to Algorithms (《算法导论》) 翻过

    张峥(微软亚洲研究院副院长):
    1.Algorithms (by Sanjoy Dasgupta, Christos Papadimitriou and Umesh Vazirani) 未读
    2.Data Structure and Algorithms 翻过
    3.The C Programming Language 精读
    4.The Design of the UNIX Operating System 未读
    5.Compilers (龙书) 翻过
    6.Computer Architecture: A Quantitative Approach 未读,计划中。
    7.Flow 未读(没听说过,汗)
    8.Outliers (why hard work and luck are both important) 未读(没听说过,汗)

    对比了一下,除了张峥列出的大部分没读过之外,其余诸位列出的基本都有涉及。可以看出明显的工业界背景以及对技术史的兴趣。很遗憾没有人提到《新机器的灵魂》,《观止》,《设计原本》等很有意义的书。

  156. escray | | Reply

    我打算按照这个“方式”,书单+GitHub,花两年的时间来试一下

    • 暴跳 | |

      一起试试

  157. JK_Rush | | Reply

    楼主分析得很正确,而且说出了问题的所在。

  158. kevenqu | | Reply

    “三天不硬、至少六层”是蒲黄榆地铁站西侧那条胡同里的吧?

  159. choubb | | Reply

    现在在国内发生的事情,往往是美国那头的历史–总结的好。

    条条大路通罗马, github可能是其中一条, 书单也可能是一条。但是如果没有目标和激情,都等于零。教主说过:追随我心, 心, 才是你的未来。

  160. 库奇的拳头 | | Reply

    居然没有APUE、C++ primer???

    • hpghy | |

      我也有点郁闷,我看完了APUE,UNP第二卷,正在看UNP第一卷,看到那些书单,有点低落呀

  161. fengxiaohao520 | | Reply

    麻烦您贴出:之前写的关于如何阅读和查找/鉴别书籍/资料的博文 。

    我找不到啊。

    • Zblc | |

      建议你把刘的所有文章看完,嗯嗯 每篇基本都很富有营养

  162. JK_Rush | | Reply

    楼主写得很好,指出了现在IT企业招聘难和IT小小鸟面试难的问题,不过给楼主一个建议感觉文章版面比较紧凑。

  163. Donald | | Reply

    读了文章,非常的有启发,但是真正喜欢写技术博客的人还是比较少的。之前的一篇文章讲过写博客对于知识的认识会加深,的确如此,要开始写自己的博客了。另外:非常推荐《人月神话》。

  164. 米米可 | | Reply

    不知道找这样的工作有什么dress code么, 都要formal dress么?

  165. Elaine Ling | | Reply

    对于加拿大 移民 工作本来就够难找了,要是大公司都用两年来面试,我的天……呵呵呵

  166. 浩宇啸天 | | Reply

    除了风云老师,其他人给出的更多的是思想方面的书籍,能不能多提供一些实际技术类的书籍,有没有偏向Java,Python方面的汇总,github确实很强大,我推荐一个,由哈尔滨工业大学孙老师领导的“乐学网”的开发,使用PHP语言

    • Zblc | |

      @浩宇啸天
      思维完善后 技术还会远吗 嗯嗯

  167. Aaron | | Reply

    1.在GitHub之前,公司面试人还有种方法就是提交code sample。有的是选好一个时间,发给你题目让你在一个固定的时间里写好;有的是接受过去实习或者自己side projects的代码。至于公司如何评价这些代码,就不得而知了,因为这也只是我遇到过的面试题。
    2.书单的话,这些技术书籍很重要,但是也只是解决一些技术能力的问题。还有一些学习方法,心理学等等的书也很重要,读过一些的,应该会比光读技术书籍更重要,可以考虑列个这类的书单。豆瓣上您有个list,可以考虑精简下列出最重要的。

  168. 杜舒 | | Reply

    一直关注刘师兄的博客,第一次接触师兄博客是看的《数学之美番外篇:平凡而又神奇的贝叶斯方法》后来就一直关注了,这次文章又很受启发。我自己也有点小感触,大学本科生可能没有时间看师兄说的那么多书,但很赞同师兄多布置作业的看法,看一本书(特别是好的教材 如computer network(a top -down approach) introduction to algorithm,etc)得时候都因该多了解自己感兴趣的发面,多扩展,多思考,多实践,看看相关论文,而不是却做大量的课后题。因为我在一个师兄的带领下载做搜索引擎的小项目,但是我就感觉其实当初学习的数学的时候很多都能用上,这让我我感到沉下心很重要,好像本科生中好多同学都是android红得时候就学几天android,看到php很流行就学一点php,最后都没学精。最近因为做项目需要数据挖掘知识,刚好看到师兄微博上推荐了《data mining concept and technology》。我想请教的师兄的一个问题,现在我大三面临考研的问题啦,我是真的很想去研究一下自己喜欢的方向(数据挖掘相关)但是我感觉花上一年去考研真的有点不值,不知道有没有公司能提供比较好类似于学校的环境(当然知道微软研究院啊,但是这个难度很大,特别对于我们小本来说而且还不是特牛的学校)?

  169. 饭非饭 | | Reply

    我不是程序员,一直喜欢你的博客的文章,每次长久等待后的更新都给我带来很多的东西。谢谢!我也要用在我所从事的行业中去!

  170. 唐唐 | | Reply

    在中国github和书对面试者意义不大。你在微软,周围都是牛人,他们中有几个玩github?又有几个人读了你说的那些书?他们自己都不吊这些东西,又怎么会拿这些东西考察别人?
    在大公司,尤其是微软这样聚集着很多牛人的地方,想进去,说到底拼的就是智商。聪明人永远喜欢聪明人,geek也永远只找geek。原因很简单:人就喜欢和自己像的人,和自己说一种俚语的人混在一起。
    为了进大公司玩github,玩acm,玩topcoder,玩blog,玩一切”伪老师们”推荐的好玩意,都是智商低的表现,来微软面试,照样被拍得死死的。虽然表面理由五花八门,但根本理由就一个,揣在面试官的心底:你丫不够聪明!

    • Jimmy MA | |

      准确地说是"解决问题的能力",不是智商。玻利亚的<如何解题>会教大家如何不依靠智商解决难题。

    • fengxiaohao520 | |

      看来大哥你在微软混的时间不短喽?

      还是纯粹主观YY的?

      还好自己智商不算太低,可能不会感到自卑。

  171. Imcoddy | | Reply

    今天早上起床时就看到的这篇文章,写得非常到位,其中有些观点比我前阵子的所思所想更深刻,是以读完后受益匪浅:)

    关于读书,多说一句,人生只有900个月,根据自己的发展方向,静心读读那些经典著作是非常有必要的。只是不因为了读书而囫囵吞枣,计算机科学更多还是需要自己实践。与诸位共勉。

  172. spark | | Reply

    看得出来,写这篇文章费了很多心思。Cool。
    但有个问题,如果不想做单纯的Coding,想做产品方面的,怎么办?
    目前觉得是,最好是能拿出一个成功的产品出来,不管是什么,即使和互联网无关。
    或者,一段真正经历过、而且懂得失败之处的能够经得住各种提问的经历。

  173. LiuPei | | Reply

    《深入理解计算机系统》的英文名是 Computer Systems: A Programmer’s Perspective , csapp.cs.cmu.edu

  174. 袁源 | | Reply

    看完了,是翻译的文章还是原创的?
    又没列出前端开发的书。

  175. 靖难 | | Reply

    发现买了很多书,大多书单里面的都有.只是,有些当成字典一样在查,有些几乎没有通读完,大多数都摆在那里。哎,是没时间码?还是自己时间管理和只是管理的问题?

    • Yan Haiming | |

      我也遇到同样的问题,发现要忙实验室的项目,没多少时间看书。。。

    • Patrick He | |

      有的书要精读,有的书要泛读,本本都精读,一生能读几本书?

  176. 杜红光 | | Reply

    多谢pongba对于我知乎上问题的回答。弄清雇主的需求到底是什么,确实是非常重要的一件是,对于公司来说这是招聘时希望应聘者能够明白的需求,对于个人来说,我觉得还要加上一点:弄清自己的需求到底是什么。

  177. freetstar | | Reply

    细细看完了,大神总结的很好很全,前瞻性也很强,书是一个人的学习,github是一个人的实践:)

  178. 御宅暴君 | | Reply

    谢谢你,刘末鹏。

  179. 海洋 | | Reply

    讲的非常好,虽然我没有面试过别人,但被面试过。我觉得这篇文章不但适合面试官,也适合求职者。
    赞同:书单+GitHub,就相当于一个两年左右的面试。
    不过我并没有用过GitHub,但在我求职时,书单起了很明显的作用。

  180. ejacky | | Reply

    应聘了一次,没被选上。现在自己在接单子。记得当时根据简历问了些基本知识点,python,css,javascript方面的。最后说是没有实际的作品,所以没录。 列的书单,很多都看过,觉得去看是一方面,怎么看又是一方面。 很多情况是看完之后跟没看差不多;或者是看完也能理解,但实际应用还是用不上。想弄github上的项目,英语首先要过关才行吧

  181. zhiyuan | | Reply

    若,可以从无基础开始学习编程/语言/“`因为不了解,所以不清楚具体目标。仅仅想学习一门计算机语言或编程技术,1.要如何开始2.又如何制定方向。我的意思是利用课外时间,跟我目前的工作毫无关系(目前从事跟计算机没什么关系的产品策划工作)。

  182. Alex | | Reply

    作为一个刚经历招聘的本科生,深表同感.
    非常喜欢博主的文章,个个精品

  183. atusoft | | Reply

    其实stackoverflow也可以成为一个度量标准了

  184. Nate | | Reply

    鹏哥终于更新了!!!

  185. fffddgx | | Reply

    关注你很久了。怎么这几位大牛包括你对于语言方面都推荐的C/C++?java呢?大牛都不用java么?

    • 苏青痕 | |

      个人认为,“触类旁通”不是盖的。好书讲的是根本原则,语言只是工具。不必纠缠于使用哪种语言这类细节。

    • fffddgx | |

      呵呵,只是感觉学java的人越来越浮躁。

  186. 胡阳 | | Reply

    十分感谢,很受教。

  187. ftd | | Reply

    粗略的看了一下就觉得受益匪浅,这篇文章能让人少走不少弯路

  188. 陈丹丹 | | Reply

    等到更新了,先留脚印!!

  189. Matrix Le | | Reply

    突然发现这些书大部分我的书架上都有,只是看过的不到1/4

  190. isnowfy | | Reply

    有些大公司面试官感觉很应付公事,只在面试的时候草草的扫一眼简历,blog,github神马的都没看,回答稍有不慎直接打死

  191. wong2 | | Reply

    不好意思,先抢个沙发。。

  192. Matrix Le | | Reply

    突然发现这些书都躺在我的书架上,只是看过的不超过1/4

  193. 大拿猪 | | Reply

    老大一篇文信息量好大。。。

  194. gelosie | | Reply

    阅读刘的文章,总有收获和感悟。

    这个时代获取知识相对过去太容易了。
    就看个人的努力,有没有去做得更好。

  195. hewig | | Reply

    pongba看来是有感而发,书单计划和github计划相当不错的建议

  196. Ty1921 | | Reply

    需求分析和执行出了问题,大到国,小到家,貌似都是这样。

    看PONGDA的本意,是想主动沟通,同时给对方正面的引导,可能效果也只是对那些本着解决问题态度的人有效,也善莫大焉,很多是自己没看过的,拱手 ^_^

    看大大们推荐的书单,突然想起《劝学》的一段话:登高而招,臂非加长也,而见者远;顺风而呼,声非加疾也,而闻者彰。

    最后发现好像没提到《计算机编程艺术》,推荐下了。

  197. fangzhzh | | Reply

    以前我是很迷信读很多牛书这件事情的。

    楼主列出了必读我读过6、7本的样子,stackoverflow 那个我也是7本。但是在写代码时还是会逻辑混乱,设计时有时还是会无所适从。

    楼主没有说的一件事情,那就是读书的方法,如何读书,读多少,掌握了多少内容算是读过此书。

    而且上边的书,很多讲的都是一个事情。比如effective c++讲了很多准则,这些准则背后的原理在深入c++对象模型这本书中就可以找得到。所以这两本书做为互相印证,如果读透了一本,另一本就会很快。

    所以,读书,读很多的书,只是手段,而不是目的;读书,然后实践,然后书中的知识成为自己的一部分,我觉得这个才是读书的真正目的。

    读书的知识是知,写代码是行,那么知行合一才是目的。

  198. Longinus | | Reply

    通篇读完,再通篇读完,受益匪浅。记得在很多年前刘未鹏老师博客搬出CSDN之后貌似就很少写文章了,不过每写一篇都相当有重量级啊。记得在那时读刘老师的文章《歌德尔,康托尔,图灵-永恒的黄金对角线》,对于当时还什么都不懂,不算接受过高等教育的我感到一盆凉水当面泼来,看到我所在的世界太狭隘了。

    似乎之后刘老师读研去了吧?现在工作之后写出的文章就像更“工程”,很“实际”的味道,也让我感觉到一种不可言表的力量。不得不说这些年我的底子差的状况依然改变的很少,尤其是英文底子差。上面提到的一些书也看过,不过更多的是潦草的看了,几乎都没有深入研究⋯⋯有些书比如《设计模式》,不知道是不是因为我没接触过大工程和团队协作,总觉得其中的概念都太抽象和模糊,不明白这样的代码到底是为了提高效率还是可读性,觉得可有可无。

    无论如何还是我的眼界太窄了吧,谢谢您的文章。

    • lbaby | |

      事实上,设计模式是个坏榜样,编程人生里的几个家伙们都对它有些不屑,我也认为,那不是什么好的玩意儿.

  199. blankboy | | Reply

    看完后长舒了一口气,对问题直指要害的感觉真好。
    相对原来的博文,这篇的大方向和实践性都要好。甚好,甚好。

  200. | | Reply

    乎不是最重要的指标,此其一。其二老师本身大多数没有丰富的业界经验,根本不知道企业整整需要

    整整需要–>真正

  201. Ralph Zhang | | Reply

    面试对于很多企业来讲,其实是很有风险的一件事,因为短短的时间要决定一个人,尤其是在人力成本开始提高的年代,的确有点像在非诚勿扰上面订终身一样不靠谱。

    鹏老大讲的面试经验我都很赞同,但是有一样无关技术,而实际上可能是面试者内心最看重的,那就是一个无法量化的“感觉”,或者说气场吧。我个人的经验是,大概50%左右的砝码,在面试的第一分钟就决定了。一个热爱技术的人,其实是会散发出热爱技术的气场的,在谈到Ta感兴趣的问题的时候,眼睛是会发光的。诸如此类的特征可能在面试者自己都没觉察的情况下,加重被面试者的砝码。

    • 刘未鹏 | |

      张兄所言甚是:) 对技术的热爱是一切的动力。

  202. GLORY | | Reply

    写的太精彩。

    本科的同学求职的时候,看到太多的人每天只是花时间看所谓流露出来的笔试面试题目,太多的人只是热衷于各种求职论坛的讨论,热衷于羡慕有多少牛人拿了多少offer。

    我最近一直在思考我怎么做才能在求职的时候更加从容,后来也是得出两个结论,一是定下来基本经典的书,花时间研读;第二是思考并且动手实现至少两个non trival的项目。

  203. | | Reply

    诚然,也许没有哪个行业像IT行业这样,无形资产占据公司的绝大多数资产。拒坊间传言比尔·盖茨

    拒坊间– >据

    不因一题打错而就扼杀机会,还要以管窥豹,从一朵花看到整个世界,从面试人的举止言谈,分析问

    打错–>答

  204. | | Reply

    第一个来,哈哈~
    过段日子就不能上网了,要是能打包所有的博客文章发给我就好了……

  205. AlbertNi | | Reply

    醍醐灌顶,振聋发聩
    我也要从今天开始构造我的简历了

  206. kw | | Reply

    奋斗方向更加明确!
    多谢!

  207. 万俟尘 | | Reply

    学习了,虽然没有找工作,但是自己有志于从事互联网方面的工作,此文说出了很多我思考过的东西。当然感谢提供的思考方式与一些优质资源,这对一个求知若渴的人来说是一份很大的恩惠。
    一直很注意网络化的社交化的Geek际关系,就拿很简单的Twitter上Fo人来说,决定我是否Fo人的因素在于他的博客/他与我的共同好友/他的GR分享(现在看起来有点麻烦T^T)/他最近的TL等。当然,要想认真招人的确是需要很大的付出,但是一家优秀的公司应该去认同这种值得。

    • leemoispace | |

      已经好几次无意中在各种地方见到你了,嘿嘿

Leave a Reply to 邱睿 Cancel reply

Your email address will not be published. Required fields are marked *