Ruby on Rails 的创作者 DHH 谈能力养成
2024年1月27日
Ruby on Rails 的创作者 DHH 在 2023 年底分享了一篇 《Commit to competence in this coming year》,要理解这篇文章,要先懂 competence 这个单字,这个字直接翻译是指能力、本领,或者是在某个工作岗位上所需的必要技能。为什么要谈这个字,因为 DHH 认为在岁末年终,或者一年的最开始,很多人会说自己要有新年新希望,例如读更多本书,或者做到 XYZ 等事情。
虽然有对新年的期望是好事,但 DHH 的观点是,要达成这些新年新希望,往往需要有一些重大的改变,例如要养成一个新习惯,并不是一件太容易的事,虽然并非不可能,但许多人多半会半途而废。
他的观点是,多数人每周要花 40 小时,每年要花 2000 小时在工作上,如果这些时间当中,有 10% 是有意识地去提升自己,经年累月就会有很显著的差异。他的论点核心要点在于“不用额外花时间”,而是在你已经会花的时间上,有意识地提升自己。
以写程式来说,许多时候你已经知道如何写某些代码,而因为你有熟悉的已知方式,在未来遇到相似的问题时,你可能会选择用同样的方式写。只是当你一直这样做,你就变得只会以单一思考方式解决问题。
从一个角度来看,遵循已知模式在长久累积后,能让你在同样的事情越做越快,这是经验带来的好处。但从另一个角度来看,这也是一种陷阱,因为这可能让你忽略去探索新的可能性,例如不同解决问题的方法,久而久之虽然累积了经验,但同时也让自己停滞不前。
写程式时有几个层次,第一层是写出来,第二层是写出来且保证是写对的,第三层是不仅是对的还写得快,而 DHH 加上第四层,他认为要写快之外还要写的美。
想要能写得美,就要培养出辨别美感的能力。DHH 指的美感不是装饰或花俏,而是 4C (clarity, cohesion, consistency, and conciseness),而要能够有着 4C,他的具体做法是先把写出来的第一个版本当草稿,然后再进一步去塑造。
DHH 认为,许多刚入行的初阶工程师的通病是,不会去仔细、反覆,甚至痴迷地研究自己写出来的程式能不能写更好。不只是功能正确而已,还要一遍遍地修,直到代码足够美。
虽然 DHH 很多言论颇具争议性,但是这篇《Commit to competence in this coming year》 写的很实在。有意识地精雕细琢自己写过的东西,将能帮助自己不断在程式路上有所提升。
如果要多加一点,我们认为去研读其他人写的代码,然后回头看可以如何改写自己的,也会很有帮助。毕竟很多时候自己的观点是有局限性的,透过阅读别人写的,可以获得一些启发,以及不同切入的角度。
总的来说,如 DHH 所言,有意识去琢磨与提升,可以不用是很花时间的,每天 10% 的日积月累,回头看就会有极大的进步!