计算机专业及软件开发推荐书籍

计算机专业及软件开发推荐书籍


      计算机专业推荐书籍:

        

一、 思想类读物:

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



  二、 基础课程类读物:

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

 三、 技术类书籍

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

      

        

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

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


        一、 思想类: 

        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 的核心元素的优秀读物, 也可以学到一个重要思想: 使用语言或技术的良好子集来构建应用而不是致力于掌握全部。

Scala程序设计:Java虚拟机多核编程实战Paul Chiusano,Rúnar Bjarnason 著,王宏江 / 钟伦甫 / 曹静静 译。关于函数式编程的优秀技术书籍。借用Scala语言特性,详细阐述函数式编程的理念、方法与技巧,通过重新设计库的讲解方式,更深入地理解设计的一些要点,引导思考计算本身而不是局限于编程的方法学。书中包含一些难度递进的有益的练习,读懂此书需要一定的编程功底,写过Scala程序。值得不定期重温。  

 

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

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

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

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

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

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

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

     11.  《软件设计重构》: 看上去不错。从抽象、封装、模块化、层次结构四个角度分析了面向对象代码组织和设计方面的许多“坏味”和“技术债务”,并给出了相应的重构建议。书中还包括一些趣闻逸事说明“坏味”是怎样产生的。可以和《重构》,《设计模式》结合着看。难得的是不少反面例子以JDK为例子,这种质疑权威的精神可嘉。不足的是分析深度不够。适合初级开发者进阶和不定期重温。

 

       四、 开发方法类

        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 著。  以实际的例子详细地阐述如何运用心理学知识指导产品的易用性设计, 值得细读。

        6.  《设计中的设计》:原研哉著。很好地阐释了“如何运用设计来传达人文理念和寓意,设计的意义和价值”, 图文并茂且精美,值得拥有。

  

       六、 项目管理与产品开发

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

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

       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.   《淘宝技术这十年》:讲述淘宝 诞生和发展的故事, 揭示了“产品业务如何驱动技术发展,技术如何服务于产品业务的发展”的路径,对做产品和做技术很有启发意义。

      9.   《持续交付:发布可靠软件的系统方法》:Jez Humble, David Farley 著,乔梁译。 详细阐述了用于持续交付可靠软件系统的可参考标准部署流水线:配置依赖环境管理、自动化持续构建与部署、自动化提交阶段测试与验收测试、及时反馈和修复错误、安全发布的一整套理念、方法、实践、案例, 将一系列重要的质量保障环节串联成一个自动化的持续集成过程和系统化的发布体系。值得推荐!     

 

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2017年10月16日
下一篇 2017年10月16日

相关推荐