阅读更多
《Hackers and Painters》,我第一次花钱买的电子书。
作者paul Graham,曾想成为画家,创业开发出让用户通过浏览器搭建网店的软件被雅虎收购,其写在个人网站上的关于技术和创业的一系列思考结集出版,就是这本书。后来他办创业训练营,被誉为“创业教父”。
本书中,“黑客”取其本意,指最优秀的程序员,而不是入侵计算机系统的人。
1 第一章关于少年学校教育生活的论述最为精彩,以至于我决定将本书收藏,未来给儿子看。
学校,监狱,上流社会的女士午餐会都是封闭的环境,容易发生无聊,残忍和野蛮的行为。应让学生们尽早地理解和进入真实的成人世界。
2 编程是科学,工程还是艺术?作者认为优秀程序员编程和画家作画一样,都是艺术创作。软件只是表达的工具。
3 小时候,每个人都会鼓励你不断成长,变成一个心智成熟、不再耍小孩子脾气的人。但是,很少有人鼓励你继续成长,变成一个怀疑和抵制社会错误潮流的人。
如果自己就是潮水的一部分,怎么能看见潮流的方向呢?你只能永远保持质疑。这样好处是会有工作上的创新,以及“不被未来的人嘲笑”。
4 公民自由是国家富强的原因,而不是结果。
5 使用互联网软件而非客户端是趋势,与现在的云服务一致。如果你想把钱藏在安全的地方,请问你是选择放在家中床垫下面,还是放在银行?这个比喻很适用
6 把创业想象成一个压缩过程,你不再是低强度地工作四十年,而是以极限强度工作四年.你努力30 倍,最后得到的回报在现实中并不是30 倍,而是0 到1000 倍之间的一个随机数。假定所有创业者都努力30 倍,最后他们得到的总体平均回报是30 倍,但中位数却是0。(,由于存在个别极其成功的创业者,所以回报的平均值被拉到了30倍,但是大多数创业者其实都以失败告终,所以中位数是0)
7把品味说成个人的偏好可以有效地杜绝争论,防止人们争执哪一种品味更好,作者认为好的设计的品味是人们共同认可的。优秀作品的秘诀就是:非常严格的品味,再加上实现这种品味的能力。
8 静态类型语言与动态类型语言之争。在静态类型语言中,写代码时必须知道每个变量的类型。而在动态类型语言中,随便什么时候,你都可以把变量设为任意类型的值。
静态类型语言的拥护者认为这样可以防止bug,并且帮助编译器生成更快的代码(这两点理由都成立)。动态类型语言的拥护者认为静态类型对程序构成了限制(这点理由也成立)
9 面向对象编程。比如计算二维图形面积。一种解决方法是用一整块的代码判断遇到的是什么图形,然后再用相应的公式计算面积。面向对象编程的方法是写出两个类,一个是圆形类,另一个是正方形类,然后每个类里面用一小块代码(叫做方法)计算该类图形的面积。求面积的时候问要用哪一个类,然后再使用相应的方法得出最后答案。计算圆面积和正方形面积的代码可能分散在不同的文件中。
面向对象编程的优点在于,如果需要增加计算另一种图形的面积,比如三角形,你只需要再另外增加一块相应的代码就可以了,甚至可以不修改程序的其他部分。但是,批评者会反驳说,这种方法的缺点是,由于增加代码不用考虑其他部分,结果往往导致写出性能不佳甚至有副作用的代码,就好比造房子不考虑已经完成的部分一样。
10 思考一百年后的编程趋势,作者推崇lisp语言
11 坚持和耐心 人们真正注意到你的时候,不是第一眼看到你站在那里,而是发现过了这么久你居然还在那里。