2016年9月,我重读了保罗格雷厄姆的《黑客与画家》。
第一次读这本书,是在2012年,刚工作不久。那时候读,很多观点都觉得很新鲜,但是因为经验不够,理解得不够深。这次重读,工作了五年之后,再看这些文章,有了很多新的感悟。
保罗格雷厄姆是硅谷的传奇人物。他是程序员,也是作家,也是投资人,也是创业导师。他创办了Y Combinator,孵化了Airbnb、Dropbox、Reddit等一大批知名公司。他被称为"硅谷创业之父"。
《黑客与画家》是他的文集,里面的文章写于2000年左右,距今已经十几年了。但是今天读来,里面的观点依然很有启发,甚至可以说,越来越有道理。
一、黑客和画家是一样的
书的标题叫《黑客与画家》,这个标题本身就很有意思。
在大多数人看来,黑客(程序员)和画家,是完全不同的两种人。黑客是理工科的,理性的,逻辑的;画家是艺术类的,感性的,创造性的。他们好像没有什么共同点。
但是格雷厄姆说,黑客和画家是一样的,他们都是创作者,都在创造东西。
画家画画,是在创造一幅作品;黑客写代码,是在创造一个软件。他们的工作,本质上都是创造。
而且,他们的工作方式也很像:
- 都需要灵感,不是按部就班就能做好的
- 都需要不断修改,初稿往往不是最终稿
- 都需要学习经典,从大师的作品中学习
- 都需要实践,光靠理论是不够的
- 都有个人风格,好的作品能看出作者的影子
格雷厄姆说,很多黑客没有意识到这一点,他们觉得自己只是在写代码,只是在完成任务。但是实际上,他们是在创造,是在做一件和画画一样有创造性的事情。
我觉得这个观点很有启发。以前,我也觉得自己只是个写代码的,工作就是实现需求,把产品经理的想法变成代码。但是读了这本书之后,我开始意识到,我不只是在写代码,我是在创造。我写的每一行代码,都是我创造的一部分。我的代码,应该有我的风格,我的思考,我的审美。
而且,既然是创造,就不应该只满足于"能跑就行"。就像画家不会满足于"能看就行"一样,黑客也应该追求代码的优雅、简洁、美感。
二、程序员不只是写代码的人
格雷厄姆在书里说,程序员不只是写代码的人。
这句话是什么意思呢?
在很多人看来,程序员的工作就是写代码。产品经理提需求,程序员把需求变成代码,测试人员测试,然后上线。程序员就像是一个翻译,把人的语言翻译成机器的语言。
但是格雷厄姆说,这只是程序员工作的一部分。真正优秀的程序员,不只是写代码,更是在思考、在设计、在创造。
1. 程序员是思考者 写代码之前,首先要思考。这个需求合不合理?有没有更好的实现方式?架构应该怎么设计?性能怎么保证?可维护性怎么考虑?这些问题,都需要深入的思考。
很多程序员,拿到需求就开始写代码,不思考,不设计。结果写出来的代码,问题很多,后期维护成本很高。真正优秀的程序员,会花很多时间思考,想清楚了再写代码。所谓"三思而后行",在编程中同样适用。
2. 程序员是设计者 写代码的过程,也是设计的过程。模块怎么划分?接口怎么定义?数据结构怎么设计?用户体验怎么考虑?这些都是设计。
很多人觉得,设计是产品经理和设计师的事情,程序员只负责实现。但是实际上,程序员的设计能力,直接决定了产品的质量。一个好的架构设计,能让产品稳定、高效、易维护;一个差的架构设计,会让产品问题不断、维护困难。
所以,程序员不应该只关注代码实现,也应该关注设计。要培养自己的设计能力,从架构设计到接口设计,从数据结构设计到用户体验设计,都要有所涉猎。
3. 程序员是创造者 最终,程序员是创造者。你写的代码,创造了一个产品,一个服务,一个工具。这个产品,可能被成千上万的人使用,改变他们的生活,提高他们的效率。
这是一件很有成就感的事情。你写的每一行代码,都在创造价值。你不只是一个"码农",你是一个创造者。
我觉得,认识到这一点很重要。很多程序员,工作久了,会产生倦怠感,觉得自己只是在搬砖,只是在重复劳动。但是,如果你把自己看作一个创造者,你就会发现,你的工作是有意义的,是有价值的。你创造的东西,正在影响着很多人。
三、书里的其他精彩观点
除了"黑客与画家"这个核心观点,书里还有很多精彩的观点,让我很有启发。
1. 为什么书呆子不受欢迎 格雷厄姆说,在学校里,书呆子(聪明的孩子)往往不受欢迎。因为学校里的受欢迎,是一种社交游戏,需要花很多时间和精力去维持。而书呆子,把时间和精力都花在了学习和思考上,没有时间去玩社交游戏,所以不受欢迎。
但是,书呆子不受欢迎,只是暂时的。等到了社会上,书呆子的聪明和才华,会让他们获得成功和尊重。而那些在学校里受欢迎的"社交达人",如果没有真才实学,到了社会上可能就不行了。
我觉得这个观点很有意思。我自己在学校里,也算是个书呆子,不太擅长社交,朋友不多。那时候,也会羡慕那些受欢迎的同学。但是工作之后,我发现,技术能力和学习能力,比社交能力更重要。只要你有真才实学,到哪里都能立足。
当然,这不是说社交能力不重要。而是说,不要为了受欢迎,而放弃了学习和思考。做自己,比做一个受欢迎的人,更重要。
2. 不能说的话 格雷厄姆说,每个时代,都有一些"不能说的话"。这些话,可能是对的,也可能是错的,但是在那个时代,你不能说,说了就会受到惩罚。
他说,要独立思考,就要敢于质疑那些"不能说的话"。不要因为大家都这么说,就觉得是对的。要自己去思考,去判断。
我觉得这个观点很重要。在这个信息爆炸的时代,我们每天都被各种信息包围,很多观点,大家都在说,好像就是真理。但是,很多时候,那些大家都在说的观点,可能是错的,可能是有偏见的,可能是被操控的。
作为一个独立思考的人,我们要敢于质疑,敢于说"不"。不要人云亦云,要有自己的判断。当然,这不是说要故意和大家唱反调,而是说,要有自己的思考,自己的判断。
3. 另一条路 格雷厄姆说,人生不是只有一条路。大多数人走的路,是上学、考试、找工作、上班、退休。但是,这不是唯一的路。还有另一条路——创业,做自己的事情,创造自己的产品。
他说,创业虽然风险大,但是回报也大。而且,创业能让你完全掌控自己的人生,做自己想做的事情,创造自己的价值。
我觉得这个观点,对我影响很大。我以前从来没有想过创业,觉得创业是一件很遥远、很困难的事情。但是读了这本书之后,我开始思考,是不是也可以走另一条路?是不是也可以做自己的产品,创造自己的价值?
虽然我现在还没有创业,但是这个想法,一直在我心里。也许有一天,我也会走上创业这条路。不管怎样,知道人生还有另一条路,本身就是一件很有意义的事情。
4. 如何创造财富 格雷厄姆说,财富不是钱,钱只是财富的一种表现形式。真正的财富,是你创造的价值。你创造的价值越大,你获得的财富就越多。
他说,创造财富的最好方式,就是创业。因为创业能让你把自己的想法变成产品,创造出巨大的价值。而且,创业能让你获得和你创造的价值相匹配的回报。
我觉得这个观点,改变了我对财富的看法。以前,我觉得财富就是钱,就是工资,就是存款。但是现在,我觉得,财富是你创造的价值。你创造的价值越大,你就越富有。
所以,不要只盯着工资看,要想着怎么创造更大的价值。只要你能创造出足够大的价值,钱自然会来。
四、这本书对我的启发
重读《黑客与画家》,对我有很多启发。
1. 把自己当作创造者 不要把自己当作一个"码农",一个搬砖的。要把自己当作一个创造者,一个艺术家。你写的代码,就是你的作品。要追求代码的优雅、简洁、美感,就像画家追求画作的完美一样。
2. 培养独立思考的能力 不要人云亦云,要有自己的思考和判断。敢于质疑那些"不能说的话",敢于挑战权威。独立思考,是一个程序员最重要的能力之一。
3. 不要只关注技术 程序员不应该只关注技术,也要关注设计、产品、商业、艺术。技术只是工具,最终的目的是创造价值。要拓宽自己的视野,培养多方面的能力。
4. 考虑另一条路 人生不是只有一条路。除了上班打工,还可以考虑创业,做自己的产品,创造自己的价值。虽然创业有风险,但是也有巨大的回报。即使不创业,知道还有另一条路,也能让你对人生有更多的思考。
5. 持续学习 格雷厄姆说,黑客和画家一样,都需要持续学习,从经典中学习,从实践中学习。技术在不断发展,新的语言、新的框架、新的思想,层出不穷。作为程序员,要保持学习的热情,不断更新自己的知识。
五、写在最后
《黑客与画家》:程序员不只是写代码的人。
重读这本书,让我对程序员这个职业,有了更深的理解。程序员不只是写代码的,更是思考者、设计者、创造者。我们的工作,和画家一样,都是在创造,都是在追求美。
这本书写于十几年前,但是里面的观点,今天读来依然很有启发。甚至可以说,随着技术的发展,这些观点越来越有道理。
如果你是一个程序员,我强烈推荐你读这本书。它不会教你怎么写代码,但是它会让你思考,为什么写代码,写代码的意义是什么,以及,除了写代码,你还能做什么。
如果你不是程序员,我也推荐你读这本书。它会让你了解程序员这个群体,了解他们的思考方式,了解他们在做什么。也许,你会对程序员有一个全新的认识。
最后,用书中的一句话结尾:
"最好的文字,不是写出来的,是改出来的。最好的代码,也是一样。"
愿我们都能写出最好的代码,创造出最好的作品。
评论(0)
暂无评论,快来抢沙发~
评论功能仅对会员开放,请先登录
登录