我在南大的七年

逍遥右脑  2016-01-18 09:42

  
  文/刘未鹏
  
  跨进南大校门的第一天,我知道,我自由了。
  
  父亲是个对新事物有强烈兴趣的人,村里第一台电视机是他自己组装的,当时全村人都跑过去看,电视机只能收到一个台,CCTV。座机电话是第一个装的。大哥大刚涌现的时候,他也是第一个买来用的,那个时候的挪动电话真是贵得离谱。
  
  父亲告诉我的第二件最重要的事情是:碰到任何问题,找书去就行。他在自己的专业中完全是自学的。在不属于自己的专业中(后来买了电脑之后需要学习如何架设公司网站,如何网上营销,如何进行电子财务管理,如何应用各种作图软件制图等等)也全都是靠买书自学。
  
  为什么说到这两件事情,因为这是对我毕生影响最重大的两个习惯。第一个习惯给了我学习新东西的强烈念头,有了热情和兴趣,做事情就不认为累,就得意其乐。第二个习惯则给了我学习任何新东西的方式——不会么?查书去。(当然,学习一门专业并不完整通过看书就行,但这毫无疑难是至关主要的一个道路。)
  
  高三的时候,父亲买了电脑,我破时对这个神奇的事物发生了强烈的兴致,每期的《电脑喜好者》跟《电脑报》都会买来细细看,有时看到各种小工具、技能还会摘抄下来,回去在本人家里的机器上捣鼓。那个时候我并不晓得这样单纯的兴趣会把我引向一条专业的程序员途径。
  
  高三时间变得越来越紧,调配给兴趣的时间越来越少,但兴趣的火花一直都不燃烧。
  
  跨进南大校门的第一天,我知道,我自在了。
  
  这个自由并不是说我可以做任何事情了,而是我得到了一个重要的决议的自由权,即对于如何应用我的时间。
  
  高考的时候我报了计算机系,但分数差了几分,失之交臂,被调到第二意愿专业——信息与计算迷信。当时认为这个专业跟计算机相干的,结果发现是数学系,后来听不少同学提到都上了同样确当。
  
  这里呈现了一个歪打正着的事件:我本意并不是上数学系,假如当时知道这个专业是数学系,我可能就不会填报了。但恰是因为这个过错,我在数学系好歹也受了一些数学基本功的练习(只管这个训练的基本是大一上的未几的多少节数学剖析课,以及每次临考前宿舍哥们例行的“包夜”看书),回过火来看这个根本功在后来仍是帮了不少的忙,甚至有一阵子我对数学本身到了很感兴趣的水平。不得不说,这段学习的阅历是很锤炼形象和逻辑思维的。另一方面,艰苦如数学都学了,对其余学科就不感到难,不会望而生畏。
  
  这是我成长过程中的幸运之一。后面还会提到,还有好几回更大的幸运。
  
  大一上学期很快过去,应该是在大一下学期的时候,学校要开一门C++课程。我利用假期先把课本基本啃掉了,当时动机也很简单,先啃掉,就不用上课了嘛。
  
  另一件事情是我常常爱好去逛书店,看到侯捷的《深入浅出MFC》上面很多人说这本书好,我当时也对C++有一些基础认识和好感,所以就买下来啃了。一方面侯捷先生写的书的确图文并茂,深入浅出,有意思,另一方面理解一样庞杂的东西是个智力挑衅。所以看着看着倒是觉得兴趣盎然。却不知就这么和C++结下了不解之缘。
  
  这是另一个歪打正着:为什么说是“歪打”呢?由于MFC的设计也并不能说就是C++的Best Practice,另一方面若是以用为本的话也未必就要把MFC的原理摸个透。所以搞不好当初看来我就不会细看这本书。为什么说是“正着”呢?因为懂得一个费解的货色本身须要长时光投入留神力,无形中练了理解才能和思维膂力(专一),另一方面固然MFC不是最佳设计,但理解里面的代码却加强了对C++自身的意识,这是基础功;也增强了对C++的兴趣,这是动力,后来这个能源驱使了我去看了大批的系统底层常识,从操作体系代码始终看到硬件系统构造。
  
  大二发生了几件重要的事情:一是我在程序员上发表了第一篇技术文章,是剖析Boost源码的。我已经不记得什么时候、通过什么途径知道Boost这个库的了,总之是知道了,然后也是由于受到侯捷先生源码分析的影响,也去看源代码,发明很难,越是难就越是觉得有趣,跟踪代码到临晨四点居然越看越精力了,后来火速写了一篇源码剖析。发给《程序员》杂志的技术主编孟岩先生,孟岩先生给了很大的激励,于是我很来劲。后来一鼓作气分析了N个库,写了一系列的Boost源码剖析的文章,在网上随处可以搜到这个系列。
  
  这是第二个歪打正着,按理来说,研究语言技巧并不是程序员最佳的时间投入方法。所以现在我可能不会去做这件事情,会以为有更好的时间投入门路。但当时就一头扎了进去。为什么说也是正着呢?因为虽然这也许不是最佳的投入时间的措施,但总归比什么都不专注要强得多,至少这么一深入,对语言的缺陷和陷阱有了更深入的认识、也锻炼了对代码的亲热感、跟踪调试的耐烦(是的,耐心,而不是技巧)。
  
  所当前来我在博客上总结自己学习编程中走过的弯路,孟岩先生说到,是不是弯路,不是那么轻易界定的。
  
  确实,兴许真的有更好的路,但事先真的很难断定哪条路是最优的,咱们能做到的,是把一条路走透了、走深了,只有不是一条太不靠谱的路,深刻的进程中总会有许多的播种。(励志 www.zgyuwen.cn/lizhi/)只要不是太固执,擅长检查,总有一天也会逐步意识到越来越靠谱的路。
  
  除了发表第一篇技术文章之外,大二我还用业余时间做了一些技术翻译,寒假里我坐在家里天天晚上翻译半章《Effective C++》,当然,后来我把译稿提交给出版社的编纂时被告诉文笔还显僵硬。
  
  统一时间,我继续啃N多C++以及底层知识的书,一段时间我的书架上全是这类书,基本不像数学系的学生。非典那阵子,把饭钱都拿来买了书,为什么买得这么疯,也是因为受父亲的一个影响,他告诉我买书不用疼爱,因为是深远投资,收益远弘远于这点金钱投入。那段时间我边看边写一些代码玩,有模拟Windows中心编程的小程序,也有尝试并失败的小游戏,也有拿来对宿舍玩的游戏文件分析的工具,还有为上机考试写的库,总之玩得不可开交;不像很多著名的程序员在学校里面就写了被广为使用的工具,那个时候我完全没有这个意识,也不知道什么是开源,自己自娱自乐罢了,所以没有系统训练编码量和编码素养,比较盲目。
  
  大二下半年还发生了一件重要的事情,我在CSDN上开了一个博客,开始写学习C++和编程的过程中的一些总结。这个博客我一直写到今天,随同了我全部7年的学习和成长,回过头去看就像时间机一样,可以看到一途经来我都关注了些什么东西,是怎么想的,以及对一些事情的见解是怎么转变的。这些东西如果不记载下来,就会逐渐忘掉,也就无奈参照过去的自己,对将来提供更好的鉴戒了。所以我一直把记载当做一个很重要的工具。另外我也通过这个博客认识了很多友人,得到了很多的辅助。
  
  后来,学校供给了转系到软件学院的机遇,我即时报名了。后来的两年在软件学院渡过。但实在反正我也是自己部署时间,所以无甚差别。
  
  大三大四发生了几件重要的事情:一是光荣先生邀我合译《Imperfect C++》,我很乐意的接了下来,可没想到这本书比我设想得要密度大得多,六百页,而且排版也很密,我给自己安排了每天6、7页纸的量,或许花了半年多译完。旁边有一段时间停止,荣耀先生给我鼓劲,告知我一个重要的方法:如果觉得做不下去了,就硬着头皮保持做,然后就相似于麻痹了,适应了,那种望而却步的感觉会逐渐主动退去。惊人的简单,但事实就是如此,硬着头皮,过了那个情感上最艰巨的时候,也就适应了。这本书译完之后,还是有不少的收成,但我总觉得对性情上的磨难才是最有价值的收成。
  
  二是我开端看英文版的书。之前,因为高中不靠谱的英语教导的起因,我恨逝世了英语,大二的校内四级课程还挂了科,直到大四才补考。但对技术本身的酷爱压过了对英语的反感,我还是硬把一整本影印版啃下来了,而且津津乐道,这本书就是Jeffrey Richter的《Applied .NET Framework Programming》。这个事情的重要性在于,后来我就不再恶感和胆怯英语了,这是其一,其二是我开始意识到英文世界的技术资料有如许丰盛,所以虽然本身看上去不是一个太起眼的事件,但却是我获守信息方法的一个Tipping Point,一旦纯熟控制了语言这个平台,背地就是一扇大门,通向一个海量的信息源,后来我的信息获取绝大多数便来自于英文,其中尤数wikipedia和英文版的书为多。另外还有一个收益后面会提到。
  
  大四快毕业的时候又发生了一件事情,微软的Eric Jiang通过我的博客找到我,推荐我去微软面试,我马马虎虎就把粗拙的简历给发从前了,差点因为简历太毛糙被HR直接过滤掉。远程电话面了两轮,远程Coding一轮,然后记得就是飞到北京面试,住在北航接待所。北京的面试又面了好几轮,有考核底层知识的、有考察C/C++的、。Net的,还有考察算法的,编码素养的。总之就是公认的基本功考察。最终我还是没能通过面试。个人自己后来总结的论断是算法基本功太差,连什么是动态计划都不知道,编码素养也不够。这部门也是因为本科的学习办法太业余,什么好玩干什么,倒不是说兴趣驱动不好,只是缺少系统的规划,不明白也不关怀这个范畴的蓝图,也弄不清什么是重点。后来在读研的时候恶补了一把算法,好歹弄清了一些基本的概念和思考方法。编码素养的问题也是到了读研的时候才开始思考和学习,现在仍在学习。
  
  另外,在本科阶段,其实我也挥霍了很多时间,事实上,是只花了很小一局部时间来学习。之所以还多少学了点东西,完全是仰赖了专注的习惯。而这个专注的习惯其实又是从小受父亲潜移默化的,父亲会花一终日琢磨一个问题,父亲跟我说过他以前组装电视机时的故事——所有都好像组装准确,但电视机就是不工作。他苦思冥想,不得其解,当晚,深夜从睡梦中醒来,想到了问题的关键所在。所以,我在啃一些底层知识时如果弄不懂,也会一遍遍读,而后用走路吃饭坐车的时间在头脑里一遍遍去揣摩。我有很多重要的习惯受到父亲的影响,这些习惯自己个别发觉不到,但却默默影响了平时的一点一滴的时间分配和学习轨迹,这些习惯从纸上很难学到,但耳濡目染却会天然而然地学会。
  
  每当有人觉得我本科就做了不少事情的时候,我就会说其实我本科真的浪费了很多时间,而另一方面,这也阐明,要把握一门专业知识,其实每天一点时间,专注、积聚和坚持不懈也就够了。后来研究生阶段才算真正开始惜时了,于是经历了两年密度很高的学习和思考,心智才成熟了不少。
  
  大四的时候,和很多人一样,我也考研,因为一来也很茫然,二来也盼望可能持续有一个宽松的环境继承沉迷在自己的兴趣中。但四年来我都是自己安排时间,逃掉了无数的课,已经对模式化的做题测验产生了抵牾,所以考研的复习也没怎么当真准备,那年考研的数学题又偏难,一下慌了神,结果竟然把一整页题压在稿纸下忘了做了,心理准备有多不充足可见一斑。考完数学我很懊丧,那么大分值的题目没做,数学确定过不了了,接下来的专业课就没去考了。后来想想其实还是应该去考一考,多少能为下一年积攒教训。
  
  后来就工作了,没去成微软,经同窗张振推举,就去了南京西门子。心里的打算还是边工作边考研,为什么考研,动机也简略,我心理还没准备好,本科只顾着埋头学好玩的,也不看路,不知道自己想要什么样的工作,想做什么样的事情。去西门子之后更加觉得如此,觉得效力很低,做的事情也并不是我愿意的,每天还要在班车上糟蹋两个小时,于是没过多久就辞掉了工作。打算温习考研。那个时候大略还有半年多的时间才到考研,所以我半途不紧不慢地又翻译了《Exceptional C++ Style》,占用了不少时间,到最后时间很紧了,就剩两三个月,我才开始认起真来,回忆起来这是蹩脚的时间治理。成果我不得不作了最坏的盘算:顶多调解去软件学院读研(我报的是计算机系),斟酌到我反正是自己支配时间,差异应当不大。幸运的是,终极一分不差地过了线,算是蹭到了盘算机系里。虽然如斯,还是觉得这种惊险不要产生的好,以后或者其他事情上就不会有这么幸运了,及早准备老是很重要的。
  
  读研期间的两年半,是我自己觉得心智年纪成长最敏捷的一段时间。这里也有几个很幸运的事情。一个事情是我的导师陈家骏先生给了我很大的自主,于是我得以有时间支配一些重要的学习,这段时间对我来说很重要,我学习和思考了很多东西,为个人以后的发展作了很多准备,倒是没帮导师做什么事情。所以,硕士毕业分开的时候是既感谢也愧疚。
  
  另一个事情是认识同试验室的师兄陈怀兴,严厉来说是他先来找我聊天,可见那个时候我依然还是没有意识到与人交流的重要性的,后来,树立了TopLanguage讨论组之后越发意识到与别人交流的重要性,也开始主动寻找和参加交流,愿望以后自己也能组织交流。陈怀兴对算法很有成就,也是TopCoder上的常客和牛人,那个时候我也正在为以后的工作面试准备一些算法基础,所以时常找他讨论,获益很多。有一句话说:看一个人,只要看他读的书和见的人。还是很有情理的,这两者是一个人成长中最有价值的信息起源。
  
  研一下半年,女朋友找工作的时候需要用到营销方面的知识,于是我去替她找书,偶遇《影响力》这本书,这本书翻开了我的视线,让我开始关注一个很有价值的领域:我们如何思考,如何正确地思考。这个领域有很多有意思和有价值的书,我利用近一年的时间,陆陆续续看了近40原形关的书(我把这些书收拾了之后以豆列的情势放在豆瓣上),对思维的特色和缺点,以及如何思考有了很多的懂得,这些知识后来很大程度上使我更清楚地认识自己,和自己在学习和生涯中面临的各种问题。
  
  也是研一下半年,我建立了一个Google Groups,起名TopLanguage,一开始的时候是因为平凡没人讨论问题,憋得好受,生机有人能够说两句,无心插柳柳成荫,后来这个讨论组的交流越来越多,现在已经近两年,组内成员超过了4,000人,两年里我也从中收益颇多,其中最大的收益有两个:一是和人讨论能够激发自己进一步的思考,也促使自己更清晰地表述自己的观点或问题。倒不是说别人就必定告诉你什么新东西,而是讨论对你自己的思维的刺激。二是交流中认识了不少朋友,后来快毕业的时候也受赞助颇多。我一直把TopLanguage的创立看作研究生阶段做得最有意思的事情之一。
  
  此外,我有意识地提前预备了英语,因为我信任如果想要去好的外企,口语不外关很可能成为一块短板(当然,英语作为承载最多技术知识的平台语言还有更大的价值),包含阅读、书写和口语。我想了一个计划,能够不必额定花时间来学习英语:浏览的训练蕴含在平时的英文技术材料的阅读中,尽量读英文的,一来英文资料更一手和全面,二来也顺便练阅读。书写的训练蕴含在去国外邮件列表发技术贴和自己写的英文博客文章中。书面语的训练则蕴含在平时的娱乐中——美剧,有一个暑假我简直每天开着Friends睡觉,另外学校有国外过来的团队报告我不再错过,而是自动加入,有一次还带他们出去逛南京,说了一天英语,回首在路上听中文都像英文。虽然和本国友人交流的次数不多,但仿佛对白话感到的进步还挺大。后来在微软亚洲研究院的面试最后一轮就是英语的,而且是偏技术的,好在提前筹备了,所以究竟还是顺利地表白出了想抒发的意思。
  
  去微软亚洲研究院口试,是因为荣幸地认识了微软亚洲研讨院技巧翻新组名目主管邹欣先生。邹欣先生和他组织的团队在那段时间写了《编程之美》,书中有良多很有意思的标题,而我那段时间恰和陈怀兴讨论算法,在探讨组上也组织了专题的讨论,有了一点浅显的思考,于是和邹欣先生邮件交换,因为对邹欣先生的技术立异组做的事情很有兴趣,所以找工作的时候便向他自告奋勇。
  
  承蒙邹欣先生推荐,时隔三年,我再次取得了去微软面试的机会。这一次,由于研究生期间作了一些久远准备,所以心里有底了很多,也就比较沉着了,由于当年知识体制的破绽被我花工夫补了补,所以面试比拟顺利。面试的时候邹欣先生更为具体地先容了技术创新组的工作,我更加感兴趣了,所以尽管已经有另外几个也不错的抉择,但心里还是迅速地做了决议。大概一周后,HR告诉Offer,我绝不迟疑就接收了。
  
  我想,虽然有很多人本科就清楚自己想做什么,我多花了两年多,总还不算太晚。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 lxy@jiyifa.cn 举报,一经查实,本站将立刻删除。
上一篇:一个大学生从月薪3500到700万和他的情感经历(一)
下一篇:美国大学生的“七件事”

逍遥右脑在线培训课程推荐

【我在南大的七年】相关文章
【我在南大的七年】推荐文章