分享

初学程序,程序员都看一些什么书?

 AnonymousV脸 2018-03-29

很多人问我这个问题,除了看视频学习练习,想成为Java程序员该看一些什么书好?尤其是那些准程序员来说,这个问题也非常的困扰,今天呢小编就带大家来看看这些入门甚至是中高端程序员都可以读的书。知道这些书之后或许能对你的程序员之路有一定的帮助。关注下方评论,可领取整套Java资料

1.《程序员修炼之道》

《程序员修炼之道》由一系列独立的部分组成,涵盖的主题从个人责任、职业发展,到用于使代码保持灵活并且易于改编和复用的各种架构技术,利用许多富有娱乐性的奇闻轶事、具有思想性的例子及有趣的类比,全面阐释了软件开发的许多不同方面的最佳实践和重大陷阱。本书是The Pragmatic Programmer一书的评注版,力邀国内资深专家执笔,在英文原著的基础上增加了中文点评和注释,旨在融合二者之长,既保留经典的原创文字与味道,又以先行者的学研心得与实践感悟,对读者的阅读和学习加以点拨,指明捷径。

2.《算法导论》

该书是一本十分经典的计算机算法书籍,与高德纳的《计算机程序设计艺术》相媲美。 《算法导论》由Thomas H.Cormen、Charles E.Leiserson、Ronald L.Rivest、Clifford Stein四人合作编著。本书的最大特点就是将严谨性和全面性融入在了一起。有些关于算法的书虽然严谨,但不全面——还有一些虽然涉及面广,但却缺乏严谨性。《Introduction to Algorithms》独特地结合了严谨性和全面性。这本书涵盖了广泛又深入的算法,使得书中的设计和分析能够面向所有层次的阅读人员。

3.《编译原理》

这门课程关注的是编译器方面的产生原理和技术问题,似乎和计算机的基础领域不沾边,可是编译原理却一直作为大学本科的 必修课程,同时也成为了研究生入学考试的必考内容。编译原理是计算机专业设置的一门重要的专业课程。虽然只有少数人从事编译方面的工作,但是这门课在理论、技术、方法上都对学生提供了系统而有效的训练,有利于提高软件人员的素质和能力。 目前各个大学使用的教材机械工业出版社、国防工业出版社出版的《编译原理》。

4.《修改代码的艺术》

本书是继《重构》和《重构与模式》之后探讨修改代码技术的又一里程碑式的著作,而且从广度和深度上都超过了前两部经典。书中不仅讲述了面向对象语言(Java、C#和C++)代码,也有专章讨论C这样的过程式语言。作者将理解、测试和修改代码的原理、技术和最新工具(自动化重构工具、单元测试框架、仿对象、集成测试框架等)与解依赖技术及大量开发和设计优秀代码的原则、最佳实践相结合,许多内容非常深入,而且常常发前人所未发。书中处处体现出作者独到的洞察力,以及多年开发和指导软件项目所积累的丰富经验和深厚功力。通过这部集大成之作,你不仅能掌握最顶尖的修改代码技术,还可以大大提高对代码和软件开发的领悟力。

5.《编程珠玑》

本书是计算机科学方面的经典名著。书的内容围绕程序设计人员面对的一系列实际问题展开。作者Jon Bentley 以其独有的洞察力和创造力,引导读者理解这些问题并学会解决方法,而这些正是程序员实际编程生涯中至关重要的。本书的特色是通过一些精心设计的有趣而又颇具指导意义的程序,对实用程序设计技巧及基本设计原则进行了透彻而睿智的描述,为复杂的编程问题提供了清晰而完备的解决思路。本书对各个层次的程序员都具有很高的阅读价值。

6.《测试驱动开发》

《测试驱动开发》设想把编程看成是转动曲柄从井里提一桶水上来的过程。如果水桶比较小,那么仅需一个能自由转动的曲柄就可以了。如果水桶比较大而且装满水,那么还没等水桶全部被提上来你就会很累了。你需要一个防倒转的装置,以保证每转一次可以休息一会儿。水桶越重,防倒转的棘齿相距越近。测试驱动开发中的测试程序就是防倒转装置上的棘齿。一旦我们的某个测试程序能工作了,你就知道,它从现在开始并且以后永远都可以工作了。相比于测试程序没有通过,你距离让所有的测试程序都工作又近了一步。

7.《代码大全 2》

第2版的《代码大全》是著名IT畅销书作者史蒂夫·迈克康奈尔11年前的经典著作的全新演绎:第2版不是第一版的简单修订增补,而是完全进行了重写;增加了很多与时俱进的内容。这也是一本完整的软件构建手册,涵盖了软件构建过程中的所有细节。它从软件质量和编程思想等方面论述了软件构建的各个问题,并详细论述了紧跟潮流的新技术、高屋建瓴的观点、通用的概念,还含有丰富而典型的程序示例。这本书中所论述的技术不仅填补了初级与高级编程技术之间的空白,而且也为程序员们提供了一个有关编程技巧的信息来源。

8.《程序员的成长课》

知道和做到之间有一道鸿沟,要想跨越它,你不但要努力,还要讲究方法。《程序员的成长课》不仅传授知识,更教给读者如何做到极致。《程序员的成长课》中的理念、方法、工具可以指导读者更好地看清定位及发展方向,设计未来。如果读者不知道选择什么技术栈来学习,困惑于怎样在技术上持续精进,想转技术管理却没途径,想有章法地为跳槽加薪做准备,或者想转型却不知道自己除了技术还能干什么,建议认真读本书,它提供的方法和工具可以帮助读者很快找到答案。

9.《软件架构师的12项修炼》

为了便于认知和实践,《软件架构师的12项修炼》将3大方面的软技能分为12项:关系技能包含文雅的举止(在任何环境下都能与人文雅相处的能力)、沟通(与人有效交互的能力)、协商(将事情办成的能力)、领导力(通过施加影响力将事情办成的能力)和政治(“政治场合”与人交互的能力)等5项;个人技能包含透明化(使自我、团队关系和项目透明化的能力)、激情(激发和保护激情的能力)和语境切换(将注意力迅速切换到新语境并保持专注的能力)等3项;商务技能包括商务知识(读懂商务语言的能力和了解产品与顾客的能力)、创新(如何通过学习和思考来创新的能力)、实用主义(抓住关键问题的能力)、认知(认知目标、战略及合作伙伴的能力)等4项。

10.《计算机程序设计艺术》

本书结合大量数学知识,分析不同应用领域中的各种算法,研究算法的复杂性,即算法的时间、空间效率,探讨各种适用算法等,其理论和实践价值得到了全世界计算机工作者的公认。书中引入的许多术语、得到的许多结论都变成了计算机领域的标准术语和被广泛引用的结果。另外,作者对有关领域的科学发展史也有深入研究,因此本书介绍众多研究成果的同时,也对其历史渊源和发展过程做了很好的介绍,这种特色在全球科学著作中是不多见的。

怎么样,看完这写书之后,对你的学习是否有一定的帮助呢?我还要指出的是,此书单并不详尽。每年都会有许多伟大的著作问世。这些只是对我和我的职业生涯影响最大的书籍。此外,这些书和使用什么语言无关,可以应用于任何软件语言。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多