神译局是36氪旗下编译团队,关注科技、商业、职场、生活等领域,重点介绍国外的新技术、新观点、新风向。
编者按:作为开发人员,不能够光埋头于具体的编程技术和技巧里面,应该先掌握一切基础的,跟具体语言不相关的核心理念,这样才能够走得更稳和更远。身为开发者的Marco Antonio Ghiani提供了他的推荐:《重构》、《凤凰项目》、《程序员的职业素养》、《强势谈判》。原文发表在medium上,标题是:4 Books Everyone in Tech Should Read and Why
划重点
《重构》:如何去代码的处理众多的依赖关系、数据结构以及语言限制,让它的可读性变强
《凤凰项目》:如何管理一支彼此依赖的庞大团队;如何利用“三种方式”的哲学来实现公司工作流程的最大化
《程序员的职业素养》:从什么是专业主义到如何应对压力,所有跟职业性相关的话题都能找到
《强势谈判》:不要光做埋头敲代码的码农,要学习说话的艺术,争取自己的最大利益
经过很长一段时间之后,在过去的一年的时间里,我重新发现了阅读的乐趣。作为软件开发人员,我过去近五年的大部分时间都是在计算机上学习的,却忘记了翻阅一本写作上乘的书是什么感觉。
感谢去年得到了一些睿智人士的建议,我重新找回旧的纸质书,这不仅让我成长为一名软件工程师,而且还成长为现实世界当中的专业人员。
我看技术书的目的是为了不断磨练我的编码技能,在所有的技术书里面,对我开拓视野帮助最大的也许是这四本书——这些书一本比一本更具技术性,但对读者的思维方式都有很大的影响。我希望你有朝一日也能去看看。这些书对我起到了很大的帮助。
作者:马丁·福勒(Martin Fowler)
《重构》绝对是每个开发人员都应该阅读的一本杰作。当一位开发人员向我推荐此书时,我认为对我通常采用的某些模式采取新的视角可能会很有趣,但是我从来都没想象过这本书的内容对我现在所采用的编程方法会有如此之大的影响。
基本上,Fowler是希望深入解释我们的代码在处理众多的依赖关系、数据结构以及语言限制时是如迅速地变得乱作一团的,然后提供了很好的解决方案让我们把代码变成可读性更强的版本。
本书更多可看作是重构的目录,但凡你认为自己的代码可以变得更好,可以有更可靠的形态时,你都可以拿出来参考。这里就是本书的目录,从中你可以了解整本书所涉及的主题:
第 1 章 重构,第 一个示例
第 2 章 重构的原则
第3 章 代码的坏味道
第4 章 构筑测试体系
第5 章 介绍重构名录
第6 章 第一组重构 (析取函数,封装变量,引入参数对象等)
第7 章 封装
第8 章 搬移特性
第9 章 重新组织数据
第 10 章 简化条件逻辑
第 11 章 重构API
第 12 章 处理继承关系
作者:Gene Kim, Kevin Behr, George Spafford.
不止一个人向我推荐了这本书,但是一开始,一本小说对我来说并没有什么吸引力,尤其是当我的主要关注点是提高自己的编码技能的时候。我错得太离谱了。
《凤凰项目》能够让我更好地了解大公司(应该)是怎么工作的,但是它也帮助我改变看法,对什么对团队通过写的代码取得成功至关重要的看法。
如果你决心去取得成功,那你不仅会看到管理一支彼此依赖的庞大团队会有多么的困难;你还会学习到如何利用“三种方式”(系统化思维、扩大反馈循环、持续实验和学习的文化)的哲学来实现公司工作流程的最大化。
读者不仅能学到如何去改善自己的IT组织,而且看待IT的方式也将彻底改变。
作者:罗伯特·马丁(Robert C. Martin)
在了解到《代码整洁之道》(Clean Code)一书的成功之后,我被Uncle Bob(Robert C. Martin的绰号)下一本书《The Clean Coder》里面谈到的观点吸引住了。
没有人向我推荐这本书,但是我的好奇心促使我要尝试一下,这是值得的!
在这本书里面,我找到了一名职业开发者应该如何表现的很好描述。这本书涵盖了影响到每个开发人员日常工作的很多领域,从对专业主义的定义开始,到为如何从项目工作中获得一致结果提供有用的建议。
这本书也是我绝对要推荐的一本,从中你可以了解到更大的图景,学习到一些有关如何专业性地发展职业生涯的有用指导。以下是这本书的主题列表,你可以快速浏览一下其中的内容:
专业主义
如何说是/不
编码时间
测试驱动开发
验收测试与测试策略
实践与时间管理
精确的任务估计
如何应对压力
项目合作/团队合作
辅导,学徒期与技艺
作者:克里斯·沃斯(Chris Voss)
最后但并非最不重要的一本,《强势谈判》对我来说是一个启示。这本书跟IT专业人员的工作方式或者任何的技术主题并没有很密切的关系,但它教会了我如何处理妥协以及需要改进才能取得成功结果的情况。
本书来自作者作为前FBI特工所经历的一系列真是体验。那些经历帮助他学会了如何在任何可能的情况下进行谈判并从中获得最大收益。
看完这本书之后,你不但能学会如何利用恰当的语言技巧得体地讲话,而且还会对如何运用一些原则来减轻生活当中遇到的问题有了深刻理解。
虽然这本书它离我的能力领域最远,但绝对是我最喜欢的一本书,而且我也很乐意将其推荐给有兴趣进一步提高沟通技巧的任何人。
还有Kyle Simpson的《你不懂JavaScript》(You Don’t Know JS)系列,我发现这本书对JavaScript社区以及任何有兴趣深入研究JavaScript语言的JS开发人员都做出了惊人的贡献。
我在这里所列出的书籍帮助我在IT的不同领域取得了发展。如果你还知道别的有启发性的书,请在评论区提供你的分享评论——我很乐意把它们添加到我的阅读清单里面!
译者:boxi。