热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

12本最具影响力的程序员书籍(上)

:本篇文章主要介绍了12本最具影响力的程序员书籍(上),对于PHP教程有兴趣的同学可以参考一下。
12本最具影响力的程序员书籍(上)
很多人问我这个问题,尤其是那些刚开启软件工程生涯的同事和朋友。要成为一个更好的开发人员,我应该读哪些书?我真的需要读书吗?这是一个很值得探讨的问题,而且也是我在成为软件工程师之时问了很多导师的一个问题。但问题是,很多人推荐的是不同主题的不同书籍。他们推荐的书在他们看来是伟大的,但没有人能告诉我,要想成为一个伟大的工程师,我应该阅读什么,哪些是重要的、是必读的书籍。
我从我的导师那儿学到了很多东西,并意识到,我仍然有很多东西需要学习,还有许多不同的书需要阅读。我决定每个月读一本专业领域(软件工程)的书。随着时间的积累,我总结出了我认为想要成为一个顶级开发人员必须阅读的书单。
事先声明——只是阅读这些书不会让你成为一个伟大的开发者。你还需要积累多年的工作经验,并应用这些书中的原则到现实实践中,并在现实世界中发展你解决问题的能力。
阅读这些书可以帮助你避免一些常见的陷阱和错误,一些开发人员早期经历的陷阱和犯过的错误。我多么希望在我刚进入软件领域的时候,就有人向我推荐这些书啊,并且我现在依然很庆幸自己发现并反复阅读了这些书!也许你已经在大学读计算机科学或工程课程的时候读到过其中的一些书。也许在那个时候,你觉得它们并不重要,但是我可以用我亲身经历来说明我使用和应用了许多来自于这些书的原则。
我还要指出的是,此书单并不详尽。每年都会有许多伟大的著作问世。这些只是对我和我的职业生涯影响最大的书籍。此外,这些书和使用什么语言无关,可以应用于任何软件语言。好了,让我们开始介绍这些书吧! (这些都是必不可少的,我将根据它们对我的影响大小从后往前介绍。)
12.《Working Effectively with Legacy Code》我之所以喜欢这本书,是因为几乎所有的软件开发人员,在其职业生涯的某个时刻,往往会不得不支持和工作于遗留系统。在这本书中,Michael Feathers提供了从开始到结束的策略,以便于更有效地工作于未经测试的遗留代码库。本书借鉴了Michael为其著名的Object Mentor专题研讨会创作的材料:Michael用于指导的技术,以帮助开发人员,技术管理人员和测试人员掌控遗留系统。
11.《The Mythical Man-Month》本书是一本经典之作,但最近被修改和更正了。令人惊奇的是这本书仍然与软件产品开发密切相关。如果你从事软件的话,这本书是必读的。这本书最有价值的部分,我相信,是“plan to throw out”原型章节。尽管我们的目标通常是做一个更大,更好,更快,不管它是什么的东西,但是我们总会构建出一些不得不被废弃,需要重做的东西。这种情况我亲身经历过很多很多次。因此,关键是要plan to throw out(计划抛弃),这样你才能适应接下来的情况。如果你梦想第一个产品就ok,那么你就会有抛弃它们的风险,因为产品的改进和发展是不可避免的。计划抛弃也有助于通过设置合理的里程碑来达到进度目标。
10.《Design Patterns》如果你打算成为一名架构师或系统的设计人员,那么你很有可能会被要求阅读这本书。这是一本被誉为有史以来最伟大的有关于软件开发的书,详细讲述了许多不同的设计模式,这么多年来一直在帮助软件工程师避免和处理行业面临的常见问题。遵照这本书的策略可以助你打造更高品质,灵活和可维护的软件。传说中的“四人帮”就是这本书,因为它是由四个著名的作者共同编写的。
9.《Programming Pearls 第二版》这本书和这书单上的其他书籍略有不同。我想说这本书可以帮助一个人“像一个程序员一样思考”。《Programming Pearls》是先前发表在“Communications of the ACM(美国计算机学会通讯)”的15篇专栏的一个纲要。这些专栏涵盖了广泛与编程相关的主题:从需求收集到性能优化。重点关注编码技术和算法。
每个专栏被组织为一个章节。章节通常以一个实际问题的情景呈现开头。然后,提出各种解决方案和相应的经验教训。写作风格清晰明快。
《Programming Pearls》不是教授新编程概念的寻常书籍。虽然它包含了优秀,有时甚至是相当新奇的想法,但这本书的目的不是教你一些新的东西,而是帮助你成为一个更好的问题解决者。
8.《CODE: The Hidden Language of Computer Hardware and Software》这本书清理了创建和开发复杂系统的大量“魔法”。现在的抽象是如此之多,以致于一些低层次的细节反而不为开发人员所知。虽然你可能不会发现自己在实践中时刻使用着这本书——但我相信,知道自己正在构建什么以及整个编排的工作原理是什么,总归是一个好主意。当你需要打开“黑匣子”,深入软件或硬件来解决一个讨厌的bug的时候,它就能派上用场了。Charles Petzold写的《CODE: The Hidden Language of Computer Hardware and Software》梳理了许多编程概念——从数字系统的十进制,八进制,二进制到高级语言。这本书介绍了基于包的通信协议和TCP。许多章节讲解了有关硬件的概念,有五个章节涉及到了软件和教导操作系统,浮点运算和图形用户界面。
7.《The Art of Computer Programming》这又是一部经典之作。由著名的计算机科学家教授Donald Knuth编著,并得到行业内众多顶尖程序员的一致好评。甚至连Bill Gates也对这本书赞誉有加:
“如果你认为你是一个真正优秀的程序员……那么就去读[Knuth的]《The Art of Computer Programming》吧……如果你能读懂整本书,那么请一定要给我发简历。”
这本书以基本的编程概念和技术开头,然后聚焦于更具体的信息结构——计算机内的信息表示,数据元素之间的结构关系,以及如何有效地处理这些问题。此外还提供了基本的应用程序给仿真模拟,数值方法,符号计算,软件和系统设计。
不断地探索技巧和策略,可以帮助你:
最小复杂性和最大创意的设计
获得协同开发带来的好处
应用防御性编程技术,以减少和驱赶错误
利用机会安全地重构或改进代码
使用针对你项目的结构方法
快速有效地调试问题
早早地正确解决关键的结构问题
从头到尾项目打造高质量的项目
如果你读过这些书,或有任何其他软件开发人员必读的书籍,欢迎在评论中留言!
兄弟会高洛峰免费收徒:http://www.hdb.com/party/lzcw-comm.html
免费领取LAMP兄弟连原创PHP视频教程光盘/《细说PHP》精要版,详情咨询官网客服:
http://www.lampbrother.net

以上就介绍了12本最具影响力的程序员书籍(上),包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

推荐阅读
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • 我的读书清单(持续更新)201705311.《一千零一夜》2006(四五年级)2.《中华上下五千年》2008(初一)3.《鲁滨孙漂流记》2008(初二)4.《钢铁是怎样炼成的》20 ... [详细]
  • Windows操作系统提供了Encrypting File System (EFS)作为内置的数据加密工具,特别适用于对NTFS分区上的文件和文件夹进行加密处理。本文将详细介绍如何使用EFS加密文件夹,以及加密过程中的注意事项。 ... [详细]
  • 本文探讨了程序员这一职业的本质,认为他们是专注于问题解决的专业人士。文章深入分析了他们的日常工作状态、个人品质以及面对挑战时的态度,强调了编程不仅是一项技术活动,更是个人成长和精神修炼的过程。 ... [详细]
  • 软件测试行业深度解析:迈向高薪的必经之路
    本文深入探讨了软件测试行业的发展现状及未来趋势,旨在帮助有志于在该领域取得高薪的技术人员明确职业方向和发展路径。 ... [详细]
  • 在日常生活中,支付宝已成为不可或缺的支付工具之一。本文将详细介绍如何通过支付宝实现免费提现,帮助用户更好地管理个人财务,避免不必要的手续费支出。 ... [详细]
  • 问题描述现在,不管开发一个多大的系统(至少我现在的部门是这样的),都会带一个日志功能;在实际开发过程中 ... [详细]
  • 本文总结了一次针对大厂Java研发岗位的面试经历,探讨了面试中常见的问题及其背后的原因,并分享了一些实用的面试准备资料。 ... [详细]
  • 本文探讨了在一个物理隔离的环境中构建数据交换平台所面临的挑战,包括但不限于数据加密、传输监控及确保文件交换的安全性和可靠性。同时,作者结合自身项目经验,分享了项目规划、实施过程中的关键决策及其背后的思考。 ... [详细]
  • 深入理解:AJAX学习指南
    本文详细探讨了AJAX的基本概念、工作原理及其在现代Web开发中的应用,旨在为初学者提供全面的学习资料。 ... [详细]
  • 二维码的实现与应用
    本文介绍了二维码的基本概念、分类及其优缺点,并详细描述了如何使用Java编程语言结合第三方库(如ZXing和qrcode.jar)来实现二维码的生成与解析。 ... [详细]
  • 本文详细介绍了在Windows系统中如何配置Nginx以实现高效的缓存加速功能,包括关键的配置文件设置和示例代码。 ... [详细]
  • 龙蜥社区开发者访谈:技术生涯的三次蜕变 | 第3期
    龙蜥社区的开发者们通过自己的实践和经验,推动着开源技术的发展。本期「龙蜥开发者说」聚焦于一位资深开发者的三次技术转型,分享他在龙蜥社区的成长故事。 ... [详细]
  • Go从入门到精通系列视频之go编程语言密码学哈希算法(二) ... [详细]
  • 在OpenCV 3.1.0中实现SIFT与SURF特征检测
    本文介绍如何在OpenCV 3.1.0版本中通过Python 2.7环境使用SIFT和SURF算法进行图像特征点检测。由于这些高级功能在OpenCV 3.0.0及更高版本中被移至额外的contrib模块,因此需要特别处理才能正常使用。 ... [详细]
author-avatar
靳淑怡心淑怡綺
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有