黑客与画家 第二章

2013/6/15 20:31 写于 知明1-206
第二章 黑客与画家
大家都可能认为黑客和画家是风马牛不相及的,但是,在作者的观点是来看,画家和黑客是一类人,他们都是创造者..
首先,计算机系的大部分由3种人组成,一类是 数学家,他们披着计算机科学家的羊毛,做着和数学系的一样的工作,证明,解题。一类是 计算机博物学家,这类人主要工作是完成一些算法,研究一些课题啊,还有一类就是黑客了,黑客的理想工作主要就是当一名建筑师,为软件架构,建设.但是,理想很美好,现实很骨感.既然在大学里面混着,总要有一些标准来评定你是否干了活吧.大学就是靠论文来说话的.但是,如果黑客是为了写论文而去做软件,那么写出来的东西也是垃圾,惨不忍睹.而且,论文怎么样才能写好呢?写的有深度呢?论文的内容基本上都是在那些别人不要的地方进行研究,论文还需要很多假设,试想一下,如果那些假设本身是错的,那么这篇论文就可以写好多东西了....但是,黑客不想这么干啊,黑客说白了,就是搞创造的,他们想做美的东西.
但是,除了论文,还有什么可以评估黑客的成果呢?
时间?的确,好的东西在时间的沉淀中越来越突出,但是,有的东西需要好几百年才可以判断好坏.
所以,外部人士很难判断黑客的成效.但这不是关键,关键的是,黑客有时候也会自己迷失掉方向。黑客往往需要很多的创意,但是,他们大部分认为要从计算机方面去找创意,作者的观点就是,这种做法是错误的.黑客应该从其他领域获得灵感,应该从和他都是同种类型的工作中获得灵感.
文中还提到了,大学教授的那种 先想好思路,在写代码的做法是错误的。编程语言是用来帮助程序思考的,而不是用来表达你已经想好的程序的。你把整个程序想好的时间点,应该是在编写代码的同时,而不是在编写代码之前,这与作家,画家,建筑师的做法都是一样的。
那么既然大学容不下黑客,那么公司呢?很可惜,公司对黑客的看法就是实现代码的人,而不是去设计软件的。这意味着,黑客只能机械的实现需求。这也是大公司的不好之处. 请记住,如果你把一个软件交给一个懂得设计的黑客,这会让你把大公司甩在脑后,但是,大公司不怕设计,因为他们还有很多防御工事。所以,如果你想只靠软件设计去赢大公司,那么就去那些新兴的领域.那里没有大公司的防御工事.
那么大公司呆不了,怎么办呢?自己创业?但是有2个弊端,就是你不得不干很多与编程无关的事情,还有,能赚钱的软件往往不是很好玩的..所以,怎么办呢?可以找个“白天工作”,白天做与自己喜欢的项目有关的工作,晚上在做自己喜欢的项目.
那么,黑客向谁学习呢?当然是和他是同一个创造性质的行业学习了.
画家就是创造性的工作者。
黑客能从画家中学到什么呢?
一.画家是通过画画来增长艺术的.所以黑客也要通过编程增长自己的实力
二.画家的会把以前画的画保存下来,而且每幅画用的技巧,都是建立在上一幅作品学到的东西之上。某幅作品如果有特别出色之处,你往往能够在更早的作品上发现一个小规模的初级版本.这告诉我们,黑客不要死盯一个项目,而要隔一段时间就换一个项目做,定期的从头开始.不要试图把所有的最新想法都以修订版的形式包括到你死盯的项目上.
三.画家是通过模仿来学习的.黑客也要去看开源代码,学习别人的代码。
四.画是可以修改的,逐步完成的.黑客不能希望有一个完美设计,然后再去编程.必须承认规格设计是不完美的,那么才可以根据情况,进行修改。所以,不要迷恋于过早设计.
五.画家是精益求精的。一副优秀的绘画作品必须比它应该有的样子更好.这告诉我们,黑客要过分地追求完美...
六.画家是合作的.黑客也需要合作,但是不要好几个人一起写一段代码,最好可以严格分段,每人写一模块,而且说明文档写得清楚.
七.画家是以人为本的,换位思考的.为什么这么说呢?画家基本上都是画人.因为人总是对自己比较感兴趣啊.所以,黑客要以用户为本,直到用户需要什么.
请注意.软件的部分功能就是解释自身,用户往往懒得看用户手册,你的设计应该满足用户的习惯.
请注意.源代码必须能够解释自己.这就要求你的代码风格要良好.这种行为可以帮你,也可以帮助阅读它的人.
达芬奇用自己的工作推动了绘画成为一种流行的工具,同样的,你能通过自己的行动让编程也成为一种流行的技术吗?
请记住,现在正是编程的黄金年代

转载请标明出处  http://www.huangweibin.com/

原文地址:https://www.cnblogs.com/hwb1992/p/3138038.html