转载一篇特别棒的文章 , 程序员必读书单 1.0 - Lucida,来自 Google 的工程师

这篇文章真的特别赞,对我的帮助特别大,感觉一定要分享出来。感谢 Lucida, 来自 Google 的工程师.
人类文明的基石是传承,学习前人总结出来的知识和经验,真的特别重要,可以加快我们的成长,少走弯路.

转载自:http://lucida.me/blog/developer-reading-li...
以下是原文:

本文把程序员所需掌握的关键知识总结为三大类 19 个关键概念,然后给出了掌握每个关键概念所需的入门书籍,必读书籍,以及延伸阅读。旨在成为最好最全面的程序员必读书单。

前言#

Reading makes a full man; conference a ready man; and writing an exact man.

Francis Bacon

优秀的程序员应该具备两方面能力:

  • 良好的 程序设计 能力:

    • 掌握常用的数据结构和算法(例如链表,栈,堆,队列,排序和散列);
    • 理解计算机科学的核心概念(例如计算机系统结构、操作系统、编译原理和计算机网络);
    • 熟悉至少两门以上编程语言(例如 C++,Java,C#,和 Python);
  • 专业的 软件开发 素养:

    • 具备良好的编程实践,能够编写可测试(Testable),可扩展(Extensible),可维护(Maintainable)的代码;
    • 把握客户需求,按时交付客户所需要的软件产品;
    • 理解现代软件开发过程中的核心概念(例如面向对象程序设计,测试驱动开发,持续集成,和持续交付等等)。

和其它能力一样, 程序设计 能力和 软件开发 素养源自项目经验和书本知识。项目经验因人而异(来自不同领域的程序员,项目差异会很大);但书本知识是相通的 —— 尤其是经典图书,它们都能够拓宽程序员的视野,提高程序员的成长速度。

在过去几年的学习和工作中,我阅读了大量的程序设计 / 软件开发书籍。随着阅读量的增长,我意识到:

  • 经典书籍需要不断被重读 —— 每一次重读都会有新的体会;
  • 书籍并非读的越多越好 —— 大多数书籍只是经典书籍中的概念延伸(有时甚至是照搬);

意识到这两点之后,我开始思考一个很 功利 的问题:如何从尽可能少的书中,获取尽可能多的关键知识?换句话说:

  • 优秀的程序员应该掌握哪些关键概念?
  • 哪些书籍来可以帮助程序员掌握这些关键概念?

这即是这篇文章的出发点 —— 我试图通过 程序员必读书单 这篇文章来回答上面两个问题。

标准#

进入必读书单之前,我先介绍下书单里的书籍选择标准和领域选择标准。当然你也 点击这里 直接跳转到书单开始阅读。

书籍选择标准#

  1. 必读:什么是必读书籍呢?如果学习某项技术有一本书无论如何都不能错过,那么这本书就是必读书籍 —— 例如 Effective Java 于 Java, CLR via C# 于 C#;

    • 注意我没有使用 “经典” 这个词,因为经典计算机书籍往往和计算机科学联系在一起,而且经典往往需要 10 年甚至更长的时间进行考验;
  2. 注重实践,而非理论:所以这个书单不会包含过于原理性的书籍;

  3. 入门 — 必读 — 延伸:必读书籍的问题在于:1. 大多不适合入门;2. 不够全面。考虑到没有入门阅读和延伸阅读的阅读列表是不完整的 —— 所以书单中每个关键概念都会由一本入门书籍,一本必读书籍(有时入门书籍和必读书籍是同一本),和若干延伸阅读书籍所构成。

概念选择标准#

  1. 全面:全面覆盖软件开发中重要的概念;
  2. 通用:适用于每一个程序员,和领域特定方向无关;
  3. 注重基础,但不过于深入:优秀的程序员需要良好的计算机科学基础,但程序员并没必要掌握过于深入的计算机科学知识。以算法为例,每个程序员都应该掌握排序、链表、栈以及队列这些基本数据结构和算法,但计算几何、线性规划和网络流这些算法可能就不是每个程序员都需要掌握的了;

通过这几个标准,我把程序员应掌握的关键概念分为程序设计,软件开发,以及个人成长三大类,每一大类均由若干关键概念组成。

快速通道#

自从开博以来,经常会有朋友在论坛,微博,和 QQ 上提问学习 X 技术读什么书合适(例如:学习 Java 读什么书合适?如何学习程序设计?)所以我在这里列出了一个 “快速通道”—— 把常见的问题集中在一起,点击问题,即可直接进入答案。(当然,如果你把本文从头读到尾帮助会更大 :blush:

程序员必读书单#

入门书籍#

程序设计:#

  1. 基础理论编码:隐匿在计算机软硬件背后的语言

  2. 编程语言

  3. 编程语言理论编程语言实现模式

  4. 程序设计程序设计方法

  5. 算法与数据结构算法(第 4 版)

  6. 程序调试调试九法 —— 软硬件错误的排查之道

软件开发:#

  1. 编程实践程序设计实践
  2. 面向对象程序设计Head First 设计模式
  3. 重构重构
  4. 软件测试How to Break Software
  5. 项目管理极客与团队
  6. 专业开发程序员修炼之道:从小工到专家
  7. 大师之言奇思妙想:15 位计算机天才及其重大发现
  8. 界面设计写给大家看的设计书
  9. 交互设计通用设计法则

个人成长:#

  1. 职业规划软件开发者路线图
  2. 思维方式程序员的思维修炼:开发认知潜能的九堂课
  3. 求职面试金领简历:敲开苹果微软谷歌的大门
  4. 英语写作The Only Grammar Book You’ll Ever Need

必读书籍#

程序设计:#

  1. 基础理论深入理解计算机系统(第 2 版)

  2. 编程语言

  3. 编程语言理论程序设计语言 —— 实践之路(第 3 版)

  4. 程序设计计算机程序的构造与解释(第 2 版)

  5. 算法与数据结构编程珠玑(第 2 版)

  6. 程序调试调试九法 —— 软硬件错误的排查之道

软件开发:#

  1. 编程实践代码大全(第 2 版)
  2. 面向对象程序设计设计模式
  3. 重构修改代码的艺术
  4. 软件测试xUnit Test Patterns
  5. 项目管理人月神话
  6. 专业开发程序员职业素养
  7. 大师之言编程人生:15 位软件先驱访谈录
  8. 界面设计认知与设计:理解 UI 设计准则(第 2 版)
  9. 交互设计交互设计精髓(第 3 版)

个人成长:#

  1. 职业规划软件开发者路线图
  2. 思维方式如何把事情做到最好
  3. 求职面试程序员面试金典(第 5 版)
  4. 英语写作风格的要素

这个阅读列表覆盖了软件开发各个关键领域的入门书籍和必读书籍,我相信它可以满足绝大多数程序员的需求,无论你是初学者,还是进阶者,都可以从中获益:

  • 基础理论 包括了程序员应该掌握的计算机基础知识;
  • 编程语言 对软件开发至关重要,我选择了 CC++JavaC#Python ,和 JavaScript 这六门 主流编程语言 进行介绍,如果想进一步理解编程语言,可以阅读 编程语言理论 里的书目;
  • 在理解编程语言的基础上,优秀的程序员还应该了解各种 程序设计 技巧,熟悉基本的 算法数据结构 ,并且能够高效的进行 程序调试
  • 良好的程序设计能力是成为优秀程序员的前提,但软件开发知识也是必不可少的:优秀的程序员应具备良好的 编程实践 ,知道如何利用 面向对象重构 ,和 软件测试 编写可复用,可扩展,可维护的代码,并具备软件 项目管理 知识和 专业开发素养;
  • 就像我们可以从名人传记里学习名人的成功经验,程序员也可以通过追随优秀程序员的足迹使自己少走弯路。 大师之言 包含一系列对大师程序员 / 计算机科学家的访谈,任何程序员都可以从中获益良多;
  • 为了打造用户满意的软件产品,程序员应当掌握一定的 界面设计 知识和 交互设计 知识(是的,这些工作应该交给 UI 和 UX,但如果你想独自打造一个产品呢?);
  • 专业程序员应当对自己进行 职业规划 ,并熟悉程序员 求职面试 的流程,以便在职业道路上越走越远;
  • 软件开发是一项需要不断学习的技能,学习 思维方式 可以有效的提升学习能力和学习效率;
  • 软件开发是一项国际化的工作,为了让更多的人了解你的代码(工作),良好的 英语写作 能力必不可少。

尽管我尽可能的去完善这个书单,但受限于我的个人经历,这个书单难免会有所偏颇。所以如果你有不同的意见,或者认为这个书单漏掉了某些重要书籍,请在评论中指出,我会及时更新。:blush:

程序设计#

1. 基础理论#

编码:隐匿在计算机软硬件背后的语言

编码:隐匿在计算机软硬件背后的语言 这本书其实不应该叫编码 —— 它更应该叫 “Petzold 教你造计算机”—— 作者 Charles Petzold 创造性的以编码为主题,从电报机和手电筒讲到数字电路,然后利用 数字电路 中的逻辑门构造出 加法器触发器 ,最后构造出一个完整的 存储程序计算机 。不要被这些电路概念吓到 —— 编码 使用大量形象贴切的类比简化了这些概念,使其成为最精彩最通俗易懂的计算机入门读物。

深入理解计算机系统(第2版)

深入理解计算机系统(第 2 版) 这本书的全名是:Computer Systems:A Programmer’s Perspective(所以它又被称为 CSAPP),我个人习惯把它翻译为程序员所需了解的计算机系统知识,尽管土了些,但更名副其实。

深入理解计算机系统 是我读过的最优秀的计算机系统导论型作品,它创造性的把操作系统,计算机组成结构,数字电路,以及编译原理这些计算机基础学科中的核心概念汇集在一起,从而覆盖了指令集体系架构,汇编语言,代码优化,计算机存储体系架构,链接,装载,进程,以及虚拟内存这些程序员所需了解的关键计算机系统知识。如果想打下扎实的计算机基础又不想把操作系统计算机结构编译原理这些书统统读一遍,阅读 深入理解计算机系统 是最有效率的方式。

延伸阅读:

2. 编程语言#

编程语言是程序员必不可少的日常工具。工欲善其事,必先利其器。我在这里给出了 C,C++,Java,C#,JavaScript,和 Python 这六种 常用编程语言 的书单(我个人不熟悉 Objective-C 和 PHP,因此它们不在其中)。

需要注意的是:我在这里给出的是编程语言(Programming Language)书籍,而非编程平台(Programming Platform)书籍。以 Java 为例, Effective Java 属于编程语言书籍,而 Android 编程权威指南 就属于编程平台书籍。

C#

C和指针

忘记谭浩强那本糟糕不堪的 C 程序设计, C 和指针 才是 C 语言的最佳入门书籍。它详细但又不失简练的介绍了 C 语言以及 C 标准库的方方面面。

对于 C 语言初学者,最难的概念不仅仅是指针和数组,还有指向数组的指针和指向指针的指针。 C 和指针 花了大量的篇幅和图示来把这些难懂但重要的概念讲的清清楚楚,这也是我推荐它作为 C 语言入门读物的原因。

C程序设计语言(第2版)

尽管 C 程序设计语言 是二十多年前的书籍,但它仍然是 C 语言 —— 以及计算机科学中最重要的书籍之一,它的重要性不仅仅在于它用清晰的语言和简练的代码描述了 C 语言全貌,而且在于它为之后的计算机书籍 —— 尤其是编程语言书籍树立了新的标杆。以至于在很多计算机书籍的扉页,都会有 “感谢 Kernighan 教会我写作” 这样的字样。

延伸阅读:

  • C 专家编程 :不要被标题中的 “专家” 吓到,这实际是一本很轻松的书籍,它既包含了大量 C 语言技术细节和编程技巧,也包含了很多有趣的编程轶事;
  • C 陷阱与缺陷 :书如其名,这本书介绍了 C 语言中常见的坑和一些稀奇古怪的编程 “技巧”,不少刁钻的 C 语言面试题都源自这本小册子;
  • C 语言参考手册 :全面且权威的 C 语言参考手册,而且覆盖 C99,如果你打算成为 C 语言专家,那么这本书不可错过;
  • C 标准库 :给出了 15 个 C 标准库的设计思路,实现代码,以及测试代码,配合 C 程序设计语言 阅读效果更佳;
  • C 语言接口与实现 :这本书展示了如何使用 C 语言实现可复用的数据结构,其中包含大量 C 语言高级技巧,以至于 Amazon 上排行第一的评论是 “Probably the best advanced C book in existance”,而排行第二的评论则是 “By far the most advanced C book I read”。

C++#

C++ 程序设计原理与实践

作为 C++ 的发明者,没有人能比 Bjarne Stroustrup 更理解 C++。Bjarne 在 Texas A&M 大学任教时使用 C++ 为大学新生讲授编程,从而就有了 C++ 程序设计原理与实践 这本书 —— 它面向编程初学者,既包含 C++ 教程,也包含大量程序设计原则。它不但是我读过最好的 C++ 入门书,也是我读过最好的编程入门书。

比较有趣的是, C++ 程序设计原理与实践 直到全书过半都没有出现指针,我想这可能是 Bjarne 为了证明不学 C 也可以学好 C++ 吧。

C++ 程序设计语言(第4版)

同样是 Bjarne Stroustrup 的作品, C++ 程序设计语言 是 C++ 最权威且最全面 的书籍。第 4 版相对于之前的版本进行了全面的更新,覆盖了第二新的 C++ 11 标准,并砍掉了部分过时的内容。

延伸阅读:

  • A Tour of C++ :如果你觉得 C++ 程序设计语言 过于庞大,但你又想快速的浏览一遍新版 C++ 的语言特色,那么可以试试这本小红书;
  • C++ 语言的设计与演化 :C++ 的 “历史书”,讲述了 C++ 是如何一步一步从 C with Classes 走到如今这一步,以及 C++ 语言特性背后的故事;
  • C++ 标准库(第 2 版) :相对于其它语言的标准库,C++ 标准库虽然强大,但学习曲线十分陡峭,这本书是学习 C++ 标准库有力的补充;
  • 深度探索 C++ 对象模型 :这本书系统的讲解了 C++ 是如何以最小的性能代价实现对象模型,很多 C++ 面试题(包括被问烂的虚函数指针)都可以在这本书里找到答案;
  • Effective C++More Effective C++ :由于 C++ 的特性实在繁杂,因此很容易就掉到坑里。Effective 系列既讲述了 C++ 的良好编程实践,也包含 C++ 的使用误区,从而帮你绕过这些坑。

Java#

Java 核心技术(第9版)

平心而论 Java 核心技术 (即 Core Java)并不算是一本特别出色的书籍:示例代码不够严谨,充斥着很多与 C/C++ 的比较,语言也不够简洁 —— 问题在于 Java 并没有一本很出色的入门书籍,与同类型的 Java 编程思想 相比, Java 核心技术 至少做到了废话不多,与时俱进( Java 编程思想 还停留在 Java 6 之前),矮子里面选将军, Java 核心技术 算不错了。

Effective Java(第 2 版)

尽管 Java 没有什么出色的入门书籍,但这不代表 Java 没有出色的必读书籍。 Effective Java 是我读过的最好的编程书籍之一,它包含大量的优秀 Java 编程实践,并对泛型和并发这两个充满陷阱的 Java 特性给出了充满洞察力的建议,以至于 Java 之父 James Gosling 为这本书作序:“我很希望 10 年前就拥有这本书。可能有人认为我不需要任何 Java 方面的书籍,但是我需要这本书。”

延伸阅读:

  • 深入理解 Java 虚拟机(第 2 版) :非常优秀且难得的国产佳作,系统的介绍了 Java 虚拟机和相关工具,并给出了一些调优建议;
  • Java 程序员修炼之道 :在这本书之前,并没有一本 Java 书籍系统详细的介绍 Java 7 的新特性(例如新的垃圾收集器,try using 结构和 invokedynamic 指令),这本书填补了这个空白;
  • Java 并发编程实践 :系统全面的介绍了 Java 的并发,如何设计支持并发的数据结构,以及如何编写正确的并发程序;
  • Java Puzzlers :包含了大量的 Java 陷阱 —— 以至于读这本书时我说的最多的一个词就是 WTF,这本书的意义在于它是一个 反模式 大全, Effective Java 告诉你如何写好的 Java 程序,而 Java Puzzlers 则告诉你糟糕的 Java 程序是什么样子。更有意思的是,这两本书的作者都是 Joshua Bloch

C#

精通 C#(第6版)

可能你会疑问我为什么会推荐这本接近 1200 页的 “巨著” 用作 C# 入门,这是我的答案:

  1. C# 的语言特性非常丰富,很难用简短的篇幅概括这些特性;
  2. 精通 C# 之所以有近 1200 页的篇幅,是因为它不但全面介绍了 C# 语言,而且还覆盖了 ADO.NET,WCF,WF,WPF,以及 ASP.NET 这些 .Net 框架。你可以把这本书视为两本书 —— 一本 500 多页的 C# 语言教程和一本 600 多页的 .Net 平台框架快速上手手册。
  3. 尽管标题带有 “精通” 两字, 精通 C# 实际上是一本面向初学者的 C# 书籍,你甚至不需要太多编程知识,就可以读懂它。

CLR via C#(第 4 版)

CLR via C# 是 C#/.Net 最重要的书籍,没有之一。它全面介绍了 .Net 的基石 —— CLR 的运行原理,以及构建于 CLR 之上的 C# 类型系统,运行时关系,泛型,以及线程 / 并行等高级内容。任何一个以 C# 为工作内容的程序员都应该阅读此书。

延伸阅读:

  • 深入理解 C#(第 3 版) :C# 进阶必读,这本书偏重于 C# 的语言特性,它系统的介绍了 C# 从 1.0 到 C# 4.0 的语言特性演化,并展示了如何利用 C# 的语言特性编写优雅的程序;
  • .NET 设计规范(第 2 版) :C# 专业 程序员必读,从变量命名规范讲到类型系统设计原则,这本书提供了一套完整的.Net 编程规范,使得程序员可以编写出一致,严谨的代码,
  • C# 5.0 权威指南 :来自 O’Reilly 的 C# 参考手册,严谨的介绍了 C# 语法,使用,以及核心类库,C# 程序员案头必备;
  • LINQ to Objects Using C# 4.0Async in C# 5.0 :LINQ 和 async 分别是 .Net 3.5 和 .Net 4.5 中所引入的最重要的语言特性,所以我认为有必要在它们上面花点功夫 —— 这两本书是介绍 LINQ 和 async 编程的最佳读物。

JavaScript#

JavaScript DOM 编程艺术(第 2 版)

尽管 JavaScript 现在可以做到客户端服务器端通吃,尽管 JQuery 之类的前端框架使得一些人可以不懂 JavaScript 也可以编程,但我还是认为学习 JavaScript 从 HTML DOM 开始最为适合,因为这是 JavaScript 设计的初衷。 JavaScript DOM 编程艺术 系统的介绍了如何使用 JavaScript,HTML,以及 CSS 创建可用的 Web 页面,是一本前端入门佳作。

JavaScript 语言精粹

JavaScript 语言包含大量的陷阱和误区,但它却又有一些相当不错的特性,这也是为什么 Douglas Crockford 称 JavaScript 为 世界上最被误解的语言 ,并编写了 JavaScript 语言精粹 一书来帮助前端开发者绕开 JavaScript 中的陷阱。和同类书籍不同, JavaScript 语言精粹 用精炼的语言讲解了 JavaScript 语言中好的那部分(例如闭包,函数是头等对象,以及对象字面量),并建议读者 不要 使用其它不好的部分(例如混乱的类型转换,默认全局命名空间,以及 奇葩的相等判断符 ),毕竟,用糟糕的特性编写出来的程序往往也是糟糕的。

延伸阅读:

Python#

Python 基础教程(第二版)

Python 的入门书籍很多,而且据说质量大多不错,我推荐 Python 基础教程 的原因是因为它是我的 Python 入门读物 —— 简洁,全面,代码质量很不错,而且有几个很有趣的课后作业,使得我可以快速上手。

这里顺便多说一句,不要用 Python 学习手册 作为 Python 入门 —— 它的废话实在太多,你能想象它用了 15 页的篇幅去讲解 if 语句吗?尽管 O’Reilly 出了很多经典编程书,但这本 Python 学习手册 绝对不在其中。

Python 参考手册(第 4 版)

权威且实用 Python 书籍,覆盖 Python 2 和 Python 3。尽管它名为参考手册,但 Python 参考手册 在 Python 语法和标准库基础之上对其实现机制也给出了深入的讲解,不容错过。

延伸阅读:

3. 编程语言理论#

编程语言实现模式

大多数程序员并不需要从头编写一个编译器或解释器,因此 龙书(编译原理) 就显得过于重量级;然而多数程序员还是需要解析文本,处理配置文件,或者写一个小语言, 编程语言实现模式 很好的满足了这个需求。它把常用的文本解析 / 代码生成方法组织成一个个模式,并为每个模式给出了实例和应用场景。这本书既会提高你的动手能力,也会加深你对编程语言的理解。Python 发明者 Guido van Rossum 甚至为这本书给出了 “Throw away your compiler theory book!” 这样的超高评价。

程序设计语言——实践之路(第 3 版)

程序员每天都要和编程语言打交道,但是思考编程语言为什么会被设计成这个样子的程序员并不多, 程序设计语言 —— 实践之路完美的回答了这个问题。这本书从编程语言的解析和运行开始讲起,系统了介绍了命名空间,作用域,控制流,数据类型以及方法(控制抽象)这些程序设计语言的核心概念,然后展示了这些概念是如何被应用到过程式语言,面向对象语言,函数式语言,脚本式,逻辑编程语言以及并发编程语言这些具有不同编程范式的编程语言之上。这本书或极大的拓宽你的视野 —— 无论你使用什么编程语言,都会从这本书中获益良多。理解这一本书,胜过学习十门新的编程语言。

延伸阅读:

  • 七周七语言:理解多种编程范型 :尽管我们在日常工作中可能只使用两三门编程语言,但是了解其它编程语言范式是很重要的。 七周七语言 一书用精简的篇幅介绍了 Ruby,Io,Prolog,Scala,Erlang,Clojure,和 Haskell 这七种具有不同编程范式的语言 —— 是的,你没法通过这本书变成这七种语言的专家,但你的视野会得到极大的拓宽;
  • 自制编程语言 :另一本优秀的编译原理作品, 自制编程语言 通过从零开始制作一门无类型语言 Crowbar 和一门静态类型语言 Diksam,把类型系统,垃圾回收,和代码生成等编程语言的关键概念讲的清清楚楚;
  • 计算的本质:深入剖析程序和计算机 :披着 Ruby 外衣的 计算理论 入门书籍,使你对编程语言的理解更上一层楼。

4. 程序设计#

程序设计方法

现代编程语言的语法大多很繁杂,初学者使用这些语言学习编程会导致花大量的时间在编程语言语法(诸如指针,引用和类型定义)而不是程序设计方法(诸如数据抽象和过程抽象)之上。 程序设计方法 解决了这个问题 —— 它专注于程序设计方法,使得读者无需把大量时间花在编程语言上。这本书还有一个与之配套的教学开发环境 DrScheme ,这个环境会根据读者的程度变换编程语言的深度,使得读者可以始终把注意力集中在程序设计方法上。

我个人很奇怪 程序设计方法 这样的佳作为什么会绝版,而谭浩强 C 语言这样的垃圾却大行其道 —— 好在是程序设计方法 第二版 已经被免费发布在网上。

计算机程序的构造与解释(第 2 版)

计算机程序的构造与解释 是另一本被国内大学忽视(至少在我本科时很少有人知道这本书)的教材,这本书和 程序设计方法 有很多共同点 —— 都使用 Scheme 作为教学语言;都专注于程序设计方法而非编程语言本身;都拥有相当出色的课后题。相对于 程序设计方法计算机程序的构造与解释 要更加深入程序设计的本质(过程抽象,数据抽象,以及元语言抽象),以至于 Google 技术总监 Peter Norvig 给了这本书 超高的评价

延伸阅读:

  • 编程原本STL 作者的关于程序设计方法佳作 —— 他把关系代数和群论引入编程之中,试图为程序设计提供一个坚实的理论基础,从而构建出更加稳固的软件。这本书是 程序设计方法计算机程序的构造与解释 的绝好补充 —— 前者使用函数式语言(Scheme)讲授程序设计,而 编程原本 则使用命令式语言(C++);
  • 元素模式设计模式 总结了 面向对象程序设计 中的模式,而 元素模式 这本书分析了 程序设计 中的常见模式的本质,阅读这本书会让你对程序设计有更深的理解;
  • The Science of Programming :会编程的人很多,但能够编写正确程序的人就少多了。 The Science of Programming 通过 前条件 —— 不变式 —— 后条件 以及逻辑谓词演算,为编写正确程序提供了强有力的理论基础,然后这本书通过实例阐述了如何应用这些理论到具体程序上。任何一个想大幅提高开发效率的程序员都应阅读此书。

5. 算法与数据结构#

算法(第 4 版)

文章字数太长了,发不完
继续阅读:
http://lucida.me/blog/developer-reading-li...

本作品采用《CC 协议》,转载必须注明作者和本文链接
本帖由 Summer 于 7年前 加精
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 3

里面有些东西可能写桌面软件或者底层硬件驱动程序比较用的到.

7年前 评论

Reading maketh a full man, conference a ready man, and writing an exact man.

读书使人充实,讨论使人机敏,摘记使人严谨。

7年前 评论