《黑客与画家》读后感

    之所以读这本书完全是被书名所吸引,自己本身是一名十年程序员同时又是国画和书法的爱好者,平时也喜欢自己画上几笔陶冶一下情操。可能给人的第一印象很难将黑客和一个画家关联起来,完全是两个看似毫无瓜葛的职业,一个印象里是手里握着电脑就可以变得世界打乱(电影里的桥段),一个是拿着画笔就可以轻松勾勒出宁静的美好,但是我认为他们还有一个共同点,把自己的想法毫无掩饰的表现的淋漓尽致,做自己认为对的事情并追究极致的美好,以此来改变或者印象周边以及更大的范围,获取更高的创作价值。

    首先我承认作为程序员的我也对“黑客”这个词有很大的误解,本以为会了解到更多的我所以为的“黑客”的工作,却没想到,这本书带给我的不仅仅是对已深深印在脑海中的概念的推倒重建,更多的是引发我对很多以前从没想过的问题的全新思考,这些思考带给我不一样的新的视角去看待其他事情,我想这就是阅读的意义所在吧。

    黑客与画家的共同之处在于他们都是创作者,与作曲家、建筑师、作家一样,他们都在试图创作出优秀的作品,从另一个角度来说,他们都能称作为艺术家,创作过程中,他们可能会发现一些新技术,但本质上,他们并不是在做研究。黑客与画家有很多共同之处,其中我认为最重要的一点就是:你不能指望一开始就有完美的设计规格,要编写一个程序,你把问题想清楚的时间点,应该是在编写代码的同时,而不是之前。因为这终究是一项实践性的工作,需要不断的练习和探索,甚至很多的失败,才能找到一个相对正确的答案,而这个答案在不久的将来很有可能要再次修改甚至推倒。

    程序员就像是手工艺人,他们创造人们需要的东西,也即财富,想要创造财富,就要做出优秀的软件,而实现最好的方法就是创业。作者结合自己创办viaweb的经历,探讨了一些创业的必备要素。其中最关键的就是:你必须了解用户的需求。要做出优秀的软件,就要有好的设计,对于很多学科来说,优秀设计的原则是共通的。例如,好的设计是简单的设计,当你被迫把东西做得很简单是,你就被迫直接面对真正的问题,也即设计的核心目的,做到这个,你就能以简洁又直接的方式满足用户的需求。又如,好的设计是启发性的设计,在软件行业中这意味着,你应该为用户提供一些基本模块,使得他们可以随心所欲的自由组合,这往往更加引人入胜。

画作永远没有完工的一天,你只是不再画下去而已。

    在不能说的话中,通过书中的描述才意识到现在太多的人阿谀奉承,随大流,人云亦云,这样导致的结果很可能就是一直被某些错误的想法牵着走,自己不敢把不同的想法说出来戳破那个荒谬的想法或者结论。印象最为深刻的是“那些不能说的话是能够引发人们思考的话”,可能真理也是存在这些不能说的话当中。

    优秀的作品往往来自于其他人忽略的想法,而最被忽视的想法就是那些被禁止的思想观点,例如,自然选择学说是一个非常伟大的理论。他的观点很简单,你会奇怪为什么之前没有人会想到,正式因为他与传统观点相差非常大,可能会引起轩然大波或者陷入宗教争论,所以很多人不敢这样去想,或者想到了也不敢直言。而科学家做事的方式就是找到那些传统理论无法自圆其说的部分,然后拆开他,看个究竟,新的理论也就这样产生了。我们需要做的就是开放,让团队彼此了解之间的想法,共同去争辩决定作品的发展方向,不能够随波逐流。同时也要学会甄别那些不能说的话,并且挑选适当的场合去说这些话,不为没必要的事情浪费口舌。跟笨蛋辩论,你也会成为笨蛋。

    需要在思想和言论之间画一条分界线,在心里无所不想,但是不一定要说出来。

守口如瓶,笑脸相迎

    这是我应该学会的一种技能,对每一个人微笑,不要说是真实想法。以不变应万变,当被问及问题的看法时可以试着回答我还没有想好,从而不会把自己所有的想法一股脑说出来。    

    互联网软件的发布规则是:它运行不了,你就无法发布;一旦它能运行了,你就可以立即发布。我们现在在做的工作也是如此,除了自己记录一下版本号看当时做过哪些变动做备份之外,其余毫不关心当前是什么版本,因为这个已经不重要,随时都可以发布,都可以更新。如何制作出用户喜欢的产品?从制造简洁的产品着手,首先要保证你自己愿意使用,然后迅速做出第一个版本,并不断加以改进,整个过程中密切地倾听用户的反馈。至于bug也可以做到线上随时发现随时修复随时发布。

    对于突如其来的构思应立即去实现它,并在构思的过程中发现更多的构思一起去完善它,并且上线获得反馈,反过来更多的计划会拖慢这个构思的实现速度,往往会把这个构思束之高阁,后期不了了之。其实这种做法跟我们的敏捷很像,他的局限性在于,他比较适用于小型的,由优秀程序员组成的开发团队,不适合于大型的、充斥着平庸之辈的软件公司,在那里不是程序员想出好的构思,而是委员会集体批准坏的构思。

    《人月神话》一书中指出,向一个项目增加人手,往往会拖慢项目进程。随着参加人数的增加,人们之间的沟通会增加很多,开会讨论协同工作的时间会越来越长,无法预见的互相影响会越来越大,产生的bug 就会越多。反而人少会解决这一系列的问题,这一点跟我们正在进行的Scrum也有相似之处。

    相反带来的缺点就是每个程序员都必须承担的更多,很多工作都需要兼职来做。

    互联网软件的发布速度明显提升,很多系统的性能和验证都交给了我们的用户,因此他将开发者和用户仅仅的联系在了一起,需要开发者更多的关注用户,得到更多的用户反馈来调整产品去创造更多的价值,这一点跟我们的敏捷也是有非常相似之处。

    好设计是简单的设计,是永不过时的设计,是解决主要问题的设计,是启发性的设计,有点趣味性的设计,是艰苦的设计,是看似容易的设计,是对称的设计,是模仿大自然的设计,是一种再设计,是能够复制的设计,常常是奇特的设计,是成批出现的,常常是大胆的设计。这一点理念也是跟我们敏捷息息相关的。

    总的来讲本书很多的观点跟我们正在践行的敏捷之路有很多相似之处,有了想法就要立马去行动,跟用户紧密联系获得更多的用户反馈,创造更多的价值,做出优秀的作品,这期间又夹着这很多沟通的艺术,我相信通过这种方式跟作者的成功之路可能会越来越近。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。