5本书可以帮你变成更优秀的程序员

作者:程序员小跃
slogan:当你的才华还无法撑起你的野心时,那应该静下心来好好学习

继续上周我们了解了《这5个编程名言还请您收好》,不知道大家看的怎么样呢。我反正对里面的内容印象比较深刻,尤其是在文末我也表达了我的观点,对于DRY原则,最近看的多,所以感受的也最多。

当然,编程是对我们实践能力的一个考验,通过翻译这个操作,让我们了解歪果仁的想法,也是一种进步,毕竟也和国际接轨,同外国友人进行了深度的接触的另一种方式。

从上一篇文末也说了,有一个彩蛋,其实也说不上是彩蛋,就是出了一篇姐妹篇,《5 Books That Can Help You Become a Better Programmer》,对于爱读书的我来说更是一种享受。但是这篇翻译,也是扒了一层皮,限于我的能力有限,翻译的可能不是很准确,所以仅供大家参考,有条件的可以去看下原文噢。

5本书可以帮你成为更优秀的程序员

当你是一名想要成长的程序员新手时,你该读什么

作者:Matthew MacDonald

时间:2019.8.9

我喜欢书籍。纸上墨迹的悠闲节奏,它以整洁、有序的页面展示方式。

但是技术书籍有一些严重的问题。它们很多时候都已经过时了。它们没有交互性,因此没有办法展示实际的概念(或让你体验这些概念)。它们具有较低的带宽–例如,长代码示例需要分解为一些块,或者阅读它们是一件繁琐的事情。而且甚至不能让我开始了解黑白截屏。

但是一些科技书籍克服了困难,并在多年内保持着有用的地位。这些宝藏不教最新的编程框架。相反,它们照亮了软件开发哲学。它们教授优秀的代码和优秀的设计。它们告诉你在软件行业工作的感觉,并向你展示成为一名优秀的程序员意味着什么。在这篇文章里,你将见到我最喜欢的五个例子。

1. The Pragmatic Programmer

中文名《程序员修炼之道-从小工到专家》,刚好我也在看这本书

一本编程相关的书籍再起第一版发行20年后还能教授吗?如果可以的话,那它对编写好的代码艺术具有永恒的智慧。

《The Pragmatic Programmer》是一本可以激发程序员更多思考的书,深入了解他们如何应对挑战,与他人合作,并变得更优秀的程序员。它解释了如何对付烂软件–每个大型项目的代码都变得越来越混乱的强大的力量。它给出了一个关于单元测试和重构的基本介绍,以及有关调试的合理建议(不要恐慌!),这可能会帮助您解决问题而又不踩太大的坑。并且,这本书还帮助你使用一些很酷的编程术语,包括我最喜欢的术语之一:正交性。

这本书大约有300页,虽然不是很长,但是却很密集。万幸的是,你不需要按顺序去阅读。任何时候,只要你打开书本并翻到其中一页,你就能很愉快地进行阅读。

备选:每个人都喜欢推荐一些经过时间考验的关于代码哲学的书籍(或者至少在他们的办公桌上放着)在这本书旁边。其中一本就是比尔盖茨睡前最喜欢的书籍《Code Complete》。像这本书一样,它包含了宝贵的建议,但同时也更长,更枯燥,阅读起来像一本教科书。另一本高质量书籍,《Clean Code》,涵盖了相同的领域,尽管它开始显示出其时代的迹象以及对Java的格外关注,但还是绝对值得一读。

2. Code:The Hidden Language of Computer Hardware and Software

如果让你写一本对程序员或者对编程感兴趣的外行人看,你会怎么办?《Code》就是那本书,一本对计算机如何进行野心勃勃的探索。

不亲自查看这本书,很难解释清楚。我们都读过关于计算机的工作方式,通常带有一长串的1和0的图表。但是它们不喜欢这本书。这本书是对以Morse电码开始的计算深入理解并最终获得CPU原理图。它阅读起来像一本小说,尽管其中有非常详细的说明。

这本书的中心主题是电子中信息的编码方式。通常,这本书似乎有很多关于有趣的历史课一样,仅仅把你拉回并向你展示自己已经一直在学习现在计算机。它是由编码传奇人物Charles Petzold,最早向程序员解释Windows API的开创者之一(当时的口头禅是“在Petzold中寻找”)。几十年后,他给了在WPF中对3D编程进行了类似的详细探索-引人入胜但有点繁琐的技术,几乎每个人都忽略了。

底线?如果你对电子设备内部发生的事情感到好奇,为什么代码是这样的,这本书将是一本很好的阐明奥秘的书。

3. Don’t Make Me Think

这本一本关于计算机编程的真相的书。每个程序员都会最终设计或实现用户界面,不管他们想不想,这都是迟早的事。尽管程序员也是一个用户,即使一个看起来简单的逻辑,可界面的简单任务,你第一次尝试的几率都不会很好。

设计问题就像冰山一样–在顶部看起来很小,但是下面却出乎意料的大。很多程序员讨厌设计,因为这需要他们使用除了编程之外的其他技能,并且暴露错误的决定是一个很不舒服的方式。这就是为什么这本书出现的原因。

这本书就是在探索一个好的设计。它虽然都是关于网站的设计,但其建议适用于任何类型的软件或者任何想造就的人。真正的把戏是这本书可以深入挖掘你已经拥有的知识,并向你展示如何付诸实践。碰巧的是,学会向可用性专家一样思考非常有趣。实际上,很多乐趣,这本书里都有列出噢。

4. Coders At Work

谈论代码很重要,但与编程人员交流也是必不可少。在这本书背后,搜集了15位出色程序员的访谈。

大多数程序员可以分享一些有用的建议。但是这本书放在桌上,带你看JavaScript的创建者Brendan Eich,Unix的设计师Ken Thompson。这就像你正在和地球上最成功的程序员进行非正式访谈一样。你将了解它们如何应对挑战,如何解决问题,如何编写代码以及如何处理未知未来。看到他们不同的方法也很有趣–有时候也很戏剧性。

像Dan Ingalls谈论他面对新挑战时如何开始写代码,Joshua Block会立即精心设计出编写一行代码之前的API。Donald Knuth走的更远,并描述他如何用铅笔编写排版系统TeX接近计算机的完整实现。

因为这本书的每一章都是以访谈的形式编写的,因此感觉更像是一系列杂志文章,而不是一本关于编程理论的重量级书籍。但是在这些程序员的陪伴下花费的时间越多,你就会学到成为一名多领域的前沿程序员更多的知识。

5. Real-World Bug Hunting

如果不深入研究安全性的某些方面,任何编程书籍的列表都是不完整的。有很多不错的主题可以涵盖。每个程序员都可以获得很大的益处,通过学习加密的知识,黑客渗透网络的方式,以及可以帮助代码防御攻击的最佳实践。但如果你想涵盖很多知识又不想被太多的理论困扰,这本书是一个很好的开始。

在这本书里,你将获得最常见的坏人攻击好程序的真实描述。你将看到未经过过验证的输入会如何把数据库删除或破坏网站。你将看到恶意网站对好网站进行垃圾邮件攻击,并看到黑客使用泄漏的内存来接管计算机。有些读者可能觉得这些场景太过技术化,但这本书充满了黑客的实际攻击——没有比现实世界更好的老师了。

备选:每个程序员都应该至少学习一点密码学,安全通信和身份验证科学。有很多关于这门课,虽然有些是古老的,有些是令人生畏的教科书数学方面。一个非常轻松的开始,尝试《The Manga Guide to Cryptography》。关于一个更经典的方法,阅读《Cryptography Engineering》,由超过三位世界领先的密码学专家撰写。如果你想轻松点,我可以衷心地推荐《The Cuckoo’s Egg》,一个关于天文学的痴迷者(和偶然的计算机专家)Clifford Stoll和他发掘的一个伯克利实验室的俄国黑客。这是你最轻松的阅读书单。


作为一名程序员,你总是会觉得你只是在即将到来的变革和新技术的海啸前的一小步。但每隔一段时间暂停一下是很重要的。从不断地学习新的框架和语言中解脱出来。读一本这样的书。您将对软件开发的技巧和职业有一个更广阔的了解。你可以提升你的代码能力。

感想

结合两篇文章一起阅读完,你是什么感受呢。编码确实是一件不容易的事情,对吧。你既要对自己的程序负责,又要对项目负责,对公司负责。一个好的程序员是如何养成的呢?

从我自己的感受上来说,无非就是多写多练多读。多写一些编码,当然是高质量的编码,而不是没有营养的if-else;多练,把一个需求从设计到开发完成,练习如何从零开始,培养你成为架构师的能力;多读优秀的代码、书籍,学习那么优秀的编码方式,学习优秀的编程思想,相信坚持下去,你就会成为编程界最靓的仔!

是不是对我们的英语翻译很感兴趣,是不是对如何成为高质量的码农很感兴趣,不要想象,赶紧来找我一起学习吧。

发布了120 篇原创文章 · 获赞 123 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/xuyue995277/article/details/105379160