熊出没李老板是好人的朋友是个无用的好人,该不该开除他,看硅谷公司

&&&&28岁赚千万(致所有想发财的80后,正在抢饭碗的90后,如果想改变...
自营订单满49元(含)免运费
不足金额订单收取运费5元起
邀请好友参加吧
版 次:1页 数:字 数:印刷时间:日开 本:16开纸 张:胶版纸包 装:平装是否套装:否国际标准书号ISBN:1所属分类:&&&
下载免费当当读书APP
下载当当读书APP,免费阅读万本电子书。
本商品暂无详情。
当当价:为商品的销售价,具体的成交价可能因会员使用优惠券、积分等发生变化,最终以订单结算页价格为准。
划线价:划线价格可能是图书封底定价、商品吊牌价、品牌专柜价或由品牌供应商提供的正品零售价(如厂商指导价、建议零售价等)或该商品曾经展示过的销售价等,由于地区、时间的差异化和市场行情波动,商品吊牌价、品牌专柜价等可能会与您购物时展示的不一致,该价格仅供您参考。
折扣:折扣指在划线价(图书定价、商品吊牌价、品牌专柜价、厂商指导价等)某一价格基础上计算出的优惠比例或优惠金额。如有疑问,您可在购买前联系客服咨询。
异常问题:如您发现活动商品销售价或促销信息有异常,请立即联系我们补正,以便您能顺利购物。
当当购物客户端手机端1元秒
当当读书客户端万本电子书免费读当前位置: >>
一些有用的文章
暗时间 如果你有一台计算机,你装了一个系统之后就整天把它搁置在那里,你觉得这台计算机 被实际使用了吗?没有。因为 CPU 整天运行的就是空闲进程。运行空闲进程也是一天,运行 大数据量计算的程序也是一天,对于 CPU 来说同样的一天,价值却是完全不一样的。 大脑也是如此。 善于利用思维时间的人,可以无形中比别人多出很多时间,从而实际意义上能比别人多活很 多年。我们经常听说“心理年龄”这个词,思考得多的人,往往心理年龄更大。有人用 10 年才能领悟一个道理,因为他们是被动领悟――只有在现实撞到他脸上的时候才感到疼,疼 完了之后还是不记得时时提醒自己,结果很快时过境迁抛之脑后,等到第二次遇到同一个坑 的时候早忘了曾经跌过跟头了,像这样的效率,除非天天摔坑里,否则遗忘的效率总是大过 吃亏长的记性。善于利用思维时间的人则能够在重要的事情上时时主动提醒自己,将临时的 记忆变成硬编码的行为习惯。 每个人的手表都走得一样快,但每个人的生命却不是。衡量一个人生活了多少年,应该用思 维时间来计算。举一个极端的例子,如果一个人从生下来开始就呆在一个为他特殊建造的无 菌保护室里,没有社会交往,没有知识获取,度过了 18 年,你会不会认为他成年了? 认为时间对每个人是均等的是一个错觉,认为别人有一天,我也有一天,其实根本不是这样。 如果你正在学习一门专业,你使用自己所投入的天数来衡量,很容易会产生一种错觉,认为 投入了不少时间,然而其实, “投入时间”这个说法本身就是荒唐的,实际投入的是时间和效 率的乘积。你可以“投入”很多时间在一件事情上面,却发现毫无进展,因为你没有整天把 你要做的事情,要学习的东西常驻在你的大脑中,时刻给予它最高的优先级。你走路的时候 吃饭的时候,做梦的时候心心念念想的就是这件事情,你的 CPU 总是分配给它,这个时候你 的思维时间就被利用到了极致,你投入的时间就真正等于了实际流逝的时间,因为你的 CPU 是满载的。 如果你有做总结的习惯,你在度过一段时间之后总结自己在某某领域投入了多少时间,建议 千万不要粗略地去计算有多少天下班后拿起书来翻看过, 因为这样你也许会发现书倒是常翻, 但领悟却不见得多深,表面上花的时间不少,收益却不见得那么大。因为看书并记住书中的 东西只是记忆,并没有涉及推理,只有靠推理才能深入理解一个事物,看到别人看不到的地 方,这部分推理的过程就是你的思维时间,也是人一生中占据一个显著比例的“暗时间” ,你 走路、买菜、洗脸洗手、坐公车、逛街、出游、吃饭、睡觉,所有这些时间都可以成为“暗 时间” ,你可以充分利用这些时间进行思考,反刍和消化平时看和读的东西,让你的认识能够 脱离照本宣科的层面。这段时间看起来微不足道,但日积月累将会产生庞大的效应。 能够充分利用暗时间的人将无形中多出一大块生命,你也许会发现这样的人似乎玩得不比你 少,看得不比你多,但不知怎么的就是比你走得更远。比如我就经常发现一些国外的牛人们 为什么不仅学习牛逼,连“业余”玩儿的东东也都搞得特牛逼,一点都不业余(上次在《How We Decide》上看到斯坦福的一个牛人,理论物理学博士,同时是世界扑克大赛的前六名保持 者,迄今累计奖金拿了六百多万刀) ,你会奇怪,这些家伙到底哪来的时间,居然可以在不止 一个领域做到卓越? 程序员们都知道,任务切换需要耗费许多额外的花销,通俗地来讲,首先需要保存当前上下 文以便下次能够顺利切换回来,然后要加载目标任务的上下文。如果一个系统不停地在多个 任务之间来回倒腾,就会耗费大量的时间在上下文切换上,无形中浪费很多的时间。 相比之下,如果只做一件任务,就不会有此损失。这就是为什么专注的人比不专注的人时间 利用效率高得多的原因。任务切换的暗时间看似非常不明显,甚至很多人认为“多任务”是 件很好的事情(有时候的确是) ,但日积月累起来就会发现,消耗在切换上的时间越来越多。 另外,大脑开始一件任务的时候必须要有一定时间来“热身” ,这个时间因人而异,并且可以 通过练习来改变。举个例子,你看了一会书之后,忽然感到一阵无聊,忍不住打开浏览器, 十分钟后你想起来还要继续看书,但要回复到当时理想的状态,却需要一段时间来努力去集 中精力,把记忆中相关的知识全都激活起来,从而才能进入“状态” ,因为你上了十分钟网之 后这些记忆已经被抑制了。如果这个“热身”状态需要一刻钟,那么看似十分钟的上网闲逛 其实就花费了二十五分钟。 如果阅读的例子还不够生动,对于程序员来说其实有更好的例子:你写程序写得正 high,忽 然被叫去开了一通会,写到一半的代码搁在那儿。等你开完会回来你需要多久能够重新进入 状态?又或者,你正在调试程序,你已经花了二十分钟的时间把与这个 bug 可能相关的代码 前前后后都理解了一遍,心中构建了一个大致的地图,就在这时,呃,你又被叫去开了个会 (:D),开完会回来,可想而知,得花上一些时间来回想一下刚刚弄清的东西了。 迅速进入状态的能力是可以锻炼的,根据我个人的经验,至少可以缩短到 3-5 分钟。但要想 完全进入状态,却是很难在这么短的时间实现的。所谓完全进入状态,举个例子:你看了 3 个小时的书,或者调试了半个小时的程序之后,往往满脑子都是相关的东西,所有这些知识 都处在活跃状态,换言之你大脑中所有相关的记忆神经网络都被激活了,要达到这样一种忘 记时间流逝的“沉浸”状态(心理学上叫做“流体验”,不是三两分钟的事情。而一旦这种 ) 状态被破坏,无形间效率就会大打折扣。这也是为什么我总是倾向于创造大块的时间来阅读 重要的东西,因为这样有利于“沉浸”进去,使得新知识可以和大脑中与其相关的各种既有 的知识充分融合,关联起来,后者对于深刻的记忆非常有帮助。 要充分利用暗时间,不仅要能够迅速进入状态,另一个很重要的习惯就是能够保持状态多久 (思维体力)《The Psychology of Invention in the Mathematical Field》上有一段关于 。 庞加莱的思考习惯的介绍,很有代表性。庞加莱经常在去海边休假或者在路上走的时候在脑 海中思索数学问题,很多时候解答就在这些时候忽然闪现。虽然我和庞加莱是没法比的,但 是常常也在路上想出答案,这真是一种愉悦的体验。 能够迅速进入专注状态,以及能够长期保持专注状态,是高效学习的两个最重要习惯。 很多人都有这样的体验(包括我自己) ,工作了之后,要处理的事情一下多出了很多,不像在 校园,环境简单,生活单纯,能够心无旁骛地做一件事情而不被打扰。工作之后的状况就是, 首先需要处理的事情变多,导致时不时需要在多个任务之间切换;另一方面,即便能够把任 务的优先级分配得比较合理,也难免在做一件事情的时候心中忽然想起另一件事还没做的焦 虑来, 因为没做完的事情会在大脑中留下一个 “隐藏的进程” 时不时地发个消息提醒你一下, , 中断你正在做的事情。 因此这里就涉及到最后一个高效的习惯:抗干扰。只有具备超强的抗干扰能力,才能有效地 利用起前面提到的种种暗时间。抗干扰能力也是可以练习出来的,上本科那会经常坐车,所 以我就常常拿着本大部头在车上看,坐着看或者站着看都可,事实证明在有干扰的环境中看 书是非常锻炼专注能力的一个办法:D 另外, 经常利用各种碎片时间阅读和思考, 对迅速集中 注意力和保持注意力都非常有帮助。记得很久以前 TopLanguage 上大伙曾经有次饶有兴趣地 讨论“马桶时间”的利用,包括在卫生间放个小书柜。 (估计很多同学心有戚戚焉吧:D)刘帅曾经多少次跌倒在路上 曾经多少次折断过翅膀 如今我已不再感到彷徨 我想超越这平凡的生活 ――汪峰《怒放的生命》 引子:失望中有希望么 我是为数不多的本科毕业工作三年后再读研究生的人。上本科以来的十年,却大部分是 在茫然中度过的。我迷迷糊糊,跌跌撞撞。痛苦中有奋斗,挣扎中有快乐。 高中的理想如此简单:上清华,考北大 我的高中绝对是在盲目自负中浓墨重彩地走过的,因为自己的勤奋和对数理化的热爱, 班级第一名的头衔时刻挂在自己身上,结果除了清华北大之外,对任何学校都不怎么关心, 再加上学校对于学生除了考出好成绩之外什么都不关心的教学方式,使得自己对于大学、专 业、前途等一切的一切都处于超级茫然状态,仿佛自己的一生只是为了去清华北大读书,仅 此而已。多么可笑的理想与人生目标,但也正是这样的目标促使自己在高中阶段不断努力、 永不放弃。然而,我一个初中同学的成绩一直排在我前面,我没有任何办法超越他,因此, 高考估完分数后,知道清华已经没有希望,于是就不知道自己的下一个目标是哪里了。 那时,对其他学校认知的匮乏让自己无助起来,最后的抉择,是希望选择一个好的专业, 于是比较热门的计算机科学与技术和通信工程专业成了自己的首选。 计算机这种奇妙的东西, 相信没有哪个学理工科的男孩子不热爱吧,于是我就选择了计算机作为自己的专业。根据专 业来选择学校,按道理说也算是一种策略吧,但我了解的学校资源实在太少,再加上自己当 时是个不愿意与任何人交流的人,于是最终,听从了亲戚的安排,去了西安电子科技大学, 一所电子类的相当专而小的学校。 我的母校――西安电子科技大学,被国外教授礼节性地夸赞为“中国的 MIT” ,但显然, 我们都清楚,这种赞誉实在是过了。现在想想,本科时候的自己是多么的不合群,多么的 2。 当时自己的价值观念是读书为要,一切让道,完全套用自己的高中思维来应对大学生活,最 终到处碰壁。 清晰记得几个经典段子 军训时,宿舍其他同学闲暇时听的歌曲以流行、摇滚为主,当时,著名的爱华(后来被 SONY 收购)和 SONY 的超薄 Walkman 还是一种奢侈品。罗大佑、唐朝乐队等的音乐在宿舍里 面回荡,而我当时出校一次,带回了一盘《歌唱祖国》的磁带,回来后遭到了几乎所有人的 唏嘘,此时自己才发现,原来我和别人的差异是如此的大。但当初哪里会认为是自己的问题 啊,一如既往地认为所有人都很 2,坚持着自己的风格,一如既往地跟大家不太合。 还清晰地记得, 当时军训结束, 几乎所有人都脱掉军装穿上带有自己个性的衣服去开学 院的一次全体会议,唯有我一个人穿着军装进去,结果被所有人视为异类――而且我不仅穿 着军装进去,还挂着肩上的领花横杠,一切的一切都印证着一个农村来的孩子,接受着最最 红色的正统教育,他的入校阶段的生活会是多么的尴尬! 本科四年 定调:迷迷糊糊、庸庸碌碌地拿着奖学金 我是科班――却没学懂计算机 我是传统意义上的计算机科班出身,学过数据结构、编译原理、操作系统、汇编语言、 计算机原理、计算机系统结构、离散数学、概率论、计算机网络、数据库、单片机、算法设 计、数理统计、高级语言程序设计、面向对象程序设计,从 DOS 的 Tubro Pascal 时代学起, 一直学到 VC6。然而,我却并没有学懂计算机。 本科时,自己的考试成绩一直排在前面,但几乎所有的时间和精力都花在了犯迷糊、做 作业和游戏上。本科阶段是我们精力最最充沛、时间最最富裕、最最容易跟其他人拉开距离 的阶段,如何处理这段生活,将会造成最后的千差万别,遗憾的是,当时却没有人告诉我这 一点。我像高中阶段一样,只学习那一点点可怜的上课讲的知识,几乎不看教材、不怎么看 课外资料,课后的作业基本是独立完成,却从来不是主动地思考、从各个可能的角度出发寻 找到解决问题的方法,而是沿着老师讲过的固定的模式,或者寻找类似的解答方法,然后稍 微变换,从而完成解答。我总是认真听老师讲课,每次上课从来不预习,从来不会计划这学 期我要干什么、这堂课我要干什么,我机械地听着每一节课,机械地在迷糊中重复着作业、 考试,我几乎每一个学期都会拿到奖学金,可那又怎么样呢? 拿数据结构这门课程为例,严蔚敏老师的经典教材相信几乎学过计算机的人都是耳熟能 详的,这本书上的算法和数据结构短小精悍。我们的授课老师,却只讲最简单的概念和不深 的理论描述,给我的感觉就是, “数据结构”几乎是门和“离散数学”差不多的数学课――他 用最肤浅的知识, “成功地”告诉了我们“数据结构”是门几乎不用动手写程序的课程,只用 上课听听就好了。于是乎,一门需要动手实践、将会极大地提高我们编程素养和思维能力的 课程,就被我们这样迷迷糊糊上完了。 震撼:在清华听朱仲涛老师的“数据结构”课 2005 年准备研究生考试的时候,我旁听了朱仲涛老师的“数据结构”课,当时的感觉只 能用两个字来形容:震撼。在他的课上,我对数据结构有了全新的认识,对计算机也有了一 点与以往不同的了解。 他的讲课风格非常独特,他只用 1/5 的时间简述一下要讲的内容,剩下的时间都是当场 写程序。著名的约瑟夫环、Dijkstra 算法、Prime 算法、快速排序、堆排序、锦标赛排序、 Tarjin 强连通分量、Convex Hull 等深的浅的,教材上有的没有的,全部在课堂上从 0 开始 实现:每遇到一个算法,一边写程序,一边讲解,不懂就将程序的运行结构拿出来分析,并 不时地穿插离散数学、概率论、内存管理、C 语言、汇编语言等知识,几乎将我们学到的东 西非常恰到好处地拿出来,让我们从心里面觉得原来所有的知识是连贯的,我们之前的积累 都是有用的,并且富有成就感。 我清晰地记得他在工业工程系课堂上讲“栈”的时候,用计算几何中的 Convex Hull(计 算几何中求凸包的算法, 由美国 ACM 大牛 Graham 发明, 该算法通过 nlogn 复杂度求出平面中 一堆点的最外层包围矩形边界)来显示栈的使用。这个算法在 A4 纸上写说明最少也要两页, 加上里面具体的技术,个人觉得可以给 3 个小时的时间来考查一个训练有素的程序员是否合 格。而朱老师在 1.5 小时的时间里,一边讲,一边写,用最优雅的方式,完整地实现了这个 算法,写完程序,一个编译错误也没有,成功运行,随机的点,优雅的边界,当时全班鼓掌 两分钟。他说: “我很自信,即使是最顶级的程序员,也不能将我的代码优化多少了。 ” 他的课让我明白: “数据结构” ,以及一切计算的课程里面,凡是自己不理解的东西,自 己说不清道不明的东西,其实有很多人是理解的。我的老师没有给我必要的关键性指导,但, 不可否认有一些同学,他们总是先知先觉,他们总是会问“为什么这门课程要这么上” ,他们 总是会思考自己是不是走在正确的路上,于是他们大量丰富自己的实践,从而也优雅地完成 了本科学业。但遗憾的是,我和大部分我的同学们,就这样,因为缺乏必要的指导,迷迷糊 糊、庸庸碌碌地过完了本科。 现在回想过去,才发现自己当时多么无知、多么机械。其实,不懂的时候,不管任何时 候,你都可以去问老师、同学,从而节省大量的时间和精力。我们必须在年轻的时候有意地 培养自己独立思考的能力,经常想一想,我要的是什么、为什么要做这件事、做这件事有什 么好方法、这样做有什么好处和坏处、如何改进等,也要与人交流、沟通,讲出自己的想法, 请别人指正。我们需要培养的是自己的思考方式,而不是简单地获取知识。 计算机专业需要大量时间,需要付出大量精力,也需要极大的耐心。但大部分像我一样 的 80 后都做不到。而做到的,现在几乎没有例外地都找到了很好的工作。 公司不重视技术――与我的兴趣冲突 本科毕业后我就参加了工作,一干就是三年。 我工作的地方是个典型的国有企业转制后的股份制公司,计算机公司,以系统集成和网 络为主,软件是副业。我的项目经理和部门经理对我很好,现在我依然感谢他们。只是,我 实在无法接受这样的工作状况:待遇一般,沟通匮乏,无视积累,没有传承,频繁的软件部 门高层更换预示着软件的步履维艰。也许,我们把软件业务全部外包会更好,但是那么多为 公司辛勤工作的员工将何去何从呢? 工作阶段,我的角色还真不少,有点需求分析,有点系统设计,大量的软件开发,大量 的系统实施,一点点知识探索,一点点售前支持。既是典型的多面手,又是行行肤浅的门外 汉。很少有人能从技术上指导我,不是因为我很牛,只是因为我们实在不是个以技术见长的 公司,而我自己,却十分喜欢技术,喜欢和计算机打交道,喜欢盯着计算机的输出而后体会 其无穷的美感。这是我喜欢做的事,但工作却不允许我这么做。 考研?读研 定调:开始改变思维习惯,化机械记忆为主动思考 若只有机械思维――上了清华又如何 工作的第三年,我准备考研了。我的如意算盘是,当 2006 年 8 月我的工作合同到期的时 候,能自然而顺利地过渡到研究生阶段。 当时我设想了 4 种结果: 1.上清华计算机系的研究生,将来去 Microsoft 或 IBM 工作; 2.调剂到清华软件学院,依然可以去好的外企工作; 3.调剂到其他院校; 4.考研失败,就当什么都没发生过,继续工作,或者从头再来。 以上的每一个结局,我都能承受,不算破釜沉舟,但绝对全力以赴。在每一个下班的晚 上,在每一个周末的分分秒秒,我蹬着自行车冲到清华,吃饭、看书,回来睡觉,利用工作 的间隙继续看书。就这样,没有任何杂念,没有任何包袱,风风雨雨地跑着,简简单单地过 着。带着对未来的期盼,和对现有生活的改变,坚持着。也曾经偶尔想过放弃,但更多的是 受理想的驱使。 考研的结果,我进了清华大学软件学院。但仔细回想考研的过程,我却依然没有摆脱思 维的局限――以机械记忆为主的学习方式。也许是我觉得时间太宝贵,也许是真的连思考的 时间都没有了,我每看到一个题目,总是会先看答案,让答案来指引我的思路,而不是用自 己的脑子想问题。 这种学习方式在短期内的确会取得很大的成果,但却贻害无穷。长此以往,会使人丧失 判断力、理解力和交流能力,只留下可怜的记忆力――这样的人难有大成。这样的学习方式 会使我们的思考方式沦为简单地重复和机械地回忆,胆子变小,创新力几乎丧失――对于计 算机这种快速变化和要求很高的学科来说,显然没有什么价值。 读研之后我终于正视了自己思维的机械与缺乏活力的问题。 我有意识地努力尝试去改变。 看书的时候,我每看一会儿就想想作者在说什么,以训练自己的概括能力;看看作者表述得 是否合理,以训练自己的怀疑能力;勤于反思,以训练自己提出问题的能力。但习惯是长久 养成的,显然改变也是需要一段时间的。 实习之门 定调:快想,快说,快干 IBM 实习:和以前的工作不一样呢 IBMCRL 的环境不错,普通员工的办公场所也算宽敞:电脑两台,都是高配置。空调很凉 快,体制宽松,但人们的工作非常紧凑、忙碌,压力大,追求高效。 作为一个曾有过工作经验的实习生,在这里体会到了完全不一样的感觉。 1.工作效率高、速度快。CRL 的整体工作节奏不太像 IBM 这种巨人的风格。Mentor 是个 急性子的女博士,脑子非常聪明,解决问题的能力很强。同样的新问题,她能够很大胆地想 出新办法。CRL 要求员工讲话简短,注重效率,跟人沟通开门见山,且从来不喜欢重复。我 在这里体会到,很多时候,如果不能在头三句话里就把一个问题说清楚,后面就可能永远没 有开口的机会了。 2.对新问题的反应快。 这里的正式员工论智商, 确实赶上了清华排名 10%~30%的人才了。 没办法,只能以勤补拙了。 3.工作量大。这里一天的工作量,相当于在以前单位工作一个星期。像战争一样的生活, 让我每次下班后见墙就想靠,见床就想睡。不过感觉也非常充实。 4.没有心计,人比较单纯。有什么说什么,不用耍心眼,不用藏着掖着。可以把辛苦的 差事,努力做得简单而快乐。 5.配套设施不错。运动场所还行,咖啡好喝。 求职之路 定调:再次痛感基本功的重要 “完美时空”面试的不完美经历 ――崩溃之余也反思 有了本科时找工作的教训,现在,我一心就想找个重视技术、团队氛围很好、周围人水 平都比较高的地方,于是投简历基本上都以外企和好的技术公司为主。找工作到现在,我一 共面试了 17 个公司,拒掉 5 家,被拒 11 家,最终签下 Amazon。挂掉的原因无非是这几个: 英语,思维习惯,扎实的算法,兴趣点。其中挂掉的比较典型的公司之一是“完美时空”―― 我认真地准备了差不多两个星期, 可以算是全力以赴, 却一无所获, 下面讲的就是我面试 “完 美时空”的不完美经历。 工作场所在一个角落里,问了半天才找到地方,上去一看,傻眼了,完全不像想象的那 样:大大的工作场所,有休息的地方,装饰豪华,反而像一个稍微大点的机房,大家紧张地 工作着,梦想、实现、进度等在这个局促的环境下显得尤为珍贵。可以肯定地讲,以前同学 说的招人不怎么做事的想法是多么的幼稚,哪个创业阶段的公司会用 1 万多的月薪供着一个 不干活的主儿?经过 3 层楼的寻找, 终于在 7 楼找到一间没有被占用的会议室, 让我等下, HR 自己去叫程序部的两位 Manager 下来,我当时以为技术面试应该会限于我做过的几个题目, 而那几个题目我已经翻来覆去地想过了。但很遗憾,针对题目问的问题很少,而且我基本上 不知所措。 一个 Manager 先问我当时为什么把题目全部做了,然后让我挑一个,说说做得怎么样? 我就把自己实际考虑的、怎么样做会更完美等一系列想法都讲出来,接着他问,题目是这么 要求的吗?你从题目能看出来要求什么?我就说要将客户端和服务器端放在一起,要用多线 程,界面不能死,要处理异常等,最好启用 log 记录。然后他问,哪些是题目要求的?你认 为最重要的是什么,等等?我就又讲了用 TCP 和发送接收文本信息等。貌似他还是不满意, 他一直强调我将一个简单的问题考虑复杂了,貌似我一直没有抓住重点,很郁闷。 之后问 const 的问题,问我是不是想过,Java 是不是精通,我说是,又被问到,Java 如何实现 const,Java 的 const 和 C++一样吗?怎么实现的?这个问题又让我崩溃了。 再然后,开始随便问了,打击更大。先问,是否玩过游戏,都玩过哪些,自然答玩过。 谈到网游, 突然问有没有想过升级算法怎么设计, 我思考的时候, 直接被打断, “考虑过没有” , 答 “考虑过” 。 “怎么实现?” 我沿用暴雪的魔兽的算法基本上讲了一下, , 也不知道答得咋样。 此后因为我星际玩得最多,问如何保证种族的平衡性,这个我又傻了,居然说了根据实际运 作的过程来反馈,以及提了一点攻击属性和兵种等。这个问题又答得很差,其实还是平时没 有怎么去想,脑子之前没有转过,现场去转总会犯傻的。下来想想,应该是保证各个种族的 兵种基本上都既有对应兵种,又有相克兵种,每一个兵种攻击都设计它的强项和弱项,每一 种战术都有相克的战术,如果考虑到这些,应该就能保证基本的平衡了。不知道这样回答对 不对,至少比当场回答得好。 又问,如果让你设计口袋西游,你怎么设计?这个问题估计我又扯淡了,没答到点子上, 全凭自己的想象来。再后面就是项目经验的回顾了,这次比以往每次都来得深入。同样被问 到,lucence 的文件索引怎么实现的?唉,知其然不知其所以然,这是我一贯的问题,NB 的 公司总是问到我的软肋。答曰,没看过。又问,如果不用 lucence,你怎么办?有没有替代 方案,你觉得整个项目你最引人瞩目的地方是什么,你最愿意展示的是什么?我曾经讲过无 数遍这个项目, 不同的公司关注点很不一样, 像这样被抓住问的还是第一次。 之后谈到在 IBM 做的项目,谈到了一点测试,直接被问到,你觉得自动化测试框架怎么设计?如果这样设计 性能不好怎么办?怎么优化?我对测试本来就不怎么懂,这样面下来又崩溃了。然后问平时 我的项目大概有多少,怎么做的测试,答曰较少。用到了 Junit,被问到 Junit 哪些地方不 好等,所有关于测试的这些东西基本全挂。 终于不问问题了,估计也不需要再问了,我有多少水分他们应该知道了,他们理想的人 应该不是我。他们希望招聘到精通游戏设计,精通并且思考过很多游戏及相关系统底层,并 且对测试比较熟悉的人,很遗憾我不是。本以为我会面数据安全部,结果程序部 C++部门的 两个人下来把我面傻了??游戏设计,游戏中的设计,以及一些底层的问题、测试框架和相 关东西,基本上每一个问题都答不好,HR 问,你自己给自己打几分,我说 80,他忽悠了我一 下,我又说 70~80,然后边上的 Manager 诡异地一笑,我意识到不对,看来真的是很惨,可 能不及格??曾经寄予了太多的希望,曾经抱着无数的幻想,现在看来,我不属于完美。这 次挂掉,对我来说意义很大。其实这是必然的。 好的外企或好的技术公司希望招聘到的学生是做事超级投入, 特别乐意思考, 充满活力, 并且具备一定的行业知识的。因此,在面试准备的时候,应该充分了解自己应聘的公司,多 思考,多关注架构等背后的东西,才能应付比较深层次的技术面试。 另外,谦虚、和善、愿意向别人学习、擅长理性思维,是技术类工作面试中的加分项。 结语:总能看见希望的亮光 跌跌撞撞地前行中,还是能悟出一些道理,与大家分享。 1.珍惜每一个生命阶段。每一个人的生活都是精彩的,没有必要厚此薄彼,也没有必要 给自己太多的打击。每个人独立地拥有时间,也许我很笨,也许我很穷,所以我需要花费比 别人更多的宝贵时间,仅此而已,我要的是――享受过程。 2.做自己的主人。不要辜负上帝给我们的聪慧的大脑,用它来独立地想问题,用自己的 眼睛来看世界,用自己的心灵来感受,用自己的金口来提问。不要害怕,不要退缩。 3.加强实践与执行力。不要欠生活,不要欠工作。出来混,总是要还的,你不会的知识, 你懒于想通的东西,总是会在一个必要的时候提醒你、惩罚你。将没有搞懂的、希望做到的 东西,写在纸上、贴在面前,认真实践,当你做到的越来越多的时候,你就会越来越自信, 你的层次会提高的。相信我,人与人之间的差距很大,原因在于自我控制力有差距。徐宥莫听穿林打叶声,何妨吟啸且徐行。 竹杖芒鞋轻胜马,谁怕?一蓑烟雨任平生。 料峭春风吹酒醒,微冷,山头斜照却相迎。 回首向来萧瑟处,归去,也无风雨也无晴。 ――苏轼《定风波》 引子:一件小事影响了我一生 大学中的一切,其实都和大学前的经历和学习习惯有关。因此,我还是从我小学时的一 件对我以后的人生,包括大学影响巨大的小事说起吧。 大学前:数理化,好老爸 一本小书的出现 我的小学是在农村里和爷爷奶奶一起度过的。 我的父母住在小镇上, 两人平时都要工作, 没空照看我和弟弟。所以,我只有周末和放假才到镇上,和父母弟弟在一起。四年级升五年 级那个暑假,我到了镇上,和父母在一起。因为一起抓鱼钓虾的玩伴都在老家,百无聊赖的 我开始乱翻父亲的书橱,找书看。某天,我翻出了一本叫做《平面几何一题多解》的书,那 是本封面很好看的书。我把整本书翻下来,每个汉字我都认识,但每个符号我都不懂。于是 我好奇地问父亲, 这个书讲的是什么呀, 怎么从来没见过这些奇怪的符号呢?他就告诉我说, 书里讲解的这个东西,叫平面几何。他接着问我说: “平面几何是个很有趣的东西,你想不想 学呢?”我说: “当然想啊! ”那时的我,其实只是一个好奇的小学生,迫切想知道这本书里 的图画和符号的意思。我肯定不会想到,这个很随意的决定,改变了我其后的整个人生。 11 岁,开始享受独立思考的快乐 听了我肯定的回答,父亲立即从书橱里层(我家书太多了,书橱太小,书橱里书分里层 外层,外层的书挡住了内层的书脊,我从来都不知道里面还有宝贝)变戏法一般地翻出了本 《数理化自学丛书――平面几何》 。对于我父亲这一代人来说, 《数理化自学丛书》是代表着 知识、荣耀和梦想的。我感觉他翻出这本书的时候的动作是虔诚的,但当时的我并不知道父 亲在这套书上寄托的希冀和梦想。我只记得他告诉我,当年这套书,用去了他大半个月工资。 就这样,从五年级开始,我就在父亲的指点下,开始蹒跚前进地学习《平面几何》 。从一开始 不知道什么叫“证明” ,需要他一字一句帮我厘清逻辑关系,到后来全是自学不需要他教,我 很快就喜欢上了自学这种学习方式,每天自己看书并且做八道题。暑假过完后,我就回到了 爷爷奶奶的老家。父亲让我继续自学,并且布置我一周做八道题。我在爷爷奶奶家,每天放 学回来不做家庭作业也不看动画片,就赶紧做一道几何题。做几何题的妙趣,不融入其中的 人是不能理解的。比起小学里的抄生字、抄课文这种作业,做几何题是脑力和体力的双重享 受。当时,我周围没人可以讨论切磋,全靠自己。遇到不会的题目,我只能自己冥思苦想, 或者熬到周末和父亲讨论,因此,常常被一道难题从周一折腾到周日。好在这套书是粉碎四 人帮后出的第一版,当年学生的数学水平比不上现在的学生,而这本书又以自学为主要切入 点,所以题目也相对简单,我冥思苦想几天后大体上也能想到解题思路。因此,我能够常常 体验百思而得解的愉悦感。 我觉得,这种时常拜访的愉悦感,让我很早就开始相信独立思考的力量。 每个周末,父亲都用吱吱作响的自行车带我到镇上洗澡、理发,然后批改上周我做的几 何题。在自行车上的时候,他常常信马由缰随口说些初中物理和初中代数知识,比如看到船 就说浮力,看到马就说做功,看到三角形就说余弦定理等。我也就半懂不懂地听,有时候插 几句话,有时候能睡着了,没有丝毫的压力和拘束。很早就被中学数学、物理知识装备的一 个小学生是可怕的,我那时候觉得知识就是力量,因此我一定要用自己的数学、物理知识做 一台柴油机,我很自信地认为自己懂得做柴油机和机动车的一切知识,说不定还能做出第二 类永动机。父亲屡次告诉我不可行,而我却反过来屡次告诉他,你是个没有理想的人。父亲 不愿意打消我的理想,只是扔给我更多的书,希望能够打击我制造柴油机和永动机的热情, 而我的知识理想,在读了更加多的书以后,变得更加的坚固了,我相信,学习知识是我人生 第一重要事,有了知识,虽然不一定能做柴油机,但一定能做更多强大的事情。同时,我通 过学习几何和其他的一些父亲扔给我的书,开始对自己的学习能力有了自信,我相信,找书 自学是学知识的好方法,同时,把题从头到尾做一遍是很好的自学方法。 所以,我带着三个理念进入了大学:第一是什么东西都可以自学,第二是慢即是快,笨 笨地做一遍题是学习的捷径;第三是知识理想主义,知识就是力量,而读书学知识能够消除 蒙昧,掌握改变世界的力量,所以是一件快乐的事情。 大一~大二上:极端自负,极度自卑 专业选择的失意让我暂时迷失了自己 我的高考成绩很不错,高中时还拿了一个数学联赛一等奖,所以,我是带着对自己数学 知识(为了准备数学竞赛,我看了很多闲书,有很多就是大学数学系的教材)和学习方法的 自信满满,和对南大数学系这个相对不好的选择的遗憾和自卑(当时的高考分数可以填报更 加好的学校或更加喜欢的专业)来到大学的。当时我的心理状态可以用八个字概括:极端自 负,极度自卑。这种心态,一直笼罩了我上大学的头两年,而且总是以一个季度为周期,在 两极之间交替变化。我在学期开始往往很自负,到期中考试左右很自卑,然后再自负,再自 卑,不断反复。 在我看来,极端自负这个心态,其实不是因为自信,而是因为极度自卑生出的应激反应 ――为了掩盖自卑,只好用自负来掩饰。为什么我极度自卑呢,大体有两个方面的因素:一 个是我的成绩排名在高中都是很靠前的, 但是到了大学就 20 名开外了, 尽管我觉得自己的数 学水平很不错,考试却总是不怎么样,觉得考试考不出真水平;另一个是觉得自己没有在一 个自己满意的系――我喜欢能动手的工科,当时我觉得比起计算机系和电子系这样的“牛” 系,数学系并不“牛” ,可即使在不“牛”的系,我都不能做到前十,更别说看上去更加“牛” 的计算机系了。为了掩饰自卑,就自然生出了极端自负。那时候,我上课根本不听讲,理由 是“书上的东西太简单了” 。为了证明自己智商还可以,我总是坐在最后一排,显示自己并不 热衷于老师讲课。这样持续了两年,以至于到最后,我连班上每次都坐在前面的几个同学的 名字都不知道。这样的心态明明是错的,我却缺少一个很好的动因来改变它。 我开始一行行敲经典书上的程序样例代码 不过最原始的三个理念还是在的,我告诫自己,即使上课不听讲,也不能浪费时间。所 以,我把在听课、做作业上节省下来的时间,用在了看喜欢的计算机书和学习编程上了。于 是,整个大一大二,我凭借着简单的自学的理念,开始了两件事情,敲《Thinking in Java》 (TIJ)和《The TeXbook》上的每一个样例。 敲 TIJ 的机缘其实很简单,我是在软件学院听课的时候看到他们教 Java,但是他们用的 《Java 大学教程》太贵了,我舍不得买。 我在网上搜了一圈,发现《Thinking in Java》 是一本免费的英文电子书。于是,我就在数学系的机房,每天下午和晚上,开着一台计算机, 屏幕上放着这个电子书,再用我很土的笔记本,运行着未注册的 JCreator,一个字母一个字 母地敲 TIJ 上面的程序。我很偏激地认为拷贝粘帖的程序记不住,所以每个字母都自己动手 敲。就这样,花了一个学期,居然就把所有的程序敲完了,基本上 Java 的方方面面,我也 了然于胸了。 敲完 《Thinking in Java》 之后没几天, 我们就期末考试了。 那一次考试的试题是用 LaTeX 排版的, 而不是手写的。 我考试的时候就问监考老师这玩意怎么排版出来的, 因为我知道 Word 软件做不到这个效果。 监考老师除了对我不认真考试表示不满外, 还算仁慈,告诉了我 LaTeX 这个名词。寒假里,我就买了一本 LaTeX 教程。然后,突然认识到,原来 TeX 居然是 我最热爱的 Knuth 的杰作,于是我就疯狂地开始学 TeX。我的方法还是一样,敲例子。记得 《The TeXbook》上有一个程序,Knuth 让大家自己照着敲入计算机,然后还很幽默地说,实 验证明,只有很少的人会按照他说的敲入这个程序,而这部分人,却是学 TeX 学得最好的人。 看到这里我会心一笑,觉得自己的方法原来也不算笨。从此,一字不漏敲入一本书的程序成 了我推荐别人学习语言的最好办法。后来大四时我又敲了《A Byte of Python》 ,前段时间又 敲完了《The Awk Book》 ,都是不到一个月立即从初学者成长为细节很熟、代码顺手拈来的熟 练使用者。 顺着这个方法, 大二我把 《组合数学引论》 和上海交通大学出版社出版的一本 《离 散数学》上的题目都做一题不漏地做完了。当时选这两本书也没有特别的目的,就觉得这东 西应该是计算机的数学基础。这些积累,在大四全部都显现了出来。 我个人认为, 《Thinking in Java》和《The TeXbook》都算得上是理论和实践结合的精 品书,是经典的英文原版书。我一上来就读了这两本书,阅读品位就上升了不少,而且变得 “崇洋媚外”了,任何时候都以英文原版书为第一选项了。也正因为此,虽然我自学的过程 中没有高人指点,但自学最重要的一个环节――选书――的盲目性就大大减少了。我记得当 时我看得最多的书是华章引进的书,黑封面的,我们图书馆里有将近半书架。这些书如果一 一细读,穷尽四年都看不完。但华章的书也并非本本经典,我开始注意选择,细读开头十几 页后,基本能决定一本书该不该看。所以即使当时没人指点,全靠自学,读的书还算过得去。 那时候南大计算机系的教材,有的我看,有的我觉得不适合自己,就找替代品了。我觉得在 选书这个事情上,因为有前两本书的标杆,我少走了不少弯路。从这两本书开始,我疯狂的 读书生涯就开始了。那时候南大浦口校区的硬件条件并不好,唯一有空调且可以上自习的地 方恰好是图书馆。因此我每个暑假,基本上都是很早就过去占位,晚上很晚回去睡觉。我对 小说等其他书也不感兴趣,就整天看自己觉得好的计算机书和数学书,做笔记。某天,我开 始了一个雄心勃勃的计划:读完 TP312(计算机理论和编程)书架。 大二下:两个榜样,三个要求 大一大二基本上就是在不断的心态波动中前进。我学会了 Java,也做了不少题,但是考 试成绩一直不是很好,为此我比较苦闷,迫切想要改变这种状态,我的想法是,要么转系, 要么好好学习数学。但是转系阻力重重,我又不愿意耐心去学习数学提高考试分数,所以我 一度非常纠结。但是大二下学期,我遇到了两个对我人生产生影响的人,这两个人让我从正 弦曲线般的心态沉浮中跳了出来,让我一下子变得目标坚定了。 第一个人是我的同学及非常好的搭档,现在在 IBM 工作的李获鼎,另一个是我的叔叔。 他们让我变得沉稳,消除了原有的浮躁,学业和心态都走向了正轨。 大二上学期快要结束的时候,我们数学系的学生会主席一次无意中对我说,在下次数学 系搞的文化节上,我们懂编程的同学要维护一个叫做“模拟股市”的软件。这个软件是学长 用 ASP 写的,运行的时候有一些问题,所以需要专人看着运行。我那时候特自信,就说,干 脆明年我用 Java 重写一个吧。后来我记不得是我找获鼎还是他找我了,反正两个人一拍即 合,决定一起搞。寒假他在家自学 JSP, 我就在家看 JDBC 和 SQL。 开学没多久,我们就 开工了, 他负责写前端 JSP, 我写 JavaBean。 两个人编程比一个人好多了, 可以相互看代码, 而且可以轮流工作,克服浮躁感。我写程序比较粗线条,基本上功能有了,细节就不管了。 获鼎比我可认真细致多了,前端一个表格的宽度和颜色都要调好久。在他的影响和“胁迫” 下,我做事情也变得细致起来,因为我不细致,他的前端就没法正常工作。那时候他也是一 边写一边学, 对着书一行一行地敲 JSP, 态度比我敲 TIJ 时候还认真。 和他在一起工作了 20 天,把这个玩具项目写完后,我从他那里学来了耐心,自己也变得踏实起来。 “模拟股市”这 个小程序发布后,玩这个系统的同学都挺喜欢的,我的自信心也就有了。加上心态也平稳了, 态度也踏实了,自然地,原先的自卑心理就没了。随着自卑的消失,极端的自负也自然消失 了。我心态变得正常了。这时候,虽然还有点小迷茫,但一切已经走上正轨,我开始思考以 后干什么的问题了,听课、做作业也比以前认真不少,成绩也上去了不少。 我的另一个榜样是我的叔叔。和他不能算是遇到,算是再发现吧。我叔叔是个很有冒险 精神的人,具有不折不扣的企业家精神。我非常小的时候,他帮人家修电视,然后借着摆弄 电子产品的背景,迅速就搞了计算机。他买了可能是我们全江都市第一台 486。搞了很多年 计算机以后,他又自学了单片机,以写汇编为乐。这期间他还搞过印刷等其他的项目,我记 得小时候最喜欢的就是到他的工作室里面玩各种各样新奇的玩意。因为他总是不停地尝试新 东西,所以我对我叔叔一直的印象都是“善于抓住机会” 倒没有把他和“耐得寂寞”这个 , 词很紧密的地联系在一起。大二有段时间,我突然对单片机很感兴趣,就找了一本 8051 的 书在看。恰好被他看到了,他就告诉我,他现在就是做这个的,一周后还送了我一个 AVR 的 开发版及一系列的玩单片机的电子器件。我从来没有意识到我叔叔在写单片机程序,所以当 我听他说这些的时候,惊讶得眼睛瞪得比灯泡还大,好像是突然发现了新大陆。我一直对和 硬件打交道有一种畏惧感, 并且体验过 Linux 设备驱动编程, 知道这些和硬件打交道的地方 需要极度的耐心和细心。在这些底层编程上,C 我都觉得不顺当,更不要说单片机上的汇编 了。在资源受限的系统上做出工业强度的产品,已经远远超过我能力范围了。而我叔叔,在 没有任何科班训练的背景下,完全半路出家,全靠自学,一个人用几年时间,就把这条路走 通了。他现在写的汇编程序,运行在千家万户的水表中,可以说完全是坐冷板凳积累出来的 硬功夫。可以想象,他当时给我的震撼是巨大的。我一度怀疑自己的自学能力,觉得有些事 情,我永远没法做到,就像童年想做的柴油机一样,只是幻想。而我叔叔,在这时候,给了 我一剂强心针。 受获鼎和我叔叔这样两个踏实勤奋的人的影响, 我一改以前轻浮的习惯。 在大二下学期, 我给自己定了三个简单的要求:a. 更加多看书,看好书,并且一定一定要做笔记;b. 多编 程,多积累;c. 不怕困难,开始背 GRE 单词。就这样,我就开始了疯狂学习的大三。 大三:深度迷茫,深入积累 大三是我看书最多、思考最多、积累最多的时候。大三我主要是沉稳冷静地做事情,用 不断地做事情、看书和思考,压抑心底深处的对前途的迷茫。其实整个大三,我都不知道自 己要干什么、能干什么,只知道像一个运动员一样一直往前奔。早在大二的时候,我们班很 多同学就开始准备 GRE 了,我也就跟风准备 GRE,在大三的时候花了很多时间在背单词上。 说实话,当时我捧起红宝书的时候,出国的动机并不强烈。那时候我并没有对美国和中国在 各方面的差距有清晰的认识,且过于小看环境对人的影响。潜意识中,我想读计算机的研究 生,考研可比出国转读计算机专业要简单多了,学长也告诉我,申请计算机专业很难,我们 数学系也鲜有先例。因为正方面没有很强的激励,反方面又觉得困难重重,我就不太把出国 当回事,除了背背单词,主要的精力都放在了读计算机书上。我专门扫荡 TP312(计算机理 论和编程)那个分类,同时看了很多英文原版书。TP312 中的大部分书,我都是囫囵吞枣地 看,做一些总结性的笔记,只有少数几本,如《计算机程序设计艺术》《编程珠玑》 、 ,是认认 真真看的。这时候的我已经没有时间,或者说耐不下性子一条一条做题了,只能浏览一些题。 即使这样浏览,也让我在后来大四的工作面试中占了很多优势。 我喜欢记笔记,很注意整理自己的既得知识 我有一个从高中就开始的习惯,就是把每天胡思乱想的东西记在一个笔记本上,算是思 维快照。我还常常翻回去自省,看看过去和现在的变化。大一大二的时候,这本笔记本上记 载着的是和生活和感情有关的琐碎小事,或者宏大空泛的目标和叙事。而大三时记录的内容 明显具体起来,比如这周看完了什么书、下周去图书馆借什么书等。但当时我写下的这些计 划之间,是没有很具体的头绪的。在这些要做的事情后面,并没有一个明确的线索串起来, 而是像无头苍蝇一样到处尝试、到处碰壁。举例来说,我的笔记本里清楚地记下某周要看操 作系统,可是那周还没看完操作系统的时候,又记下本周不看操作系统了,看编译原理。就 这样,好似饥饿的狗熊在掰玉米棒子,看上去很勤奋地在掰,掰下来,啃两口,扔掉。当时 我能感觉到一种永远存在的知识饥饿感,一种永远填不满的饥饿感。不过,我又总觉得前方 应该有那么一个终极玉米棒子,能够最终填满自己的饥饿感,所以,我就一直向前奔跑。其 实这种奔跑,不管多勤奋、多刻苦,因为不够踏实、深入,永远都是事倍功半的。好在我在 不求甚解的同时,很注意整理自己的既得知识,写在小本子上。后来我到大四的时候,写论 文也好,考研、找工作也罢,很多知识我都是临时突击的――好在有这么一本小本子,我可 以按图索骥地去深入强化当时如无头苍蝇般乱看的一些书。如果用搜索引擎的工作原理打一 个比方,我觉得我大三疯狂地读书和学习,就好比是在建索引,等大四要搜索结果的时候, 就再也不需要每本书全文检索了,直接按照本子上的索引找到当时看的书。 踏实和勤奋这两个从我叔叔和获鼎身上借来的优秀品质,加上取之不尽的 TP312 书架和 背不完的单词,使我没有再一次被深度迷茫拉入自信和自卑的反复中,相反,随着这些积累 越来越多,我变得越来越自信了,虽然这种对积累的自信尚未被现实验证过。 大四:书到用时,无心插柳 大三的迷茫让我不确定以后的方向,未被现实验证的自信又让我蠢蠢欲动,所以,我就 自然地产生了“赌一把”的心态。如果以赌博为喻,我就是在所有的盘口上都了下注,要不 全输光,要不总能赚,而我相信至少能赢一盘。 所以,大四甫一开始,我就拟了一个时间表,自信满满地想要在考研、找工作和出国的 三条战线上都有所突破。我设想 11 月之前弄完出国材料,并且把简历弄漂亮,顺带找工作; 1 月前寄材料,套磁,准备考研,4 月前搞定一切,等 Offer;5~6 月我就写写毕业论文, 然后周游中国了,等我周游回来,至少三个机会让我碰到一个吧,我就从了那个就行了。从 这个狂妄的计划中可以看到当时的我的自信,不过我这个自信倒是有一定根据的,因为我研 究了考研的模拟题和找工作的不少案例,我当时想,好好准备,应该可以上南大的研究生, 工作应该可以进腾讯,出国我倒没什么底,所以我也想用前面两个来保底。 大四我们搬到了鼓楼校区,课表上又只有一门课,所以我就在鼓楼这个新环境里乱跑、 乱逛。学校有国际会议,我就跑去和老外搭讪;鼓楼有关于佛教的演讲,我也跑去听;IT 公 司的宣讲会和笔试,遇到好的我也去参加参加。如果没事,我就上自习,继续读鼓楼图书馆 的书。就这样,我遇到了一个又一个的机会,基本上不管成功失败,都算是有付出就有回报, 当然运气成分也不少。 面试题怎么都那么熟悉 10 月左右,微软(MSN)来我们学校面试。这是我第一次面试,很紧张,前一天看书看 到 1 点多,第二天午觉就睡过了 13 点,加上箱子里唯一的一件衬衫皱巴巴的完全不能穿,所 以干脆就穿着拖鞋和 T 恤冲去了。面试的人很友好,面试也很顺利,有的同学还在等第二轮 的时候,我的四轮就结束了。我当时的感觉是,微软的面试题太简单了,除了问我南京市新 街口周边有多少辆车外,其他题目都是中规中矩的计算机面试题。面试出来之后,我和一个 软院的同学在食堂讨论题,他说: “题怎么这么难啊?” 我就很奇怪,说: “这些题《编程珠 玑》上不都有的么?” 后来我才知道,其实看过《编程珠玑》的人,不是我想象的那么多, 而我也是在书架上乱翻才偶然看到《编程珠玑》 。在 2005 年的时候,没有 Web 2.0 和社会化 推荐,我的世界,就只有面前的书架那么大,我幸运地在那么大的书架上遇到了几本经典书, 并且细读了,吸收了。 很快,微软给了我一个在上海做测试的职位。当时我一心要去北京,就没要这个 Offer。 不过有了这一轮,我也知道面试怎么回事了,这次面试,更加强化了我的自信,于是我又开 始比较狂妄了,觉得自己能进当时互联网中最热的、宣称招 50 个李开复博士的关门弟子的 公司―― Google 中国。 利用比较优势选择考研目标 找工作还没完全展开的时候,我就准备考研报名了。我选择了北大生物系的生物信息学 专业。其实这是一个让我可以到北京的小聪明,而不是一个全面慎重思考的结果。当时我看 到,这个专业只招两个人,而且试题是和计算机系一样,于是我想,除了我这样的一门心思 想去北京的,哪个人会绕这么大一个弯子去学生物而不去学计算机呢?其实我自己也不敢挑 战计算机系,因为我知道难度太大了,但是我又很想到北京去,就想了这个暗度陈仓的办法。 我当时还想,考上了,要是不爽,读一年俺就退学找工作。2005 年末的大环境和现在是不一 样的,那时候 Web 2.0 的呼声很高,让我觉得创业比读研有前途多了。不管怎样,我自认为 很小聪明,就报名了,当然考完才知道,就为了这两个名额,有 40 多个人来考。 我要感谢当时同系的两个同学苗文建和王琨,他们都是准备考北大计算机系的,即和我 考同样的试卷。他们资料很全,我就和他们一起上自习,蹭他们的看。大四我买书花钱很多, 到了考研这时候真是舍不得花七八十块钱买自己看不上的辅导材料和教材,所以就借他们的 看。那时候考研的教材是北大的“操作系统”和“离散数学”教材。其中操作系统的教材, 行家都知道这本教材参考了不少 Tanenbaum 的作品, 我也看过就不大愿意再买一本。 前面我 提到过,我大一大二做过一本离散数学教材上所有的习题,所以离散数学根本不需要花太多 精力。至于政治,我是经历过 3+X 高考的人。基本上考过政治的人都知道,政治考好考差和 复习不复习无关,至于和什么有关我就不在这里多说了,总之这个东西并没有深奥的学问, 就只是那么几句话车轱辘话翻来倒去而已, 命题套路也很容易掌握。 做到比命题者更加聪明, 对于受过大学教育的考生,是件很简单的事情。我最后考研成绩还不错,撞大运考了个专业 总分第一,其中数学完全是离散数学的功底,考了 136;英语也是靠准备 GRE 托福的底子, 考了差不多 80;政治也差不多 80;专业课运气很好,正好 90 分搭线。于是就这样糊里糊涂 地考上了。 考研这个事情,我至今觉得运气远大于真正的付出,结果也非常出乎我的预料。记得结 果刚出来,同学帮我查分的时候,我根本不相信自己考这么好,还放话说如果考这么好,请 全宿舍吃饭(我记得当时兜里面只有 200 块钱,根本没法请人吃饭,后来还是借钱请客的) 。 考研结果出来之后,迷茫的我得到了一个非常好的保底,我就比较得陇望蜀了。其实在当时 我的心里,我并没有认真想过以后要具体干什么,只是隐隐约约觉得要不去北京,要不就去 美国。有了北大这个机会,我就调高了自己的心理标杆,定下了两个大的具体目标,或者说 是圣杯,一个是进 Google 中国,一个是到美国名校读计算机,有了考研这个保底,在 2 月 份过完年,我就不慌不忙地认真准备这两件事情了。 面试题怎么还是那么熟悉 我 10 月份的时候给 Google 投了一份简历,很快在 11 月份就被拒了。而我的搭档李获 鼎在签了 IBM Offer 的第二天,却收到了 Google 的面试邀请(我相信凭他的实力,如果晚 一天签 IBM,他现在也应该在 Google 了) 。我听了之后觉得很奇怪,按说我们两个,做的项 目是一样的,学的科目也一样的,写的简历互相也看过,背景也都差不多,我被拒了,他被 邀请去面试了,我隐隐觉得有什么地方不对。我的不服气,反应在行动上,就是每天上网看 Google 中国最近又招了几个人、 怎么招的。 那时候互联网上盛传的故事是一个人给李开复用 很多不同的邮箱发邮件,以保证简历能够万无一失到达,结果瞬间被录用了。这个故事的内 容和合理性放在一边,我对故事主人公的精神很感兴趣。我觉得我也可以再试试,说不定坚 持就是胜利。正好那个时候,Google 的一些副总裁到北大有个宣讲活动,说好了现场接收简 历的。我从当时在北大的女友那里得到了这个消息,回来把简历梳理了一下,让她帮忙打出 来,又交了一次。这一次,简历直接交给了某个副总裁,成功了!几周后,Google 中国的 HR 就给我打电话,安排机票和宾馆,让我去北京面试。 面试的过程其实平淡无奇,题目不是《编程珠玑》上的,就是《计算机程序设计艺术》 上的,再不然就是网上贴出来的。我个人感觉,面试题就那么多,多做做基本上就了然于胸 了。我从找工作一开始,就做了个有心人,每天都上网看面试题。 这次面试前,我又把《编 程珠玑》这些书复习了一遍。同时我知道自己在面向对象编程方面很欠缺,又看到有面试过 的人说面向对象也考,就顺带看了《设计模式》 。我还比较有心,花了几个晚上,捣鼓了一个 移植于 Mac 的、基于 MVC 的可以当场演示的 Java 小游戏,面试当天我还给面试官演示了 这个小游戏的架构和用到的设计模式,这样,我感觉,自己面向对象开发方面的弱点就让这 个小游戏的演示给弥补了,面试官也一致说好玩。 很快,四轮面试结束后,HR 带我去见李开复博士。李开复博士是个风趣的,或者说很善 于观察人的人。他见到我的第一句话竟然是半调侃的“小伙子,我们 Google 不能解决北京 户口啊” ,我承认当时的确穿得很民工,因为网上说 Google 是个很随意的公司,我是继续以 凉鞋装备和鸟巢一样的头发去面试的,但是我还真的不是为了北京户口才去 Google 面试 的?。 我之前也做了一些功课, 了解了一些李开复博士早年做的工作, 所以谈话进行得很顺利。 说了一会儿后,我就抛出了为什么 Google 拒我一次又让我再面试这个问题,他说这事情还 很罕见,要是我再网申,基本上简历是不可能浮出水面的, 因为数据库里面已经有标记了, 不过我这样二进宫算是精神可嘉。 这时候我才回忆起面试的一个 MM 手上拿的简历, 的确是我 第二次提交书面简历的复印件,而不是网申的打印版,可见还是坚持再投一次好(这个坚持, 我也是和搭档李获鼎学到的, IBM 二面就有拒他的意思, 他要求面试官再给一次终面的机会, 结果他的终面刚结束,面试官就和他握手恭喜他加入 IBM 了,所以面试这个事情,坚持到最 后的才是胜利者) 。当天和李开复谈完出来,HR 冲我笑笑,握握手,说,就你和他谈的时间 最长。我基本上知道,这个事情成了。 误打误撞,选择了出国深造 在找工作的同时,我出国的事情也没闲。我觉得直接靠寄材料申请计算机希望渺茫(我 先前直接申请了几家数学和计算机,都是拒信飞飞) ,所以我就押宝在套磁上。在寒假之前, 我就觉要写篇有点质量的论文发表一下,才能让申请材料有分量,否则招生的未必看得上我 这个数学系的、没有任何计算机背景、成绩又不特别顶尖的学生。于是,我就回忆以前乱读 的一些论文集和书,再找看有没有最新的值得跟的工作。就这样不着边际地乱找,还真的就 碰到了一个感兴趣的题目、一个不大成熟的想法和一个正在征稿的会议。于是,我迅速地开 工。凭着数学功底、编程功底和 LaTeX 熟练程度,几天就完成了文章主要结果和写作,然后 就是写程序、做实验,并且不断地改很烂的英语写作。我的运气很好,选择的题目也不是很 难, 所以七天之后, 我压着截至时间前几分钟, 把文章提交了。 2005 年的 LNCS 还是被 SCI-E 索引的,所以我觉得这篇论文分量还可以,更新了自己的简历,一边准备考研,一边开始和 美国的教授套磁。 我现在的导师 Yixin Chen 是一个非常杰出的年轻教授(科大少年班出身) ,我和他套磁 的时候,他刚刚从事教职,因此很需要学生。我之前给他发了几封信,有过短暂的接触。到 了 4 月 15 日美国大学招生的截止日期前几天的时候, 他的另一个原来录取的学生因为某些原 因去不了了。因此,当时他就联系我了,告诉我说,我可以过来美国读书,做他的 Research Assistant。那时候我还在等 Google 中国的 Offer。Dr. Chen 就对我说: “拿 Google 的 Offer 不难,我也拿过。 你读了书以后也可以拿美国 Google 的 Offer ,但来美国读书的 机会就这么一次。 ”那时候我想问题并没有现在这么深刻,加上比较想去北京,因此一直犹豫 不决,还在催 Google 的 HR 快发 Offer,心想你们哪个 Offer 先到我就从了哪个算了。我 父亲、我叔叔都不含糊,一个一个地轮番教育我,加上我导师后来说了上面这番话,我就不 再犹豫,承诺他我一定接受这个 Offer。接着,我告诉了 Google 的 HR,说我不去了。就这 样,我所有的自己认真谋划、认真准备的路都没有走,反而最后通过误打误撞和套磁,来到 了美国。 结语:非没用,兔子洞 总的来说,面试也好,考研也好,写论文写好,之所以能够比较顺利,我觉得都是大一 大二一个键一个键敲出来的,也是大三一本书一本书读出来的。我写这篇文章的时候,把相 关的前因后果放到了一起,是为了解释有些事情的前因后果。不过我不想给读者一个误解, 即我恰好运气特别好,一路直行没有任何弯路。相反,我觉得我走了不少弯路,但是我很高 兴走这些弯路。 比如说, 我上大学的时候, 很多精力花在了做数论题上, 《现代数论经典引论》 这本书的习题我差不多一题一题都做完了,但是我出国申请学习数论没拿到中意的 Offer, 现在也不从事相关的研究,所以这些积累至今没看到有什么直接的作用;我一度认为自己要 做一个电子工程师,我大一大二还旁听了电子系的模拟电路、数字电路,还混到电子系实验 室学 ARM 开发板, 但是现在这些除了吹牛外也没什么作用, 学到的一点皮毛也还给老师了。 我是个兴趣很广泛的人,看过的杂书、做过的笔记,最后有用的,我觉得有十分之一就已经 很好了。大学的时候,为了让自己精力不耗散, 我限定自己每次借书,一定要保证四本计算 机/数学,外带一本社科人文书,还有一本任意的书,而且那四本一定要做笔记精读。 因为 这样,我才能够最终没把有限的人生耗费在无限的浅尝辄止上。 即便这样,如果纯按照现在需要的知识看,我在“没用”的东西上浪费的时间还是很多。 不过我倒不愿意称这些为浪费,在我看来,成长路径中有很多的偶然,没人知道在一些关键 时候需要什么样的知识储备,所以踏实地多储备一些是好事。我在大四的经历和其他的一些 经历都告诉我,以前通过看书、自学,彻底地弄懂的一样知识,会在某个不经意的时候,突 然被用到。这时候对当年积累的庆幸和再发现的快乐,就像蓦然回首见到灯火阑珊处的秋水 伊人一样,是没法用文字描绘的。另外,我有个切身的教训,就是要踏实地积累。我读书涉 猎很广,很多东西我都能大概知道怎么回事,但是就是学得不深刻,所以即使当时花了很多 力气,需要的时候还要花大功夫重头捡起。所以我的教训就是,与其两个半瓶水,不如一个 满瓶水。这个道理用在读书上就是说,一本好书读两次要胜过两本好书各读一次。要是大学 能重新来过一次,我会少读一些书,多读透一些书,这可能是我觉得当年猛读书的唯一遗憾。 小时候我嗜书如命,我爸爸老是担心我会成为一个不懂人事的书呆子。大学中的我,几 乎天天泡在图书馆,可以说是个不折不扣的书呆子。其实除了读书外,我的大学生活的其他 方面也是很快乐的。我有玩得非常好的同学们;靠着帅哥室友们的魅力,我还常常和他们一 起,和联谊寝室那些青春活泼的姑娘们打球、打牌。我还谈了一次恋爱,让我对感情的事情 有了深刻的认识。这些事情,交替地穿插在我这个书呆子平淡无华的大学四年中,让我的大 学生活如此美好,但这些细碎的星星点点的人生经历,都不足为外人道了。 我的大学四年, 一头扑入了读书中, 就像掉入了兔子洞的爱丽丝。 在读书这个兔子洞里, 那些经历的迷茫、挫折和奇遇,都是上大学之前的我不曾想象的!我不算一个合格的学生, 我忘了不少任课老师,忘了我的学号,忘了班上不少美丽的女同学的样子,却没有忘记某个 夏天的中午,汗流浃背的我冲进图书馆,跳入一阵凉爽的书香;以及某个春天,我在草坪上 读书入了迷,喷水龙头把我后背全打湿了还浑然不觉。这就是我对兔子洞的最美好的记忆。徐宥的书架: The Art of Computer Programming 《计算机程序设计艺术》 计算机科学领域最为经典的一套书, 哪怕细读一章也受用一生。 Programming Pearls 《编程珠玑》 只需要观察各大 IT 公司的面试题,就知道这两本书的重要性――很多面 试题都是这两本书中例子和习题的改编和变化。 More Programming Pearls 《编程珠玑 2》 Structure and Interpretation of Computer Program 《计算机程序的构造和解释》 这是一本想要从更高层次认识编程的人的必读书。很多编 程的基本概念都可以在这本书中找到直白但深入的讲解。 The Art of Unix Programming 《Unix 编程艺术》 至少在可以预见的时间内,一个真正的程序员,必然要是一个了解 UNIX 环境和文化的人。这本书就是 UNIX 世界的敲门砖。 即使是 UNIX 专家,也能从这本 书中学到很多。 Code Complete 《代码大全》 这三本书都是讲解如何构建良好的,易于维护的代码。他们的基本思想都 是一致的,读者可以任选一本。 The Elements of Programming Style The Practice of Programming 《程序设计实践》 The Pragmatic Programmer 《程序员修炼之道》 这两本书介绍了获得高的生产率的方法和经验。其实这两本书不单 适合从事编程的人看,一切从事“知识工作” 的人都可以从阅读这两本书中获益。 The Productive Programmer 《卓有成效的程序员》 How to Solve It 《怎样解题》 经典的介绍如何用系统的科学的方法分析和解决问题的书。这是追求更好 更快的处理问题的开发人员的必备书。 The Structure of Scientific Revolution 《科学革命的结构》 阅读科学史有助于养成对技术敏感的嗅探力和判断力。 G?del, Escher, Bach: An Eternal Golden Braid 《哥德尔、爱舍尔、巴赫――集异璧之大成》 不可多得的横跨计算机,数学,语言学, 艺术等学科的奇书。 Cosmos 《宇宙》 每次一读这本书,心中的烦闷或者狂妄,都在广袤的星河间,骤然渺小不计。刘未鹏穿过幽暗的岁月 也曾感到彷徨 当你低头的瞬间 才发觉脚下的路 ――许巍《蓝莲花》 引子:父亲教我的事 父亲是个对新事物有强烈兴趣的人:村里第一台电视机是他自己组装的,当时全村人都 跑过去看,电视机只能收到一个台,CCTV;座机电话是第一个装的;大哥大刚出现的时候, 他也是第一个买来用的,那个时候的移动电话真是贵得离谱。 父亲告诉我的第二件最重要的事情是:遇到任何问题,去找书就行。他在自己的专业中 完全是自学的。在不属于自己的专业中(后来买了电脑之后需要学习如何架设公司网站、如 何网上营销、如何进行电子财务管理、如何使用各种作图软件制图等)也全都是靠买书自学。 为什么说到这两件事情,因为这是对我一生影响最重大的两个习惯。第一个习惯给了我 学习新东西的强烈动机,有了热忱和兴趣,做事情就不觉得累,就自得其乐。第二个习惯则 给了我学习任何新东西的方法――不会么?查书去。 (当然, 学习一门专业并不完全通过看书 就行,但这毫无疑问是至关重要的一个途径。 ) 高三时父亲买了电脑,我立时对这个神奇的事物产生了强烈兴趣,每期的《电脑爱好者》 和《电脑报》都会买来细细看,有时看到各种小工具、技巧还会摘抄下来,在家里的机器上 捣鼓。那时我并不知道这样单纯的兴趣会把我引向一条专业的程序员道路。 高三时间变得越来越紧,分配给兴趣的时间越来越少,但兴趣的火花一直都没有熄灭。 大一:两次歪打正着 跨进南大校门的第一天,我知道,我自由了。 这个自由并不是说我可以做任何事情了,而是我得到了一个重要的决策自由权,即关于 如何利用我的时间。 学数学打下基本功 高考的时候我报了计算机系,但分数差了几分,失之交臂,被调到第二志愿专业――信 息与计算科学。当时以为这个专业跟计算机相关的,结果发现是数学系,后来听不少同学提 到都上了同样的当。 这里出现一个歪打正着的事情:我本意并不是上数学系,如果当时知道这个专业是数学 系,我可能就不会填报了。但正是因为这个错误,我在数学系好歹也受了一些数学基本功的 训练(尽管这个训练的基础是大一上的不多的几节数学分析课,以及每次临考前宿舍哥们例 行的“包夜”看书) ,回过头来看这个基本功在后来还是帮了不少忙,甚至有一阵子我对数学 本身到了很感兴趣的程度。不得不说,这段学习经历是很锻炼抽象和逻辑思维的。另一方面, 困难如数学都学了,对其他学科就不觉得难,不会望而却步。 这是我成长过程中的幸运之一。后面还会提到,还有好几次更大的幸运。 与 C++结下不解之缘 大一上学期很快过去,应该是在大一下学期的时候,学校要开一门 C++课程。我利用假 期先把课本基本啃掉了,当时动机也很简单,先啃掉,就不用上课了嘛。 另一件事情是我经常喜欢去逛书店,看到侯捷的《深入浅出 MFC(第二版) 》上面很多人 说这本书好,我当时也对 C++有一些基础认识和好感,所以就买下来啃了。一方面侯捷先生 写的书的确图文并茂,深入浅出,有意思,另一方面理解一样复杂的东西是个智力挑战,所 以看着看着倒是觉得兴致盎然。却不知就这么和 C++结下了不解之缘。 这是另一个歪打正着:为什么说是“歪打”呢?因为 MFC 的设计也并不能说就是 C++的 Best Practice,另一方面若是以用为本的话也未必就要把 MFC 的原理摸个透。所以搞不好现 在看来我就不会细看这本书。为什么说是“正着”呢?因为理解一个费解的东西本身需要长 时间投入注意力, 无形中练了理解能力和思维体力 (专注) 另一方面虽然 MFC 不是最佳设计, , 但理解里面的代码却加强了对 C++本身的认识,这是基本功;也加强了对 C++的兴趣,这是动 力,后来这个动力驱使了我去看了大量的系统底层知识,从操作系统代码一直看到硬件体系 结构。 大二:步入技术写作之路 在《程序员》上发表第一篇文章 大二发生了几件重要的事情:我在《程序员》上发表了第一篇技术文章,是剖析 Boost 源码的。我已经不记得什么时候、通过什么途径知道 Boost 这个库的了,总之是知道了,然 后也是由于受到侯捷先生源码剖析的影响,也去看源代码,发现很难,越是难就越是觉得有 趣,跟踪代码到凌晨 4 点居然越看越精神了,后来火速写了一篇源码剖析,发给《程序员》 杂志的技术主编孟岩先生。孟岩先生给了我很大的鼓励,于是我很来劲,后来一鼓作气分析 了 n 个库,写了一系列的 Boost 源码剖析的文章,在网上随处可以搜到这个系列。 这也是一个歪打正着:按理来说,研究语言技巧并不是程序员最佳的时间投入方法,所 以现在我可能不会去做这件事情,会认为有更好的时间投入途径。但当时就一头扎了进去。 为什么说也是正着呢?因为虽然这也许不是最佳的投入时间的办法,但总归比什么都不专注 要强得多,至少这么一深入,对语言的缺陷和陷阱有了更深刻的认识,也锻炼了对代码的亲 切感、跟踪调试的耐心(是的,耐心,而不是技巧) 。 所以后来我在博客上总结自己学习编程中走过的弯路,孟岩先生说道――是不是弯路, 不是那么容易界定的。 的确,也许真的有更好的路,但事前真的很难判断哪条路是最优的,我们能做到的,是 把一条路走透了、走深了,只要不是一条太不靠谱的路,深入的过程中总会有很多的收获。 只要不是太顽固,善于反省,总有一天也会逐渐意识到越来越靠谱的路。 开设博客“C++的罗浮宫” 大二下半年还发生了一件重要的事情,我在 CSDN 上开了一个博客,开始写学习 C++和编 程的过程中的一些总结。这个博客我一直写到今天,伴随了我整个七年的学习和成长,回过 头去看就像时光机一样,能够看到一路过来我都关注了些什么东西,是怎么想的,以及对一 些事情的看法是怎么改变的。这些东西如果不记录下来,就会逐渐忘掉,也就无法参照过去 的自己,对未来提供更好的借鉴了。所以我一直把记录当作一个很重要的工具。另外我也通 过这个博客认识了很多朋友,得到了很多的帮助。 大三~大四:在软院度过的两年 后来,学校提供了转系到软件学院的机会,我立即报名了。后来的两年在软件学院度过。 但其实反正我也是自己安排时间,所以无甚区别。 与荣耀先生合译《Imperfect C++》 大三大四发生了几件重要的事情:一是荣耀先生邀我合译《Imperfect C++》 ,我很乐意 地接了下来,可没想到这本书比我想象的要密度大得多,600 页,而且排版也很密,我给自 己安排了每天六七页纸的量,大概花了半年多译完。中间有一段时间停滞,荣耀先生给我鼓 劲,告诉我一个重要的方法:如果觉得做不下去了,就硬着头皮坚持做,然后就类似于麻木 了,适应了,那种望而却步的感觉会逐渐自动退去。惊人的简单,但事实就是如此,硬着头 皮,过了那个情绪上最艰难的时候,也就适应了。这本书译完之后,还是有不少的收获,但 我总觉得对性格上的磨练才是最有价值的收获。 英文原版书为我打开一扇窗 同时我也开始看英文版的书。之前,由于高中不靠谱的英语教育的原因,我恨死了英语, 大二的校内四级课程还挂了科, 直到大四才补考。 但对技术本身的热爱压过了对英语的反感, 我还是硬把一整本影印版啃下来了, 而且津津有味, 这本书就是 Jeffrey Richter 的 《Applied Microsoft.NET Framework Programming》 。这个事情的重要性在于,后来我就不再反感和恐 惧英语了,这是其一;其二是我开始意识到英文世界的技术资料有多么丰富,所以虽然本身 看上去不是一个太起眼的事件,但却是我获取信息方式的一个 Tipping Point,一旦熟练掌 握了语言这个平台,背后就是一扇大门,通向一个海量的信息源,后来我的信息获取绝大多 数便来自于英文,其中尤数 Wikipedia 和英文版的书为多。另外还有一个收益后面会提到。 基本功不过硬,面试微软失败 大四快毕业的时候又发生了一件事情,微软的 Eric Jiang 通过我的博客找到我,推荐我 去微软面试, 我随随便便就把粗糙的简历给发过去了, 差点因为简历太粗糙被 HR 直接过滤掉。 远程电话面了两轮,远程 Coding 一轮,然后记得就是飞到北京面试,住在北航招待所。北京 的面试又面了好几轮,有考察底层知识的,有考察 C/C++的、.NET 的,还有考察算法、编码 素养的,总之就是公认的基本功考察。最终我还是没能通过面试。自己后来总结,得出的结 论是算法基本功太差,连什么是动态规划都不知道,编码素养也不够。这部分也是因为本科 的学习方法太业余,什么好玩干什么,倒不是说兴趣驱动不好,只是缺乏系统的规划,不清 楚也不关心这个领域的蓝图,也弄不清什么是重点。后来在读研的时候恶补了一把算法,好 歹弄清了一些基本的概念和思考方法。编码素养的问题也是到了读研的时候才开始思考和学 习,现在仍在学习。 另外,在本科阶段,其实我也浪费了很多时间,事实上,是只花了很小一部分时间来学 习。之所以还多少学了点东西,完全是仰赖了专注的习惯。而这个专注的习惯其实又是从小 受父亲耳濡目染的:父亲会花一整天揣摩一个问题,父亲跟我说过他以前组装电视机时的故 事――一切都似乎组装正确,但电视机就是不工作。他苦思冥想,不得其解,当晚,半夜从 睡梦中醒来,想到了问题的症结所在。所以,我在啃一些底层知识时如果弄不懂,也会一遍 遍读,然后用走路吃饭坐车的时间在脑子里一遍遍去琢磨。我有很多重要的习惯受到父亲的 影响, 这些习惯自己一般觉察不到, 但却默默影响了平时的一点一滴的时间分配和学习轨迹, 这些习惯从纸上很难学到,但耳濡目染却会自然而然地学会。 每当有人觉得我本科就做了不少事情的时候, 我就会说其实我本科真的浪费了很多时间, 而另一方面,这也说明,要掌握一门专业知识,其实每天一点时间,专注、积累和持之以恒 也就够了。后来研究生阶段才算真正开始惜时了,于是经历了两年密度很高的学习和思考, 心智才成熟了不少。 考研故事:第二次终于成功了 大四的时候,和很多人一样,我也考研,因为一来也很茫然,二来也希望能够继续有一 个宽松的环境继续沉浸在自己的兴趣中。但四年来我都是自己安排时间,逃掉了无数的课, 已经对模式化的做题考试产生了抵触,所以考研的复习也没怎么认真准备,那年考研的数学 题又偏难,一下慌了神,结果居然把一整页题压在稿纸下忘了做了,心理准备有多不充分可 见一斑。考完数学我很沮丧,那么大分值的题目没做,数学肯定过不了了,接下来的专业课 就没去考了。后来想想其实还是应该去考一考,多少能为下一年积攒经验。 后来就工作了,没去成微软,经同学张振推荐,就去了南京西门子。心里的打算还是边 工作边考研,为什么考研,动机也简单,我心理还没准备好,本科只顾着埋头学好玩的,也 不看路,不知道自己想要什么样的工作,想做什么样的事情。去西门子之后更加觉得如此, 觉得效率很低,做的事情也并不是我乐意的,每天还要在班车上浪费两个小时,于是没过多 久就辞掉了工作。打算复习考研。那个时候大概还有半年多的时间才到考研,所以我中途不 紧不慢地又翻译了《Exceptional C++ Style》 ,占用了不少时间,到最后时间很紧了,就剩 两三个月,我才开始认起真来,回想起来这是糟糕的时间管理。结果我不得不作了最坏的打 算:顶多调剂去软件学院读研(我报的是计算机系) ,考虑到我反正是自己安排时间,差别应 该不大。幸运的是,最终一分不差地过了线,算是蹭到了计算机系里。虽然如此,还是觉得 这种惊险不要发生的好, 以后或者其他事情上就不会有这么幸运了, 及早准备总是很重要的。 读研:阅读交流,开拓眼界 读研的两年半,是我自己觉得心智成长最迅速的一段时间。这里也遇到一些人和事,让 我感到很幸运。一个是我的导师陈家骏先生给了我很大的自主,于是我得以有时间安排一些 重要的学习,这段时间对我来说很重要,我学习和思考了很多东西,为个人以后的发展作了 很多准备,倒是没帮导师做什么事情。所以,硕士毕业离开的时候是既感激也愧疚。 另一个是认识同实验室的师兄陈怀兴,严格来说是他先来找我聊天,可见那时我还没有 意识到与人交流的重要性。后来,建立了 TopLanguage 讨论组之后越发意识到与他人交流的 重要性,也开始主动寻找和参与交流,希望以后自己也能组织交流。陈怀兴在算法上很有造 诣, 也是 TopCoder 上的常客和牛人, 那个时候我也正在为以后的工作面试准备一些算法基础, 所以经常找他讨论,获益很多。有一句话说:看一个人,只要看他读的书和见的人。还是很 有道理的,这两者是一个人成长中最有价值的信息来源。 如何思考,如何正确地思考 研一下半年,女朋友找工作的时候需要用到营销方面的知识,于是我去替她找书,偶遇 《影响力》 ,这本书打开了我的视野,让我开始关注一个很有价值的领域:我们如何思考,如 何正确地思考。这个领域有很多有意思和有价值的书,我利用近一年的时间,陆陆续续看了 近 40 本 相 关 的 书 ( 我 把 这 些 书 整 理 了 之 后 以 豆 列 的 形 式 放 在 豆 瓣 上 Http://www.douban.com/people/pongba) ,对思维的特点和缺陷,以及如何思考有了很多的 了解,这些知识后来很大程度上使我更清晰地认识自己,和自己在学习和生活中面临的各种 问题。 也是研一下半年,我建立了一个 Google Groups,起名 TopLanguage,一开始的时候是因 为平常没人讨论问题,憋得难受,希望有人能够说两句,无心插柳柳成荫,后来这个讨论组 的交流越来越多,如今已经近两年,组内成员超过了 4 000 人,两年里我也从中收益颇多, 其中最大的收益有两个:一是和人讨论能够激发自己进一步的思考,也促使自己更清晰地表 述自己的观点或问题。倒不是说别人就一定告诉你什么新东西,而是讨论能刺激你自己的思 维。二是交流中认识了不少朋友,后来快毕业的时候也受帮助颇多。我一直把 TopLanguage 的创建看作研究生阶段做得最有意义的事情之一。 有意识地准备英语,弥补短板 此外,我有意识地提前准备了英语,因为我相信如果想要去好的外企,口语不过关很可 能成为一块短板 (当然, 英语作为承载最多技术知识的平台语言还有更大的价值) 包括阅读、 , 书写和口语。我想了一个方案,可以不用额外花时间来学习英语:阅读的训练蕴含在平时的 英文技术资料的阅读中,尽量读英文的,一来英文资料更一手和全面,二来也顺便练阅读; 书写的训练蕴含在去国外邮件列表发技术贴和自己写的英文博客文章中;口语的训练则蕴含 在平时的娱乐中――美剧,有一个暑假我几乎天天开着《Friends》睡觉,另外学校有国外过 来的团队演讲我不再错过,而是主动参加,有一次还带他们出去逛南京,说了一天英语,回 头在路上听中文都像英文,虽然和外国友人交流的次数不多,但似乎对口语感觉的提高还挺 大。后来在微软亚洲研究院的面试最后一轮就是英语的,而且是偏技术的,好在提前准备了, 所以毕竟还是顺利地表达出了想表达的意思。 结语:多了两年总算不晚 去微软亚洲研究院面试,是因为幸运地认识了微软亚洲研究院技术创新组项目主管邹欣 先生。邹欣先生和他组织的团队在那段时间写了《编程之美――微软技术面试心得》 ,书中有 很多很有意思的题目, 而我那段时间恰和陈怀兴讨论算法, 在讨论组上也组织了专题的讨论, 有了一点粗浅的思考,于是和邹欣先生邮件交流,由于对邹欣先生的技术创新组做的事情很 有兴趣,所以找工作的时候便向他毛遂自荐。 承蒙邹欣先生推荐,时隔三年,我再次获得了去微软面试的机会。这一次,由于研究生 期间作了一些长远准备,所以心里有底了很多,也就比较冷静了,由于当年知识体系的漏洞 被我花功夫补了补,所以面试比较顺利。面试的时候邹欣先生更为详细地介绍了技术创新组 的工作,我更加感兴趣了,所以尽管已经有另外几个也不错的选择,但心里还是迅速地做了 决定。大约一周后,HR 通知 Offer,我毫不犹豫就接受了。 我想,虽然很多人本科就能明白自己想做什么,我多花了两年多,总还不算太晚。 网友跟帖 微米 says: May 18, 2009 @ 11:58 am 我是从豆瓣推荐过来的,虽然不是搞技术的,也算做过互联网擦边的工作,但全文仍然 认真阅读了。很多东西其实是一个方法论,也适合其他专业的,其实,我觉得很多中学生应 该读读,提前规划。 if says: May 18, 2009 @ 12:59 pm 看了这篇自传,可以说很有收获。我和您一样,歪打正着进了信息与计算科学系,但兴 趣主要在计算机方面。现在我读大二,在 C++和算法这方面不见得比当时的您差很多,但最 大的差距在于,我一直都在沿着前人留下的足迹走着,却没有进行多少有价值的创造活动, 没有在这个世界留下自己的脚印。看了您的 Boost 源码剖析系列我感觉非常有趣,但从没想 过要自己花时间也去写一篇;看了您翻译的《Imperfect C++》感觉很有收获,却从没想过要 自己去做点哪怕很简单的翻译工作;简单研究过不少开源软件却从没想过去参与创造??这 样的话,似乎和什么都不知道也没多大的区别了。 iamsujie says:May 18, 2009 @ 1:48 pm 我一直觉得每一段经历都不是浪费,强者就在于能把过去所有的经历都用上,一点不浪 费,这样也就打造了自己独特的竞争力~~~ lupa says:May 18, 2009 @ 3:43 pm 我是从大四下半学期开始对如何思维、如何正确地思维感兴趣的,看了不少书,最大的 收获是通过网络交了不少朋友。一个人想要前进,就必须通过努力和自律来达成目标,但是 目标完成的同时,会发现行进过程中的心智的成长反倒是更重要的。 邓鹏 says:May 23,
am 你的博客和豆瓣这几天一直都在读。今天我在看的时候拿了一支笔,大致以箭头的形式 规划了你成长的经历、所读的书、所遇到的事,还勾勒出了一些值得学习的地方。我是一个 大一的学生,你对自己经历的叙述给了我很大的帮助。因为我前一阶段一直在想自己以后从 事专业的问题,而这个问题也是一直以来很不确定的。生活中总是充满很多意外,但是无论 如何,读很多好书和自己感兴趣的书籍是非常重要的。也谢谢你推荐的书,我会按照你成长 的经历一步一步走下去,慢慢看一些你推荐的书。 刘未鹏的书架: Asking the Right Questions 《学会提问――批判性思维指南》 学会正确思考是一切的前提。 《与“众”不同的心理学》 了解人类思维的缺陷和盲点。 A Rulebook for Arguments 我们日常的论证和推理其实是漏洞百出的。 《别做正常的傻瓜》 避免日常决策中的谬误。 《影响力》 顾名思义。 Mistakes Were Made (But Not by Me) 《谁会认错》 为什么我们总是会为自己的错误找借口? 《社会性动物(第九版) 非常经典的社会心理学科普书。 》 How We Know What Isn't So 你的信念有多少是不靠谱的? 《统计陷阱》 看了这本书你会发现我们的直觉是多么容易被欺骗的。 Why Smart People Make Big Money Mistakes-And How to Correct Them 《半斤非八两》 为什么聪明人也会犯傻?我们是如何被思维固有的弱点所左右的。辜新星 我想知道流星的美丽 是否值得去寻求 于是我心狂奔 羽化成黑夜的彩虹 蜕变成月光的清风 幸福了我很久 ―― 郑钧《流星》 引子:骑单车的故事 小时候看过一个关于单车的故事:爸爸教儿子骑单车,儿子总也学不会。爸爸看出了问 题所在,于是在再一次示范后让儿子看身后弯弯曲曲的车轮印,并语重心长地说:我儿,虽 然你看见别人骑车时车头很直,但那也是因为他在时刻调整方向,才能顺利前进啊! 故事里的儿子有没有学会骑车我不得而知,但这个故事一直都能让我在回顾自己的成长 历程时想起,显然是个好故事。 本科四年 定调:大一有点瞎忙,而后自己做主 【大一我是社团狂】 2002 年,我考入北京大学计算机系。能进入梦寐以求的大学,学习我当时觉得最酷的专 业,自然非常高兴。进入北大后,我就一心追逐起自己梦想中的大学生活:加入了校团委社 团文体部,跟着一帮虽然只比我高一两届但说话做事明显成熟很多的师兄师姐们,忙着认识 各个学院的朋友,忙着办各种文艺晚会,忙着管理北大超过 100 个学生社团;拿了把吉他就 拉人组成表演团体,参加了北大校内最火的新生文艺汇演,在北大百周年讲堂的舞台上过了 一把主唱瘾;成为了学院团校的积极分子,每期不落地参加所有的活动;还担任了团支部的 职务。我非常清楚地记得,大一期间,我每周光各种例会就有三个半。然而,大一也是学习 压力最大的时期,不仅各种基础课程数量多、难度大,而且几乎所有的新生都要面临转变学 习方式以适应大学学习的问题。所以,我当时的生活特别紧张,任何时候的感受都是一个字: 忙。 很快,瞎忙的结果就白纸黑字地送到我的面前,我的“高等数学”期中考试只考了不到 80 分。一纸惊醒梦中人,我突然意识到,我曾经梦想的自由自在的大学生活,也不是那么无 拘无束,至少还有分数这样的硬指标在衡量着我的前进或退步,提醒我不要迷失方向。在初 高中,我从老师、父母那里听到了太多次一个美丽的“传说” :现在努力学习吧,过了高考, 一切就都解脱了,大学将是你自由发展的天堂。现在看来,事实要让很多将这“传说”当作 最后一根稻草的高中生失望了。 大学的确提供了非常丰富的能力培养机会和广阔的个人发展空间,但归根结底,学习和 进步才是大学的主题,荒废其中任何一个都不能让大学生活过得充实而完整。 【好学长赐我财富】 既然已经觉醒,那就改变吧。我开始把大量精力投入到课程学习上:像高中一样进行课 前预习,增加了课后自习的时间,每天都在三教或图书馆待到关门。但是,我仍然感觉时间 不够用,学习的时候总感觉各种事情纷至沓来、压迫我的大脑,巴不得能并行作业同时完成 若干件任务。我很困惑,跟一个同样做学生会工作的师兄聊天诉苦,谈我面临的问题。他很 干脆地给了一个建议:做好短期时间规划。具体而言,要把每天把要做的事情分成 A、B、C、 D 四类: A――紧迫且重要;B――重要不紧迫;C――紧迫不重要;D――不重要不}

我要回帖

更多关于 熊出没李老板是好人 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信