文档详情

程序员必读书单 1.0.pdf

发布:2019-03-23约3.45万字共64页下载文档
文本预览下载声明
目 录 前言 标准 快速通道 程序员必读书单 入门书籍 必读书籍 程序设计 软件开发 个人成长 如何使用这个书单 来自他人的书单 参考 本文档使用 看云 构建 - 2 - 前言 前言 作者 :Lucida 微博 :@peng_gong 豆瓣 :@figure9 原文链接 :http//lucida.me/blog/developer-reading-list/ 本文把程序员所需掌握的关键知识总结为三大类19个关键概念 ,然后给出了掌握每个关键概念所需的入门 书籍 ,必读书籍 ,以及延伸阅读。旨在成为最好最全面的程序员必读书单。 前言 Reading makes a full man; conference a ready man; and writing an exact man. Francis Bacon 优秀的程序员应该具备两方面能力 : 良好的程序设计能力 : 掌握常用的数据结构和算法 (例如链表 ,栈 ,堆 ,队列 ,排序和散列 ); 理解计算机科学的核心概念 (例如计算机系统结构、操作系统、编译原理和计算机网络 ); 熟悉至少两门以上编程语言 (例如C++ ,Java ,C# ,和Python ); 专业的软件开发素养 : 具备良好的编程实践 ,能够编写可测试 (Testable ),可扩展 (Extensible ),可维护 (Maintainable )的代码 ; 把握客户需求 ,按时交付客户所需要的软件产品 ; 理解现代软件开发过程中的核心概念 (例如面向对象程序设计 ,测试驱动开发 ,持续集成 ,和持 续交付等等 )。 和其它能力一样 ,程序设计能力和软件开发素养源自项目经验和书本知识。项目经验因人而异 (来自不同 领域的程序员 ,项目差异会很大 );但书本知识是相通的——尤其是经典图书 ,它们都能够拓宽程序员的 视野 ,提高程序员的成长速度。 在过去几年的学习和工作中 ,我阅读了大量的程序设计/软件开发书籍。随着阅读量的增长 ,我意识到 : 经典书籍需要不断被重读——每一次重读都会有新的体会 ; 本文档使用 看云 构建 - 3 - 前言 书籍并非读的越多越好——大多数书籍只是经典书籍中的概念延伸 (有时甚至是照搬 ); 意识到这两点之后 ,我开始思考一个很功利的问题 :如何从尽可能少的书中 ,获取尽可能多的关键知识 ? 换句话说 : 优秀的程序员应该掌握哪些关键概念 ? 哪些书籍来可以帮助程序员掌握这些关键概念 ? 这即是这篇文章的出发点——我试图通过程序员必读书单这篇文章来回答上面两个问题。 本文档使用 看云 构建 - 4 - 标准 标准 标准 进入必读书单之前 ,我先介绍下书单里的书籍选择标准和领域选择标准。当然你也点击这里直接跳转到书 单开始阅读。 书籍选择标准 1. 必读 :什么是必读书籍呢 ?如果学习某项技术有一本书无论如何都不能错过 ,那么这本书就是必读书 籍——例如Effective Java于Java ,CLR via C#于C# ; 注意我没有使用 “经典”这个词 ,因为经典计算机书籍往往和计算机科学联系在一起 ,而且经典 往往需要10年甚至更长的时间进行考验 ; 2. 注重实践 ,而非理论 :所以这个书单不会包含过于原理性的书籍 ; 3. 入门—必读—延伸 :必读书籍的问题在于 :1. 大多不适合入门 ;2. 不够全面。考虑到没有入门阅读和 延伸阅读的阅读列表是不完整的——所以书单中每个关键概念都会由一本入门书籍 ,一本必读书籍 (有时入门书籍和必读书籍是同一本 ),和若干延伸阅读书籍所构成。 概念选择标准 1. 全面 :全面覆盖软件开发中重要的概念 ; 2.
显示全部
相似文档