Andy Stewart
@manateelazycat
Linux, Emacs开源社区从业二十余载,前Deepin CTO 懒猫微服CEO,不端不装,仗剑走天涯 客官喜欢,欢迎买我家的懒猫微服 https://t.co/KVqgWHE3yR 京东旗舰店: https://t.co/6l2E0fkB8H 开源万岁: 开发者私信我有大额优惠
Joined April 2009
114 Following    26.8K Followers
我的计算机技术自学书单与心路历程 最近很多朋友都在请教我自学各种技术应该读什么书,为了避免各种人每过几天问我一遍,干脆写出来,方便大家一次获取,终身受益,然后不要骚扰我了,哈哈哈。 我自己的读书习惯,特别是学习计算机,喜欢读哪些写的通俗易懂的书,学到代码后面为什么这么做的原因,只有学习到之其所以然才能在以后用到的时候融会贯通。 推荐书单 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](https://t.co/vQJEYweZxQ) Ruby: The Ruby Programming Language 学习 Ruby 的时候,已经会了几十门编程语言了,手册从头看一遍,不用写练习基本就可以学会。 因为当你编程语言学得足够多的时候,不同语言的语法都是相同的, 只用学习不同语言之间的微小区别就可以了。 以前一直对 Ruby 的 end 语法抱有偏见,但是自从我在 Emacs 配置了 ruby-end 插件以后,世界都清净了。 Vala: [Vala Tutorial](https://t.co/tParLDVEOb) Vala 有 C 的速度,Python 的简洁,语法类似 C Sharp, 基本看完这本手册以后,拿着 API 就可以直接开始写了。 Vala 写 Gtk+是非常爽的。 Rust: [Rust 语言圣经](https://t.co/6F4UYYGpuW) 这本书应该是中文范围内将 Rust 最好的一本书, 所有权讲的很清晰, 基本概念的章节都通俗易懂, 进阶章节可以先看一遍, 以后遇到了当工具书来查看。 作者后面讲线程和异步模型时, 理解还是很到位的, 证明作者基本功很扎实, 强烈推荐想学习 Rust 的同学读这本书, 一本就够了。 正则表达式: 精通正则表达式 这是我唯一看过一本带有 “精通” 名字的书,确实写的非常好, Yahoo 工程师把他平常用到的经验都朴实无华的写出来, 基本学会这本书讲的怎么构建正则表达式的思路,不管是标准的正则表达式, 还是 Perl, Elisp 等其他语言的变种正则,都是触类旁通的。 代码质量:重构 改善既有代码设计 这本书代码是 java 写的,但并不掩盖它作为重构第一书的地位。 讲解了很多重构小技巧,教你只要养成十来个重构小细节的好习惯, 不论写什么编程语言,局部代码和整体逻辑都干净的像艺术品一般。 这本书的技巧我这十几年都在践行,难得的好书。 X11: Xlib - C Language X Interface 这本书是读过最枯燥的书籍,但是要从头做一个 Linux 桌面环境,这本书的 API 是必读的。 因为你除了 github 外,根本找不到更多资料来讲解 X11 这个古老的技术了。 Gtk+: [Gtk+ Programming Tutorials](https://t.co/irxklaNOdG) 写的最通俗易懂的 Gtk+书籍,学完这本书,直接看 Gtk+ Developer Manual 就可以直接写程序了 Qt: [PyQt5 Totorial](https://t.co/chjTuCYbno) 写的最好的 Qt 入门教程,加上 Python 的方便性,非常容易系统学习, 加上学习 Qt 之前已经有 Gtk+五年编程经验,两天看完就直接用 Qt 写程序了。 JQuery: 锋利的 JQuery 国人写的书,写的非常通俗易懂,每个 API 的参数都是渐进式讲的, 举的例子也很实用简单,基本不用动手就会了。 Rails: Rails Tutorial 系统的讲解了怎么用 Rails 搭建一个网站,虽然很多架构设计和整体逻辑我是靠 Google 摸索出来的, 但是这本书确是入门不可或缺的,难度适中,学习完了,你对构建网站有一个基本的认识了。 SVG: SVG 入门教程 虽然是翻译老外的技术博客, 却是深入学习 SVG 不可多得的教材, 讲的通俗易懂. 可以学到很多 SVG 高级技巧. CSS: CSS 世界 很多 CSS 网站或书籍都告诉你一个效果要怎么实现,或者直接丢出一段可以直接使用的 CSS 代码。 但是我们在真实的开发场景中遇到的往往是,为什么这段 CSS 代码不能工作?为什么抄的几段 CSS 合在一起不能工作? 这本书的作者研究了很多年的 CSS,他可以告诉你很多关于浏览器的实现细节以及为什么 CSS 不能工作的原因。 懂了为什么不能工作,剩下的很多事情就能举一反三啦。 但这本书不适合初学 CSS 的朋友读,建议在几个项目中熟练了基本 CSS 技巧以后再来读这本书会更有收获。 编译器: Flex & Bison 系统的讲解了什么是词法分析器、语法分析器 以及怎么写编译器的基本流程 这本书特别讲究循序渐进, 细心的讲解每个 API 看完这本书就不会觉得这两个技术有啥高级了, 哈哈哈哈 加解密: 图解密码技术 这本书系统地让你学会对称加密、公钥密码、单向散列函数、消息认证码、数字签名、伪随机数生成器等加解密技术背后的原理和细节, 以及这些技术组合而成的安全大厦的框架和应用。 其实加解密不光是学习破解和干坏事, 知道背后的数学原理和实现细节可以更好的让我们理解安全技术, 并以此来构建更加健壮安全的软件和系统。 强烈推荐作者 “结城浩” 的其他书籍, 已经看了他写的两本书了, 全书都是图文并茂的讲解复杂技术, 很少有数学公式。 人的精力是有限的, 学习最重要的是先要了解其原理再深入学习, 避免投入无谓的精力在不感兴趣的领域。 而作者在深厚的知识背景下, 能通过浅显易懂的文字传授知识, 真是厉害。 Git: Pro Git 这本书除了讲解 Git 的所有日常用法外, 还系统的讲解 Git 的一些高级用法。 同时最后一章还详细的讲解了 Git 背后这种基于文件系统技术的实现原理。 当你理解 Git 基本用法、 高级用法以及背后简单的原理后, 你就可以知其所以然的变成 Git 专家。 万能的 Google 不是每个技术都有很好的书,所以这个时候基本上就是 Google 教你所有的东西。 以下技术基本都是 Google 教的: * Golang * Rust * Html5/CSS3 * Scheme * OCaml * Lua * Perl * Linux * ... Emacs 教会我自学 这么多年的自学经历,我最应该感谢的是 Emacs, 是这个世界上最难折腾的软件,虐我虐到我待她如初恋,给我莫大的耐心,我再学习其他技术的时候才会觉得得心应手。 感谢 Emacs 让我接触到强大而又无私的顶尖黑客们和黑客精神,每天看着一群天才比我自己还努力的时候,自己就更萌生发奋学习的动力。 自学的技巧 耐心、耐心、耐心
Show more
0
19
719
156