var
来源:知乎作者:server发布时间:2015-09-24点击:3576
我立志做一名好的程序员。大一自学了不少东西,但杂而不精。随着学习的深入,我愈发感到迷茫,做一个优秀的程序员要了解的东西太多,数据库、算法和数据结构、各种语言等等,要精通任意一门都很困难,更何况精通多门。
问:知乎上的程序员大V是怎么过大学生活的?
知乎程序员
蓝色
我的大学,其实接触到的东西有很多,但是我自己踏踏实实掌握好的,就那么几门基础课,语言就C,C++和Java。但是很遗憾的是,似乎现在已经很少用Java了,主要都是在用C++了,偶尔会用Python爬爬虫分析一些有趣的数据,同时帮助我做一些有趣的,重复的事情。
在大学中,我觉得我掌握的比较好的是操作系统,数据结构与算法课程,计算机网络和计算机体系结构都算熟悉吧,数据库我觉得我只是皮毛水平,真是很惭愧,而编译课程我是属于研究生再认真踏实学了一下,然后在实际工作中再慢慢加强。但是,我觉得这几门课程都是应该好好掌握的,这些课程在后面其实都是很有用的。
操作系统我当时读了两本书,一本是教材《Operating System Concepts》(7th Edition)和Modern Operating System,我觉得Modern Operating System这本书会更加有趣,从文字也感觉作者也更加的自信,似乎在说在OS领域,我什么没有见过,我就是最牛的大师,听我的没错。而Operating System Concepts这本书是比较传统的国外教材味道,不能说不好,但是我个人会更欣赏Modern Operating System,我喜欢Tanenbaum这种自信。然后,在大学的时候,我做过一个小的操作系统内核帮助我学习操作系统,而我当时也调研过很多国内外高校的操作系统实验,我非常推荐MIT的xv6,xv6也被国内外很多高校采用。xv6的特点在于其遵循了UNIX Version 6,使用了很短的代码完成了设计,并且可以跑在Bochs和QEMU,然后看到效果。这是xv6的网站:6.828 / Fall 2014 我强烈建议学操作系统的同学,认认真真的做这些实验,一定可以收获非常多的东西。
数据结构我学的很杂,其中一本是教材《Data Structures and Program Design in C++ (豆瓣)》,这本书我觉得习题很有价值,若能认认真真理解并且完成,我觉得基本上就够了,但是我自己当时也做的不够好,这是我很遗憾的事情,现在也发现还是大学有更多的时间静下心来读书与研究,工作以后无论怎么挤时间都不如大学那么多了。而我也还读了很多杂七杂八的数据结构与算法书籍,但是如果要我回过头来看,我觉得除了这本教材,再加上算法导论弥补教材缺失的算法部分,我觉得就完全够了。
编译原理这一块,我当时用的是虎书学习的,但是现在我觉得《Engineering a Compiler》(2nd Edition)更合适,若不是专门去开发编译器,我觉得这本书就够了。而如果是专门开发编译器,或许还有很多需要学习,这里就不列举了,因为我觉得我也还有很多不足,需要学习的地方。
C++这一块,我觉得算我比较强的一块,也是我最感兴趣的一块,这种兴趣是比编译器更强烈的。我2008年9月11日,大一第一天拿到的第一本书就是C++语言的教科书,所以这似乎犹如一种情结一样。当时的教材名叫《C++ Program Design》,虽然以我现在的观点来看,这本书我不再推荐了,因为确实太老了,而且的确也有很多不足的地方,但是在我心目中的确有特殊的地位。而若现在是新学C++的同学,我觉得Accelerated C++, Programming: Principles and Practice Using C++, C++ Primer等都算比较好的书籍,而有关学习C++的书籍的回答也太多了,我就不再赘述了,而唯一要强调的是《The Design and Evolution of C++》这本书一定要读!
而大学中,我也的确接触到了很多应用层的东西,Java EE,Android等,我也去实际开发过项目接触,但是从我的体会来看,我还是觉得最重要的是那些基础课程,若可以给我再回一次大学的机会,我依然会去好好学习这些基础课程,并且学的更好,然后研究我喜欢的C++。这就是我的一些经验和感想吧,仅供参考了。
Tim Chen
我在大学时期也接了很多活做,各种技术都有涉及,做多了以后自以为已经无所不能,天下无敌了。
大四有一次去逛招聘会,有个软件公司在招软件工程师和高级软件工程师,我就坐下来说我对高级软件工程师感兴趣,对方呵呵一笑。
后来工作后看了真正的产品代码和工程规范,才知道大学里做的那些就是随便玩玩的。
所以,大学里随便玩玩就行了,涨涨见识,打好基本功。你说的事情急不了,没有在一个领域钻研个三五年的就别谈什么精通了,不要想一口吃成个胖子。
最后,大学里别忘了好好玩。
写在最后
其实看了上述两位程序员大V的分享,我估计你还是感觉脑袋空空。其实万丈高楼平地起,大学记得好好打基础就行啦,但切记别过的太累就行。
版权声明:本文系技术人员研究整理的智慧结晶,转载勿用于商业用途,并保留本文链接,侵权必究!