最近很多小朋友都在请教我自学各种技术应该读什么书,为了避免各种人每过几天问我一遍,干脆写出来,方便大家一次获取,终身受益,然后不要骚扰我了,哈哈哈。
我自己的读书习惯,特别是学习计算机,喜欢读哪些写的通俗易懂的书,学到代码后面为什么这么做的原因,只有学习到之其所以然才能在以后用到的时候融会贯通。
推荐书单
Python: Python核心编程
系统学习Python,这一本书足矣,把Python的每个细节都讲的很透,每个例子都非常实用。
我学习完这一本书以后,再看任何Python库的时候都是翻翻API手册,
Google一下就可以快速学会任何Python库的用法,并融入到自己的项目中。
C++: C++完全参考手册
我高三看的一本书,2000多页,大部头,全英文,但是写的非常好。
这也是我唯一看过的一本C++的书,只要会这些语法,找个C++项目,
比如Qt/C++写一个项目,几乎就知道C++怎么玩了。
其实C++还是非常方便的,虽然没有Python简洁,但是表现力和库生态都太强大,
不用担心性能问题,大多数讨厌C++的人,
其实是恐惧自己学不好C++, 放下恐惧,C++其实很容易学习。
Java: Java编程思想
这本书是在书店读完的,写的很不错,但是当时还在读高二,所以已经记不清当初的读后感了,
模糊印象就是一本写的非常通俗易懂的书,讲的非常细节。
Haskell: 1. Real World Haskell
十年前,#haskell IRC频道,大多数Haskeller(科学家,数学家)还在迷恋Haskell的数学之美的时候,
GHC 黑客 Dons Stewart 写的这本 Real World Haskell 系统型的讲解了Haskell应用的各个领域,
从基本语法、函数式编程、科学计算到图形编程等,讲的一针见血,
而且非常薄,学习玩了就可以流畅写程序了。
当然进阶的知识还是要去 #haskell IRC频道请教数学家们,哈哈哈。
Haskell: 2. Learn You a Haskell for Great Good!
好朋友写的Haskell入门书籍,大爱这种又会计算机又会画漫画的艺术家了,
把一个严谨的数学基因的编程语言讲的诙谐幽默
Elisp: GNU Emacs Lisp Reference Manual
十多年前,我用Emacs, 对Elisp半毛钱不懂,天天就在EmacsWiki抄各种配置,
就像一个拾荒者,每天早上起来逛EmacsWiki, 偶尔碰到高级Elisp技巧就把我折腾死了,
然后对着Emacs破口大骂。
为了不瞎折腾,我花了一个月的时间读完这本大部头,遇到不懂的API,
就打开ielm临时写一个demo函数验证一下,当我读完以后,
我发现99%的Emacs的问题都可以自己调试和解决。
如果你花时间读完这本Emacs内置的宝典,
你也可以像我这样写这么多扩展: Andy Stewart
Ruby: The Ruby Programming Language
学习Ruby的时候,已经会了几十门编程语言了,手册从头看一遍,不用写练习基本就可以学会。
因为当你编程语言学得足够多的时候,不同语言的语法都是相同的,
只用学习不同语言之间的微小区别就可以了。
以前一直对Ruby的end语法抱有偏见,但是至从我在Emacs配置了 ruby-end 插件以后,世界都清净了。
Vala: Vala Tutorial
Vala有C的速度,Python的简洁,语法类似 C Sharp,
基本看完这本手册以后,拿着API就可以直接开始写了。
Vala写Gtk+是非常爽的。
正则表达式: 精通正则表达式
这是我唯一看过一本带有 “精通” 名字的书,确实写的非常好,
Yahoo工程师把他平常用到的经验都朴实无华的写出来,
基本学会这本书讲的怎么构建正则表达式的思路,不管是标准的正则表达式,
还是Perl, Elisp等其他语言的变种正则,都是触类旁通的。
代码质量:重构 改善既有代码设计
这本书代码是java写的,但并不掩盖它作为重构第一书的地位。
讲解了很多重构小技巧,教你只要养成十来个重构小细节的好习惯,
不论写什么编程语言,局部代码和整体逻辑都干净的像艺术品一般。
这本书的技巧我这十几年都在践行,难得的好书。
X11: Xlib – C Language X Interface
这本书是读过最枯燥的书籍,但是要从头做一个Linux桌面环境,这本书的API是必读的。
因为你除了github外,根本找不到更多资料来讲解X11这个古老的技术了。
Gtk+: Gtk+ Programming Tutorials
写的最通俗易懂的Gtk+书籍,学完这本书,直接看Gtk+ Developer Manual 就可以直接写程序了
Qt: PyQt5 Totorial
写的最好的Qt入门教程,加上Python的方便性,非常容易系统学习,
加上学习Qt之前已经有Gtk+五年编程经验,两天看完就直接用Qt写程序了。
JQuery: 锋利的JQuery
国人写的书,写的非常通俗易懂,每个API的参数都是渐进式讲的,
举的例子也很实用简单,基本不用动手就会了。
Rails: Rails Tutorial
系统的讲解了怎么用Rails搭建一个网站,虽然很多架构设计和整体逻辑我是靠Google摸索出来的,
但是这本书确是入门不可或缺的,难度适中,学习完了,你对构建网站有一个基本的认识了。
SVG: SVG入门教程
虽然是翻译老外的技术博客, 却是深入学习 SVG 不可多得的教材, 讲的通俗易懂.
可以学到很多 SVG 高级技巧.
编译器: Flex & Bison
系统的讲解了什么是词法分析器、语法分析器
以及怎么写编译器的基本流程
这本书特别讲究循序渐进, 细心的讲解每个API
看完这本书就不会觉得这两个技术有啥高级了, 哈哈哈哈
万能的Google
不是每个技术都有很好的书,所以这个时候基本上就是Google教你所有的东西。
以下技术基本都是Google教的:
- Golang
- Rust
- Html5/CSS3
- Scheme
- OCaml
- Lua
- Perl
- Linux
- …
Emacs教会我自学
这么多年的自学经历,我最应该感谢的是Emacs, 是这个世界上最难折腾的软件,虐我虐到我待她如初恋,给我莫大的耐心,我再学习其他技术的时候才会觉得得心应手。
感谢Emacs让我接触到强大而又无私的顶尖黑客们和黑客精神,每天看着一群天才比我自己还努力的时候,自己就更萌生发奋学习的动力。
自学的技巧
耐心、耐心、耐心
致Deepin粉丝
关心我干嘛的deepin粉丝,我现在在写Rails代码养家糊口,顺便下班折腾我的 EAF, 我现在活的很好,很开心,谢谢大家的关心! ;)