所有软件工程师必读的 11 本书
这篇文章最初发表在CoderHood上,标题为《所有软件工程师必读的 11 本书》。CoderHood 是一个致力于软件工程人性化维度的博客。
1984年我开始编程的时候,几乎没有什么文献可以指导我的学习之路。当时我遇到的一个问题是,当时我在意大利,一个英文单词都不懂。虽然可能有英文书籍,但意大利语翻译的书籍选择太少了。我早期的知识主要来源于一些翻译的编程书籍和一些技术杂志。
在意大利语的译本中,我对彼得·诺顿的一些早期作品记忆犹新,封面上他双臂交叉的照片就是他的作品。
如今,数以千计的技术书籍唾手可得,互联网就像一个信息宝库。想要找到学习一门新语言或框架所需的资料,就像谷歌搜索一样简单。此外,还有很多非技术类书籍可以指导你如何像开发人员一样思考,从而能够在团队和软件组织中高效工作。领导原则、团队合作、开发流程、商业知识以及通用的软件行业知识,对于在科技领域取得成功至关重要。我想与大家分享一些我最喜欢的书籍,排名不分先后。
极致所有权:美国海豹突击队如何领导并获胜
内心游戏对于科技行业的职业发展至关重要,这本书将帮助你实现目标。这本书与软件行业无关,但它与你在软件行业取得成功所需的内心对话息息相关。
作者之一乔科是世界上最可怕的人;他曾是一名海豹突击队员,被派往伊拉克最激烈的战场,领导“布鲁瑟”特遣部队。在那里,他养成了对所做任何事情的结果都绝对负责的心态。
这本书将战场上获得的智慧和原则转化为一种可以应用于商业和生活的思维方式。对于任何想要掌控自己的职业道路、不再找借口的人来说,这都是一本必读之书。它将改变你对待工作和生活的方式。
Scrum:事半功倍的艺术
作者:Jeff Sutherland、JJ Sutherland
如果您的组织使用敏捷方法开发软件,那么本书正适合您。如果您的组织尚未采用敏捷方法,则您应该考虑是否需要进行更改。本书对这两种情况都适用。
它不仅是工程师和 Scrum Master 的必读书籍,也是任何想要了解软件构建方式的人的优秀书籍。它揭开了整个流程的神秘面纱,并明确了组织可以以及应该对 Scrum 团队抱有什么样的期望。它不是一本技术书籍,也不仅仅是一本面向工程师的书。它是一本适合任何想要学习一种可以应用于提高任何领域和组织团队生产力的方法的人的书。
它并非 Scrum 实践的详细指南,但它将详细解释 Scrum 的工作原理以及为什么应该考虑用它来指导软件构建过程。它将帮助你形成理解 Scrum 所需的思维模式,并提供实施 Scrum 的基础知识。
我敏锐地意识到并非所有开发人员都喜欢 Scrum 或 Agile 方法,但我发现大多数情况下原因在于以下一个或多个:
- 他们不了解 Scrum,也从未花时间去研究它。
- 他们以前尝试过,因为他们不得不这么做,但他们反对并决定这样做,因为这样做行不通。
- 他们之前尝试过,也尝试过,但没有给它足够的时间来进入状态。
- 他们以前尝试过,也尝试过,但只遵循了一些原则而忽略了其他原则。
- 他们以团队形式工作,其中一些人抓住一切机会与这一进程作斗争。
- 他们从来没有很好地实施过它。
- 他们在团队中表现不佳。
- 他们觉得花在编码以外的活动上的时间都是浪费。
- 他们不习惯规划自己的工作,任何这样做的尝试都会违背他们的“边做边设计”习惯。
- 他们觉得自己拥有代码,并且不接受任何其他开发人员的帮助或合作。
我建议你买这本书,以开放的心态阅读,看看它是否能帮助你克服困难。
5秒规则
作者:梅尔·罗宾斯
这本书描述了一个非常简单的概念,但并不容易。
你有没有经历过这样的时刻:开会时突然冒出一个想法,但在分享之前,你却强忍着没有说出口?或者,当你看到认识的人(或想认识的人),却强忍着没有说“你好”?又或者,早上闹钟响起时,你知道自己该起床了,但又不想起床,于是按下了贪睡键?
这本书会告诉你关于那一刻的一切。这本书其实并非关于规则本身。别为了学习规则而读它!为了省钱,我给你写这个:“当你本能地想要实现目标时,你必须在5秒内行动起来,否则你的大脑会阻止你。5-4-3-2-1-开始!” 就是这样。
这本书更侧重于理解你的大脑在什么时候劝你放弃实现目标。它是一场围绕这个话题的冥想,从多个角度进行了探讨。
通常,作者朗读书籍的音频版本质量参差不齐。这个版本非常棒,我推荐音频版本,因为作者是一位优秀的公众演讲者,听起来就像她在跟你说话,而不是在读一本书。
史蒂夫·乔布斯
作者:沃尔特·艾萨克森
我花了几个星期才读完它——这本书有 656 页——我非常喜欢它,我肯定会再读一遍。
这本书带我走进一位天才的迷人心灵和人生,令人深受启发。他在某种程度上让我想起了达芬奇,不仅在艺术、设计和工程方面才华横溢,还拥有商业天赋,并且深刻理解人们的需求。他能够预见人们的需求,并将他的愿景融入纯粹的设计艺术作品中。
我向软件工程师推荐这本书,因为它展现了产品设计和理解客户的精妙之处。它展现了商业头脑和销售人员如何成为产品成功的关键,以及像史蒂夫·乔布斯这样的天才是多么深刻。
安静:内向者在喋喋不休的世界里的力量
作者:苏珊·凯恩
并非所有开发人员都是内向的。事实上,有调查显示,大多数开发人员认为自己属于中度外向。无论你认为自己是外向还是内向,这本书都能帮助你了解内向者以及他们的思维方式和行为方式。
这本书让我对内向者和外向者之间深刻而有趣的差异、这两个极端之间的连续性及其巨大的多样性有了新的认识。
它之所以“对我有启发”,是因为它解释了为什么在许多同样以客户为中心的工程组织中,不同的团队(尤其是“面向客户”和“面向产品”的团队)往往持有截然不同的观点,工作方式也大相径庭。此外,它也解释了为什么这种多样性在更深层次理解差异时会大有裨益。
如果你是一位家长,这本书能帮助你更好地了解你的孩子;至少我知道它对我有帮助,因为我有两个性格迥异的内向孩子和一个外向的孩子。这个领域的研究很多,而我了解的却很少。
练习心态:在生活中培养专注力和自律性——学会热爱过程,掌握任何技能或挑战
托马斯·M·斯特纳
软件开发需要不断学习新技术、新语言、新框架、新思想流派、新流程和新技能。它永无止境,也永远不会停止。
你花了多少时间学习如何学习?这本书通过实践描述了学习的过程。它展示了如何专注于学习过程,而不是目标,从而提升学习体验,减轻学习者的压力,最终提高学习效果。
这本书是所有软件工程师的必读书籍。
赖以生存的算法:人类决策的计算机科学
作者:Brian Christian、Tom Griffiths
如果你从未学过计算机科学,你有没有想过计算机科学究竟是什么?工程师是如何思考的?为什么他们通常都是优秀的问题解决者?为什么计算机科学正逐渐成为基础教育的一部分?
如果你学过计算机科学,你可能花了很多时间思考如何将算法应用到日常生活中,而且你可能乐此不疲。这很有趣,也很有用。
无论如何,这本书是一次非技术性的旅程,带我们领略计算机科学家在如何解决问题的研究中给予我们的智慧。
简单规则:如何在复杂的世界中蓬勃发展
作者:唐纳德·萨尔、凯瑟琳·M·艾森哈特
这本书改变了我的思维方式。读完之后,我发现自己开始探索如何将行为、流程和概念提炼成简单的规则。这是一个强大的概念,很能引起工程界人士的共鸣。
这本书读起来并不特别精彩,而且有一些不必要的部分。然而,我喜欢它的基本思想和背后的哲学,我相信它能让所有软件工程师在职业生涯的各个阶段受益。
从零到一:创业笔记,或者如何构建未来
作者彼得·泰尔是PayPal的创始人之一,也是硅谷风险投资公司“Fund”的创始人之一,创办了SpaceX、Airbnb等公司。
如果只用一句话概括而不添加上下文,他的观点可能相当激进:“你想尽可能接近创造垄断,而竞争对企业不利。
他的观点背后的理由引人入胜,这与超级成功的公司远胜于竞争对手的事实有关,他们并不会过度担心竞争。他们很少花时间参与竞争,而大部分时间都用于创新、营销和销售。本书详细探讨了这些成功案例的成因,以及一些导致互联网泡沫的信念的谬误,以及其他许多引人入胜的话题。
我发现特别有趣的部分是销售在初创企业中的作用。泡沫时代那种“只要你建好了,他们就会来”的旧思维,现在行不通了。这本书描述了分销在根本上的重要性,以及像史蒂夫·乔布斯这样的商业天才如何不仅精通构思比市面上其他产品好10倍的产品,还精通打造卓越分销渠道的艺术。所有这些对你们中的许多人来说可能都是“老生常谈”,但本书的表达方式和思路的组织方式,对我来说非常有启发。
坚持下去:成功学习的科学
作者:彼得·C·布朗、亨利·L·罗迪格三世、马克·A·麦克丹尼尔
本书包含了关于我们如何学习以及如何提高学习效率的精彩研究成果。它详细阐述了交错学习、多样化学习和间隔学习的优势。它深刻地阐释了为什么“大量练习”不利于长期学习,为什么自我测试如此重要,以及为什么学习并非越简单越好。
它让我很好地理解了为什么混合式学习如此重要,为什么“平行学习轨道”策略如此强大,为什么为标准化考试而学习不是一种好的学习方式,以及为什么钻研和杀戮不是一个好的长期学习策略。
如果您认为自己是一名终身学生,并且认为学习和保留新材料的过程是一个令人着迷的主题,那么这也是一本值得一读的书。
创新者:一群黑客、天才和极客如何创造数字革命
作者:沃尔特·艾萨克森
本书从头到尾讲述了计算机和互联网发明背后的个人和团队的历史。它有时有点技术性,涉及到它所涉及主题的一些非常有趣的细节,但又不会太技术性以至于非工程师无法阅读。
我最喜欢的是,它向读者展现了那些创造并最终将我们如今习以为常的技术现实付诸实践的人们的奋斗历程和个性。它展现了创新如何融合直觉、个性、技能和个人驱动力。它描述了将这些直觉付诸实践所需的人为因素和团队合作。它解释了为什么创新通常由一个人推动,但要将其变为现实,却总是需要不止一个人的努力。它还展现了创新如何存在于由现有创新形成的线索所构建的结构中,并且通常由多个团队同时独立地发现。
个体创新者会设想、规划并最终实现。他们独自一人时往往是富有远见的天才;然而,团队的构想、规划并最终为世界带来重大创新则需要团队的共同努力。当他们完成这些工作后,其他人便会开始编织新的面料,如此循环往复。
引爆点:小事如何带来大改变
马尔科姆·格拉德威尔
这本书非常值得一读,其中有一节非常精彩,介绍了一种测试类型,用于评估《芝麻街》和《蓝色斑点狗》等节目对学龄前儿童的粘性。这项研究的见解非常有趣,可以让软件开发人员了解创建产品路线图的过程。
如果您喜欢这篇文章,请保持联系!
- 在 CoderHood 上查看我的所有帖子。别忘了订阅,以便通过电子邮件接收新帖子的通知。
- 加入我在 LinkedIn 上的专业网络。
- 在 Twitter 上关注我。
- 加入我的 Facebook 页面。
- 最后,请在 dev.to 上关注我!