一晃一年时间又过了。回顾一下大三,感觉过得还蛮充实的。至少每天都在学习新的知识。还是来记一记流水帐吧~本来准备开学前发的,结果今年很多校招都提前了。。估计都是因为阿里这么早。运气不错的就是阿里笔试过了,13号还要面试。说实话也没准备好,很多知识都没来得及复习。所以就当刷经验吧~
实验室~
大三上是个比较忙的日子。看了不少书,感觉离校招还有段时间,所以好好的看了些操作系统和些比较基础的书。因为考研,所以有个还没搭建的实验室就成了学长们的考研室。很安静,所以基本看书都在这里看了。可能安静到一定程度,对效率的影响就小了。编译原理也是参考了好多书没看明白。。只能弄懂的大概。。SICP也看了,但后面几章渐渐的就看不懂了。。以后有时间再读吧。这学期开始还在实验室睡了几次。。但有人管,所以后来就没去了。。渣学校就是渣,我们在实验室又不是做坏事,都是在学习啊!多么刻苦啊,我都感动了。。。但管理人员不同意。。而且即便是实验室里的人也不见得就是技术很好的,看视频,玩游戏的也一抓一把。。。所以下学期就没去了,自己在寝室和图书馆学。
OS内核~
大三上自学了AT&T汇编,开始准备自己进这个专业前承诺的写一个OS。然后寒假就开始看~主要参考书就是《一个操作系统的实现》和《30天自制操作系统》。说实话,第一本不是新手看的,理论讲解的并不是很清楚。。第二本也只适合新手玩玩,屏蔽了底层很多细节。其实寒假没太看明白原理,在家里又学不进去。。每天盼着看爱情公寓,刷B站。。。真堕落。。开学了就开始看书,写操作系统需要知识的小结,后来发现实现过程中对于图形界面的内容搜不到资料。。有也是纯英文的(这也让我产生了开始学英语的计划,准备校招结束就开始。)。后来用纯汇编写系统遇到坑过不去了,现在来看实际上是流水线没有清理,对段选择子的理解也不到位导致的。因为自己还准备出去实习,所以三月底就出去找工作了(后面写)。因为在学校总是要记着去上机,所以这段时间主要在看Linux相关的东西,把CSAPP仔细的看了遍,还简单的整理了一些内容。《计算机体系结构:量化研究方法》、《现代操作系统》选着读了些,以后有时间还会再读一遍。还把Linux系统调用仔细整理了一遍,说起来差不多能记得,但没练过现在我都差不多快忘了。。。。再开始写系统就是6月底的事了。也找了本关于x86汇编保护模式的书看。对于想做操作系统的,我也推荐先去仔细读一读《x86汇编语言:从实模式到保护模式》这本书。写的真是太清楚了!!!所以这也加快了我的步伐,7月份看完就开始写了。然后又因为刷题,耽误了orz。。。现在只做到把虚拟内存给解决了。。。本来准备9月中旬再加上键盘IO,简单的文件系统和一个shell的。。结果校招都提前了。。没办法,这几天争取写一点吧。写好以后,会写些博文当作写内核教程~也相当于是整理了一遍知识~
找实习
我是3月底出来找实习的,也没坚持几天。就这几天我发现武汉IT行业不是特别发达。。所以基本都是些小公司。。而且招人都是做网站,用java做简单开发的。。。投了将近20份简历也就大概3,4个电话。。。最后只面试了第一家。。当然这一家决定了哥要准备校招的决心。。因为是小公司做的内容我也不太感兴趣,我搜索了很多过来人对选公司的观点。我自己学的也比较底层,所以感觉做那就浪费了。。最终决定还是校招,虽然那家公司还是有心挽留我的。估计学校里的老师和同学也对我有点看法了。。所幸周围的对我还算了解,知道哥比较努力,也就一起准备校招了。
校招准备~
暑假开始还是控制不住玩了款游戏,放松了下。玩的也比较舒服,也因此能坚持两个暑假。说实话我都觉得自学的东西太多了。。也不太容易计划,但想来想去自己适合的也就那么些岗位。因为自己OS和体系结构研究的比较多,只好走服务器开发或内核底层开发的路线了。加上这些东西真正能用到的就只是大公司,所以还要抓算法。算法我们专业没有对应的课,只有数据结构,纯粹靠自己学。。还好之前大二刷了150道题,也有些基础。今天刚好刷完leetcode150道题目,也算是对算法小有心得。另一面就是OS了,本来还说自己总算也有在github上的项目了。。但校招提前了。。也没多少时间改了。。不过我面试还是把机器带过去展示,看一看效果如何。感觉能写一个OS内核面试一般公司应该没什么问题了。暑假还看了点Linux内核的书,感觉看内核真是各种长见识啊!!如果这一波没面上就准备边写OS内核,边看Linux内核源码了。杂七杂八还看了些编译和数据库的书。还看了《大话设计模式》,感觉还行。至少有初步的认识。原来以为设计模式很高大上,学了之后也就那样吧,就是模式确实有些多。。。而且好像底层编程也用不到,函数指针走天下~要熟练灵活的使用设计模式估计也只有等到我的项目经验比较丰富之后吧。还看了《编程语言实现模式》,全部专业课也就这门学的最差了,还是想补一下吧。这本书感觉还行,至少让我明白编译器有哪些部件,前端,后端,语法树等。还让我知道虚拟机就是个模拟出一套指令集。虽说编码部分还是有些不懂,多少也从整体上把握了语言的翻译工作机制,建议有兴趣的同学读一读~最后还学了python。。感觉好不习惯。。。照着书后面敲了些代码,也没什么感觉。。。以后有时间的话做点小东西吧。
下面是这一年记下的一些感想
1.看了《幸福》课之后反而有段时间没有了动力去追逐目标,可能与其宣扬的自我接纳的概念有关吧。在知乎上看到了一个问题,第一的回答正好就说明了这一点呢。http://www.zhihu.com/question/20011025 看来找到自己真正喜欢的事情真的是很重要!
2.多造轮子。对打基础来说帮助不是一点!
也是我写自己的内核的感觉,因为这些东西不仅本身就难实现,而且一些机制是通用的,
3.提前开始准备很重要。
我发现我这个人如果临时上阵心里就会很慌。虽然表面很镇定。看了李笑来的《与时间做朋友》上面有一句说的很好:没准备好就没有机会。大意如此。这次9月份的校招就当刷经验了。当然,能进更好~
4.同一时间内只做一件事,并且做绝
很多人说每天积累很重要。但以我自己大学这么几年实践来看,对于重要的内容还是早点拿出大块时间来学。平时一些软技能可以一点一点磨,比如做菜什么的。但是对于真正的技术,还是一段时间内高强度攻克比较好。并且是一整套,包括完整的理解--联系--总结--实践--抽象--总结,这么几个过程。当然这是以我自己的感受得出来的过程,具体每个人还是自己体会吧。现在来看。。自己好像很难说做全这一套动作。。。以后尽量争取吧!
5.学技术先看重要的。
这一年写博客也觉得自己太罗嗦了。恨不得所有的知识点全部都记住,但实际上即便写了那么多完整的总结照样记不住。。。而且在细枝末节上纠缠过多。常用的东西纠结细节无所谓,但如果只是想先熟悉一遍,以后还不一定会用到,纠结就成了浪费。我也明显感觉好多事情都是因为这一点才没时间做。如果一门语言创始人有写书,还是多看看吧。可能他们的一句话比你读上好几本书都来得明了。先抓大头,设计思路,细节都是次要的。
6.努力学英语吧。
也是看了很多招聘要求和知乎大神的回答才意识到英语重要性的。自己英语这么差,stackoverflow,github,coursera之类的也就只能偶尔逛一逛看一看。。想发个言都不知道怎么组织语言。而且在写操作系统的时候也是。。大部分都是英文的资料中文的资料太少了。有些很想看的网络课程也因为没有字幕只能听的似懂非懂的。语速快一点生单词多一点就不行了,学英语也要提上日程了!
7.学东西不是看你记住了多少,而是提炼了多少
就是说内化了多少。程序员工作中遇到的细节总是很多的,但很多都不用记。最重要的还是提炼出抽象的过程和观点。这一点在我写操作系统的时候真的是很能体会。CPU提供的细节由于历史原因繁杂得要死。但是总的思想你弄清楚了,细节都是查资料就能解决的。还是尽量养成习惯吧。
8.花钱买工具增加效率别吝啬钱
学校发的平板机用了2.5年。真的是思路没有打开。原来以为手机就是个打电话的工具,现在来看手机已经完全变性质了。买了手机之后真是方便多了。印象笔记,看微信公众号,doit,知乎等。时间管理也用上了doit,比以前每个事情一个个的写要方便多了。特别是批量生成任务真是方便。以前还时不时的忘记特定日子做什么事,现在每天任务都可以记录,做完并且不会漏。而且还有回顾,可以看一个星期做了哪些事情,随时调整,真是方便多了。印象笔记的搜索功能也不错。现在也在一步一步把原来搜集的资料整理到印象笔记中。就是流量有限制很不爽。。。刷知乎看新闻什么的也可以在买饭什么的等待时间看一下,真的节约了不少时间啊!!!
9.玩就要尽兴
这一点真的。原来上高中就是强行戒网游,最后也始终断断续续的没戒下来,大学头两年也多次想重新打开再玩,每次都玩个好几天,然后自己良心过不去又停下。最后这个留在学校里面的暑假毫不犹豫的买了个高级帐号玩,果然心里舒畅多了。也就持续了那么两个星期,基本就再也没怎么想过那个游戏了。回忆一下原来玩的游戏,基本也就是这个规律。如果在朋友间玩到了最好,我对这个游戏基本就没什么兴趣了,之后也不会想起,如果被虐的很惨也不会玩。。但玩得比较投入又被别人虐的游戏我就很想再玩,网游又是个不耗钱就耗时间的东西。。。也算是对自己更加了解了吧。
10.读经典
就算难也要从经典开始看起。这几天把看过的书添加到豆瓣读书中,发现自己在选书看的时候浪费了不少时间。当然,主要还是因为网上推荐的书在学校的图书馆没有。编程这东西学起来主要还是很多概念不清楚。入门的好书真的是很少。。买经典书的钱还是要省下来买的。。。吃过亏就不能再吃了。
11.注重复习
实际上随着对概念的不断学习,原来看的书中内容会有新的发现。和一般的数学物理书什么的不一样,编程这个东西感觉是螺旋上升的,学了后面再去看前面会有更有收获。所以书读一遍就想学好是不现实的。我也得考虑大四趁实习工作不是很忙的时候回顾整理一下原来看的书中内容了。
12.刻意锻炼心智
这一点是看了李笑来的《把时间当作朋友》才有所感触。自己确实很多时候生活的太过本能了。行为不完全受控制,被环境和习惯所控制。原来看了《少有人走的路》感觉也比较深,但可能这本书的点比较全面,针对我当时的样子,不是特别受用,反而是李笑来的书看着很有感觉。多思考生活,多对细节进行试错,这才是成长中最重要的东西。
13.自制力不行别逞强
真的。在家学不进去就不要在家呆着了。别太看重自己的自制力,它往往不可靠。暑假开始就是,本来说把自己攒的钱租个房子写代码看书的,还是因为穷没租。结果浪费了大概10天。果断的跑到湖北省图书馆去了。效率就高度多了~~~也看了好些书,也在图书馆把我的小内核给编出来了。也算是不枉车费和餐费~~~
写了这么多东西,反正自己是把想写的都写出来了。这些话也都是写给自己的,估计外人帮助不大吧。但愿校招能有个好结果~