Android Performance

程序员的修炼-08-阅读之美

Word count: 1.9kReading time: 6 min
2018/10/01
loading

本文是 <程序员的修炼-从优秀到卓越> 的读书笔记的第八篇,这本书的作者是 Jeff Atwood,StackOverflow 的创始人之一,Jeff 的文章涉及面很广,他是一个经验老道的程序员、管理者、创业者,这本书谈到了编程之外的很多东西,不管你是初级工程师,还是资深工程师,本书都值得一读。随着你的阅历的增加,每一次重读这本书,都会有不一样的感悟,正如书名“从优秀到卓越”,作者为你指明了道路,至于是否能成功,则要看自己的修炼了。

我会把读书过程中一些精彩的言论摘录下来,有时会加入一些自己的见解或者经历,读书笔记的大纲与书本身的大纲是一致的,这也是我从另外一个地方学到并一直在用的“如何阅读一本书”,记录下来方便自己经常查看,也方便读者查看。下面是<程序员的修炼-从优秀到卓越> 读书笔记系列:

  1. 程序员的修炼-01:绝地反击之术
  2. 程序员的修炼-02:编程之道
  3. 程序员的修炼-03:Web 设计原则
  4. 程序员的修炼-04:关于测试的一些思考
  5. 程序员的修炼-05:了解你的用户
  6. 程序员的修炼-06:互联网那些事
  7. 程序员的修炼-07:游戏与编程
  8. 程序员的修炼-08:阅读之美

不读书,谁之过

(基于 Jeff Atwood 的文章 Programmers Don’t Read Books – But You Should)

俗话说:“程序员不读书。” Jeff 探讨了为什么会这样。通常,技术书籍很枯燥,或者在印刷出来的时候就已经过时了,或者只是单纯的无聊。对于我们许多人来说,互联网已经取代了参考书。

然而,Jeff 认为我们错失良机。深度的知识往往需要长篇结构,这只有书(或者一系列非常长的文章)才能提供。阅读代码很重要,但阅读关于代码的书籍——哲学、架构、“为什么”——也同样至关重要。

我们不能只怪行业或媒介。如果我们不读书,那是我们自己的错。我们会停滞不前。我们错过了我们所站立的“巨人”的智慧。像《程序员修炼之道(The Pragmatic Programmer)》、《代码大全(Code Complete)》和《人月神话(The Mythical Man-Month)》这样的书之所以永恒,是有原因的。

自助者,天助之

(基于 Jeff Atwood 的文章 How To Ask Questions The Smart WayWhat have you tried?)

本节呼应了 Stack Overflow 的核心哲学:自力更生

在你寻求帮助之前,你必须证明你已经尝试过自助。“天助自助者”意味着如果你没有先付出努力,就不应该期望别人来解决你的问题。

Jeff 著名的提问是:“你尝试过什么?”

如果你遇到一个 Bug,不要只发布错误信息。告诉我们:

  1. 你预期发生什么。
  2. 实际发生了什么。
  3. 你为了解决它已经做了什么。

这不仅仅是礼貌问题;这是关于成为一名更好的工程师。组织问题和记录你尝试过的步骤的行为,往往会在你提问之前就引导你找到答案(橡皮鸭调试法)。

计算机犯罪的历史与现状

(基于 Jeff Atwood 的文章 Computer Crime, Then and NowI Was a Teenage Hacker)

在 “I Was a Teenage Hacker” 中,Jeff 讲述了他年轻时与计算机黑暗面的一次小接触——编写了一个战争拨号器(wardialer)脚本。他用这个轶事来讨论计算机犯罪的演变。

几十年前,黑客行为往往是出于好奇或为了出名。今天,它是一个巨大的、有组织的犯罪产业。但有趣的是,技术并没有太大的变化。社会工程学、弱密码和未修补的漏洞仍然是主要的攻击载体。

真正改变的是规模和利害关系。我们要么现在是“默认数字化”的,这意味着违规不仅仅是烦恼;它是对我们就身份、财务和基础设施的威胁。了解计算机犯罪的历史有助于我们认识到,安全不是你购买的产品;它是你必须践行的过程。

如何与人交流

(基于 Jeff Atwood 的文章 The Art of SpeakingCommunication Skills)

理想情况下,代码应该能自己说话。实际上,沟通是程序员最重要的技能。

你可以是世界上最好的编码员,但如果你不能向你的团队解释你的想法,说服你的经理,或理解你的用户,你就会失败。Jeff 强调了清晰写作(写博客有帮助!)和自信演讲的重要性。

软技能很难。它们需要同理心、耐心和练习。但它们是你技术技能的倍增器。

勤练基本功

(基于 Jeff Atwood 的文章 The Ten Commandments of Egoless ProgrammingPractice Makes Perfect)

最后,没有捷径。要变得卓越,你必须练习。

但“练习”不仅仅意味着每天敲 10 个小时的代码。它意味着:

  • 刻意练习: 致力于你不擅长的事情,而不仅仅是你擅长的事情。
  • 代码套路(Code Katas): 做一些小练习来保持你的技能敏锐。
  • 阅读代码: 阅读别人的代码来学习新的模式。

卓越是一种习惯。它来自于每天自律地尝试比昨天少“烂”一点点(suck a little less)。


《程序员的修炼——从优秀到卓越》是《高效能程序员的修炼》的姊妹篇,包含了Coding Horror博客中的精华文章。全书分为8章,涵盖了时间管理、编程方法、Web设计、测试、用户需求、互联网、游戏编程以及技术阅读等方面的话题。作者选取的话题,无一不是程序员职业生涯中的痛点。很多文章在博客和网络上的点击率和回帖率居高不下—— from 豆瓣

Jeff Atwood于2004年创办Coding Horror博客(.codinghorror.),记录其在软件开发经历中的所思所想、点点滴滴。时至今日,该博客每天都有近10万人次的访问量,读者纷纷参与评论,各种观点与智慧在那里不断激情碰撞 —— from 豆瓣

《程序员的修炼——从优秀到卓越》的写作风格风趣幽默,且充满理解和关怀;适合从新手到老手的各个阶段的程序员阅读,也适合即将成为程序员的计算机和相关专业的学生阅读。《程序员的修炼——从优秀到卓越》能够帮助读者更多地关注技术工作的人性和人文因素,从而实现程序员职业生涯的成功转折 —— from 豆瓣

关于我 && 博客

下面是个人的介绍和相关的链接,期望与同行的各位多多交流,三人行,则必有我师!

  1. 博主个人介绍 :里面有个人的微信和微信群链接。
  2. 本博客内容导航 :个人博客内容的一个导航。
  3. 个人整理和搜集的优秀博客文章 - Android 性能优化必知必会 :欢迎大家自荐和推荐 (微信私聊即可)
  4. Android性能优化知识星球 : 欢迎加入,多谢支持~

一个人可以走的更快 , 一群人可以走的更远

微信扫一扫

CATALOG
  1. 1. 不读书,谁之过
  2. 2. 自助者,天助之
  3. 3. 计算机犯罪的历史与现状
  4. 4. 如何与人交流
  5. 5. 勤练基本功
  • 关于我 && 博客