1

From Journeyman to Master

 2 years ago
source link: http://claude-ray.com/2019/09/10/from-journeyman-to-master/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

From Journeyman to Master

Posted on

2019-09-10 Edited on 2020-02-14 In Essay

Disqus: 0 Comments
Symbols count in article: 1.3k Reading time ≈ 4 mins.

《 The Pragmatic Programmer: From Journeyman to Master 》这本书已加入愿望单许久,最近终于在通勤路上读完了。对于处于或将处于熟练工阶段的程序员,毫无疑问这是本值得用心阅读的书,因此我也写一下短评和推荐理由。

作为思想指导性读物,首先它具备不挑剔阅读设备的优点,电子书随处可见的内链(实体书则是页码)可以方便地跳到引用的章节,也能帮读者构建知识的关联体系,因此你可以放心挑选你感兴趣的专题。

其次,它比《 Code Complete 》更凝练,比《 Unix 编程艺术》更平和。尤其推荐给所有所谓的中级程序员,这一点也体现在了书的副标题上 —— 面向读者为 journeyman,也就是训练有素的熟手。

虽然中文版将其译为“小工”,私以为也得是足够可靠的小工,更像是许多大牛自谦的说辞,而不代表毫无软件工程基础的 newbie。对于真正的新人而言,阅读此类书籍所遭受的影响可能是深远的,却也可能不及耳旁风。因为随着当代软件工程的普及程度,阅读时多半会觉得这些道理显而易见、理所当然,“几乎都是课堂和应试中学过的”,这种感觉在《 Code Complete 》更甚。建议没有多少工作经验的人,先去读《 Clean Code 》和 《 Refactor 》,实践更为重要,至于编程思考类的读物凭兴趣看一本足以。

上面是说对未出师的准程序员意义相对较小,而下山历练之人,亲历过绝望的 deadline、妥协的设计以及巨大的屎山,不论将它们克服还是被击败,都更能体会到为何如此常识便是属于大师的技巧与原则。在阅读过程中,就像面向一面镜子自我矫正,你可以不断反思近段时间的行为、状态是否得当。

接下来分享几个阅读本书的 tips:

  • 类似《人月神话》,本书用到了大量的比喻,只凭目录的小标题无法直观地理解作者想表达的主旨。放在最后的附录《Quick Reference Guide》原本是用作复习的,但其实它非常值得在正文前初步阅读,作为章节目录的补充,非常契合跳越式阅读的需要。
  • 英文原版更利于理解作者的思想,透过标题也得承认这一点。
  • 由于个人记笔记经常疏于回顾,为了提高转化效率,就得强迫自己复习思考。我把《Quick Reference Guide》默背着一字一句地敲了下来,效率不算高,但终究是极短时间内让自己多了一些复习过程,所有不清晰的点也在这一步排除掉了。作为一种输出形式,时间性价比极高。

然后聊聊对个人印象最深的几个点,虽然不擅长写读后感,但假设有人翻到了这篇博客,希望可以抛砖引玉。

  • 没有完美的软件,不要任何时候都奉行完美主义,尤其要知道什么时候该停下来。这个对我而言是最为欠缺的,吹毛求疵耗费了大量时间和精力,但从自身角度很难评估哪些时候哪种做法是正确的,正所谓当局者迷。我能想到的对策,除了自省,还必须要走出自己的小圈子,多吸取他人经验。
  • 不要容忍低劣的设计,留着祸患无穷,盘它,一次不行多来几次,不需要犹豫。我经常认为是自己没有考量好才没有动手,回想起来其实就是犹豫,错失了很多磨练的机会。计算常有遗漏,而踩坑则不然,真动起手来才能弄明白设计者的初衷。只有你不希望为这个软件续命时才可以忽视它……(大误
  • 提供解决方案,而不是借口。就算心底没想着找借口抵赖,表达方式上也要额外注意,为了提供更有价值的信息,最后解释甚至不解释。这一点可能我做的还好,甩锅是不存在的,而且非常抵触三句之内讲不到重点的沟通。

原本还想贴一下读书笔记,不然篇幅太短,认真考虑了一下决定不发了,毕竟博客只想放个人产出的东西,书中自有黄金屋,未经加工的笔记还是偷摸着恶心自己吧。

最后是想对自己说的话。

事实上我还远未达到熟练工的程度,遇到没挑战的事只能代表未跳出舒适区。矫正可以帮助自己找到舒适区,而破除壁障,需要在技术根本上出力。最近手痒又折腾起周边工具,看一些效率宝典(包括开篇这本书),想寻求新的突破,久而久之其实也是一种逃避。是时候直面最大的舒适区,把焦点回到编码上,突破更多的自我设限,Keep your mind sharp!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK