摘要:对于一个程序员而言,在学校里学不到多少工作中真正需要的知识,只有在工作中实践积累并且看一些优秀的书籍,把实践和理论结合起来才能够更好的工作。尤其是在技术日益发展和变化的今天,每个开发者更应该主动的看书去学习编程技巧并且改变编程方法,才能应付工作中各种复杂的项目。同时也可...
对于一个程序员而言,在学校里学不到多少工作中真正需要的知识,只有在工作中实践积累并且看一些优秀的书籍,把实践和理论结合起来才能够更好的工作。尤其是在技术日益发展和变化的今天,每个开发者更应该主动的看书去学习编程技巧并且改变编程方法,才能应付工作中各种复杂的项目。同时也可以在程序设计中更高效、弹性和准确的解决问题。下面列出了11本对开发人员很有益的书籍,大家可以从中选取感兴趣的进行阅读。
1. 《代码大全》(Code Complete)
第二版的代码大全增加了很多与时俱进的内容,涵盖了软件构建过程中的所有细节。它从软件质量和编程思想等方面论述了软件构建的各个问题,并详细论述了紧跟潮流的新技术、高屋建瓴的观点、以及简单明了的通用概念,当然也含有丰富而典型的程序示例。
评语:引用一位网友的评论:恰恰是这种艺术与科学相互融合的产物带给程序员无比的满足感。老少皆宜的读物,这本书不论对技术大牛、亦或是自学刚入门的程序员都是大有益处的,感兴趣的可以去看看。
2.《程序员修炼之道》(Pragmatic Programmer)
中文名翻译的很形象,这是一本介绍软件开发中日益增长的规范和技术技巧的书籍,即根据需求,创建用户乐于接受的、可工作和易维护的代码,保持代码灵活和易于改编重用的架构技术。另外也有防止软件变质、提高编写灵活、避免相同设计、以及对代码防护等内容。
评语:一本可以提高程序员实效性的书籍,这本书对有一定代码量和项目经验的人能引起共鸣,你看完后会反思:程序为什么要这么设计?怎么才能写出更好的程序?如何才能在编程中少走不必要的弯路?推荐一些技术大牛阅读。
3.《计算机程序设计与解释》(Structure and Interpretation of Computer Programs)
该书被世界各地100多所院校用作教材,其中包括美国斯坦福大学、英国牛津大学、日本东京大学等。在修订版中,作者根据十余年的教学实践,对大部分重要设计系统都重新修改并做过测试,包括各种解释器和编译器。涵盖面很广,从数据抽象、过程抽象、迭代、高阶函数等编程到数据结构和算法。
评语:每一位技术大牛都应该阅读这本书。因为本书清晰、简洁和富于才智,适合那些深刻理解计算机科学的人们。
4.《C程序设计语言》(C Programming Language 2nd Edition)
值得一提的是本书是由C语言之父Dennis Ritchie和Brian W. Kernighan共同编写,是一部介绍C语言及程序设计方法的权威性经典著作。本书全面讲述了C语言的各个特性及程序设计方法,配合典型例证,使得本书通俗易懂,实用性强。
评语:该书是学习C语言必读书籍,堪称经典,有C语言的“圣经”美称,其实用性,会让读者爱不释手。
5.《算法导论》(Introduction to Algorithms)
本书全面介绍了计算机算法,涵盖的内容有:算法在计算中的作用,概率分析和随机算法的介绍,另外也介绍了随机化和线性规划技术的近似算法等。全书还提供了900多个练习题和思考题以及详细的实例研究。
评语:《算法导论》是一本将严谨性和全面性融为一体的算法类书籍,可以与高德纳的《计算机程序设计艺术》相媲美,该著作有点深奥,一朝一夕读不透,建议读者多阅读几遍。
6.《重构:改善既有代码的设计》(Refactoring: Improving the Design of Existing Code)
本书揭示了重构的过程,揭示了重构的原理和最佳实践方式,能够帮助你一次一小步的修改你的代码,从而减少了开发过程中的风险。书中还给出了70多个可行的重构,以及指导你何时何地应该开始挖掘代码以求改善。
评语:该著作适合软件开发人员、项目管理人员阅读,读者读完后或许会有醍醐灌顶般感觉,书中蕴含着精华,值得反复咀嚼。
7.《人月神话》(The Mythical Man-Month)
作者Frederick P. Brooks曾荣获图灵奖,本书为人们管理复杂项目提供了颇具洞察力的见解,有发人深省的观点,也有大量软件工程实践,包括作者在IBM公司System 360家族和OS 360中项目管理经验,新的版本中也还有作者对某些观点新的认识、一些精华的提炼、也有大量工程实践,为每个复杂项目的管理者给出了自己的真知灼见。
评语:本著作适合软件开发人员、项目经理、系统分析师等工程管理人士阅读。最好有面向对象经验,此书虽是一本非技术书,但会给你带来很多感触和实用价值。
8.《计算机程序设计艺术》(The Art of Computer Programming)
本书是高德纳(Donald Ervin Knuth)所著,作者曾因三卷书获得美国1974年图灵奖,是20世界最佳12部学术专著之一。本书结合了大量数学知识,分析不同领域中的各种算法,其引入的许多术语、得到的许多结论都变成了计算机领域的标准术语和被广泛引用的结果,此外也描述了编程在模拟、数值方法、符号计算、软件与系统设计等方面的应用。
评语:比尔·盖茨曾说过:如果读懂整套书的话,请给他发一份你的简历。通过这句话足以说明该著作对开发者影响是巨大的。属于纯理论级别的,每次翻阅都会有新的收获,可以当“辞海”来读。
9.《代码整洁之道》(Clean Code: A Handbook of Agile Software Craftsmanship)
软件质量,不仅依赖于架构及项目管理,也与代码质量相关。本书给出了一系列行之有效的整洁代码操作实践,并用来自现实项目的正、反两面来例证,只要遵循这些规则,就能编写出干净的代码,从而有效提升代码质量。
评语:该著作适合老程序员、技术经理。有网友惊呼“早几年看到这本书,也许现在水平能再上一个台阶。”,因此有一定经验和对编程认识到位的人,读完此书将得到更多。
10.《编程人生》(Coders at Work: Reflections on the Craft of Programming)
世界顶尖的程序员是怎么走上编程道路的?他们编程工作创造和改变了人类历史,在这一过程中有什么经验和教训?更有什么独到的看法?本书是一本访谈录,记录了当今最具个人魅力的15位软件先驱的编程生涯,为我们讲述了他们是怎么学习编程的,以及在学习当中发现了什么,有什么看法?并对诸如应该如何设计软件等困扰程序员的老话题谈了自己的看法。
评语:适合所有程序员。看完这本书的读者,或许职业眼界会更开阔,不会再做无谓的码农劳动。
11.《编码:隐匿在计算机软硬件背后的语言》(CODE: The Hidden Language of Computer Hardware and Software)
《编码:隐匿在计算机软硬件背后的语言》是一本讲述计算机工作原理的书,不过不要一听“工作原理”等字眼就认为本书是晦涩难懂的。作者用清晰明了的笔墨把复杂的理论写的通俗易懂,阅读的时候你不会感到枯燥和生硬,同时你也会获得对计算机工作原理深刻的理解。
评语:不知网友有没有看过《明朝那些事儿》这本书?如同这本书把历史写的如同小说一样好看,《编码:隐匿在计算机软硬件背后的语言》这本书也做到了,读完后你会觉得很好玩,同时也能学到真正的知识,加深对计算机科学的理解和认识。
最后:从计算机发明至今,随着计算机硬件和软件技术的发展,计算机的编程语言经历了机器语言、汇编语言、面向过程的程序设计语言以及面向对象的程序设计语言阶段。技术的飞速发展,使得开发者只有不断学习,才能提高技术让自己在编程的道路上走的更远。以上推荐的11本书,希望让各位开发者读后受益匪浅。
软件开发从业人员必读的五本书
时间 2014-09-02 16:16:31 公众账号
主题 软件开发
优秀的计算机图书是经得起时间的腐蚀,它们超越了对编程语言、开发环境或平台的选择,是永不磨灭的。它们并不停留在告诉人们怎么去做,而是解释了背后的原因。如果你不得不每5年清理一次书柜,那么,你一定买了许多不该买的书。
然而,下面要推荐的这5本非常棒的图书,是每一位程序员乃至IT从业人员都应该拥有的,并且值得反复阅读与珍藏!
《人件(原书第3版)》
软件管理领域的传奇经典,被誉为“对美国软件业影响最大的一本书”。作为经久不衰的畅销书,本书深刻地洞察到软件开发的最大问题不在于技术,而在于人。人的因素并不容易解决,一旦解决了,你将更有可能获得成功。人们认为《人月神话》关注"软件开发"本身,《人件》则关注软件开发中的"人",因此,在成千上万的书架上,《人件》永远和《人月神话》并列在一起。
《人月神话》
与《人件》共同被誉为软件管理图书领域最为璀璨的“双子星”,作者为人们管理复杂项目提供了颇具洞察力的见解,既有很多发人深省的观点,也有大量的软件工程实践。
《设计原本》
未来数十年内从事软件行业的程序员、项目经理和架构师必读的一本书,是计算机图书领域的又一史诗级著作。本书从工程师和架构师的视角深入地探讨了设计的和过程,尤其是复杂系统的设计过程,旨在提高产品的实用性与有效性,以及设计的效率和优雅性。
《程序员修炼之道:从小工到专家》
本书由一系列独立的部分组成,涵盖的主题从个人责任、职业发展,直到用于使代码保持灵活、并且易于改编和复用的各种架构技术,利用许多富有娱乐性的奇闻轶事、有思想性的例子及有趣的类比,全面阐释了软件开发的许多不同方面的最佳实践和重大陷阱。
《大教堂与集市》
开源运动的《圣经》,颠覆了传统的软件开发思路,影响了整个软件开发领域。作者Eric S. Raymond是开源运动的旗手、黑客文化第一理论家,他讲述了开源运动中惊心动魄的故事,提出了大量充满智慧的观念和经过检验的知识,给所有软件开发人员带来启迪。