gisempire100
捉鬼专家
捉鬼专家
  • 注册日期2004-08-13
  • 发帖数552
  • QQ
  • 铜币2462枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:2218回复:2

Arrays.sort() and 吾欲仁则斯仁至矣

楼主#
更多 发布于:2008-01-15 23:39
<P><FONT face="Courier New">有不少人在争论 Java 对学生有益还是有害(不少网站上的评论有断章取义的嫌疑,不值得多看,建议看这个</FONT><FONT face="Courier New"><a href="http://blog.csdn.net/phoenixsh/archive/2008/01/11/2038558.aspx" target="_blank" >中文链接</A></FONT><FONT face="Courier New">)(</FONT><a href="http://www.google.com/search?hl=en;newwindow=1;q=java+considered+harmful+as+first+language" target="_blank" ><FONT face="Courier New">英文链接</FONT></A><FONT face="Courier New">)。事实上,这个问题事实上不是最近才提出来,大约6~7 年前,我们的同事在美国的学校招聘的时候,就发现和学生好像谈不到一块儿 - </FONT></P>
<P><FONT face="Courier New">    面试者:能不能讲讲各种排序 Sorting 的方法?<BR>    学生: 很简单,用 Arrays.sort()  即可,我不关心它具体怎么做的。 <BR>    面试者:那你们还学C么? <BR>    学生: C 是过去的语言,我们要面向对象。 (中国的学生可能会再加上 “面向未来”,“面向世界”... )</FONT></P>
<P><FONT face="Courier New">这样的现象在这几年中越来越普遍了,因为越来越多的同学前来找工作的时候,除了一些抽象的理论和知识,我们并不能看出来他们对计算机这门“科学”,对程序开发这门“应用”有足够深入的了解,这些学生们觉得Java(或C#</FONT><FONT face="Courier New">)已经替他们理解了,他们不必自己再亲自理解一下。面对这样的情况,大家不得不反思一下“他们在学校里到底学了什么?”,“我们应该教什么?”。</FONT></P>
<P><FONT face="Courier New">但是,在进一步讨论之前,我们要注意到原文并不是作了一刀切的“java 有害”结论。我的理解是:</FONT></P>
<P><STRONG><FONT face="Courier New">如果Java 是学生学习计算机编程的<FONT size=5>第一门</FONT>语言,会有一些问题。<BR></FONT></STRONG></P>
<P><FONT face="Courier New">但是这些“问题(Harm)”,并不是不能解决的。学生以后可以学汇编,C/C++,COM,Lisp,Asp.net,编译,计算机体系结构,等等。通过学习和实践,学生们应该能对计算机这门“科学”,和计算机编程这门“应用”有深入和全面的了解。</FONT></P>
<P><FONT face="Courier New">Java 挺好的,把很多细节都隐藏在抽象层面之下,我要排序, 则调用Arrays.Sort(),搞定.  我们不用关心这个到底是如何实现的,对不同的数据有什么样的效能 - 直到我在现实的项目中发现几个简单的Sort, for loop 组合在一起,会花非常长的时间。</FONT></P>
<P><FONT face="Courier New">这个现象和论语中,“吾欲仁,则斯仁至矣” 有异曲同工之妙。 </FONT></P>
<P><FONT face="Courier New">说到“第一门”,其他类别的教育系统都有这样的问题,例如小学语文的第一课如果是“论语”,若干年后,会有教育学家总结“论语作为小孩的第一门语文教材,会对学生有害”,当然,此结论必然会被过度简化为“论语对学生有害!”这样耸人听闻的标题,引起另外一场大水。 (现在有人强迫小儿以"诵经"为入门,他们以后都要还的.)</FONT></P>
<P><FONT face="Courier New">我们还可以得出一个推论:</FONT></P>
<P><FONT face="Courier New"><STRONG>对于计算机专业的学生来说,如果Java </STRONG>(或其他一门‘容易’的面向对象的语言) </FONT><STRONG><FONT face="Courier New">是学生学习计算机编程的<FONT size=5>唯一</FONT>语言,这对学生有害, 那是相~当~有害。<BR></FONT></STRONG></P>
<P><FONT face="Courier New">如果有学生学了Java (或其他一门‘容易’的面向对象的语言)之后,就欢呼“技止此耳!” “我精通计算机编程了!”,然后跑到IT求职市场中, 那是当危险的。</FONT></P>
<P><FONT face="Courier New">从另一个角度讲,有人看到很多职位需要Java(或C#)技术,然后他/她参加了Java 的培训,并以此找到了工作。在这个过程中,每一个方面(求职者/培训机构/公司) 都受益了,何害之有?</FONT></P>
<P><FONT face="Courier New">随着计算机技术的发展,这个行业在不断扩大,我相信懂得各种sorting 算法细节的同学能找到不错的工作,我希望只懂得Arrays.sort() 的同学也许可以找到不错的工作。关键在于这些同学能各得其所。 当然,如果两样都精通,就更好了,即将出版的《</FONT><a href="http://www.china-pub.com/computers/common/info.asp?id=38070" target="_blank" ><FONT face="Courier New">编程之美 - 微软技术面试心得</FONT></A><FONT face="Courier New">》也许能给大家一些帮助。</FONT></P>
喜欢0 评分0
A friend is never known till a man has need. ...CL
liugy52
路人甲
路人甲
  • 注册日期2006-10-07
  • 发帖数26
  • QQ
  • 铜币195枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2008-01-16 10:51
<P>在学校学习《微机原理和汇编程序设计》的时候,和班里所有同学一样都认为这东西太老了,跟不上时代需要了,没有多大用处了。可是老师告诉我们:“学习这门课程是要让你们可以看得到计算机是怎样呼吸地。”。</P>
<P>----------------------------------------------------------------------------------------------------------------</P>
<P>大学毕业找工作时,好多公司都要求精通J2EE、Struts、Hibernate、JSP。。。等等一大堆的东西。感觉自己在学校里花时间学习数据结构、算法分析与设计、C语言程序设计这些东西真的好吃亏!如果花时间学习J2EE的话,就可以找个满意的工作。</P>
<P>----------------------------------------------------------------------------------------------------------------</P>
<P>将要离开学校的那几天,给我班教授 C语言程序设计、微机原理、数据结构、操作系统课程的老师给我们说:“孩子们,是我不好,没有教那些让你们毕业就可以用来赚钱的东西。。。”。</P>
<P>-----------------------------------------------------------------------------------------------------------------</P>
<P>现在工作了,我对老师说的那些话的体会更深了。。。</P>
E-mail: liugy52@126.com QQ: 496798107
举报 回复(0) 喜欢(0)     评分
mlin
路人甲
路人甲
  • 注册日期2008-12-12
  • 发帖数2
  • QQ
  • 铜币88枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2008-12-26 13:19
<img src="images/post/smile/dvbbs/em01.gif" />
举报 回复(0) 喜欢(0)     评分
游客

返回顶部