从代码工到开发者(Mike Gunderloy’s Coder to Developer)

CoderToDeveloper.jpg

注:这是我为Mike 那本令人肃然起敬的新书,Coder to Developer 所写的序。该书在SYBEX 现已有售。

你知道什么事最能让我抓狂吗?

「所有的事吧?」你说。呃嗯,好吧,你们有些人实在是太了解我了。

说正格的,老兄,真正会让我抓狂的事大概就是:

几乎所有的软体研发人员根本不明白他们对软体研发的无知。

以我为例。

在我还是个青少年的时候,才刚读完Peter Norton 那本著名的IBM 电脑组语程式设计指南,我觉得我已经完全了解所谓软体研发了,真见鬼,我还准备要开间软体公司来卖文书处理软体咧,它一定能赚大钱的。我想像中的电脑公司每个小时都要有点心时间,而且有无限量免费供应的甜甜圈。在那些时日混杂着甜甜圈,我继续做着我的白日梦。

退伍以后,我进了大学拿了个资工学位。现在我可真是全能全知啦。我比全知还厉害,因为我学会了很多电脑科学技术喔,像线代啦、NP- 完全性啦、还有那要命(而且很明显是毫无用处)的高等微积分,所以我猜他们大概没啥好教了,都只在挑剩菜而已。

错。我第一份工作就让我发现了一堆资工系根本不屑教你的东西。像团队运作,关于使用者介面设计真正有用的金玉良言,专业的原始码控制工具,错误追踪资料库,除错器和剖析。那些是生意人的事。资工系那些众望所归的机构根本不会教你,因为他们觉得这是「就业在用的」,不是学院派的;那些是高职生在技术学院学到的,可以让他们谋职而成为汽车技工,或冷气维修人员,或(捏着鼻子尖声说道)「软体研发人员」。

我稍微可以了解这种态度。毕竟许多有名望的大学机构以筹划你的未来为志,而非辅导你就业,尤其是任何领域的技术都变动太快,学完不到十年就会被淘汰。

而十年过去了,我继续学习多到难以致信的软体研发和制作出软体的方法。我为微软的Excel 小组,Viacom 的网页团队,和Juno 的email 客服端工作过。结果,你猜怎么着?在每一个学习阶段,我都彻底相信我完全搞懂软体研发了。

「也许你只不过是个傲慢的混帐?」你问,或者用上比「混帐」更劲爆的词。拜托,这只不过是我的序罢了;如果你想自己写那该死的序的话,就把我的从书上撕掉,黏上你自己的吧!

软体研发一定有些超自然现象,某种神秘的特质,让每个人都觉得自己很了解它。我曾在达康型的公司工作过,那里充满了热情奔放的成年人,虽然都没有经验或是相关训练,却也都觉得他们知道要怎么管理开发团队或设计使用者介面。这真是太神奇了,没有人会觉得自己知道怎么切掉爆开的盲肠​​,或组装汽车引擎,除非他们真的学过,但因为某些神秘不可知的因素,却使一堆人自以为很懂软体研发。

总之,现在责任交付到你的肩上了。你即将学到如何自我研发软体。假如你够幸运的话,你会有跟顶尖的软体研发人员共事的经验,他们会传授你这些绝招。但大部分的人都没有这等福气,所以我非常高兴看到 Mike Gunderloy 他写了这本你现在拿在手上的书。经由生花的妙笔和趣味横生的指导,你可以学到从只会写程式蜕变至能够研发软体的过程中,最需要知道的知识。两个听起来差不多?不,完全不一样。其间的差异大概跟刚学会用蜡笔涂抹的六岁小娃,和写出销售百万的小说家一样大。要当一个软体研发人员表示你必需秉持一信念,打造一个团队,设定规格和研发程序,计划出正确的产品,然后制造它。不只是普通的软体产品唷:是高品质的软体,能让你的使用者高高兴兴又事半功倍。备有文件,网页,安装程式,范例档案。挪威版。支援 Bokmål 和Nynorsk 两种挪威语。开胃菜。点心。二十七张细致的彩色图片,一堆圆圈和箭头,每张图背后都还有一段文字告诉你谁是谁。(Arlo Guthrie,对不起啦![译注](/wiki/%E5%BE%9E%E4%BB%A3%E7%A2%BC%E5%B7%A5%E5%88%B0%E9%96%8B%E7%99%BC% E8%80%85#.E8.AD.AF.E8.A8.BB “从代码工到开发者”))

总有一天,或许已经太迟了,你会从梦中醒来,说:「嗯,我可能真的不知道要怎么研发软体。」但在这一秒前,你都还以软体开发者自居,此刻,还不用绝望:在你想吃甜甜圈的每个小时永远保有我诚挚的祝福。

译注

因为Arlo Guthrie说唱式蓝调代表作Alice’s Restaurant 中有段歌词是:And I proceeded to tell him the story of the twenty seven eight-by-ten color glossy pictures with the circles and arrows and the paragraph on the back of each one, and he stopped me right there and said, “Kid, I want you to go and sit down on that bench that says Group W. NOW, kid!!”