【外刊IT评论网】大学里做不出好软件

标签: 大学教育 github 批评评论 | 发表时间:2012-07-02 00:08 | 作者:Aqee
出处:http://www.aqee.net
[caption id="attachment_4406" align="alignright" width="150" caption="本文作者:加拿大新不伦瑞克大学副教授Daniel Lemire"] 本文作者:加拿大新不伦瑞克大学副教授Daniel Lemire[/caption]

软件正在吞噬这个世界。尽管年景不好,Facebook还是创造了650亿美元的市值。这样一个仅仅2000名开发人员的小公司竟能抵得上一个汽车制造公司。

  • 大部分的教授很少编程。因为他们不编程,他们就不会特别强调像代码审查或单元测试这样的好的开发方法。不相信我说的吗?那去 GitHub上找找你最喜欢的教授的作品吧。他能充满自豪的在上面展示他开发的代码吗?
  • 因为很少有教授编程,所以你也应该不会吃惊于学校里很少有软件发布途径来供那些想展示自己软件作品的人使用。于是,这也就意味着,即使你开发出高质量的软件,也难有同行来欣赏。
  • 大多数学院里的软件都是由学生写成,他们缺乏经验,缺乏写出好软件的动机。你也许会认为,在学校里花了4年时间,上了无数堂课,做了无数的编程作业后,大多数计算机科学/工程的学生都应该成为不错的程序员了。但这不是我看到的。部分的原因是学校教育是一个模仿老师的过程。我相信,如果大学四年你是跟着 李纳斯·托沃兹(Linus Torvalds)上课,你一定会成为一个相当不错的操作系统内核编程高手。然而,Linus 不会、也不喜欢当一名大学教授。大学教授不花很多时间去编程,他的学生也会这样。

所以,学校里的软件很烂,是因为学校里的人不善于编程。但这其中还有一些其它因素:

  • 编程可以像煎鸡蛋或建一个鸟窝那么简单。你也知道,写一个PHP脚本把数据库的内容展示到浏览器里并不是那么的难。但要开发出一个不凡的软件则需要程序员表现的像一个 创造者。然而,你们的编程课程也许会教如何去煎一个鸡蛋(比喻),但他们不会教你如何设计一个给四星级饭店用的菜肴。创造出新奇软件的门槛也许比你想象的要低。根据一个论文里的算法,我们可以有十几种实现方法,但大部分都是低效率的。 即使是已经有原型伪代码提供了,你仍然需要大量的工作经验在身,才能给出正确的设计。判断如何能正确的实现一个算法也许比你们想象的要难的多。理论家很少有认可这点的,他们通常相信最困难的部分是用缜密的理论知识设计出算法。他们不知道在两个相同计算复杂度的算法会在软件实现上产生成几个数量级的速度差别。事实上,假设有人告诉你了作家Stephen King的下一部小说的大纲,你就能写出一部能和King写的一样好的小说吗?很值得怀疑。软件开发也类似。执行是一切。再好的策划也无效。
  • 大多数的学院里的研究者是 为自己写软件。就像烹饪一样:“只给自己写软件的人不知道给别人写软件时有多少工作要做。”相比起在饭店里当一个厨师,给自己做饭要简单容易的多。这两者之间的难度差异如果说有两个数量级太大,那至少也不在一个数量级上。学术界里很少有人会认可这些。他们基本上写的都是写完即丢的代码:写好程序,使用它,然后忘了它。诸如维护和文档之类的问题,虽然在一些课堂上也讨论过,但在学院里,鲜有用于实践的。

那么,将来会如何?我对学校里的软件保持悲观态度。也许会有例外,但看总体情况,我不抱太大希望。因此,当我审查一个学生的研究报告或论文时,我会先假定实现这个理论的软件做的不怎么样。我希望招聘那些新程序员的人也要这样想。鉴于我这样的悲观论调,实际是有一些事情可以做的:如果你想在Facebook找到一份软件工程师的工作,你就应该多花一些时间在 GitHub上,少花一些时间在课堂上。如果你幸运的话,你可以说服学校就你的开源作品给你一些学分。


本文来自 外刊IT评论网( www.aqee.net),原始地址: 大学里做不出好软件


相关 [it 大学里 软件] 推荐:

【外刊IT评论网】大学里做不出好软件

- - 外刊IT评论网
[caption id="attachment_4406" align="alignright" width="150" caption="本文作者:加拿大新不伦瑞克大学副教授Daniel Lemire"] [/caption]. 尽管年景不好,Facebook还是创造了650亿美元的市值. 这样一个仅仅2000名开发人员的小公司竟能抵得上一个汽车制造公司.

既然有傻瓜式的结构设计软件了,为什么还要在大学里学习力学、混凝土结构这些专业课?

- - 知乎每日精选
算是自问自答吧,请原谅我絮叨一点. 在科幻小说界的传世巨著《基地》三部曲中,阿西莫夫描绘了一幅很巧妙却又很意味深长的画面. 基地,地盘小,武装弱,但却在虎视眈眈的强权势力中游刃有余,甚至某种意义上,是基地凌驾于这些强权势力之上. 基地对周边势力的控制,靠的不是大炮巨舰的武力威慑,也不是给钱给物的经济贿赂,而是靠着穿了“宗教”马甲的“科技”.

大学里的不务正业

- sunnyboy.xue - 王建硕
我对大学里面不务,因正业的学生总是有特殊的偏好的为我自己在大学里面就是这样的类型. 保守的估计,我或许旷掉了一半的课,相当的愧对于险些拿不到的文凭. 在交大的日子,现在回忆起来,虽然缺了课堂上面打盹或看小说的记忆,却并不无聊. 如下非正常的活动,反而无意插柳般的填充了课堂外面的空白. 机房粉红色的塑料上机票,两块钱一张,是我最大的投资.

"大学里的寂寞黑丝女生,你hold住了吗

- david - Cao Liu
现在的大学校园里涌现了越来越多的黑丝,你hold住了吗. 1024 什么场面在草榴没见过,这点只是洒洒水啦 这些美女的腿好细好长啊. 1024 w 我也寂寞 �看看黑� 感觉有P过一样,不过很不错的样子 1024 黑丝在商店里只卖10元,谁都能穿的,也不贵.

程序员在大学里究竟应该学习什么?

- - 博客园_首页
近来在CSDN结识了 贺利坚老师,并仔细的读了一下贺老师的博客,感觉贺老师是非常负责的一个大学老师,在他的博客中看到了很多他和大学生的交流. 这就促使我开始思考,如果大学再来一遍,我也还是想做软件,那我应该在大学里学点什么. 最终我决定把想到的东西写下来,希望能对在校的人有点帮助. 首先我们得知道这问题的答案是个变量,他依赖于你的目标和天资能力,绝不唯一.

软件架构

- - 研发管理 - ITeye博客
    对于外包业务类型的项目,软件架构设计的目的与产品类型的项目有所不同,在这里主要讨论外包类型项目的软件架构设计目的.     1、为大规模开发提供基础和规范,并提供可重用的资产,软件系统的大规模开发,必须要有一定的基础和遵循一定的规范,这既是软件工程本身的要求,也是客户的要求. 架构设计的过程中可以将一些公共部分抽象提取出来,形成公共类和工具类,以达到重用的目的.

软件吞噬软件开发

- - PingWest中文网
软件蚕食世界,自互联网特别是移动互联网连接线上线下服务后,已成为不可逆的趋势. 每一项实用的服务可以由小团队来完成. 以WhatsApp为例,这款被高调收购的IM应用,拥有4.5亿月活跃用户,70%的日活跃率,至今还保持每天新增用户1000万的速度. 但这些服务居然由32名工程师支撑下来了,所以有了业界八卦“每位员工价值20亿”的说法.

iPhone 软件推荐

- Fenng - FeedzShare
来自: 永远的阳阳猪 - FeedzShare  . 发布时间:2011年08月07日,  已有 2 人推荐. 本文是从个人经验出发,对使用过的不同类型的软件做一些简单的比较和推荐. 本文无法做到面面俱到(比如本人不用 GTD 类软件,另外有些软件因为大家都懂的原因也不能推荐),写的时候也没有参考什么资料,都是本人的个人经验,可能会有错误,如据此操作,造成的一切损失本人不承担责任.

Planner – 项目管理软件 | 小众软件 > 办公软件

- HICU - FeedzShare
来自: 小众软件 - FeedzShare  . 发布时间:2011年09月12日,  已有 3 人推荐. Planner 是一款开源、易用、跨平台的项目管理软件. 二猪用了 OpenProject 几年,现在已经受够了它的各种问题. 前段时间发现了 Planner,这个也算有些历史了,可是完全不如 OpenProject 名气大.