【51CTO.com快译】程序员在项目进程、开发方式和最佳实践上强调独立性和创新精神,这对他们来说是不利的。
我为自己是一名黑客而自豪,我所掌握的编程技术主要靠自学成才。早在上世纪80年代,我先从初步掌握Basic开始,再逐渐学习Pascal 、计算机语言、C语言甚至还有类似Forth那样的obscure语言等。对我而言,编程的乐趣就在于不断的探索和试验,而计算机就是一个能够以我的意志自由修改的世界,由此获得的知识便是对自己的奖励。
我们这一代人都是靠自学,但今天要想进入编程领域则变的更加便利,新手可以先从学习HTML和JavaScript上路,然后是PHP 、或者为电子表格写Visual Basic宏代码,最终升级到全面的应用开发。入门工具有很多,如微软的 Small Basic ,在历史上从未出现过如此高质量的供学生学习用的应用源代码。计算业已经发展壮大,但黑客精神依然存活得很好。
但是,我不得不质疑:这真的是件好事吗?如果每个美国小学生掌握的电脑知识比他们的父母还要丰富,为什么印度IT外包供应商HTC的CEO Vineet Nayar声称,大多数美国大学毕业生“达不到应聘标准” ?美国人在技术上真的落后吗?亦或是,在黑客理念的熏陶下培养出来的程序员无法适应现今的工作?
美国人是如何落入黑客情网的
总的来说, PC革命史上的创始人都是黑客, Steve Jobs和Steve Wozniak共同创建苹果时,大学还都未毕业;而比尔盖茨直到2007年才毕业。
显而易见,这些类似的事例主导了美国公众的意识。美国人热衷于从贫穷到富裕、从渺小但富有勇气的门外汉成长为行业精英的故事。而早期个人电脑时代的故事就像是浓缩版的美国梦。
难怪有段时间,计算机编程在美国公众的意识里就相当于黑客。如果你连续几天都对着电脑,做一些常人无法理解的事情,可能你命中注定要干一番大事业,也许会成为下一个比尔盖茨!不论你在做什么,10年之后我们有可能会在报纸上看到你。你的妈妈可能会为你担心,但她也会为你感到骄傲——即使开始她并不理解你所做的事情。
当然,这十分可笑,真正的行业精英凤毛麟角,并不是每个程序员都会闻名于世——事实上这很困难。但一些程序员用一些伎俩非法牟利,把对计算机的热爱转化成无穷的财富,这更加愚蠢——也存在风险,因为他把心思用错了地方。
美国程序员错在哪里?
HTC 的Nayar认为,他碰到的美国大学毕业生都一味追求高薪,而在印度、中国、巴西和南非这些国家的学生并没有这种期望——他们更容易投入学习“枯燥”的细节开发过程、六西格玛和ITIL等专业法则,并广泛了解系列开发工具——美国毕业生的简历中往往看不到这些。
换句话说,美国的大学毕业生希望被当成“牛人”,并得到同等待遇,而发展中国家的毕业生则更倾向于团队工作。两者都着重于成功,但在不同的期限,成功的定义也各不相同。
问题变的更加深刻了。美国式黑客不但不是合格的团队成员,也不是合格的程序员,鉴于以上原因,新的毕业生不被看好。 “牛仔程序员”可能精通技术,但他们的代码不能长期维护,他们也不太可能遵守组织发展进程和编码标准。导致的结果是,质量——包括测试、调试、代码审查和重构——很可能受到影响。
美国的软件开发管理人员常常抱怨印度的程序员太木,和美国程序员相比,他们缺乏直觉和创业特点。但Nayar却说,美国的程序员已经在错误的道路上越走越远。难道在20世纪80年代我们过于崇尚黑客理念了,以至于培养出的程序员无法适应现在的商业环境?
教育改革时机已到?
部分原因可能是程序员都接受过美国大学的教育。如果要开发软件,你必须取得计算机科学学位。但获得高等计算机科学学位的人会告诉你,计算机科学通常被认为属于数学分支。而这种更高的水平,与实践要求却相差甚远,要想在商业环境获得成功,程序员需要接受实践培训。
也许需要针对这样的学生——相比探索计算机理论来说,对计算机工业更有兴趣——设立一种新的计算机工程学士学位,来弥补计算机科学体系。程序员的头衔往往是“软件工程师”和“软件设计师” ,但他们受到的培训与真正的工程师和设计师所必须具备的条件还相差甚远。 (在一些国家, “工程师”和“设计师” 的头衔甚至受法律保护,电脑程序员不允许使用。)一个真正的软件工程师不仅要在软件开发要点上,还要在进程、方法、经营战略和有效沟通上接受强化训练——Nayar认为现在的学生在这些方面比较欠缺。
千万别误解我的意思,我一直为自己是一个黑客感到自豪,我认为,具有黑客精神的青年学生在计算机专业上总是更加优秀。但是,黑客行为准则在今天的经济体制下并不适用。和上世纪80年代钓大鱼的故事一样,“计算机技术出色就意味着一夜成名”的时代已经过去,我们应该教育年轻的黑客们,使他们对黑客准则的热情降温。简言之,是时候让软件开发成熟起来了。黑客准则是好的,但良好的团队精神和协作能力才是明天成功的关键。我们的教育系统只有在这些领域提供良好的基础,年轻一代的开发员才会茁壮成长起来。
【编辑推荐】