常识——《程序员》2010年第1期卷首语

 

最近我们行业连续发生了一系列事故,频度之高,可以说前所未有。

 

首先是12月11日著名技术博客www.CodingHorror.com因为托管服务器出现常规硬盘故障而导致大量数据丢失,悲剧的是,博客主人、著名.NET技术专家Jeff Atwood自己近期没有做备份!

 

接着,12月14日,由红杉资本等投资的知名社交应用网RockYou数据库被黑客攻击,有3200多万用户的MySpace等网站和邮箱等的账户和密码泄漏。有分析指出,RockYou足以作为安全的典型反面教材。攻击者仅仅采用早已写入安全教科书的SQL注入就轻松实现入侵,而且发现开发者以明文将这些机密信息保存在数据库中。不仅如此,RockYou的注册密码默认只需5位,且不能用特殊字符,用户忘记密码要求取回时,他们以明文直接把密码写在邮件发给你……更可恨的是,他们在得知泄密之后还按下不报,敷衍用户,直至黑客将自己的部分战果公开。

 

同一天,加拿大微博服务公司Plurk在官网声明,指责微软MSN中国合资公司推出的聚酷“整个设计和界面”都严重抄袭Plurk,“有80%客户端的程序代码,完完全全是从噗浪中‘复制’”。16日,微软发表声明承认抄袭代码是外包公司所为,已经无限期推迟聚酷的服务,并做出道歉。

 

12月17日,全球最大的微博Twitter被号称“伊朗网络部队”的黑客攻击,对首页和主要应用服务页面的访问都被重定向到一个反美网页,基本功能全面瘫痪数小时。原来,黑客得到了Twitter的DNS托管账户密码,修改了DNS记录。实际上,Twitter出现这种严重安全问题今年至少已经是第四次了。年初就有黑客攻入其内部管理工具,将包括美国总统奥巴马在内的几十个著名微博账户挟持,发出各种千奇百怪的消息。5月份的一次更离谱,黑客获取了Twitter员工的各种密码,包括Gmail,获得大量Twitter内部文档,包括公司所有员工的名单、信用卡号、工资表、电话、与诺基亚和微软等公司的机密合同、各种机密商务会议的报告等等。这些资料被媒体有选择地公开,使Twitter的许多秘密商务计划暴露在光天化日之下。

 

最近一次是12月22日,人民网微博上线后不到两个小时就告关闭,被网友称为寒冬里的一幕滑稽剧。这个微博产品不仅只支持IE一种浏览器发言,而且没有审核机制和敏感词过滤,更可笑的是,微博的输入居然允许JavaScript脚本!结果出现了网页上有无数形形色色消息框漫天飞舞的奇观。

 

一个个令人触目惊心的低级错误接踵而至,而且出事的都不是无名之辈,实在值得我们深思。

 

软件业几十年的历史告诉我们,软件研发并非易事,对从业人员的综合素质要求很高, 这不仅包括硬性的技术能力,也需要软技能(参见本期的特别策划) 、较为完备的知识体系,甚至包括各行各业、各个领域中的常识。别的不说,Joel Spolsky建议计算机系大学生毕业之前应该练好写作、善于与人交流思想、学好C语言、学好微观经济学、多学其他非计算机专业知识、培养自信心 (参见本期“给计算机系学生的7个建议”),我们现在都做到了吗?

 

 

云计算的大背景下,软件将承担更为关键和核心的社会责任,而这种重大责任最终将主要落在研发人员的肩上。上面的例子中,一个软件漏洞就可能影响数以千万甚至数以亿计的用户,代码侵权或者程序中的低级错误会给公司乃至国家的名誉造成难以估计的损失。而Google的一次搜索据说要耗费数瓦电能,如果因为代码或者算法的原因,每次搜索增加一瓦两瓦,对全球的环境又会带来什么影响?

 

但是,与其他许多成熟的工程学科相比,由于软件产业发展时间比较短,发展速度却非常快,积累、沉淀和总结又跟不上,因此教育培训和规范标准等方面都存在较多的不足。加上技术变革日新月异,平台和角色分得越来越细,我们的软件开发从业人员背景复杂,很多是非科班出身,科班出身的学校教育质量又很难满足需要,最后导致的结果,就是常识缺乏成为了一种普遍现象

 

我本人这半年来主持的两次面试也印证了这一点。面试者既有多年经验的开发人员甚至项目经理,也有名牌大学的计算机专业研究生,其中有很大比例的显得知识面很窄,不知道非常基本的技术和业界常识,甚至稍微复杂一点的SQL语句都写不出来,对社会和领域知识、现代软件研发实践也知之甚少。至于表达能力、解决问题的能力等等软技能,就更是难如人意了。

 

前几天在Twitter上讨论到buffer和cache的区别。有同学说得很极端,认为如果是计算机科班出身连这都不知道,还不如去死。可是事实上,真能马上答出来的人我看不多。

 

缺乏常识其实可以分为三种情况:一是不知道自己不知道;二是不知道自己应该知道;三是好像知道,实则一知半解、似是而非。而问题的解决之道,主要在于行业标准和教育培训。

 

新的一年,我们希望与业界共同推动软件研发知识体系等规范的建设和推广,提高教育培训的水平,最终改善从业人员的综合素质,实现全行业的整体提升。

 

新的一年,让我们首先从寻找常识、补习常识开始。

 

你可能感兴趣的:(《程序员》,2010,twitter,研发实践,教育,myspace,javascript)