HardCore 的《黑客与画家》

《黑客与画家》(<Hackers & Painters: Big Ideas from the Computer Age>)可以说是黑客文化中颇有影响力的一本书,之前在很多地方看过它的只言片语,比较喜欢,这是一本通过名字(尤其中文名字)和摘要都会低估的一本书。

书中的一些见解非常不错,让我眼前一亮。

而且这本书对于非程序员的,但是和技术相关的人都是非常有益的。

作者

嗯,现在看书比较喜欢先看看作者,如果作者是一个在实践中创造出牛逼东西的人,那他的言语就掷地有声了。

作者paul graham老爸是一个设计核反应堆的物理学家(天赋++),小时候就开始编程,但同时还跑去学习哲学,绘画等,期间一度穷困潦倒的追求自己的艺术梦想,“北漂”了好几年,最后回到程序行业,非常hardcore的创办了技术公司,依靠过硬的技术实力和创新能力,在市场上挺能打的,然后买了几千万美元,后来开始指导人来创业,所成立的公司简称YC,在硅谷极具影响力(甚至可以说影响力有点过大)。

从经历中我们可以看出这么几点,这哥们挺有艺术家范,不是一个以技术为手段的商人,编程挺牛且有深刻见解,跨界--容易多个领域交火从而获得对于编程这个领域更加深刻的见解,同时也容易从很高的高度来看待事物。


黑客

关于黑客精神,可以说是对于程序员最重要的东西,是程序员通往极乐净土之路,使用它来升级你的内核之后,你会在探索,开拓和编程思考中乐趣无穷,而不用非得在追求安逸与非得工作的矛盾之间徘徊。


画家

对于程序员与画家的关系,《程序员的思维修炼》给与了更好的描述,http://blog.csdn.net/toughbro/article/details/39105629 这里也有一些笔记


认清自己是干什么的

有一些说法说如果对某些事物有深刻见解就是黑客(牛逼的科幻小说家,音乐家,研究算法的knuth都可以归于黑客),而作者把黑客归于创作者。

其实去争论到底怎么样才是黑客并无意义,但是认清自己是干什么的很重要,这个看起来很容易,但是其实不容易做到,起码在读这个书之前,我的一些观念就是不准确的。

对于创作者来说,那么优美的作品就是最重要的,中间能够优美的,甚至创新的实现当然很好,但是去实现一个高效稳定,设计优雅的软件才是关键。

创作和研究性质的工作不是一个东西,现实中常常会出现把研究向的东西强加于创作,最要命的是程序员自己也认为非要去怎么怎么样才是好的,甚至不惜牺牲产品的质量和开发时间去做这个事情,这就是一个没有认清自己是做什么的,或者被大众错误观点左右的结果。

“创作优美事物的方式往往不是从头做起,而是在现有成果的基础上,做一些调整,或者将已有的观点以比较新的方式组合起来。”

“设计与研究的区别是,设计追求”好“,研究追求”新“,优秀的设计不一定新,但是一定是好的,优秀的研究不一定好,但是一定新。我认为这两条路最后会发生交叉,只有应用新的研究和理论,才能诞生超越前人的最佳设计,只有解决值得解决的难题,才能诞生最佳研究。最终说来,设计和研究会通往一个方向,只是前进的道路不一样罢了“

但是实际工作中,大部分情况还是处于两者不能兼得的时候,发生矛盾的时候,我们得分清我们是在做设计还是做研究,不可兼得的时候,应该放弃好还是放弃新。


让用户满意

让用户满意和迎合用户所有的需求是两码事情,使用治病来比喻就很好,

*满足用户需求:病人告诉你问题,你去找到原因,然后治好

*迎合用户所有需求:头疼医头,脚疼医脚,甚至给个止痛药

优秀的设计是关注用户,以用户为中心,提供给他们超出他们期望的东西,而不是他们说什么就是什么(就像当年汽车出来之前,问用户要什么,他们会说要一个更快的马一样)


迭代中的士气

迭代基本得到现在开发的认可了,作者提到里面一个“士气”挺好的。

就是在开发过程中,一直把士气当作一个重要的考量因素,一个能更好的激发士气,回馈能量的方式,即便会产生一些浪费,但是在总体上,还是更好的。

而设定一些好的反馈机制,那么对于士气会特别的好,比如文中提到的开发原型,然后一个版本一个版本的做,大家始终见到进步,这个就很好。

我个人在实际开发中,在优化阶段也有类似感触,最好先建立完整的性能反馈,然后着手优化,这样整个团队看到性能的稳步前进,则会倍受鼓舞。


经典设计


设计师常常会追求永不过时的经典设计,编程语言中也有经典设计,就是文中提到的lisp,简洁优雅功能强大,经得起推敲。

为什么lisp能达到经典呢?因为它背后有数学在支撑,它开始是作为一个纯理论被提出和证明,然后被一个学生变成编程语言的。

数学永不过时,永远经典。

经得住理论推敲的永远经典。

这一点上,在非常高端的情况下,把设计和研究又结合起来了。


编程语言与做事方式

作者提到了高级语言和低级语言的选择,具体的选择不重要,一句耐人寻味的废话:就是你需要去尝试过从低级到高级的语言,你才能做出决断,对于当前的事情,使用那个语言最合适。

实际中的开发,方方面面都会遇到这样的选择,在有可能的情况下,多去尝试和思考,才能找到在不同情况下最佳的方式,而不是固守一个你刚好用过的,或者用了几年的方式。


高科技行业里,失败者才会使用”业界最佳实践“

这句话稍微有点标题党,但是却有其道理。

业界最佳实践常常会被误用,到处在说的东西,也给外行人干涉程序员提供了机会,大喊”敏捷“就行了。

作者强调,需要对所做的事情有深刻的认识,然后使用合适的方法,以及有相应的变通,而不是盲从。

一个通用的东西,往往会在具体情况中不是最优解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值