虽然我一直以来都很享受于读书,但我总是很难挤出时间来阅读。而当真的空闲了,我通常会去阅读小说、自传,或一些怪癖但有趣的东西。我的 Kindle电子书阅读器上到目前为止都是一些我最喜欢的技术。我仍然觉得不可思议的是,通过一个小小的设备我就能随身携带一个图书馆,只要电池能够续航 一段时间(例如一个月)。
但是我在技术上的阅读真的很缺乏。当然,我也读过经典名著,例如《Clean Code》,但仅此而已。我一直是一个“有什么问题就谷歌”的人。技术书籍太枯燥乏味了!所以通常我会避开阅读教材参考书。
直到8个月前。在我计划去周游时间一年的***几星期工作中(我是从秘鲁开往玻利维亚的公交车上写的这篇文章),因为任务基本上完成了,所以我有比平 时更多的空闲时间,于是我决定花时间去阅读一些东西。我们公司有一个Safari在线图书订阅,这基本上允许我们***制地访问所有已经写好的编程书籍,然 后一切都改变了。
事实证明,你从互联网上得到的材料和著作的质量并不怎么好。大多数作品只是孤立的一个片段“这里怎么做到X”。没有故事线索能让你思考怎么应用到自 己身上让自己变得更优秀。在写书的过程中,你必须得想好线索,必须通过编辑的审阅,并且请其他的技术人员仔细检查,在作品问世之前尽可能地提升质量。
这也证明,大多数书其实没有那么无聊!当然不可否认也有一些滥竽充数的,但快速看一下评分和评价应该会有有助于你去伪存真。书籍大多数还是挺引人入胜和有趣的。这是学习的一种迷人方式。
对我来说***的变化是,我是真觉得我因为抽出时间来阅读,比方说,一个月吃透一本书,而变成了一个更好的开发人员。我读过有关微服务的内容,感觉现 在能够更好地知道自己在谈论什么,并且我知道我可以回去参考一下,每当我需要帮助的时候。通过花时间坐下来涉猎Clojure方面的教材,即使只是学习基 础知识,也有助于我能够更深入地谈论函数式语言,以及Clojure用到哪里更好。《7 Concurrency Models in 7 weeks》是一部很有启发性的作品,特别是作为一个Java开发人员,想要用不同的方法来多线程编程(Java中固有的缺陷)的话。
当然,大部分这些书籍中的信息可能在网上的某个地方也有。但是,除非你需要特定的信息,否则你就不会想到要去网上搜索和阅读,也不会得到周边的相关 信息。选择看书可以将你从被动的学习方式(只在需要的时候去获取信息)转变为主动的学习方式(在阅读的过程中,你会接收到各种不同的以前没有见到过的信 息)。这非常重要,尤其是对职业发展。
最重要的职业工具是持续的学习。特别是我们这一行,因为一切总是在不断的变化:新的语言,新的范式,新的框架总是不断地冒头。由于数量太多用膝盖想想也不可能总是保持优势。你可以作为一个开发者奉献自己,白天工作,然后晚上阅读和编程,但是你依然不可能掌握所有。
幸运的是没有人期待那样。然而,我常常看到开发人员,特别是初级的开发人员,在面对令人气馁的任务时,反而恢复到一种被动的学习模式。他们不求学习新的东西,除非有人(例如团队的***)引入一些新的内容。只在必要的时候学习。这是开发人员保持平庸的“好”方法。
学习呈现多种形式。重要的是要选择你喜欢的主题,然后至少花上少许时间来钻研。从现在开始:选择一本教材,给自己设立本月阅读目标。不知道该读什么书?那行,我给你推荐一下:
-
《Clean Code》 by Robert Cecil Martin
-
《7 Concurrency Models in 7 weeks》 by Paul Butcher
-
《Effective Java》 by Josh Bloch
-
《Building Microservices》 by Sam Newman
译文链接:http://www.codeceo.com/article/be-better-programmer-reading.html
英文原文:The Key to Becoming a Better Developer: Read More