计算机专业学生有哪些必读的文献/论文/书籍,以了解当今热门的技术和科研的前沿

以下仅限于偏软的方向,硬的我不太懂。
数学系本科所有基本课程,特别是分析(实、复、泛函)和代数(线性和抽象),拓扑(点集、微分、代数)和几何(微分)学点更好。书太多了,我就不班门弄斧了,跟着上课效率最高。Halmos的Naive Set Theory。Ebbinghaus的Mathematical Logic。Brualdi的Introductory Combinatorics。Klenke的Probability Theory。Rockafellar的Convex Analysis。CLRS的Introduction to Algorithms。Sipser的Introduction to the Theory of Computation。Bishop的Pattern Recognition and Machine Learning。目前想到这么多,以上都是基础。如果自己对某个领域特别感兴趣,比如ML或者Complexity,可以再去看专门的教材,比如分别(FML和EML)和(AB的Computational Complexity)。看书是次要的,找到自己喜欢的问题和方向是第一位。

■网友
并非什么前辈,在这表达一下我的观点,如果有不合适的地方,十分十分希望诸君指教更正。
首先要肯定答主的进取心,其实能意识到学校教学存在缺陷已经领先了很多同学了。
但是,作为大一的学生,我觉得真的没必要去追求所谓“前沿技术”,以为几乎所有的前沿技术都是建立在一定基础上的,连基本的数据结构都不熟悉,基础的算法也不了解,谈何“前沿技术”?
在大学阶段,我觉得最需要做的是打牢基础,把校内课程的要求内容学好,但不能完全被老师所讲内容限制,即在“战略”上按照学校的路线,但在具体战术上则可以自己制定。如果对学校课程的质量不满意,就可以通过借阅一些公认的经典书籍,或者参加Cousera(需要一些英语基础),Mooc(缺点是国内大学的慕课质量参差不齐),网易公开课(大部分无课后习题,但汉化做的比较成熟)来学习课程所在领域的知识。
除了直接相关的CS课程,数学基础也是特别重要的,尤其是在科研方面,可以说数学基础决定了你的科研前景。目光放长远些,为将来做好打算。
最后是推书/课环节:
首先是关于广度,大部分都是导论/科普类:
哈佛大学CS50 作为一门CS导论课,完全符合题主拓展广度的要求,用scratch作为引子引入编程思想,教学语言以C为主,同时涉及html5,JavaScript,PHP等,用实例展示了coding在现实生活的应用。最新版可以在官网找到,但是答主看的是网易云版,表示也受益不少。《编码》 作者Charles Petzold既是一名作家也是一位编程大师,从莫尔斯电码讲到现代计算机的构建,文笔很好,值得一读。《计算机科学导论》 不同于上本幽默亲切的语言,这本《计算机科学导论》是真正意义上的工科书籍,相对硬核。书的内容包罗万象,既有计算机组成,计算机网络,计算机数学基础,数据结构这样的基础,也有安全,人工智能这样的实用领域介绍,可以说包含CS的几乎所有领域。只是在各个领域并未做更深入具体的讨论。可以把它作为CS各大领域的引索书目来看。浪潮之巅 这个推的人应该很多,不做具体介绍了。吴军博士的书很多都值得一读。深度(个人介绍不到位,具体请点击链接前往豆瓣了解):
《SICP》 被当成神书各种推的《计算机程序的构造和解释》。MIT的一本教材,教学语言是比较冷门的Scheme,不过今年MIT这门课的语言已经换成了python,网上也有了对应的SICP的python解释。去豆瓣看看书评可能会增加你啃完这本书的动力。《深入理解计算机系统》 比较偏底层。找链接才发现第三版的豆瓣评分达到了9.9。有新的了解会再更新建议先从导论看起,sicp和csapp实在是太难啃了。不过能啃完的话,应该能到同龄人的前百分之一吧(这样比较好无聊)。(其实有啃完的能力就已经是前百分之x了,笑。)

好久没写东西,没想到写出来是这么严肃的语气,肯定没人点赞了。哭。

■网友
大学里面的内容不是没深度,而是太理论了。


推荐阅读