Java语言学校的危险性(ThePerilsofJavaSchools).docVIP

Java语言学校的危险性(ThePerilsofJavaSchools).doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java语言学校的危险性( The Perils of JavaSchools ) 2009-01-12 23:33 | (分类:默认分类) 【作者】Joel Spolsky 【英文原文】/articles/ThePerilsofJavaSchools.html ? 如今的孩子变懒了。 多吃一点苦,又会怎么样呢? 我一定是变老了,才会这样喋喋不休地抱怨和感叹“如今的孩子”。为什么他们不再愿意、 或者说不再能够做艰苦的工作呢。 当我还是孩子的时候,学习编程需要用到穿孔卡片(punched cards)。那时可没有任何类 似“退格”键(Backspace key)这样的现代化功能,如果你出错了,就没有办法更正,只 好扔掉出错的卡片,从头再来。 回想1991年,我开始面试程序员的时候。我一般会出一些编程题,允许用任何编程语言解题 。在99%的情况下,面试者选择C语言。 如今,面试者一般会选择Java语言。 说到这里,不要误会我的意思。Java语言本身作为一种开发工具,并没有什么错。、 等一等,我要做个更正。我只是在本篇特定的文章中,不会提到Java语言作为一种开发工具 ,有什么不好的地方。事实上,它有许许多多不好的地方,不过这些只有另找时间来谈了。 我在这篇文章中,真正想要说的是,总的来看,Java不是一种非常难的编程语言,无法用来 区分优秀程序员和普通程序员。它可能很适合用来完成工作,但是这个不是今天的主题。我 甚至想说,Java语言不够难,其实是它的特色,不能算缺点。但是不管怎样,它就是有这个 问题。 如果我听上去像是妄下论断,那么我想说一点我自己的微不足道的经历。大学计算机系的课 程里,传统上有两个知识点,许多人从来都没有真正搞懂过的,那就是指针(pointers)和 递归(recursion)。 你进大学后,一开始总要上一门“数据结构”课(data structure), 然后会有线性链表( linkedlist)、哈希表(hashtable),以及其他诸如此类的课程。这些课会大量使用“指 针”。它们经常起到一种优胜劣汰的作用。因为这些课程非常难,那些学不会的人,就表明 他们的能力不足以达到计算机科学学士学位的要求,只能选择放弃这个专业。这是一件好事 ,因为如果你连指针很觉得很难,那么等学到后面,要你证明不动点定理(fixed point theory)的时候,你该怎么办呢? 有些孩子读高中的时候,就能用BASIC语言在AppleII型个人电脑上,写出漂亮的乒乓球游戏 。等他们进了大学,都会去选修计算机科学101课程,那门课讲的就是数据结构。当他们接 触到指针那些玩意以后,就一下子完全傻眼了,后面的事情你都可以想像,他们就去改学政 治学,因为看上去法学院是一个更好的出路[1]。关于计算机系的淘汰率,我见过各式各样 的数字,通常在40%到70%之间。校方一般会觉得,学生拿不到学位很可惜,我则视其为必要 的筛选,淘汰那些没有兴趣编程或者没有能力编程的人。 对于许多计算机系的青年学生来说,另一门有难度的课程是有关函数式编程( functionalprogramming)的课程,其中就包括递归程序设计(recursiveprogramming)。 MIT将这些课程的标准提得很高,还专门设立了一门必修课(课程代号6.001[2]),它的教 材(Structureand Interpretation of Computer Programs,作者为Harold Abelson和 Gerald JaySussmanAbelson,MIT出版社1996年版)被几十所、甚至几百所著名高校的计算系机采用,充当事实上的计算机科学导论课程。(你能在网上找到这本教材的旧版本,应该 读一下。) 这些课程难得惊人。在第一堂课,你就要学完Scheme语言[3]的几乎所有内容,你还会遇到 一个不动点函数(fixed- pointfunction),它的自变量本身就是另一个函数。我读的这门 导论课,是宾夕法尼亚大学的CSE121课程,真是读得苦不堪言。我注意到很多学生,也许是 大部分的学生,都无法完成这门课。课程的内容实在太难了。我给教授写了一封长长的声泪 俱下的Email,控诉这门课不是给人学的。宾夕法尼亚大学里一定有人听到了我的呼声(或 者听到了其他抱怨者的呼声),因为如今这门课讲授的计算机语言是Java。 我现在觉得,他们还不如没有听见呢。 这就是争议所在。许多年来,像当年的我一样懒惰的计算机系本科生不停地抱怨,再加上计 算机业界也在抱怨毕业生不够用,这一切终于造成了重大恶果。过去十年中,大量本来堪称 完美的好学校,都百分之百转向了Java语言的怀抱。这真是好得没话说了,那些用“grep” 命令[4]过滤简历的企业招聘主管,大概会很喜欢这样。最妙不可

文档评论(0)

185****7617 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档