[toc]
犹记得还在感慨2012这一年在我人生中的重要性,蛇年已过半。
七月的北京彻底进入了盛夏,每天早早的,整个城市已被照得亮亮的。坐在北大的图书馆里,四周堆满了书,我只想静静地追溯这段冬春夏的时光。
钱钟书先生曾经写过《围城》,外面的人千方百计想进来,身在其中的人挣扎着要出去,这就是世间常态。而我,正躲在一个外表看似华丽的篱笆里。我非常崇拜的一位已故的天才曾说过:你的时间非常有限,不要因为别人的评价和世俗的眼光而浪费你的时间,follow your heart.这位天才用他的一生在实践这句话。看这位天才的传记是在12年寒假考完研等分数的时候,虽然很受震动,但之后我还是依照虚有的外表做了人生的选择。
有时我会感慨,如果当初考研我没有考那么高,或许就不会选择到北大计算机系读软件,如果当初少考40分(考研总分500分),估计就会选择调剂去智能系;如果不是因为北大计算机系比较强,智能系比较弱,而是遵照内心的选择去自己更感兴趣以及更看好的人工智能方向,我或许不会像现在这样累,或许会更开心吧。
诚然这种假设是不存在的,如果当初如此选择了,恐怕那个篱笆外的我可能会一直对篱笆内的计算机系念念不忘,或许此时正在抱怨本方向实力不济等等吧。
所以反复地悼念当初的决定是没有意义的,这只会增加自己的浮躁,只会让自己愈加的不开心。佛家一直在强调“活在当下”,只有以初学者的心态去用心地去品味当下你的所做所遇所感,你才能体会到每个事物各自独一无二的特性,从而用一种感恩的心态享受生活中的每一个细节。故打好手上已有的牌,尽量不去比较也尽量不要着急,人生路还很长,尽量让自己不那么难受。
# 半年总结这半年就像我之前的微博里说的,应该是高考之后最勤奋的半年,基本天天来实验室,每天要么code,要么看数学,这半年全都在整专业,完全是在补本科四年不上进耽于它务的大坑。不再那么关注感情,套那句恶俗的话就是感累不爱。每天北大-家里两点一线,朝出夕回,生活重心完完整整地放在了北大。虽然时常会失眠,但不再像以前那么暴躁地各种抱怨;虽然有时情绪会非常低落,但已经能放在心里自己慢慢消化。
这半年里大概做了那么些事(对技术细节不关心的同学可以直接跳到下一大章):
1.学习了python
并不是因为今年是蛇年,而是单纯觉得这个词读起来挺有feel的,另外之前常用的C++太重型了,我需要一种轻量级的脚本语言来做一些简单的小事,杀鸡焉用牛刀,总不能常常因为只是要算矩阵的特征值,就让VS2012和Matlab2013a 强势登场吧,咱们用numpy就可以了。此外,多掌握不同类型的语言也有助于扩充视野体会其它的哲学。
2.做了一个小型操作系统
嗯,没错,就是Operation System,而且带有图形界面,并因此专门去学了X86汇编,好吧,这是补本科的大坑。自己一个字节一个字节地码引导程序,码图层,码段号记录表,码中断机制。当桌面上能够显示键盘的中断和鼠标的位置信息后,我稍稍自得了一番,就暂停了这个工程。
3.面试
前一篇博文讲了面Yahoo!、网易游戏和Amazon的面试经历,之后我又面了VMware,就简略讲下VMware的面试经历吧,它对实习生的面试分为两轮电话面试,然后是4轮onsite面,一共6轮面试。最后一轮的时候那个经理跟我说,之所以对实习生如此严格,是因为他们去年校招来的人效果不好,所以今年想从实习生中直接培养要转正的人,而不需要只是临时要干活的人。两轮电话面问了简历上的一些项目,然后对底层进行了全方面的扫查,onsite面第一轮是个很年轻的哥们,问了我所做的OS,并讨论了相关的东西;第二个问了几道程序题,和算法无关,就是底层操作的;第三轮面智力题,丫是用英语讲的,这轮我相当狼狈;第四轮是经理面,问了一些兴趣爱好,以后发展规划之类的东西。一上午面完四轮,9点起,快1点的时候结束,面完完全虚脱了。后来我拒了他家的offer,原因是实在是被高等体系结构课给虐得完全彻底对底层产生了深深的厌恶感,这位教授真的很强,或许他太迫切想把他知道的都告诉我们,所以在压根不知道这门课对非体系结构的人又杀用的情况下,集体被虐。此外在做操作系统的过程中,因为其繁琐,因为其根本是一门管理学科,照组里博士师姐说的话“软工中起最大作用的是哲学,相对来说数学没那么重要”,尽管我很内向,但我真的不想每天工作的第一件事就是去探究数据流根据大端小端的区别应该如何分别处理存储数据之类对我来说无趣的活,虽然它很重要。
4.看完TAOCP第一卷的三分之二
看TAOCP的一个原因是因为网易游戏的面试被虐,我犹记得当时那个清华博士问我算法怎样,因为网传“精通C++”的面试告诫,我以为我说算法还不错,他会问我超难的,于是我就说马马虎虎,然后他只问了一个算法题:举个例子说明什么是动态规划。这。。算。。什。。么。。算。。法。。题。。在这场面试让我知道对刚毕业的人来说,精比广更迎合市场的需求。我大二就买了TAOCP,但因为受困于汇编,所以我直接卡掉了;在用汇编写一个操作系统后,我已习惯用汇编来表述,虽然TAOCP用的是MIX汇编,但我感觉更漂亮更简洁。盖茨说谁通关了TAOCP,就给他本人寄简历,可见这套著作的份量。于是因为名人效应加复仇情节,我开始看TAOCP。大二的时候虽然同时买了中文版和英文版,但完全把英文版作为摆设,压根就没翻开过。当翻开英文影印版后,不得不感慨排版太漂亮了。第一卷分为数学基础,MIX汇编基础和信息结构三大部分,我秉承着宁可在一页上费一周,也不囫囵吞枣而过,看完了前两部分并做了60%左右的题目,我不得不说我被这套著作深深吸引了。而看数学部分的时候我明白了我要做的事情必须和数学又关系,因为数学会让我开心。我相信单靠完全理解TAOCP我明年就能虐死网易游戏的面试官,反正我只是想去踢馆而不想去他家工作。
5.node.js
好吧,这是组里的活,用它做一个需求工程方面的工具,虽然还在做,但没有太大热情,就不细说了。
6.AI相关
我很看好AI尤其是其中机器人和智能计算方向的前景,不过机器人方面的课程在工学院,而且和那坑爹时不时要点名而且很无趣的面向对象课(又是一门无聊的必修课,北大计算机系研究生课程不管必修选修没有一门数学课,不是号称理学学位么,这正常么)冲突了,然后其涉及太多的力学和硬件等内容,实在力不从心就放弃了。因此在组里工作、阅读TAOCP之余,我在抽时间看智能计算和机器学习这两个领域的著作,前者的仿生学背景和后者的统计学背景都是让我感兴趣的原因。
# 下半年规划1.先暂停TAOCP的阅读,将阅读《具体数学》作为优先级别,这是TAOCP数学部分的扩充,讲得更详细,故计划先进一步夯实数学基础后再重启TAOCP进程,这是下半年的核心工作;
2.继续研究智能计算和机器学习,前者是继续研究北大计算职能实验室翻译的那本《智能计算》教材,后者一方面在Amazon研究其实际的应用情况,另一方面先看完《统计学习方法》并同步实现《机器学习实战》以及《机器学习实践》上的程序,此后再进入研究PRML之类的更理论的著作和相关的论文;
3.组里的工作,毕竟硕士生就研二这一年是真正干活的;
4.素描,小时候很喜欢画画,不知道还能不能挤得出时间,希望吧
# 需要思考的问题1.工作
明年就要找工作了,如何选择是个很重要的问题,民企的加班,外企的华人天花板以及央企的官场氛围都是需要慎重筛选的,软件工程师能够让你成为一个体面的中产阶级,但正像《黑客与画家》说的,因为其难以丈量实际价值和没有扩展性,使得其瓶颈是课预期的,尽快有个职业发展的轮廓是当务之急。有个关于如何寻找自己真正想要的方法:把自己关到一个不会有人打扰的小空间,一张纸一支笔,慢慢地写下你的目标,当把你为了满足世俗价值评价中的目标逐步写完之后,会有一个让你热泪盈眶的目标,那是你真正所想的。我依这个方法做了,我的目标是:在这一生,找到那件能够让我深深疯狂的事,为之做出日后想起会感动的热泪盈眶的奋斗,做出原创的东西,影响世界改变世界,为人类留下这份思想遗产。不管结果如何,我都会像我崇拜的那个人一样,努力去做到这一点。而很显然,做修修补补的螺丝钉是达不到这个目标的;
2.工作地点
来北京快5个年头了,作为一个南方人,在这样一个北方人占大多数的人城市里,越来越想念江南,那些生活习惯和我更接近讲着方言而不是各种口音普通话的人。我爸我妈都不习惯北方的气候北方的环境,他们常说,如果我去上海工作的话那多好,不仅离姐姐近,而且是他们熟悉的环境,这儿污染太严重了。所以接下来一年,在努力拥有去国外工作能力的同时,也要仔细考虑一下到底去哪发展的问题。