您的位置:首页 > 编程语言

梦之所寄,行之所为——地狱之门就此洞开(读梦断代码有感)

2010-12-12 15:56 288 查看
  在博客园的精华区看到一篇名为“程序员,对自己好一点”的文章,颇有感触。我只是初涉这个圈子的一个小小的实习生,却也觉得对于程序员而言:累,加班工作,吃青春饭…。为什么要把自己弄得如此狼狈?为什么沦落到“连民工都不屑”的境地?…

  今天终于看了韩磊老师翻译的《梦断代码》,英文原名是”Dreamingin Code”。很梦幻的名字,很悲戚的故事。译者穷一年之功翻译了这本仅300多页的书,看了之后不禁为那个行将就木的Chandler扼腕叹息。作者ScottRosenberg讲述了OSAF团队在01到05年间为了他们那个改变世界的梦想,不断经历挫折又不断克服的历程。他们所设想的是一个近乎无所不能的个人信息管理器(PIM):让人们能够自由地这个和数据,方便灵活地管理琐碎的个人信息。不得不说,梦想是伟大的,愿景是诱人的。可是纵使有顶尖程序员,有巨资的投入,有呕心沥血的经营,最后还是以仍无定形而告终。一个曾经立志于超越Outlook的开源项目,最后的无疾而终,似乎告知着我们在软件的花园中,即使梦想足够绚烂,即使灌溉足够充分,甚至没有绽放就枯萎的不计其数。软件开发,着实不易!

  我很是能理解程序员本能怀揣的那个改变世界的梦想,正如书中所说:“HelloWorld”程序亦无所用,但是却能够蛊惑人心;它唤起每个新手心中最乐观的一面,让机器做任何事情!当初的我也是为C中printf出来的字句激动了好久。然后就大言不惭地说以后我要写个什么什么软件用来干什么干什么,至今也不见一点动静。真正要开发一个全新的软件时,程序员们的宏图大志在面对一个个横亘在自己和梦想之间的大坑之后,很容易便被消磨殆尽;即使残存,也会渐渐疲乏于应付接下来未知的漫漫征途。

  弗里德里克•布鲁克斯的一个看似悖论却又让人无法辩驳的论断说道:往已延误的项目中补充人力,只会使其继续延误。在书中说了很多导致Chandler项目进展困难的问题,但到底什么是导致它失败的根源,ScottRosenberg并没有为我们指明,想来是他自己也不能够断言吧。说到这里,我不禁又想到了之前试着翻译过的软件开发的12条敏捷宣言,其中有一个就是”Simplicity--the art of maximizing theamount of work not done--is essential.”。就我的理解而言,就是选择那些最有把握且最为贴近根本需求的功能。乍一听,好像和Scott的“实用最小主义”的案例有所重合。用最合适的人,找到最确切的目标,制定最恰当的计划。

  开发软件的过程中面对着很多问题,而且都是不可避免的问题。书中有这么一段话:当你抓起软件,手中全是沙子。就在你站在那儿尽力而为的当口,沙子开始从指缝中漏出去。10年后,只剩下几粒沙,那就是你要应付的事。你的任务是尽可能握紧拳头。不管什么样的编程,小至简单的排序,大至开发的软件,开始coding的同时就必须做好与bug周旋的准备。我承认我不是一个优秀的程序员,我总是在即将开始写代码的时候踌躇满志,碰到难以解决的bug又灰心丧气甩手不干。最直接的后果就是代码能力毫无长进,每每见到代码帝仍旧崇拜得五体投地。

  马上就要开始的teamproject对我们而言都是一个全新的体验,当然全新也就意味着挑战。知道未来的 道路上必然会荆棘满布,我们将携手共进。书里面的一些话给了我一定的启发:

软件的灵活性只存在于思想中,每一行代码都是毫无灵活性的。所有的想法都要寄生于结构、语言。——就像之前的师兄所说的,先在逻辑上验证你的程序是可行的。自己首先要清楚要干的是什么,建立好结构框架才能一步步走下去。

程序开发常常是不断妥协的过程,人的肆意想法与机器无情之间的妥协。——机器是没有思想的,操纵者终究是人。这就昭示了一个无法逃避的问题:我们必须学会如何联系我们的思维模式和机器语言,实现完美无瑕的转换。

程序员如何沟通,是技术问题、管理问题、哲学问题。——作为一个team,我们首要解决的就是互相之间的交流沟通和理解问题。如果自己的同伴都无法认可,很显然,这个team已经走到了头。

  …… ……

各种问题等待我们去解决,各种矛盾亟须我们去调和。因为那个改变世界的梦想,因为那个纯粹美好的愿望,我们开启梦之路,我们迈向地狱之门……

谨以此:纪念创举性的Chandler,纪念CodingCrazy的team project开题

                             ——Zhouxiao
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: