10.24,恩,传说中的程序员节,还是要写一些东西纪念一下吧。

想不起来写什么东西,所以就还是拿《黑客与画家》来充数,这本书断断续续的看了大半年,总算在前不久看完了,就以倒序的方式慢慢写一些笔记吧。

第十五章《设计与研究》,主要就是讲关于需求的东西吧。对于程序员来说,用户的需求大概永远是第一位的吧。

优秀的建筑师不会先设计,然后强迫用户去接受,而是先研究用户的需求,然后做出用户需要的设计。

程序员大抵也是如此。但是程序员又不是像厨师一样,用户点什么就给什么,所以说程序其实也是一门艺术,这大概也是这本书之所以叫“黑客与画家的”的原因了吧。书中也说到,“任何一个领域的最佳作品都不可能由对用户言听计从的人做出来”。所以这里说的是用户需要的设计,而不是用户要求的设计。

让用户满意并不等于迎合用户的一切要求。用户不了解所有可能的选择,也经常弄错自己真正想要的东西。做一个好的设计师就像做一个好医生一样。你不能头痛医头,脚痛医脚。病人告诉你症状,你必须找出他生病的真正原因,然后针对病因进行治疗。

书中提到了一种“弱即是强”的设计思想,与画画一样,每次做东西都可以先做一个模型出来,然后再不断的调整,直到达到用户满意,这样也可以先给用户看到一定的结果,而不是先做好一块再做另一块,这样只会使自己迷失方向。

画家之间甚至流传着一句谚语:“画作永远没有完工的一天,你只是不再画下去而已。”这种情况对于第一线的程序员真是再熟悉不过了。


设计与研究的区别看来就在于,前者追求“好”,后者追求“新”。优秀的设计不一定很“新”,但必须是“好”的;优秀的研究不一定很“好”,但必须是“新”的。我认为这两条道路最后会发生交叉:只有应用“新”的创意和理论,才会诞生超越前人的最佳设计;只有解决那些值得解决的难题(也就是“好”的难题),才会诞生最佳研究。所以,最终来说,设计和研究都通向同一个地方,只是前进的路线不同罢了。

研究生生活中大部分内容还是在研究,同时也是在设计,新的方法的提出肯定要对应相关的设计。提出新的方法,从而对应设计出好的程序,同样,优秀的代码也会有助于新方法的提出。

除了论文的撰写,个人生活中,博客应该只能算设计了吧。前文也提到了,好的设计是永无止境的,只是你不想做了而已。博客的界面也一直在改,到了现在差不多算是趋于一个稳态了,可能是懒起了一点原因吧,之后如果修改的话可能也只是动一些小细节。当然,若有一天,也可能全部推倒重来一下,这就需要大的变动和决心了。

 

最新文章