计算机专业推荐书籍

吾不能有名师指导,但求能精选出最好的书籍,从最好的书中学到东西,可有些许补偿。当然,最好能主动寻找良师益友和专业人士的指导。经典的书都有一个特点: 详尽得当,通俗又不失理论化,信息量非常大。

一、 思想类读物:

  1. 《通灵芯片:计算机运作的简单原理》: (美) 丹尼尔·希利斯著。 以通俗易懂的方式阐述计算机的构造与原理。

  2. 《逻辑的引擎》:(美)马丁·戴维斯著。 从十七世纪的莱布尼茨之梦起始,讲述计算机背后的逻辑原理及其主人公的故事,非常精彩!

  3. 《编程珠玑》:(美)本特利(Bentley,J.)著。 看似简单的东西,也能挖掘出珍珠般的光彩。

  4. 《Unix 编程艺术》: Eric S. Raymond 著。 阐述软件设计的原则与方法, 很有参考价值, 要读懂的话需要一定的功力和经验。

二、 基础课程类读物:

  1. 《计算机科学概论》(Computer Science An Overview 9th): (美)J.Glenn Brookshear 著。 关于计算机导引的上佳英文入门读物。

  2. 《The C Programming Language》(第2版): (美)Brian W.Kernighan, Dennis M.Ritchie 著。 C编程必读,简洁扼要;我就是通过这本书开始消除对“字符串”处理的恐惧感的。

  3. 《操作系统:精髓与设计原理》(第五版) :(美)William Stallings 著。 操作系统的推荐教程,阐述详尽得当。

  4. 《数据结构基础》(C语言版): 霍罗维兹 (Ellis Horowitz) , 萨尼 (Sartaj Sahni) , 安德尔森-费里德 (Susan Anderson-Freed) 著。 数据结构的推荐读物,建议读英文版。 严蔚敏老师的《数据结构(C语言版)》 也很不错 , 适合完全没有接触过数据结构的童鞋阅读。

  5. 《算法分析与设计基础》: (美)莱维丁 著。算法入门的推荐读物,讲解清晰而不失深度。当需要轻松阅读理解其思想时读这本,当需要深入理解算法分析时,建议阅读《算法导论》,最好两本都有,相得益彰。

  6. 《数据库系统概念》(第5版) : Abraham Silberschatz, Henry F.Korth, S.Sudarshan 著, 杨冬青,马秀莉, 唐世渭译。全面深入,详尽得当,通俗与理论并重,是为经典。

  7. 《程序设计实践》(第2版): Brian W. Kernighan Rob Pike 著, 裘宗燕译。 或者读英文版(The practice of programming)更好。 教会初学者进行程序设计而不是简单编码的上佳读物,绝对推荐!

  8. 《TCP/IP 详解》(协议篇) : TCP/IP 协议的深入读物, 理解现实中的网络编程基础。 谢希仁老师的《计算机网络》 也很不错, 适合完全没有接触过计算机网络的童鞋阅读。

三、 技术类书籍

  1. 《深入理解计算机系统》:(美)布赖恩特 (Bryant,R.E.) 等著。 以程序员的角度和全局的视角来审视计算机系统,涵盖从数据表示到程序运行、系统交互的各个方面,非常值得深读!

  2. 《Writing solid code》: (美) Steve Maguire 著。 想写出 bug-free 程序的上佳读物之一。相应读物的还有《高质量程序设计艺术》(code quality: from a open source perspective) , 《代码整洁之道》(Writing clean code),《编写可读代码的艺术》(The Art of Readable Code)

  3. 《Thinking in Java》:(美)Bruce Eckel 著。 Java 语言编程的推荐教材。 《Effective Java》(Joshua Bloch著) 作为进阶书籍。

  4. 《设计模式——可复用面向对象软件的基础》:(美)“四人帮”著。 设计模式的必读书籍(亦可用于参考)。

  5. 《实现模式》: Kent Beck 著。 非常有益的面向对象编程经验谈。

  6. 《重构: 改善既有代码的设计》: Martin Fowler 著。 作为面向对象编程的收藏书籍,随时可参阅。

  7. 《Test Driven Development: By Example》: Kent Beck 著。 测试驱动开发的优秀入门书籍

  8. 《MYSQL必知必会》: (英)Ben Forta 著。 人民邮电出版社。薄薄的一百页左右, 快速上手和使用 mysql 数据库。

  9. 《正则表达式必知必会》: (英)Ben Forta 著, 杨涛 / 王建桥 / 杨晓 译。人民邮电出版社。 薄薄的一百页左右, 清晰的阐述, 适合正则表达式的快速了解和上手。

  10. 《Java TCP/IP socket 编程》: (美)Kenneth L.Calvert, M.J. Donaboo著, 周恒民译。 非常好的 Java tcp/ip socket 入门读物, 详细地讲解了相关的知识点,有相应的实例为佐, 并且对底层、性能等方面也作了一定的阐述。

  11. 《Ubuntu Linux 指南:基础篇》: Mark G.Sobell 著。 学习和使用 Linux 系统的优秀入门读物, 建议未接触过 Linux 系统的童鞋从 Ubuntu 起步。

  12. 《Perl 语言入门》(第五版) : Randal L.schwartz 等著, 盛春等译。 Perl 入门的推荐教程。通俗易懂、详尽得当。

  13. 《Java 编程风格》: Alan Vermeulan 等著, 曹铁鸥译。 关于Java 编程的推荐风格, 必知必会。

  14. 《精通正则表达式》: Jeffrey E.F.Friedl 著。 关于正则表达式的深入学习读物。详细阐述了正则的原理和优化,以及在 Perl, Java, C# 等语言下的实现。

  15. 《Java Concurrency in Practice》: Brian Goetz 等 著。 Java 并发编程的优秀读物。强烈推荐!

  16. 《单元测试之道Java版:使用JUnit 》: Andrew Hunt, David Thomas 著. 单元测试的入门读物。

四、 软件开发的可选读物:

  1. 《软件工艺》: Pete McBreen 著. 从工艺角度论述软件开发,强调个人开发能力的修炼。最好读英文版, 顺便学学英语。

  2. 《人月神话》: Frederick P. Brooks, Jr . 著。 软件工程领域的必读经典作品 。

  3. 《黑客与画家》: Paul Graham 著. 互联网已经发生了巨大的变化, 但书中观点依然很有启发性, 建议读一读。

  4. 《Coders at work — Reflections on the Craft of Programming》: Peter Seibel 著. 顶级大师的访谈录, 听听他们的声音和工作经历,肯定会受益匪浅。

  5. 《设计原本》: Frederick P. Brooks, Jr. 著, InfoQ中文站 / 王海鹏 / 高博 (译)。 关于软件设计、管理方面的优秀读物。

  6. 《程序员修炼之道:从小工到专家》: Andrew Hunt / David Thomas 著。 关于软件开发方法的非常有益的实践经验谈。

  7. 《时间管理:给系统管理员》: Thomas A.Limoncelli 著。 关于时间管理方面的有益参考,短小而精,适用于所有的软件开发人员。

五、其它

  1. 《云计算解码:技术架构和产业运营》 : 雷葆华,饶少阳等 著。 关于云计算方面的入门读物。

软件开发推荐书籍:

软件开发就像一场持久的战役。 模糊、频繁变更的需求, 项目的讨论、争议 , 进度的紧迫和延迟, 琐碎的事情, 突然出现的变故,各种因素都在尽全力阻挠人们按计划的实现预期目的。如果不够重视,它就会无情地偷取你的时间、精力乃至一切。 所以,在即将进入这个战场之前,或者准备纵深之前, 你准备好自己的武器和技能了么? 如果贸然上阵,恐怕会一上战场就深陷其中。

在《计算机专业推荐书籍》中, 推荐了一些自己读过的觉得很不错的计算机书籍,这些书籍都偏重于打好计算机编程的基础功底。 不过, 仅有基础还不行, 在真实软件开发环境中,还得有真枪实弹的技能才能应对自如。 所以,这篇文章会根据自己的学习进程,推荐一些有助于软件开发的书籍。

一、 思想类:

  1. 《Linux/Unix 设计思想》(Linux and The unix philosophy) : Mike Gancarz 著。 在开始之前,学一些如何做好编程这件事的准则是很重要的。 这本书简练地介绍了 Linux 工具与程序设计的重要思想和准则, 值得不定期重温一下。

  2. 《计算机程序的构造与解释》(SICP) : Harold Abelson, Gerald Jay Sussman, Julie Sussman 著。 提炼出程序设计的核心要素和重要思想, 理论与实践结合, 值得深读细读!

    二、 实用技术类

    1. 《Shell 脚本学习指南》: Arnold Robbins、Nelson H.F.Beebe 著。 这本书的特色在于, 它从一开始就专注于脚本编写的重要元素和常用技巧,涵盖最常用的Unix标准工具,其示例用法都是比较容易弄懂的,而且非常具有实用性。 这本书很适合于那些有初步的Shell 认识,希望能够系统学习的读者。

    2. 《SQL 语言艺术》: StéphaneFaroult,P 著, 温 昱、靳向阳 译。 现代软件应用几乎不可能避免与数据库打交道, 能够编写高效的SQL 语句, 高效访问数据库资源, 是从事应用程序开发的必备技能。这本书的书名有点学究味,但内容上却是很具有实战性的,同时也很好地兼顾了理论,值得细研。

    3. 《Java虚拟机并发编程》: Venkat Subramaniam 著, 薛笛 译。 讲解并发编程的几种主要设计思想、方法技巧以及在 Java / Groovy / Scala 下的具体实现示例, 理论与实用性都很强,值得细读。

    4. 《Java并发编程》: Brian Goetz、Tim Peierls、Joshua Bloch、Joseph Bowbeer、David Holmes、Doug Lea 等著, 童云兰 译。 并发编程的优秀技术书籍,详细阐述了编写正确、高效并发程序的基础知识、注意事项,以及许多实用的方法、模式和并发实践示例,是 Java 并发编程的必读书籍,使用其它语言的开发人员亦可从中受益良多。

    5. 《Spring技术内幕》 : 计文柯 著。 Spring 是 Java 阵营的一个非常优秀的应用框架, 钻研 Spring 源代码的引导书籍,学习 Spring 的软件设计方法。根据项目所用到的部分来阅读, 或每次读一个部分。

    6. 《Javascript: The good Parts》: Douglas Crockford 著。 了解 Javascript 的核心元素的优秀读物, 也可以学到一个重要思想: 使用语言或技术的良好子集来构建应用而不是致力于掌握全部。

    7. 《JavaScript异步编程:设计快速响应的网络应用》: Trevor Burnham 著, 许青松 译。 简洁的篇幅, 以有效的示例精炼地介绍了异步编程的常见模式和方法。

    8. 《实用Common Lisp教程》: Peter Seibel 著, 田春 译。 Common Lisp 编程的推荐教程, 详尽得当, 内容丰富。

    9. 《软件测试实践: 成为一个高效能的测试专家》: Rex Black 著, 郭耀、李琦 译。 软件测试技术的入门推荐书籍, 详细讨论了软件测试的基础技术。 包括: 测试的目标、策略、战术; 质量风险识别与评估; 常用测试技术: 代码审查、等价类划分和边界值分析、状态转换图和状态表、测试用例、决策表、域测试、正交表与所有对值表、反应测试、控制流测试、数据流测试、集成测试。

    10. 《Python核心编程》: Wesley J. Chun(陳仲才) 著。 全面、系统、详细地讲解了 Python 语言基础以及应用编程, Python 入门书籍的优秀书籍。

    三、 架构设计类

    1. 《架构之美》: Till Adam 等著。 王海鹏、蔡黄辉、徐锋 译。 对于不同类型的系统,用一个或多个实例来说明其架构、思路及设计考量,开阔程序开发的思路, 文笔自然生动, 引人思考, 值得细读。

    2. 《软件架构设计: 从程序员向架构师转型必备》: 温昱 著。 系统详细地阐述了作为一名架构师必须具备的基础知识’技能和方法,使架构设计这件看上去很抽象神秘的事情变成具体而实际可操作的, 值得赞一个。 不足之处,在于技术味道太浓, 作文掺了一点培训的味道, 缺乏一种架构的灵动之美。 与 《架构之美》配合着看。

    3. 《大型网站技术架构:核心原理与案例分析》: 李智慧 著。 关于大型网站技术架构的全面介绍和索引书, 遇到问题后可以查阅对策, 具体技术还需要另外深入学习。

    4. 《恰如其分的软件架构——风险驱动的设计方法》: George Fairbanks 著, 张逸、倪健、高翌翔 译。 对软件架构知识和经验的很好总结。

    5. 《软件架构师的12项修炼》: Dave Hendricksen 著, 张菲 译。 程序员软技能的全面且实用的必读指南。

    6. 《软件框架设计的艺术》: [捷] Jaroslav Tulach 著, 王磊、朱兴 译。 API 设计的实用指南。

    7. 《面向模式的软件架构——并发与联网对象模式》: [美] Douglas Schmidt、[德] Michael Stal、[德] Hans Rohnert、[德] Frank Buschmann 著。 朱而刚、袁国忠 译。 详细地阐述了并发和联网应用程序设计中的挑战和设计模式(服务配置模式、同步模式、并发模式、事件分离模式), 这些模式建基于GOF所谈到的基本设计模式的组合使用, 值得细研。

    8. 《Javascript设计模式》: 前端的设计模式实现方法和技巧, jQuery 设计模式。

    四、 开发方法类

    1. 《敏捷技能修炼:敏捷软件开发与设计的最佳实践》: Alan Shalloway、Scott Bain、Ken Pugh、Amir Kolsky 著。 郑立、邹骏、黄灵 译。 本书讲解了一些敏捷开发所用到的重要理念和方法, 掌握好的开发方法、过程,养成良好的开发习惯和技能,受益匪浅。与 《程序员修炼之道:从小工到专家》 配合着看。

    2. 《敏捷软件开发:原则,模式与实践》: 基于重要的面向对象设计原则(SRP, OCP, LSP, DIP, ISP), 结合测试驱动开发、设计模式和案例分析, 展示如何编写可扩展性良好的代码,应对需求的变化。

    五、 产品设计类

    1. 《CSS 禅意花园》: Dave Shea、Molly E. Holzschlag 著, 陈黎夫、山崺颋 译。 知名Web设计之书, 以优秀的示例阐述优秀WEB设计理念、方法与技巧。

    2. 《源于自然的设计—— 源于自然的设计原理与形式》: Maggie Macnab 著, 樊旺斌 译。 以简练的文字和美轮美奂的插图, 生动地阐述了设计与美学的有益见解, 读起来赏心悦目。

    3. 《设计师要懂心理学》: Susan Weinschenk 著, 徐佳、马迪、余盈亿 译。以相互独立的短小篇幅讲述了人是如何感知、注意、记忆、思考、动机、决策等多个方面的认知学常识, 与网站的交互设计相结合, 值得参考。

    4. 《设计心理学》: Donald A. Norman 著。 以实际的例子详细地阐述如何运用心理学知识指导产品的易用性设计, 值得细读。

    5. 《简约至上: 交互式设计四策略》: Giles Colborne 著, 李松峰、秦绪文 译。 短短的篇幅, 简明扼要地阐述了“删除-组织-隐藏-转移” 四个设计方法和诸多技巧, 值得一读。

    六、 项目管理与产品开发

    1. 《项目管理修炼之道》: Johanna Rothman 著。 讲述了项目从启动、规划、日程安排、进度跟进、项目节奏、会议控制、项目验收总结的项目全周期相关的方法, 另外也有跨团队项目、跨地点项目的阐述。 详尽得当, 值得信赖。 详尽得当, 值得信赖。

    2. 《未来产品的设计》: Donald A. Norman 著。 详细地阐述人与未来智能产品之间的交互和设计问题, 对设计交互式应用程序有很多启发。

    3. 《好产品,坏产品:如何创造出类拔萃的产品》: 詹姆斯.L.亚当斯 著。 作者从性能、成本、价格、产品适合度、工艺、情绪、需求、美学、文化和环境约束等多个角度对产品品质做了全景式的描述。 内容还是非常不错的, 叙述略微有点枯燥。

    4. 《团队之美》: Andrew Stellman, Jennifer Greene 著。 米全喜、郑柯、徐毅 译。 讲述各种团队应对真实软件开发项目的故事, 值得一读。

    5. 《Google软件测试之道》: James A. Whittaker、Jason Arbon、Jeff Carollo 著, 黄利、李中杰、薛明 译。 详细阐述了 Google 内部是如何进行产品开发与测试、角色分工(SWE, SET, TE, TM)以及测试的理念、方法、技术和手段, 包括测试工程师的招聘, 值得一读。

    6. 《启示录:打造用户喜爱的产品》: Marty Cagan 著, 七印部落 译。 产品开发的优秀入门书籍。 以经验之谈的形式, 阐述了产品开发的角色分工及职责定义, 产品开发的基本流程和注意事项, 以及创造优秀产品过程中的一些有益经验。

    7. 《掌握需求过程》: Suzanne Robertson, James Robertson 著。 王海鹏 译。 详细阐述了需求发现、分析、 评审和存档的方法和技术: 需求的理解误区, 确定业务范围, 设计业务用例, 工作调研, 场景描述, 理解真正的问题, 系统思考, 解决方案的设计, 业务分析策略, 非功能性需求, 复用需求, 用例验收, 需求的沟通与文档化, 需求模板 等。

8. 《淘宝技术这十年》:讲述淘宝网诞生和发展的故事, 揭示了“产品业务如何驱动技术发展,技术如何服务于产品业务的发展”的路径,对做产品和做技术很有启发意义。
七、 社科人文类

  1. 《乔布斯传》: 沃尔特·艾萨克森 著。 感受一下天使与魔鬼的化身, 乔布斯有两点做到了极致: 对产品设计的极致完美的追求和大胆不受社会条框限制的极致。 同时, 也能学习到很多创业中所遇到的问题、解决方法以及商业社会中的规则。

    1. 《改变未来的九大算法》: 约翰.麦考密克 著。 通俗易懂地讲解了九个非常重要而实用的算法(搜索引擎、公钥加密、纠错码、图形识别、数据压缩、数据库一致性、数字签名、可计算理论), 感受是: 一个伟大的算法 = 一个基本的思路 + 一个精密的数学原理 + 广泛的应用。 不得不说, 算法永远是计算世界里最迷人的领域。

    2. 《精简: 大数据时代的商业制胜法则》: 马修.E.梅 著。 阅读此书不会让你立即拥有“化繁为简”的神奇能力, 但是, 通过大量的真实案例, 作者有信服力地阐述了很多用于“化繁为简” 的方法和技术, 内容丰富, 有启发性, 值得一读。

    3. 《乔布斯的魔力演讲》: 卡迈恩.加洛 著。 除了开发设计程序和应用, 还要善于展示自己、团队乃至公司的工作成果。 学会演讲是一门很重要的技能, 这本书比较深入地讲述了演讲的基本技能和方法,以及乔布斯所采用的一些“魔法”, 值得一读。

    4. 《亿万富翁的非常思考术》: 埃利布罗德 著。 由一篇篇简短的文集组成, 讲述了作者在事业中所遇到的问题、思考以及解决思路和方法。 简短,有力, 富有启发。

    5. 《赤裸裸的统计学》: 查尔斯.惠伦 著。 以通俗易懂的例子生动地揭示了概率论和统计学在现实生活中的应用和含义, 值得一读。

    6. 《需求:缔造伟大商业传奇的根本力量》: 亚德里安.斯莱沃斯基, 卡尔.韦伯 著。 讲述了当今时代那些新兴初创企业如何不屈不挠地克服各种障碍(技术,设计,商业,社会,习惯和情结,强大的竞争对手等), 最终打造出一款新颖的、优质的产品服务的过程。非常有启发性。每一个小节都以一个非常引人入胜的案例入手, 无论是成功还是失败, 都深入地揭示了其中的关键元素。

    7. 《泰戈尔经典诗选2: 生如夏花》: (印)泰戈尔著, 冰心译。 优美而清新的散文诗, 心灵的美妙音乐。

    8. 《简单的艺术》: (法)多米尼克.洛罗 著。简约而优雅生活的实用指南。 作者以自己对简单生活的信仰、热爱、追求和探索,缓缓而清晰地讲述如何细心护理自己的身体、精神、心理和心灵,构建属于自己的简约而优雅的生活。简单,即是拥有极少,把空间留给必需与精华。依赖更少,更加畅快、自由与轻松,更加细腻优雅。你是自己唯一拥有的最珍贵的财富;专注提升自身的完善,善用万物而非拥有。

    9. 《安妮日记》: 安妮.弗兰克 著。二战中一位普通少女的隐蔽生活记录。 让人懂得珍惜现在更加美好自由的生活。

    10. 《生命之书》: 克里希那穆提 著, 胡因梦 译。 作者极深刻地探索了人在一生中所遇到的种种困惑, 令人如饮清透的甘泉。

    11. 《心理学与生活》(第16版): 理查德.格里格, 菲利普.津巴多著。 心理学入门的优秀读物, 通俗易懂, 而不失心理学科的严谨性和系统性。了解自己, 理解和体贴他人。

    12. 《创新算法:TRIZ,系统创新与技术创造力》: 根里奇.阿奇舒勒 著。 作者首先阐述了传统发明试错法的低效,批判了关于发明创造的老旧观念,接着在分析大量机电发明专利的基础上,提炼出一套用于技术发明创造领域的系统有序地探索和搜索求解空间的算法和方法:理想机器、技术矛盾和原理矩阵, 诚意满满的干货! 略微美中不足的是,大量的发明专利分析都是基于机电类的,如果缺乏相应的知识背景, 读起来会比较费劲。

  2. 《数学之美》: 吴军著。 建立正确的数学模型, 提炼出简洁的概念, 发展方法进行处理。 本书通过讲述自然语言处理领域相关的互联网技术背后的数学原理, 揭示了数学在处理计算机科学与技术问题上的威力,值得软件工程师深思自己的开发工作。

15. 《我的心只悲伤七次》:纪伯伦著。冰心译。双语版。从那散文诗中飘出大地的悠远和花土的芬芳。

16. 《为人生加速:福特自传》:福特著。 以朴实的语言阐述设计、生产、制造、工作、社会,企业经营管理的真知灼见。商业的基础是服务,人所创造的绝大多数事物都是为社会生活而服务的。

17. 《微创新:5种微小改变创造伟大产品》:德鲁•博迪,雅各布•戈登堡 著。阐述了产品重组创新的加减乘除、属性依存策略。

18. 《伟大创意的诞生:创意自然史》:史蒂文·约翰逊 著。揭示了“创新是穿过并链接相邻可能的一扇扇门而抵达的另一扇门”的道理,同时也阐述了构建平台和生态系统的一些启示:循环利用,彼此依存,共生共荣。

  1. 《清醒思考的艺术》:罗尔夫·多贝里 著。讲述了人容易犯的52种思维偏差。意即要对人类“理性”保持谨慎,切勿高估。

  2. 《TED Talks:演讲的力量》: 生命转瞬即逝,唯有思想、灵感与爱永存。简单、放松、感悟、分享。一本优秀的演讲书籍,提纲挈领地阐释了演讲的方法和技巧,干货满满。还有很多TED实战演讲可以参悟,真是演讲人的好去处。

 [待续]

猜你喜欢

转载自blog.csdn.net/qq_37209262/article/details/85937345