写在前面
以下是我在大学四年期间阅读或听说过的计算机科学与技术专业方面的好书。
书籍按技术方向分类,同时每个模块的难度递增,入门在前,深入在后。
如果没什么方向,可直接从前往后选择读。
仅供参考。
基础向:
- 《C Primer plus》:C语言入门书,贼棒,课后题认真做。
- 《计算机科学概论》:对整个计算机科学有个大体的了解,贼棒。
- 《数据结构与算法:C语言描述》
- 《编码》:稍稍涉猎数电,很有意思。
- 《图解HTTP》:初学HTTP协议。
- 《鸟哥的linux私房菜:基础学习篇》:讲Linux的使用,还算可以吧,就是语言很啰嗦。
- 《计算机网络:自顶向下方法》:计算机网络专业书,无敌棒。
- 《计算机程序构造与解释》:曾经的MIT计算机科学入门书(后被Python入门取代),无敌棒,被称为“wizard book”。教授你如何通过抽象的方法解决复杂度问题,构造大型程序等等等。教学语言为Scheme。虽为MIT的入门书,但不建议过早看。
- 《算法导论》:网易公开课上有MIT的算法导论的公开课,可结合着看。该书很数学,比较难。视频一开头教授就劝退没有修过离散数学和概率论的同学。但是我看完之后,感觉还可以。建议主看视频,书籍辅助选择性看即可。
- 《深入理解计算机系统》:CMU的15213课程教科书,结合C语言 + x86_64架构下的Linux系统讲解计算机系统。书棒,老师棒,课程棒,lab棒,无敌棒。YouTube上的视频地址
- 《操作系统概念》:相比于《现代操作系统》,个人认为这本书的可读性更高。
- 《数据库系统概念》:我没看完。
注:算法方面貌似有个普林斯顿大学的《算法》,也有公开课。我没看过,感兴趣可自行搜索。
技术向:
Python语言方面:
- 廖雪峰的教程(搜索引擎自己搜):python3教程,非常棒,过一遍,不懂的地方可跳过,日后遇到再回顾。
- Python官方tutorial:Python创始人龟叔所写,贼棒。
- 笑虎的千行代码入门Python:知乎上自己搜。
- python document上有很多好东西,没事可多翻翻。
- 《流畅的Python》:深入、进阶类的书,有一定难度。
前端:
- 《Head first HTML CSS》:讲HTML、CSS,书虽然比较厚,但是一两周就能读完,前端入门推荐。
- 《Javascript DOM编程艺术》:网站前端抽象三层,偏向网站前端架构组织,javascript语言稍稍涉猎。
- 《Javascript高级程序设计》:我刚开始看,很棒。
- W3Schools网站:HTML、CSS、XML、SQL等都可看。(中英文版网站都有,英文版优选,中文版次之)
- React:看官方文档就可以。
- 《ES6标准入门(第三版)》:阮一峰著,讲JS语言的新特性。
数据库:
- 《SQL必知必会》、《MySQL必知必会》:虽然原名是“Teach xxx in xxx minutes”这种让人怀疑其质量的东西,但是不得不说,确实写的挺好的。
Python Web:
《Flask Web开发》:Python Web开发Flask框架
《Python网络数据采集》:简单爬虫入门。
Linux C
- 《Unix/Linux编程实践教程》:结合实践教学,教学思路与讲授顺序都还行,就是代码感觉有点屎?估计是太老的缘故?可用来入门。
- 《Unix编程艺术》:Unix设计哲学。主要讲Unix的软件设计原则,其实也可以放到软件工程那部分的。
这个方向的其他好书:《Linux/Unix系统编程手册》、《TCP/IP详解》与《Unix网络编程》、《Unix环境高阶编程》(Unix/Linux系统开发著名圣经APUE)
Web
- 《HTTP权威指南》:不仅仅是详细的HTTP协议,讲的是整个Web相关的一些技术。第4章连接管理,第9章Web机器人中的爬虫和搜索引擎,以及后边的Cookie和HTTPS等讲的都很棒。很值得一看。
软件工程
- 《代码大全》:讲的软件构建的方方面面。书很厚但可读性高,非常有趣。神书。
其他的关于软件设计,编程思想方面的有名的书也很多:《Clean Code》、《重构》、《编程珠玑》等等,都在我的阅读计划表里,但还没有看过。
杂七杂八:
知乎萧井陌的编程入门指南:讲的很好,也推荐了好多学习资源,编程如何入门很迷惑可以看看参考一下,注意是参考。
《黑客与画家》:Java预言错了哦。
《Teach yourself programming in ten years》:学无止境学无止境。
《互联网之子》:纪录片,讲述Araon Swartz短暂的一生。
《李开复自传》:升大学那个暑假看的,算是激发我计算机科学与技术学习兴趣的一本书了。黄色的丛林里分出两条路,可惜我不能同时去涉足......
《乔布斯传》
《浪潮之巅》:讲的是从贝尔创建AT&T公司开始到今天的各大IT公司的发展史。不仅仅是历史?
学习盲打:typingclub
杂七杂八++:
- 《硅谷》:美剧,巨逗。
- 《社交网络》:电影,讲Mark Zuckerberg初创facebook的一些故事。
书籍选择方法:
外国佬写的 > 国人写的,英文版 > 中文版。
(注:外国大佬简称 -> 外国佬)
评判一个书籍值不值得读关注点:豆瓣评分评价、翻译质量、目录。
- 尽量选外国佬写的书,国内的书特别是教材绝大部分写的都很烂。
- 英文好的尽量看英文版,英文不好的可以配合着英文版电子书看中文版书。
- 看书如果遇到新名词不理解,可以看看其英文原词是什么,有些术语翻译的确很迷。
注:很多偏技术的东西入门以后,就没必要过分依赖看书去掌握了,官方文档就是最好的学习资料。
学习方法建议:
- 注意知识整理与总结:笔记、博客。
好记性不如烂笔头,学到的东西,选择性记录下来,一方面加深记忆,另一方面如果日后遇到相同问题忘了咋整可以直接看笔记。
笔记本应用推荐:CherryTree,深度不限的目录结构是最大亮点,方便分门别类进行笔记整理。有Linux版和Windows版,MacOS的貌似有点麻烦。官网 - 看书后代码要多敲,敲出来才会发现很多小细节被忽略。
一些小啰嗦:
- 学习知识,兴趣很重要。
- 身为新时代大学生,信息搜集能力很重要。
- 善用搜索引擎,多用google、bing,少用百度搜狗。
- 一本好的书,胜过10个老师教。
- 学好英语。