计算机人推荐书目&网站(不断更新)

计算机人推荐书目&网站(不断更新)

鉴于最近有很多同学问我学什么读什么书好,我把我自己的经历和愚见写下来,仅供参考。我只会写我亲自读过有感悟的书,而不会搬运一些我碰都没有碰过只闻大名的书。本人目前也才大二,很多名书和高级书都没有读过,觉得过于基础的看官轻喷。

每本书我会写下我自己阅读后的亲身感受和体会。

目前涵盖:

编程语言

C++

入门

  • 英语好的我认为第一步可以不需要买书,市面上较为经典的书籍对于纯初学者门槛都较高,这里推荐两个网站。
  1. https://www.sololearn.com/

    一个通过边教边写的网站,大体概括了C++的所有基本语法,浅显易懂。缺点是内容浅薄,需要补充资料,出的题目不够精髓,没有渗透本质。适合初学者。

  2. https://www.learncpp.com/

    本网站编排的就像一本书一样,内容全,讲的深入浅出。内容编排合理,难度层层递增,是学习的不错资料。但是我认为纯学C++语法而言,内容过于多,难以短时间内消化,有一定编程基础的阅读起来会觉得冗长。

以上两个网站内容均为全英文且没有汉化,英语不好不建议使用翻译进行学习。

  • 《C++ Primer 中文版(第5版)》

    广为流传的神书,不多解释,采用全C++11标准教学。内容丰富,代码示例全,讲解深入,太多优点夸不下去了,总之是一本绝对好的著作。缺点是我认为字体小,阅读起来累。过于厚重,是一本不折不扣的字典书。如果纯新手入门的话,阅读难度较大。

  • 《C++ Primer Plus(第6版)中文版》

    上面这本书的兄弟书,虽然名字极其相似,但是内容完全不一样。两本书不论是从编排还是讲解,都大相径庭。(看完一本再看另一本都会觉得对方反人类)本书更适合没有C语言基础编程小白阅读,入门曲线更平缓。本书同样是大部头,难以完整阅读,同时我认为代码部分没有进行特殊处理,书上代码读起来很难受。

Java

入门

  • 《Head First Java》

    初学者,对面向对象毫无经验,对Java一无所知的同学,读这本书准没错!!这本书用一种极为风趣、幽默的语言讲解了什么Java语言、JVM等Java基本内容。全程用具体例子讲解类和对象,非常利于理解面向对象和简单了解Java基本语法。里面甚至探讨了部分编程经验和做人道理!但是本书我认为最大的缺点是,字体过于扭曲,文案十分低龄幼稚。同时编排合理性欠缺,内容不够深入。由于出版年代早,部分内容已经过时。

  • 《Java核心技术·卷 I(原书第10版)》

    Java神书也不多解释了。本书是Java语法的集大成者,不过同时细讲了部分过时的内容(AWT, Swing)。内容全,讲解细(这也是一个缺点),适合作为字典书。缺点很明显,大半本过时的内容。翻译极烂,读起来很奇怪,如果没有编程基础有些地方难以理解。字体反人类,且极多代码示例。部分高级知识讲解太浅。细节太多,初学者容易心态爆炸。

进阶

  • 《Java编程思想 (第4版)》

    如果世界上只能买一本Java书,我一定会买这一本。文字具有亲和力,讲解的非常非常详细,仿佛有个人坐在你旁边给你讲Java。文风类似于杂谈,不会读起来很没意思。作者思想很深邃(我水平太差,很多体会不到),对Java语言体会很深。但是这本书,如果之前两本入门都没读完,这本书就别想着读完了。非常厚,而且翻译一样很烂。基于Java1.5,有些陈旧。难的东西不是特别难,基础的东西也不是特基础,导致谁看都不是很舒服。同样适合边做项目边翻阅。

Python

入门

  • 廖雪峰的Python教程

    目前网络上最好的中文Python教程了。章节细化,讲解详细,涵盖全,还免费,我敢说这就是全网最好的中文教程。简直不要再良心,廖雪峰老师的官网适合每一个学Python的人观摩,甚至以后再写代码的时候也可以经常翻阅。缺点也有,后面内容难度跨度有点大。纯新手一下会被搞蒙,什么是协程?我为什么要多线程?同时教程中穿插了很多进阶知识,初学者可能难以接受。而且很多知识感觉想一把抓,但是讲的曲线有些陡峭。

  • 《Python编程 从入门到实践》

    什么叫入门书?这才是入门书!!内容编排极其合理,简洁全面,新手友好。代码示例全,入门速度极快。文风友好,字体适合人类阅读!书有三个小项目,可以让读者从语法到项目逐步递进!但是缺点也很明显,这么厚本书只讲了Python入门,高级特性少有涉猎,讲解浅显。面向对象部分讲解不清晰,还是难以有一个完整的把握。有了Python语法基础的不建议再阅读。

进阶

  • 《流畅的Python》

    班上大佬推荐给我的。这本书我目前还没有读完,但是根据评价和我自己的感受而言,这本书推荐给Python的进阶选手绝对没有问题。本书针对Python的高级特性,全书讲了特别多Python的奇技淫巧。魔法函数、元编程、并发控制等等。让我感受到Python的易学难精,讲解了很多Python的原理和特性。书中还列有大量参考书目值得学习。这本书由于本人后来接触Python的机会少了,项目也完工了,便没有读完。缺点就不谈了,但是初学者千万不要碰!我刚开始看的时候毫无收获,一定要有一定Python基础再看!

C#

入门&进阶

  • C#微软官方中文指南

    官方钦定不多说。内容新且全,够权威。翻译优秀,排版合理,阅读舒适,还免费。同样的,它有着和官方文档一样的缺点,编排杂乱,而且多为说明性的而非教学性。对语法的讲解多为直接上代码而不是手把手教。同样为了照顾所有人,里面参杂了很多高级内容,初学者一头雾水。

汇编

入门

  • 《汇编语言(第3版)》

    王爽老师的著作。我不止一次地吐槽过国内大学教材,良莠不齐,市场混乱,编书不成系统。而这本书,我可以很自豪地拿出来说,绝对是世界级的国产教材!这本书真正做到了和国外很多教材一样,知识屏蔽完善,曲线平滑,极其适合入门。从是什么到为什么到怎么办,一步一步从本质意义上讲解了计算机底层和汇编语言。而绝对不是简单地堆彻指令。不会说我看到这里,这是啥,这又是啥的一头雾水。而且由于是中国人自己的作品,读起来酣畅淋漓。可惜年代久远,用的是DOS和16位8086。有计算机底层知识和汇编基础的不建议重复阅读了。

    这本书我真的特别喜欢,缺点都不忍心写。我希望我国教材编者都能这学习,这才是教育者应有的态度。

计算机科学

计算机系统

  • 《编码》

    如果你是科班学生或者计算机硬件爱好者,这本书是当之无愧的“计算机类小说”。用天马行空的笔法和通俗易懂的语言来讲解计算机的工作原理。相比教材而言,更加具有可读性、趣味性。但是又不幼稚反而很精确。 不过如果有基础,就不建议读这本书了,我感觉本书科普意义强于教育意义。如果是科班学生更建议读下一本书。最大的原因是,本书目前的译本极其差劲。我甚至怀疑这个译者是没有通读全文,很多话读起来毫无逻辑。其次,排版太挤了,阅读无力。

  • 《计算机组成与设计(原书第5版)》

    科班生必读,黑色圣经,作者之一是MIPS的设计者同时还是图灵奖获得者。内容相当精细、深入。而且内容难度梯度设置合理。里面甚至自己标注了什么是重要的,什么是不重要的。范围也相当的广,操作系统、电路、指令、流水线什么都有所涉猎,把计算机硬件和数字电路联系起来。是一本不可多得的由高水平专家撰写的计算机硬件神书。但是,不得不吐槽中文版,机械工业出版社的印刷质量就不谈了,排版极其不适合人类阅读,看起来极不舒服。然后就是垃圾翻译,真的就是前后不衔接呗,不符合中国人的语序习惯呗!最后是前中期过渡顺滑,后面难度过大(臣妾真读不懂)。

  • 《深入理解计算机系统(原书第3版)》

    直接看评分,9.8。CSAPP的大名真是传响了整个业界,这本书我还没读完,现在这里立个坑。

算法与数据结构

  • 《算法图解》

    算是入门算法很好的书。用图形的方式,很生动形象地从理论上解释了算法,有点像LeetCode的官方图解。书籍采用的是Python教学,非常好理解,适合初学者对算法有个大概的了解,算是算法的科普读物。第九章动态规划之前的内容都值得阅读。但是这本书由于采用了一种生动活泼的形式,下定义很不科学严谨,同时从动规开始感觉作者功力不够,开始讲不明白了。示例代码极少!!更注重理论。完全不适合有算法基础人再次阅读。

  • 《挑战程序设计竞赛》

    日本作家写的书。这本书一套,分上下本。上基础,下进阶。这里只推荐上,下放在琳琅满目的算法书中太一般了。这本书优点非常明显,代码采用的C++,代码真的是入门人的模范代码,精简、准确。而且内容全,想找什么都找得到。同时都有相关的配图,更便于理解。值得表扬的是,这本书是ACM冠军翻译的,所以翻译准确度很好。但是,书籍对于算法的讲解点到为止,较为浅显。只讲到了是什么这一层。更适合写算法的时候拿来参考而不是拿来学习。实践性强,理论性弱。

  • 《算法(第4版)》

    神书,不解释。这本书最早是我学长“云神”推荐给我的,编排清晰、难度循序渐进。大量配图,排序、查找、树、图的运行过程画的明明白白(这是我认为最大的优点)。不光讲明白了算法是什么,还告诉你什么时候用比较好。同时采用Java示例,更关注算法本身。这本书相对《算法导论》这种用数学证明算法效率的书籍友好很多,讲的是真的明白。国内要用这本书当教材,就没老师什么事了。硬要挑点缺点,文风不是特别有趣吧,读起来其实挺吃力的,整版整版的讲解。然后就是我不喜欢Java(逃

  • 《数据结构(C++语言版)》

    来自大名鼎鼎的清华大学邓俊辉教授之手。优点很多,内容全,基本上会用到的数据结构和算法都提及到了。代码优美,把C++的精炼发挥到了极致。配有对应的网课,看不懂书看网课,看不懂网课看书。全彩印,很多图。代码字体、排版精美。作为国产教材,打破了我对国产编程书籍的固有偏见。对数据结构的实现细节面面俱到。但是存在代码跳跃性强,对不熟悉C++的人来说可能又一定的阅读难度。很多数据结构是用STL辅助实现的,需要一定基础。而且很多语言用的过于“高深”,同时中英混杂优点阅读无能。同时运用了大量的符号表达,阅读接受差的不建议购买。

程序员数学

  • 《数学之美(第二版)》

    如果你不喜欢数学,吴军教授这本书能让你爱上数学。数学真的是人类艺术的另一种表达形式,利用符合和数字严谨简单地表达世界万物。书里没有繁杂的公式,用简单的例子和故事讲述数学的用途。更侧重于数学在计算机领域的应用。同时重点讲了自然语言处理部分。文笔优美,故事性强。不过说是这么说,要是对数学真没点兴趣还真读不下去,阅读起来费劲,信息密度大。后面有深度难以读懂。大学生千万别错过了

  • 《Introduction to Linear Algebra, Fourth Edition》

    线性代数究极神书,清华教材。我很感激我们学院能用这本书来教我们线性代数,真的讲的特别好。这本书的定价高达800元,非常厚,而且目前没有译本。全书从基本原理和线性代数能干嘛讲明白了线性代数这一个很抽象的数学分支。而不是简简单单的写矩阵怎么用、矩阵怎么相乘。从向量空间出发,同时加入了图形化的思考,从几何的角度分析了线性代数!更难能可贵的是,如果你读英文大部头读不下去,可以去B站看教授本人的MIT同步课!!要是说不好,就是第一没有译本真的吃力,第二有的地方感觉有些随意,让人摸不着头脑

    B站同步课程,免费加入MIT世界名校的线性代数课程,和清华学子学一样的课!

    同时推荐另一个可视化数学的机构,3Blue1Brown,深入浅出,简单明了。

  • 《具体数学》

    这本书我真不好意思说我读过,因为我完全读不下去了,还是一个数学学渣。本书全面概括了计算机业内人士需要的数学技能。本书写作水平极高,甚至还有点哲理,第一章讲递归就惊艳到我了。计算机数学集大成者,而且都是解决思路,真的很用心的一本书。不过吧,这本书要是数学底子不好真看不懂。我都到后面读不下去了,难度极大,阅读十分困难,非常烧脑。而且翻译过来后,作者的原汁原味丢干净了。总之,还是非常推荐阅读。

  • 《概率论与数理统计》

    中科院陈希儒教授的神书,国内最好的概率论教材。真正的大师之作,概率论和数理统计本身就是应用性极强的学课,空中阁楼是学不好的。不同于很多国内教材粗暴的展现公式,陈希孺教授从逻辑、应用的角度一步一步引入概率论和数理统计的原理。而且附带了很多陈教授自己的人生哲学,能学到很多知识。非常适合自学和复习。不过我个人感觉,这本书的编排有些许问题。至少我个人读起来感觉某些章节顺序不符合学习曲线,需要读者多多消化。

    我非常欣赏他写的一句话,“形式计算使人相信结果是对的,但不能提供直观上的启发性。”这也是他把书写的这么深入浅出的原因吧。

-- 先更新到这里,很多书我都在读在学习过程,例如JavaScript的书,但可能应用少或收获少没有写出来。本文会持续更新,希望各位计算机学子都能不断进步,不断提升。

posted @ 2020-03-04 15:13  scyq  阅读(917)  评论(0编辑  收藏  举报