粗略读完Paul Graham的《黑客与画家》,收获并不太多,大抵是修为境界还远远不够。不过一边读一边回忆其他人的言论,倒是有些观点可以总结到一起,作为一种指导:
- 不断地迭代:写丑陋的代码、改进质量、将其抛弃;
- 为开源活动做出真正的贡献;
- 多调试,少设计;
- 用适当的语言做适当的事情,比如用Lisp思考、用Python做原型、用C或Java实现(Graham认为完全可以用Lisp来做开发,并且这种非大众语言甚至是一种壁垒性的竞争优势,我不认同);
- 做产品时,先快速出原型,再根据反馈改进(《软件开发者路线图》将其称之为反馈回路越短越好);
- 不要过早关注细节(或者说过早优化是万恶之源);
- 不被打扰状态将产生N倍的工作效率。
此外,《黑客与画家》这篇散文里,对“计算机科学”这一概念的质疑,我从心底赞同。将researcher、engineer、hacker产生价值的过程加以本质性区分,绝对是有必要的——事实上,我一直困惑于,总认为学术成果是最重要的,但又喜欢工程性或hack的东西,因此目标在两者之间不断徘徊。虽然还是没有真正明白hacker创造财富的本质,但至少主观上对这样的道路很坦荡。
说起内心坦荡,有一篇文章提到“不敢说出来的话”,其中的一个观点:每个学科的研究工作所需要的能力显然是大不相同的,但这样的观点在任何一个学校里都不能直白地摆到台面上来说。实际上我觉得,真正坦然地去承认这一点——承认总有那么一大批人是比自己强的,才是面对现实。内心不被主观情绪蒙蔽,方能认清自己的价值所在。