前言介绍
一本计算机领域的哲学书,作者:保罗-格雷厄姆,他是美国著名程序员,风险投资家,畅销书作家,哈佛大学博士;《福布斯》杂志喻为可以撼动硅谷的人。Lisp专家,开发了第一个互联网应用,成为yahoo store前身 创建孵化器公司,孵化了400家创业公司,这些公司价值已超100亿美元。
阅读理由:
这是一本左手程式,右手诗的书。程序员们必须要读一读的书,它会告诉你怎么创造财富,会告诉你程序员为什么是人类未来的领路人
目录
今天给大家带来的是一本和我们在座关系最紧密的一本书,被成为左手程式,右手诗的书,对!它就是《黑客与画家》,这是一本每个程序猿(媛)都应该读上三遍的书,第一遍是刚进入这个行业时候,第二遍是工作三年之后,第三遍是想实现财富自由之时。
本次分享包含四个主题:这么有意思的书名,必须和大家聊一聊,接下来是作者的价值观或者说财富观,再是作者对产品设计提出的一些见解,非常具有哲学思想,很有必要介绍给大家知道,其中还夹杂了本人对产品设计的观点与看法,最后谈谈我们的吃饭工具——编程语言
书名由来
这里面其实有两层意思:一层意思是说作者本身他就是黑客和画家的双重职业一个混合体;还有一层意思,他代表这个时代一小撮有点神秘,他不被大众理解和关注,但是确实这个时代最重要的一个群体,他们是给计算机赋能的这么一帮人。
如果你认同未来是互联网时代,是人工智能时代,那么程序员这个角色就是人类通往未来的领路人。这么说一点都不夸张,这帮人他们能玩多大,他们能走多远,他决定了我们整个人类科技的水平能走多远。
财富论
保罗在书中直言不讳的回答了如何创造财富的问题:只有两条路,一条是自主创业(自由职业也算)另外一条是加入创业公司(我们应该稍微庆幸下,还好属于其中一种)。
那么如何通过这二种方式创造财富呢?无论是自主创业还是加入创业公司,二者核心的理念是一致的:创造有价值的东西在市场上得到回报。
注意这句话的二个重点:一个是创造有价值的东西,一个是在市场上得到回报,第一层意思说明了如果你是做的事情是没有价值的,甚至和现有价值趋势是背离的,那么你就不是在创造财富,很有可能你还在浪费生产资料,你每天的努力只是使得没落的行业继续的苟延残喘,第二层意思是说你的创造的价值是要从市场得到回报的,而不是从工作时间和你的上司你的公司老板那里得到回报,看看自己每天的工作是给市场创造了价值还是给个人创造了价值,还是根本就没有价值。每天写的代码是为产品添砖加瓦呢还是埋坑呢。
作者认为公司的唯一目的就是盈利,这个观点让很多人都不理解,有的人认为公司做大了应该要考虑为社会做贡献,要做慈善。但作者认为公司只管盈利就好了,只要公司能不断扩大盈利,说明公司正处于蓬勃发展,公司产品或服务本身已经被大众认可,产品与服务本身已经给整个社会带来了很大的价值,同时不断盈利的公司还需要招募更多的人才,进一步的解决了人才就业问题,这本身就是最大的慈善。
还有一个关于工作本质的观点,同样也很颠覆大家的认知:工作的本质是提供了与人协作的便捷方式,如果你在公司工作没有达到这一点要求,什么事情都喜欢一个人搞定,什么事情都不听取其他人的建议,什么事情都不会与同事反馈只愿意做好自己手头的事情,那么你就不适合在一个公司工作,甚至就不适合以后社会发展需要。
产品设计
接下来一章节我们谈谈产品设计应该遵循哪些好的原则
简单
好设计都是简单的设计,无论哪个领域都有这样的特点。当然简单并不等同于容易。比如说在数学中最简短的证明往往它就是最好的证明,最简单的公式它往往也是最漂亮的公式。比如说你看爱因斯坦的公式,E=MC2,简单的一个公式就解释清楚了能量是怎么一回事儿。
这个说起来容易做起来特别难,比如说刚开始的新手他都喜欢复杂的东西,刚开始写作的时候这个新手他就喜欢用长句,一句话加很多的形容词和定语,就根本不像他平时说话时候的样子,他为了啥呢?他就是为了显示自己有文采嘛。像古龙小说风格:秋,残秋。黄昏,黄昏后。风起,灯红,人别离。
再比如说刚刚入行的理发师,他就是喜欢把头发弄的杀马特造型,五颜六色的,为啥要这样干?他就要显示我就是干这一行的,他其实都是为了掩饰自己是新手罢了。
启发性
好设计都是启发性的设计,能启发用户自己去创造。比如说《红楼梦》,每个人对《红楼梦》的理解都不一样,因为它不是单纯在描写事情,它不是单纯的在写故事,它就是一个谜,它不断通过埋伏笔,设计线索让你猜,这个《红楼梦》80章以后,因为内容丢失,这就是所有喜欢《红楼梦》的人一个心结。
我听过这么一个说法,有人说我愿意拿我的所有财产来换《红楼梦》丢失的情节。你看要是《红楼梦》是全的,很可能它就没有这么大的吸引力,这本书它就做到了让用户自己去创造,自己发挥想象力去脑补,这个时候这个产品就具有非常大的吸引力。
趣味性
好设计它都是有点趣味性的设计。幽默感是强壮和自信的表现。这条规则不是在所有情况下都成立,但是最好的设计它都是看起来很有趣。为啥有趣这么重要呢?因为幽默感就是强壮和自信的表现。
你可以想象一下一个原始人在和一只老虎搏斗完之后满身是伤,这个时候回头看看后面的姑娘,笑一下说这只花猫真不好对付,你想这对姑娘能产生多大的吸引力啊?所以幽默感它就跟小鸟一样,是以一种居高临下的姿态看待周围的一切,这在设计上也是一样的道理,好设计它不一定有趣,但是很无趣的设计它一定不是好设计。
艰苦
好设计它都是艰苦的设计。这也是作者本人一直奉行的一条规则,就是在面临选择的时候挑难的那一件事情干往往就越容易。
比如说在绘画中,肖像画它通常占据很高的地位,比如说蒙娜丽莎,这不是因为肖像画最常见,而是我们天生就非常善于观察别人的表情,画肖像画的画家他就必须加倍努力才能达到我们的标准。
再比如说要画一棵树,你歪点也就歪点,也没啥,但是脸就不一样了,你歪一点别人立马就会感觉到。所以做设计如果你觉得很轻松,那用作者的话说你很可能就是在浪费时间。
可复制
好设计它是能够复制的设计。
最伟大的大师他都会达到一种超凡的自我境界,他们的目标就是找到正确答案,做出好产品,只要是好的创意就拿过来直接用,根本不担心自己会失去原创性。而那些新手他就往往没有这样的自信,但往往会避开这个避开那个,他就是怕别人说自己是抄袭。
你看乔布斯在这一点上就做得很到位,他的名言就是,对于抄袭优秀作品的,我们从来都是厚颜无耻的,这些规则在任何领域都普遍适用,只要是靠手艺吃饭的,做原创的工作都可以拿这些规则来和自己的作品作对照,一定会给你的作品带来帮助。
手艺
好设计也是一门手艺,设计不是靠天赋,而是一门需要打磨的手艺
这点是我添加的,好设计好就是一门好手艺,就如砌墙的石匠,编写代码的程序员,相声。郭德纲在接受记者采访时曾说过:讲相声的没有好不好,只有会不会。
编程语言
最后一章我们谈谈我们程序员吃饭的工具,编程语言。
编程语言进化论
编程语言就像生物一样,存在一个进化的脉络。
许多分支会进入死胡同,就像进化论的适者生存一样。
作者说JAVA就像尼安德特人一样,进化之路终将走向尽头。这句话肯定是正确的,就如我把这句话改成:JAVA就像智人一样,进化之路终将走向尽头。是的没有哪个物种能够永生,都有其生存的尽头。
按照JAVA目前的进化速度和方向,我个人认为它应该还会有很长的一段生存时期,关于这一点我会在架构相关的技术分享跟大家谈谈编程语言相关问题。
什么样的语言能生存?
组成编程语言有哪二个部分?基本运算符 + 其他。
作者认为内核最小,最干净语言才会处于进化主干上,其它的肯定会优先消亡。
百年之后的编程语言
一百年后的编程语言只可能几种(乐观估计)。
设计百年之后的语言的方法之一就是直接写下你想写的程序,不要管编译器。
作者认为百年后的编程语言肯定是简洁的,然后Java又再次躺枪了。
简洁的第一要点就是抽象,简洁必然导致设计出的是高级语言。功能强大的函数库保证了编程语言的简洁性
还有百年之后的编程语言肯定是具有高效率的,它能够借助好的性能分析器,所以加快I/O速度是一件值得做的事且提供良好的多线程编程支持。
此外百年之后语言具备再设计性,就像一款好的软件或系统是不断设计的结果。再设计性体现了互相矛盾的两种声音:千难万险只等闲 & 早岁哪知事艰辛。
为了写出优秀软件,你必须同时具备两种互相冲突的信念。一方面,你要像初生牛犊一样,对自己的能力信心万丈;另一方面,你又要像历经沧桑的老人一样,对自己的能力抱着怀疑态度。在你的大脑中,有一个声音说“千难万险只等闲”,还有一个声音却说“早岁哪知世事艰”。
如果你有兴趣参与其中那你必须对解决难题的可能性保持乐观,同时对当前解法的合理性保持怀疑。做出优秀成果的人,在做的过程中常常觉得自己做得不够好,千万记住这一点。
其核心思想是将软件内部的接口设计成垂直接口而不是水平接口,接触过后端编程的人都知道一个技术名词AOP,面向切面编程,就是一种垂直接口编程思想,类似还有过滤器,拦截器思想,Struts,jfinal,spingmvc也都用了垂直接口编程思想实践。
结束语
作为未来的引路人(虽然大部分是我们自己标榜的,但越来越多的人开始承认了),我们总结出我们将成为“新三高”人群,当然这三高可不是高血压,高血脂,高血糖,而是我们对自己要高要求,高品味,高水准。
作为未来引路人的一员,希望我的三高理论与大家共勉,谢谢,本次的读书分享就结束了。