曾经看到过一篇文章,开头一句话:想要入门编程,先读完这 100 本书吧,然后下面是一张超长书单。当时对着这张书单,一本本书找来看,幻想着全看完我就是一个合格的程序员了。然而,列出的不少书虽然被人们奉为经典或是“圣经”,对一个刚入门编程的人来说,不少内容晦涩难懂,很难看得下去,有些更是天书一般的存在,结果差点由入门到放弃
为了帮助想从事编程方面工作的人,尤其是计算机基础比较差或是零基础的,在此推荐一些我读过的觉得比较简单,而且不错的书,希望可以帮助刚刚入门的程序员,与大家一起交流进步
入门
- 《世界是数字的》豆瓣
顶顶大名的 Brian W. Kernighan 在给非计算机专业学生上课时用的教材,硬件、软件和网络均有涉及,讲解清晰易懂,读完可对 IT 行业有个大致认识 - 《编码:隐匿在计算机软硬件背后的语言》豆瓣
在这偷个懒,粘贴百度百科的一段话:
这是一本讲述计算机工作原理的书。不过,你千万不要因为“工作原理”之类的字眼就武断地认为,它是晦涩而难懂的。作者用丰富的想象和清晰的笔墨将看似繁杂的理论阐述得通俗易懂,你丝毫不会感到枯燥和生硬。更重要的是,你会因此而获得对计算机工作原理较深刻的理解。
即使对硬件不感兴趣的童鞋,也可以读一读书中关于编码部分的讲解,会有不小的收获
- 《C Primer Plus》豆瓣
关于程序员需不需要学 C 语言,一直都有比较大的争论。我推荐这本书无意挑起争端,只是有些很不错的书涉及到不少 C 语言,为了减轻读者压力,希望能至少对 C 语言有个大致了解(其实那些书里涉及到 C 语言时也是有讲解的,只是由于好多人说 C 语言难,怕初学者见到内含 C 语言的书就被吓跑了,因而错过一些经典书籍,可以由这本书打个基础)
PS:C Primer Plus 不错,但是不推荐 C++ Primer Plus(个人感觉),如果想学习 C++,可以看《C++ How to Program》豆瓣,个人真心觉得不错。还有《C++ 编程思想》,只是感觉 C++17 都要出来了,内容有些过时,不过领会精神还是不错的
计算机底层
- 《计算机系统概论》豆瓣
了解计算机底层加C语言基础一举两得,可以挑着自己感兴趣的看一看,相信会有不少收获,随着自己对计算机的不断认识,这本书可以多读两遍 - 《深入理解计算机系统》豆瓣
这本书还是比较有难度的,我在读完第一遍的时候基本没看懂,不过这本书是值得多看几遍的,可以对计算机编程底层有更加深入的了解
算法
- 《Java数据结构和算法》豆瓣
看了那么多关于数据结构和算法的书,这是我认为对初学者最为友好的一本书,本书以Java作为实现代码,如果你不懂Java也没关系,书中配有大量图片和作者的详细解说,即使有困难,仔细读几遍应该也是可以克服的。看完这本书,想要继续深入学习数据结构和算法的话,个人觉得可以直接看算法导论了,因为感觉不少这方面的书要么写的一般,或者像算法导论一样的难懂(其实算法导论数学证明太多导致给人的印象很难,对证明或公式推导不感兴趣的童鞋可以跳过这些)。
拓展
这部分书和编程关系不太大,可以作为业余时间开拓视野和思维
- 《数学之美》豆瓣
那些我们认为“无用”的数学知识,原来在计算机行业有这么广泛的应用!作者深入浅出的讲解了一些计算机工程问题涉及到的数学知识 - 《浪潮之巅》豆瓣
近一百年几大科技公司的兴衰史,本书系统地介绍了这些公司成功的本质原因及科技工业一百多年的发展 - 《奇思妙想:15位计算机天才及其重大发现》豆瓣
《奇思妙想:15位计算机天才及其重大发现》分为四部分,分别对应了过去数十年来计算机科学家们为之奋斗的4个基本问题。《奇思妙想:15位计算机天才及其重大发现》布局精妙、资料翔实,15位计算机科学家的少时轶闻甚至八卦故事随处可见,仿若颗颗珠贝点缀书中,读来宛然可喜,又能让人时有顿悟,掩卷长思问获得诸多启迪。追踪大师们的成长和发现之旅,便仿佛亲历计算机科学史近50年来的风云变幻。
本书是硅谷创业之父Paul Graham 的文集,主要介绍黑客即优秀程序员的爱好和动机,讨论黑客成长、黑客对世界的贡献以及编程语言和黑客工作方法等所有对计算机时代感兴趣的人的一些话题。
结语
过于比较基础的目前就推荐这基本吧,这些书可以作为计算机科学的公共基础。当然这方面的好书还有很多,只是因为自己曾经阅读起来困难,或者感觉不太适合入门,因此没有推荐。还有些入门书籍要么是语言强相关,要么是需要有一定的编程经验才能体会的软件工程方面的书,如果有时间,以后再总结这些“进阶”书籍