首页English
  • 时政
  • 国际
  • 时评
  • 理论
  • 文化
  • 科技
  • 教育
  • 经济
  • 生活
  • 法治
  • 军事
  • 卫生
  • 健康
  • 女人
  • 文娱
  • 电视
  • 图片
  • 科普
  • 光明报系
  • 更多>>
  • 报 纸
    杂 志
    中华读书报 2012年12月12日 星期三

    “Bob大叔”的错误大全

    匿铭 《 中华读书报 》( 2012年12月12日   17 版)
    《程序员的职业素养》,[美]Robert C.Martin著,章显洲、余晟译,人民邮电出版社2012年9月,49.00元

        这本书名叫《程序员的职业素养》,但它的书写历史可以回溯到1969年,一个叫Robert C.Martin的17岁年轻人被他的父亲塞进当地一家计算机公司做兼职的程序员。碍于故事主角父亲的面子,那家计算机公司给Robert的工作就是将IBM操作手册的历年更新记录到新的手册上。看起来,这是个很简单的活路。所以没过几天,Robert就接到他的第一个任务:写个简单的Easycoder 程序。程序的要求是:从磁带上读取记录,将旧的ID替换为新的ID。新的ID从1开始,逐个加1。然后,把更换了新ID的记录写到新的磁带上。 

        Robert的上司给他看了一个架子,上面放着各种红蓝相间的打孔卡片。每部分颜色大概有两百张卡片,卡片的内容是非常常用的子程序库的源代码。程序员要做的就是拿走堆在最上面的卡片,经过确认将它排在自己程序卡片的末尾。

        尽管Robert从没在真正的计算机上写过程序,但他认为自己钻研过Autocoder的说明书,那么写这个程序,应该没什么问题。他很快把程序写在编码表单上,表单是一张巨大的矩形列表,有25行80列,每一行对应一张卡片,程序员需要用铅笔将程序填在编码表单上。写完这最初的表单要将它交给其他员工将字符“打”到打孔机上。第二天,负责打孔的人会把对应纸袋通过信件发给Robert。他想检查一下卡片有没有打孔问题,于是抽了一张卡片附在程序卡片末尾去找操作员。又隔了一天,他得到了结果详单,发现自己编译失败,而他连出错消息都看不懂,唯有去找他的头儿。他的上司带他来到打孔室,逐个纠正程序卡片上的错误,加上两张卡片,说明自己在做什么,但我们年轻的Robert却根本听不懂。接着他们再去测试,磁带就可以旋转起来,运行正常。第二天,他的上司告诉Robert,他可以离开了,因为,公司不是学校,没时间教一个17岁的孩子写程序。

        那是1970年,越南战争如火如荼,Robert上不了大学,他于是用学习来消磨整个青春时光。他的奋斗史其实很简单,勤奋而已,朴实得缺少吸引眼球的各种元素。一年后,他和几个朋友就在当初把他开除的公司里晋升为全职程序员。大概所有年轻的程序员都有这样的经历,一个项目持续八个月,为了赶工期每周工作70到80小时,而他的薪水是一天19美元。冲动的Robert去找老板对峙,结果可想而知,再一次失业。

        接下来的日子可不好过。找不到程序员的工作,去做其他工作却发现没有一件事情能够做好。他后来形容那段日子:“我每天凌晨3点才睡觉,睡觉之前的活动是吃比萨,在我父母的老式黑白电视机上看很老的恐怖电影,虽然那些电影里只有几个鬼怪可看。我睡到下午1点才起来,希望逃避沉闷惨淡的白天。我在本地一所社区大学学习微积分,但是考试却通不过。我真是个废物。”

        最先看不惯他这种生活状态的是他母亲。他母亲说,要放低姿态。这是Robert在程序员经历中学懂的第一件事。他重新给之前的老板打电话,恢复旧职,当然,每天拿的钱减少到17块。他还是欣然接受了。Robert继续工作了18个月,他升了职,加了薪,生活稳定了,然后离职了。再然后,他做了42年的程序员,他曾因马虎耽误工期被炒鱿鱼,曾不小心向客户泄露几米数据差点被开除,曾经领导过没有指望的项目,只能眼睁睁看它垮掉,曾经不管客户意见坚持自己的技术决策,也曾经因为雇佣完全不合适的人,加重老板负担,而且导致其他两个人被开除。这就是Robert C.Martin在这本书里写的事,他的错误大全。

        如今,这位被称作“Bob大叔”的Robert C.Martin的业界享有赫赫名声。他是世界级的软件开发大师,著名软件咨询公司Object Mentor公司的创始人和总裁,曾任C++Report杂志主编,也是设计模式和敏捷开发运动的主要倡导者之一。他的技术书被推为程序员的必读书籍,所以,任何一个不愿浪费自己时光,想认真做一名优秀程序员的人都不应该错过这们“Bob大叔”的《程序员的职业素养》。

    光明日报社概况 | 关于光明网 | 报网动态 | 联系我们 | 法律声明 | 光明网邮箱 | 网站地图

    光明日报版权所有