盒子
盒子

读书笔记 -《黑客与画家》

这本书是一本文集,也有点像paul graham的自传。以成长的各个阶段为引子,讲到了paul graham对书呆子、优秀程序员、创业和编程语言等的观点看法。

其实不太适合这个阶段的我读,创业、程序语言的设计这些离我还太遥远。不像书中的”黑客“从初中高中就开始学习编程,在大学时期甚至更早之前就能做出一些很厉害的东西。我经历的实际项目一个巴掌都数的过来,甚至还不知道书中“黑客”推崇备至的lisp代码到底长什么样子,很多东西看来了不能产生太深的感悟。

但换个角度,把它当成一本闲时读物,用来拓展眼界还是极好的。

以前我不明白为什么公司里面的项目组普遍在十人左右,现在才知道小团体和可测量性之间的关系,组织机构越精简往往能提供越大的生产力。

书中对现存编程语言的解析还有对未来编程语言的预测也让我大开眼界,了解到了一些以前从来没有去注意的细节之处。

而要说最大的收获的话,应该就是对于编写代码的方式有了和以前不太一样的理解了。刚学编程那会儿,总是直接上手敲代码,完全没有事前的思考,所以总会写出一堆不堪入目的东西。之后看受一些书本和前辈的影响,又总是喜欢做一些“完美”的设计。通常是考虑了一堆多余的东西,到了真正要编码的时候又发现能力不足以把这些东西都实现,其实就是陷入了“过早优化”。

这本书和《道法自然》的建议有点类似,设计的时候只需要考虑必须实现的功能就可以了。“把整个程序想清楚的时间点,应该是在编写代码的同时,而不是在编写代码之前,这与作家、画家和建筑师的做法完全一样”。人们往往很难在没有实际编码之前就将遇到的问题和未知的需求都考虑在内,所以一开始的设计不应该是一种解决所有问题的方案,不应该太早的决定一个程序应该怎么做。而应该设计一种灵活可变的方案,类似打草稿、画轮廓,然后在编写代码的时候再慢慢修改和填充。

最近看书有点急。大概是以前看的书太少了,好不容易有时间,有心情去看书,所以才看得那么匆忙,一本还没看完就开另一本,同时实际动手敲代码的时间也少的可怜。时间还剩下一个月左右,是该调整一下了,书还是得看仔细点,代码也应该敲多点。