>读后感及其他

最近对算法感兴趣,想去借图书馆一本很旧的算法书,所以着急着把借的《梦断代码》给看完,没想到图书馆假期不让还书(很无语),但是还是把书看完了,对于书中涉及的计算机发展的一些故事很感兴趣,对于做好软件的困难也深有感触,虽说只是纸上谈兵的一点看法,但是对那种虽然没有成功但是却努力去试图做出卓越软件的行为怀有深深的敬意。此外,书中对于软件开发所遇到的困境的解说也是我之前没有了解到的。下面就摘录一些感觉有用的东西。

鼠标的发明者恩格巴特对于提靴带(bootstrapping)的解释是“让改进的过程得到改进”,他致力于保持“智慧增进”项目版本的纯洁性,但是在现实中,人们的习惯与懒惰却使得恩格巴特这个试图打造“小提琴”的工匠遇到了“不愿学习小提琴的人们”。

意大利激进分子安东尼奥·葛兰西曾有名言云:要想改变世界,你得“理智上悲观,意志上乐观”。做软件如是。

“构建软件系统最难的就是要精确设定要做什么东西”——布鲁克斯《没有银弹》。

对于很多程序员来说,找程序不会超过2分27秒,如果没有找到一般就是自己创造,而不管是否已经有人创造过。而google能方便的帮助人找到需要的代码,但是,尽管如CPAN(Perl存档大全网络)一样有几千个模块,但往往难以找到适合的模块。

Sourceforge上有超过100000个项目代码,其中很多是重新发明轮子。文中的chandler项目当然不愿重新发明轮子,但是过多的产品特性和没有完整的产品生产计划导致了最后的失败。

能快速学会不常见或特殊的技能。如果管束不严则会戏弄主人。这是在说拉布拉多狮子狗还是说程序员?

软件经常会在快速,便宜,优质当中人选其二。

商业哲人德鲁克发明了“知识工作者”的说法并提醒我们,数字知识管理的一个起点,并非终极目标。

《搞掂Getting things done》——现代生活和工作让我们在精神上完全受困于大量未完成的事务,这些东西称为“填料”,通过创建一种“信任系统”,写在纸上或者电子化,让人不被这些“填料”压垮,从而达到心如止水的境界。

德鲁克的研究结果是:“关于知识工作者任务的多数讨论都建议他们制定自己的工作计划。听起来很好。可惜错在他难于实现。计划总停留在纸上,想法总是好的。”

软件开发中称为重量级的方法论是CMM,而轻量级的方法论后来改名叫敏捷软件开发,相对于重量级的软件开发来说,轻量级的方法更能适应需求的变更,但是相对于重量级的方法来说文档要不那么规范。而敏捷开发方法中最流行的要数极限编程。一般认为敏捷开发方法适合于有经验的编码小团队。但是如果XP中的一些规定称为编程人员逃避规约和文档的借口,xp也有可能沦为“快速交付废品”的方法。

37signals公司开发优秀的web应用的做法是“约束是朋友,约束是打造伟大产品的关键”还有紧抓web不放。其中在应用basecamp中程序员将一些改善和简化的细节基础操作的代码拿出来,作为一个开源平台来发布,就是Ruby on Rails。其软件开发方法可称之为实用最小主义。

软件工程所遇到的困境使得人们产生两种相分歧的观点:一种将软件看成是一种科学过程,相信持续改进甚至可以做到完美无缺;另一方面将其看成是一种以创作为主的活动,虽然可以调优效能,但永远无法像钟表一样运转。

C和C++不支持延后绑定。

对于写作与编程,不同的人的看法也许大相径庭,比尔·乔伊作为UNIX伯克利版本的代码编写者认为“写代码时计算机会告诉你他是否理解你你的东西,写文章就难得多了,要想别人明白,的确很难;理查德·戈布瑞尔认为编程是一种创造性写作,认为程序员应该从别人的优秀编程代码当中学习;而高德纳在编写TeX和Metafont后则认为,写软件比写书要“难得多”。

高德纳曾说过:小心列代码中的缺陷,我只证明了代码的正确性还没有试运行过呢。

《哥德尔、艾舍尔、巴赫——集异璧之大成》(GEB)作者侯世达(Douglas Hofstadter)将三者作品中的奇异循环抽象出来称为一本经典科普著作。

侯世达法则:时间总是比想象中用的多,即使你考虑到侯世达法则亦然。

对于那些乐意修补高耸的代码迷塔的人来说,与奇客们所谓“湿件”生命的那种不可捉摸又冥顽不化相比,软件所呈现的困难反而是某种欢迎。它自足,理性,它不会心存怨恨。在这种意义上,软件一点都不难。它是一阵微风,它能使人免除世间的混乱。

程序员就像存在主义解释的西西弗斯一样,始终如一的,有时毫无来由的对工作持有乐观的态度,他们是快乐的西西弗斯。

一切倒塌又得以重建,

再造它的人满心欢喜。

                      ——叶芝

由于自己没有真正的软件开发经历,所以看这个故事也许并不能感同身受,虽然软件开发有这样那样的困难,但是还是产生了很多成功的软件了的,当然,有些也许并不十分完美。

不过还是很喜欢这个故事,我甚至深深的为那段历史以及历史背后人物的思想而着迷。

当然,现阶段我想我最重要的任务还是学好一两门编程语言,深入进去,做一个合格的程序员。

这篇文章写了两天,与其说是篇读后感,不如说是篇摘抄书里我喜欢的片段。

写的很慢,断断续续写了两天,与此同时看到一篇《怎样练习一万小时》的文章,其实天才和普通人的根本区别只是传统意义上的熟能生巧,天才只不过持续的改进自己罢了,这种改进迎面自己的弱点,不断地训练,甚至于带着乐趣去改进,要达到天才的高度要有十年的积累。

一万小时分配到十年中的每一天差不多要三小时多一点(考虑到不能始终如一)。

除了这篇文章外,我还看到一本诗集《我是你流浪过的一个地方》,里面策划人张越老师和作者海桑的对话里,海桑的最后一句话是:我愿意做一个有追求的,没出息的人。

是啊,大不了做一个有追求,没出息的人。

正应了孔子那句:“一箪食,一瓢饮,在陋巷,人不堪其忧,回也不改其乐.贤哉回也!”。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值