时间:2016-03-27 21:03:18 来源: 复制分享
原标题《成为更优秀程序员的关键:更多的阅读》,IT之家编辑酌情修改。
虽然我一直以来都很享受于读书,但我总是很难挤出时间来阅读。而当真的空闲了,我通常会去阅读小说、自传,或一些怪癖但有趣的东西。我的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
微信搜索“IT之家”关注抢6s大礼!下载IT之家客户端(戳这里)也可参与评论抽楼层大奖!