计算机人推荐书目&网站(不断更新)
计算机人推荐书目&网站(不断更新)
鉴于最近有很多同学问我学什么读什么书好,我把我自己的经历和愚见写下来,仅供参考。我只会写我亲自读过有感悟的书,而不会搬运一些我碰都没有碰过只闻大名的书。本人目前也才大二,很多名书和高级书都没有读过,觉得过于基础的看官轻喷。
每本书我会写下我自己阅读后的亲身感受和体会。
目前涵盖:
编程语言
- C++ 入门
- Java 入门 进阶
- Python 入门 进阶
- C# 入门
- 汇编 入门
计算机科学
- 计算机系统
- 算法与数据结构
- 程序员数学
编程语言
C++
入门
- 英语好的我认为第一步可以不需要买书,市面上较为经典的书籍对于纯初学者门槛都较高,这里推荐两个网站。
-
一个通过边教边写的网站,大体概括了C++的所有基本语法,浅显易懂。缺点是内容浅薄,需要补充资料,出的题目不够精髓,没有渗透本质。适合初学者。
-
本网站编排的就像一本书一样,内容全,讲的深入浅出。内容编排合理,难度层层递增,是学习的不错资料。但是我认为纯学C++语法而言,内容过于多,难以短时间内消化,有一定编程基础的阅读起来会觉得冗长。
以上两个网站内容均为全英文且没有汉化,英语不好不建议使用翻译进行学习。
-
广为流传的神书,不多解释,采用全C++11标准教学。内容丰富,代码示例全,讲解深入,太多优点夸不下去了,总之是一本绝对好的著作。缺点是我认为字体小,阅读起来累。过于厚重,是一本不折不扣的字典书。如果纯新手入门的话,阅读难度较大。
-
上面这本书的兄弟书,虽然名字极其相似,但是内容完全不一样。两本书不论是从编排还是讲解,都大相径庭。(看完一本再看另一本都会觉得对方反人类)本书更适合没有C语言基础编程小白阅读,入门曲线更平缓。本书同样是大部头,难以完整阅读,同时我认为代码部分没有进行特殊处理,书上代码读起来很难受。
Java
入门
-
初学者,对面向对象毫无经验,对Java一无所知的同学,读这本书准没错!!这本书用一种极为风趣、幽默的语言讲解了什么Java语言、JVM等Java基本内容。全程用具体例子讲解类和对象,非常利于理解面向对象和简单了解Java基本语法。里面甚至探讨了部分编程经验和做人道理!但是本书我认为最大的缺点是,字体过于扭曲,文案十分低龄幼稚。同时编排合理性欠缺,内容不够深入。由于出版年代早,部分内容已经过时。
-
Java神书也不多解释了。本书是Java语法的集大成者,不过同时细讲了部分过时的内容(AWT, Swing)。内容全,讲解细(这也是一个缺点),适合作为字典书。缺点很明显,大半本过时的内容。翻译极烂,读起来很奇怪,如果没有编程基础有些地方难以理解。字体反人类,且极多代码示例。部分高级知识讲解太浅。细节太多,初学者容易心态爆炸。
进阶
-
如果世界上只能买一本Java书,我一定会买这一本。文字具有亲和力,讲解的非常非常详细,仿佛有个人坐在你旁边给你讲Java。文风类似于杂谈,不会读起来很没意思。作者思想很深邃(我水平太差,很多体会不到),对Java语言体会很深。但是这本书,如果之前两本入门都没读完,这本书就别想着读完了。非常厚,而且翻译一样很烂。基于Java1.5,有些陈旧。难的东西不是特别难,基础的东西也不是特基础,导致谁看都不是很舒服。同样适合边做项目边翻阅。
Python
入门
-
目前网络上最好的中文Python教程了。章节细化,讲解详细,涵盖全,还免费,我敢说这就是全网最好的中文教程。简直不要再良心,廖雪峰老师的官网适合每一个学Python的人观摩,甚至以后再写代码的时候也可以经常翻阅。缺点也有,后面内容难度跨度有点大。纯新手一下会被搞蒙,什么是协程?我为什么要多线程?同时教程中穿插了很多进阶知识,初学者可能难以接受。而且很多知识感觉想一把抓,但是讲的曲线有些陡峭。
-
什么叫入门书?这才是入门书!!内容编排极其合理,简洁全面,新手友好。代码示例全,入门速度极快。文风友好,字体适合人类阅读!书有三个小项目,可以让读者从语法到项目逐步递进!但是缺点也很明显,这么厚本书只讲了Python入门,高级特性少有涉猎,讲解浅显。面向对象部分讲解不清晰,还是难以有一个完整的把握。有了Python语法基础的不建议再阅读。
进阶
-
班上大佬推荐给我的。这本书我目前还没有读完,但是根据评价和我自己的感受而言,这本书推荐给Python的进阶选手绝对没有问题。本书针对Python的高级特性,全书讲了特别多Python的奇技淫巧。魔法函数、元编程、并发控制等等。让我感受到Python的易学难精,讲解了很多Python的原理和特性。书中还列有大量参考书目值得学习。这本书由于本人后来接触Python的机会少了,项目也完工了,便没有读完。缺点就不谈了,但是初学者千万不要碰!我刚开始看的时候毫无收获,一定要有一定Python基础再看!
C#
入门&进阶
-
官方钦定不多说。内容新且全,够权威。翻译优秀,排版合理,阅读舒适,还免费。同样的,它有着和官方文档一样的缺点,编排杂乱,而且多为说明性的而非教学性。对语法的讲解多为直接上代码而不是手把手教。同样为了照顾所有人,里面参杂了很多高级内容,初学者一头雾水。
汇编
入门
-
王爽老师的著作。我不止一次地吐槽过国内大学教材,良莠不齐,市场混乱,编书不成系统。而这本书,我可以很自豪地拿出来说,绝对是世界级的国产教材!这本书真正做到了和国外很多教材一样,知识屏蔽完善,曲线平滑,极其适合入门。从是什么到为什么到怎么办,一步一步从本质意义上讲解了计算机底层和汇编语言。而绝对不是简单地堆彻指令。不会说我看到这里,这是啥,这又是啥的一头雾水。而且由于是中国人自己的作品,读起来酣畅淋漓。可惜年代久远,用的是DOS和16位8086。有计算机底层知识和汇编基础的不建议重复阅读了。
这本书我真的特别喜欢,缺点都不忍心写。我希望我国教材编者都能这学习,这才是教育者应有的态度。
计算机科学
计算机系统
-
如果你是科班学生或者计算机硬件爱好者,这本书是当之无愧的“计算机类小说”。用天马行空的笔法和通俗易懂的语言来讲解计算机的工作原理。相比教材而言,更加具有可读性、趣味性。但是又不幼稚反而很精确。 不过如果有基础,就不建议读这本书了,我感觉本书科普意义强于教育意义。如果是科班学生更建议读下一本书。最大的原因是,本书目前的译本极其差劲。我甚至怀疑这个译者是没有通读全文,很多话读起来毫无逻辑。其次,排版太挤了,阅读无力。
-
科班生必读,黑色圣经,作者之一是MIPS的设计者同时还是图灵奖获得者。内容相当精细、深入。而且内容难度梯度设置合理。里面甚至自己标注了什么是重要的,什么是不重要的。范围也相当的广,操作系统、电路、指令、流水线什么都有所涉猎,把计算机硬件和数字电路联系起来。是一本不可多得的由高水平专家撰写的计算机硬件神书。但是,不得不吐槽中文版,机械工业出版社的印刷质量就不谈了,排版极其不适合人类阅读,看起来极不舒服。然后就是垃圾翻译,真的就是前后不衔接呗,不符合中国人的语序习惯呗!最后是前中期过渡顺滑,后面难度过大(臣妾真读不懂)。
-
直接看评分,9.8。CSAPP的大名真是传响了整个业界,这本书我还没读完,现在这里立个坑。
算法与数据结构
-
算是入门算法很好的书。用图形的方式,很生动形象地从理论上解释了算法,有点像LeetCode的官方图解。书籍采用的是Python教学,非常好理解,适合初学者对算法有个大概的了解,算是算法的科普读物。第九章动态规划之前的内容都值得阅读。但是这本书由于采用了一种生动活泼的形式,下定义很不科学严谨,同时从动规开始感觉作者功力不够,开始讲不明白了。示例代码极少!!更注重理论。完全不适合有算法基础人再次阅读。
-
日本作家写的书。这本书一套,分上下本。上基础,下进阶。这里只推荐上,下放在琳琅满目的算法书中太一般了。这本书优点非常明显,代码采用的C++,代码真的是入门人的模范代码,精简、准确。而且内容全,想找什么都找得到。同时都有相关的配图,更便于理解。值得表扬的是,这本书是ACM冠军翻译的,所以翻译准确度很好。但是,书籍对于算法的讲解点到为止,较为浅显。只讲到了是什么这一层。更适合写算法的时候拿来参考而不是拿来学习。实践性强,理论性弱。
-
神书,不解释。这本书最早是我学长“云神”推荐给我的,编排清晰、难度循序渐进。大量配图,排序、查找、树、图的运行过程画的明明白白(这是我认为最大的优点)。不光讲明白了算法是什么,还告诉你什么时候用比较好。同时采用Java示例,更关注算法本身。这本书相对《算法导论》这种用数学证明算法效率的书籍友好很多,讲的是真的明白。国内要用这本书当教材,就没老师什么事了。硬要挑点缺点,文风不是特别有趣吧,读起来其实挺吃力的,整版整版的讲解。然后就是我不喜欢Java(逃
程序员数学
-
如果你不喜欢数学,吴军教授这本书能让你爱上数学。数学真的是人类艺术的另一种表达形式,利用符合和数字严谨简单地表达世界万物。书里没有繁杂的公式,用简单的例子和故事讲述数学的用途。更侧重于数学在计算机领域的应用。同时重点讲了自然语言处理部分。文笔优美,故事性强。不过说是这么说,要是对数学真没点兴趣还真读不下去,阅读起来费劲,信息密度大。后面有深度难以读懂。大学生千万别错过了
《Introduction to Linear Algebra, Fourth Edition》
线性代数究极神书,清华教材。我很感激我们学院能用这本书来教我们线性代数,真的讲的特别好。这本书的定价高达800元,非常厚,而且目前没有译本。全书从基本原理和线性代数能干嘛讲明白了线性代数这一个很抽象的数学分支。而不是简简单单的写矩阵怎么用、矩阵怎么相乘。从向量空间出发,同时加入了图形化的思考,从几何的角度分析了线性代数!更难能可贵的是,如果你读英文大部头读不下去,可以去B站看教授本人的MIT同步课!!要是说不好,就是第一没有译本真的吃力,第二有的地方感觉有些随意,让人摸不着头脑
B站同步课程,免费加入MIT世界名校的线性代数课程,和清华学子学一样的课!
同时推荐另一个可视化数学的机构,3Blue1Brown,深入浅出,简单明了。
-
这本书我真不好意思说我读过,因为我完全读不下去了,还是一个数学学渣。本书全面概括了计算机业内人士需要的数学技能。本书写作水平极高,甚至还有点哲理,第一章讲递归就惊艳到我了。计算机数学集大成者,而且都是解决思路,真的很用心的一本书。不过吧,这本书要是数学底子不好真看不懂。我都到后面读不下去了,难度极大,阅读十分困难,非常烧脑。而且翻译过来后,作者的原汁原味丢干净了。总之,还是非常推荐阅读。
-
中科院陈希儒教授的神书,国内最好的概率论教材。真正的大师之作,概率论和数理统计本身就是应用性极强的学课,空中阁楼是学不好的。不同于很多国内教材粗暴的展现公式,陈希孺教授从逻辑、应用的角度一步一步引入概率论和数理统计的原理。而且附带了很多陈教授自己的人生哲学,能学到很多知识。非常适合自学和复习。不过我个人感觉,这本书的编排有些许问题。至少我个人读起来感觉某些章节顺序不符合学习曲线,需要读者多多消化。
我非常欣赏他写的一句话,“形式计算使人相信结果是对的,但不能提供直观上的启发性。”这也是他把书写的这么深入浅出的原因吧。
-- 先更新到这里,很多书我都在读在学习过程,例如JavaScript的书,但可能应用少或收获少没有写出来。本文会持续更新,希望各位计算机学子都能不断进步,不断提升。
计算机人推荐书目&网站(不断更新)的更多相关文章
- JAVA的推荐书目
本文是摘自别人的网站,自己读的书少,谨以此作为自己要读的书的一个书目列表吧. 原文地址:http://blog.sina.com.cn/s/blog_6aa1784101011hl5.html 正文: ...
- 如何直接在github网站上更新你fork的repo?
玩过github的人一定会在你自己的账号上fork了一些github开源项目.这些开源项目往往更新比较活跃,你今天fork用到你自己的项目中去了,过几个星期这个fork的origin可能有一些bugf ...
- 推荐书目 - C++学习资料
前言 在本文的前半部分我我会谈谈 我看过的书,和我个人的一些理解 ,并且会提供 C++标准委员会相关链接 和 C++第三方轮子/库总结 .本文的后半部分翻译了来自 The Definitive C++ ...
- 我的Java学习推荐书目
一直有这么个想法,列一下我个人认为在学习和使用Java过程中可以推荐一读的书籍,给初学者或者想深入的朋友一些建议,帮助成长.推荐的的都是我自己读过,也会推荐一些朋友读过并且口碑不错的书籍. 一.基础类 ...
- 给大家推荐PYTHON网站
有些比较知名的,像 资源汇总的http://bbs.linuxtone.org/forum.php?mod=viewthread&tid=2133 google的https://code.go ...
- 推荐一个网站Stack Overflow
网站URL:http://stackoverflow.com 我是怎么知道这个网站的呢?其实这个网站非常出名的,相信许多人都知道.如果你不知道,请继续阅读: 一次我在CSDN上面提问,但是想要再问多几 ...
- Windows 7 Apache下计算机无法访问局域网网站的问题
在Windows 7系统下,由于安全限制问题,本机搭建的网站,局域网内其它计算机是无法访问的. 要解决这个问题,只需要在防火墙加入自建规则便可以了,具体步骤如下: 控制面板=>Windows防火 ...
- 推荐C#网站、书籍、资源
推荐博客: 极简的随笔 http://www.cnblogs.com/guwei4037/p/3499135.html 见证大牛成长之路的专栏 http://blog.csdn.net/shanyon ...
- 【转载】IIS6、IIS7、IIS7.5设置拒绝一组计算机(IP段)访问网站的方法
IIS6设置方法: 1.打开IIS管理器,右键点击网站,选择“属性” 2.把标签切换到“目录安全性”,点击“IP地址和域名限制”的编辑按钮,如下图: IP地址和域名限制 3.选择“授权访问”,然后点击 ...
随机推荐
- Openwrt 路由器上 安装 svn server
Openwrt 上也可以搭建 svn 服务了,这样就不用开着 ubuntu 了,省电. 在后台打开 ssh 服务,或者使用 telnet 服务,使用 putty 登录路由器. 如下图所示,这里刷的是 ...
- Fabric 源码学习:如何实现批量管理远程服务器?
前不久,我写了一篇<Fabric教程>,简单来说,它是一个用 Python 开发的轻量级的远程系统管理工具,在远程登录服务器.执行 Shell 命令.批量管理服务器.远程部署等场景中,十分 ...
- python之二分法求平方根
前几天学完python的程序分支结构后,老师课后留了一个问题,用两种方法计算一个大于或等于 1 的实数 n 数的平方根. 描述设计一个用二分法计算一个大于或等于 1 的实数 n 的平方根的函数sqrt ...
- JavaScript的自调用函数
函数表达式可以 "自调用". 自调用表达式会自动调用. 如果表达式后面紧跟 () ,则会自动调用. 不能自调用声明的函数. 通过添加括号,来说明它是一个函数表达式: <scr ...
- Python离线项目迁移部署
最近遇到了一个场景:需要将Python项目文件打包到无法联网的主机上部署执行,本篇文章记录针对于该场景的处理方案. 说明: 源主机(可联网):安装了Python3和pip3 目标主机(无法联网):需安 ...
- JavaScript表单序列化的方法详解
本文介绍下,在javascript中实现表单序列化的方法,通过实例加深理解,有需要的朋友参考下吧. 在JavaScript中,可以利用表单字段的type属性,连同name和value属性一起实现对表单 ...
- java时间切片工具
项目中经常会遇到根据根据时间区间来查询数据的场景, 如时间跨度大可能相应的sql的执行效率会显著降低, 因此可以对时间区间进行切割成若干个小范围的时间片, 这样不仅可以提高sql的性能还可以做一下并发 ...
- SpringMVC框架——转发与重定向
网上摘取一段大神总结的转发与重定向的区别,如下: 转发(服务端行为) 形式:request.getRequestDispatcher().forward(request,response) 转发在服务 ...
- masql数据库的表查询
昨日回顾 表与表之间建关系 一对多 换位思考 图书与出版社 先站在左表: 考虑左表的多条数据能否对应右表的一条数据 翻译:多本书能否被一个出版社出版 可以! 注意:单站在一张得出的表关系并不能明确两张 ...
- 动态规划/MinMax-Stone Game
2019-09-07 16:34:48 877. Stone Game 问题描述: 问题求解: 典型的博弈问题,也是一个典型的min-max问题.通常使用算diff的方法把min-max转为求max. ...