《The Clean Coder》 阅读记录 #
术道结合,这本书不教术,更多的传道,且不仅仅适用于职业,还适用于处理其他事物。尽管是只可意会的道,依然可以通过娓娓道来的叙述与提炼,使读者联系自身经历,揣摩体悟,纳为己用。
0、关于职业素养 #
如何体现职业素养?
从自身出发,回答一个问题:在过去的工作中,遇到过哪些印象深刻的困难,最后是怎么解决的? 问题不在于问题的难度,而在于反思的程度:怎么分析问题、查阅什么资料、采取解决问题的方式步骤、采取什么措施避免和改进。
从外部出发,是否对外展示了专业精神获得外部人员的信任?是否需要对你进行微观管理才能令人放心?
总结起来,职业素养 = 能力(技术) + 素质(价值观、原则、态度)+ 持续的积累和养成。
关于价值观,可阅读前言部分 “挑战者”号航天飞机工程师的故事。
1、专业主义 #
“哦!笑吧,科延,老伙计。这是上帝,或者也可以说时命运或自然,跟我们开的一个玩笑。不过,不管这家伙是谁或是什么,他真幽默!哈哈!” —— 霍华德,《碧血金沙》
清楚你到底要的是什么?真的是成为专业人士吗?不仅仅是荣誉与骄傲,更多的是责任与义务。
担当责任,不仅如何保全自己,还有客户及他人。
不行损害之事:让 QA 找不出任何问题 + TDD 100% 覆盖率的要求 + 随时重构 + 自动化 QA
- 0、就像医生一样,虽然 Bug 无法避免,但是需要为出现的 Bug 负责。
- 1、练习道歉,道歉时必要的。
- 2、不能铭记过去的人,注定要重蹈覆辙。有责任让失误率无限接近零。
专业人士的职业生涯:
- 了解你的领域,如设计模式。过去来之不易的理念,大部分依然像过去一样富有价值。
- 坚持学习,与时俱进:想想你会去找已经不看医学期刊的医生看病、会聘请不了解最新税法和判例的税务律师吗?
- 需要投入时间和精力去追求和练习(想想音乐家的表演和练习)。因为热爱,额外的20小时能让你免于枯竭匮乏。
- 合作与辅导是必要的。
- 了解业务领域:不可以不求甚解,能辨别与质疑。
- 与雇主 / 客户保持一致:站在雇主的角度思考,而开发人员之间互相认同是容易的,应当避免狭隘之见。
- 谦逊。
- 编程是及其自负的行为,专业人士知道此,因此不会故作谦逊:他们熟知自己的工作,并引以为荣;他们对自己的能力充满自信,并因此用于承担有把握的风险。专业人士不是胆小鬼。
- 然而,专业人士也知道自己会摔跟头,自己的风险评估也有出错的时候,自己也有力不从心的时候。这时候,如果他们照照镜子,会看到那个自负的傻瓜正对着自己笑。
- 因此,在发现自己成为笑柄时,专业人士会第一个发笑。他从不会嘲讽别人,自作自受时他会接受别人的嘲讽。反之,他则会一笑了之。他不会因别人犯错就对之横加贬损,因为他知道,自己就是下一个犯错的人。
- 专业人士都清楚自己的自负,也知道上天会注意到这种自负,并加以惩戒。如若果真遭遇挫折,最好的办法就是按照霍华德说的————一笑了之吧!
2、说不 #
“能就是能,不能就是不能。不要说‘试试看’。” ———— 尤达
奴隶没有权利说“不”。劳工或许也对说“不”有所顾虑。但是专业人士应该懂得说“不”。只有敢于说“不”,才能真正做成一些事情。
2.1 对抗角色 #
13、团队与项目 #
- 有凝聚力的团队:团队组建、克服差异(一起搞定一切)、多个项目中整体移动
- 给足时间,成为引擎,军团
14、辅导、学徒期与职业素养 #
- 导师很重要,可以更好、更加顺利地跨过一些坎。
- 可以有多种形式的辅导。
- 软件学徒期是必要的,类比医学生(人命关天)
- 职业素养:能力(技术)和素质(价值观、原则、态度),以及持续的积累和养成。
- 非理性决策,非感情用事,只要能被人观察到,便具有传染性:成为表率,向人展示即可。
15、工具 #
- 使用工具,不再是思考下一步要键入什么字符或代码,而是思考接下来要对代码进行什么样的变换。