最近看里几篇文章,很受影响。给学及有志于学Computer Science(计算机)的朋友。假设你不想将来只做一个没有什么特殊技能的大路程序员--重所周知:这个工作没什么不好的,除了可能不太稳定,工资有限,竞争比较大,总有新技术新潮流追赶,算是项体力活,年纪大了干不了。。。
首先要声明早些看了另一篇文章,强调了Computer Science绝不只是编程而已,让我有番感触。确实,转学CS到了高年级的课才发现:你用什么编程语言,老师真的不关心了,课上已经不教了,假设你已经知道怎么编程了;决定你分数的还是你懂不懂课上教的算法和原理,用什么编程语言,怎么用,都是你自己的事了,而且也没太大关系了。之前学的C 还有 Java,只是让你掌握一门工具。之前我选课老是在考虑:恩!学了java,很有用;dot Net,一定要学!结果选的这个课,老师实际上课一点不教C#,给了你例子自己去研究。
言归正传,本来想搜Ruby的一个问题,搜出了这个 Blog
作者是IBM 的Java 虚拟机的开发者。 最后还连出来一个有意思的链接"Execution in the Kingdom of Nouns",很遗憾这篇我还没有看,不过可以假设是批判Java语言的。
那个Blog链接了几篇很有意思的文章,总之就是说现在教计算机的都一股脑的教Java实在是一个不太好的趋势,Java本身没有错,关键是它太简单了,又没有足够的功能,用它也许能够教出称职的Coder,不过很难训练出优秀的程序员,更别说计算机领域的专家了。大学里教编程语言,主要是教学生掌握编程语言的能力,更重要的是使用现有语言(们)来解决现有问题的能力,只学一门Java,或或类似的语言是远远不够的。说到这里,推荐看看关于这个Blub programmer Blub programmer的观点。
你要是看完第一篇文章里的链接,估计我看过的你也都看了,说实话量不少,花了我小半天的时间。很对不起鸟文不好的朋友,我最近没时间翻译,不然我希望自己能翻译一部分出来。不过这也是现实:我们发明了算盘,不过计算机起源于鸟国,而且说实话算盘很难说的上是真正的计算机的始祖。我在干什么,拾人牙慧而已。
顺便把里面有用的链接再列一遍:
Pure programming joy
http://duimovich.blogspot.com/2006/08/p ... g-joy.html
High School Computing: The Inside Story
http://www.trollope.org/scheme.html
Beating The Averages
http://www.paulgraham.com/avg.html
Can Your Programming Language Do This?
http://www.joelonsoftware.com/items/2006/08/01.html
The Perils of JavaSchools
http://www.joelonsoftware.com/articles/ ... hools.html
Kids these days
http://inside-swt.blogspot.com/2006/07/ ... -days.html
Execution in the Kingdom of Nouns
http://steve-yegge.blogspot.com/2006/03 ... nouns.html
差点忘了,我们在校学生或者新入行者换迎前辈们指点!
关于学编程语言的一些观点
- paul
- 帖子: 510
- 注册时间: 2005-09-01 20:48
- zhuqin_83
- 帖子: 10606
- 注册时间: 2006-05-13 4:02
- 联系:
- paul
- 帖子: 510
- 注册时间: 2005-09-01 20:48
昨天看一个同学的Blog,才知道我链接的bloger之一 Paul Graham 是个IT界很有名的人物,他不光和文章里说过的一样用基本没人用的AI语言Clips,写了第一个web-application创业成功,后来他开始作作类似于风险投资的Y_Combinator专门提供资金给小的IT研究项目,这点我觉得很有眼光!他的Blog本身就很值得一看,既有程序员的眼光,更兼有企业家的见地。
话又说回来,这些天一直在想我发的这一组链接的文章到底说明了什么观点。现在自己再总结一下就是:如果你要学一门新的编程语言的话,如果不是为了一个具体的项目,而只是为了学习而学习,或者说是想提高自己。不要选不能改变你编程思维方式的语言。照我的理解就是如果你学了Java,就要考虑学C\C++,或者Ruby,python等等等。。我想很多人的想法和我之前一样,觉得最关键是学好一种语言,Java的库说实话干什么都差不多了,而且往上往下都能走。可是编程语言影响一个人编程的方式,用的越久,越熟,思维越容易被限制。很容易就变成程序员的大众,没有任何优势,更不用说学术上做研究或者是自己创业了。学好什么工具都是本事,是好事,不过要是从头到尾只练一把锤子,结果看到什么都只想用锤子去砸,万一锤子不流行了呢,万一你要改行搬鸡蛋了呢 举了一个可能不恰当的比方,不过中国文化里有不少东西也有他的哲学在里面:程咬金的三板斧能当开国英雄,但是十八般武艺样样精通的人物很少提及,给我的感觉是中国文化里面鼓励人成为专家而不是博学。不过放在编程语言的学习我很同意那些文章里面的说法,尤其是对在校生和年轻人,不要只限于Java之类很流行的语言用的好,多发掘发掘一些没什么人用的的有代表性语言,开阔自己的眼界,锻炼自己编程的思维方式。就像文章里面的一个作者说的,同样优秀的人才,类似的语言(我记不清了,随便说了,见谅)学过了C++掌握Java可能也就是几天的时间,没有任何问题;不过只学过Java再去学C++,很多概念他可能就一直弄不清楚了。
话又说回来,这些天一直在想我发的这一组链接的文章到底说明了什么观点。现在自己再总结一下就是:如果你要学一门新的编程语言的话,如果不是为了一个具体的项目,而只是为了学习而学习,或者说是想提高自己。不要选不能改变你编程思维方式的语言。照我的理解就是如果你学了Java,就要考虑学C\C++,或者Ruby,python等等等。。我想很多人的想法和我之前一样,觉得最关键是学好一种语言,Java的库说实话干什么都差不多了,而且往上往下都能走。可是编程语言影响一个人编程的方式,用的越久,越熟,思维越容易被限制。很容易就变成程序员的大众,没有任何优势,更不用说学术上做研究或者是自己创业了。学好什么工具都是本事,是好事,不过要是从头到尾只练一把锤子,结果看到什么都只想用锤子去砸,万一锤子不流行了呢,万一你要改行搬鸡蛋了呢 举了一个可能不恰当的比方,不过中国文化里有不少东西也有他的哲学在里面:程咬金的三板斧能当开国英雄,但是十八般武艺样样精通的人物很少提及,给我的感觉是中国文化里面鼓励人成为专家而不是博学。不过放在编程语言的学习我很同意那些文章里面的说法,尤其是对在校生和年轻人,不要只限于Java之类很流行的语言用的好,多发掘发掘一些没什么人用的的有代表性语言,开阔自己的眼界,锻炼自己编程的思维方式。就像文章里面的一个作者说的,同样优秀的人才,类似的语言(我记不清了,随便说了,见谅)学过了C++掌握Java可能也就是几天的时间,没有任何问题;不过只学过Java再去学C++,很多概念他可能就一直弄不清楚了。
-
- 帖子: 45
- 注册时间: 2005-09-09 11:32
- boydd
- 帖子: 255
- 注册时间: 2007-05-10 19:42
- 来自: 南京, Deutschland, Karlsruhe
- 联系:
- paul
- 帖子: 510
- 注册时间: 2005-09-01 20:48
- maninred
- 帖子: 164
- 注册时间: 2007-08-24 20:16
- 来自: Hangzhou, China
- 联系:
貌似楼主在批判Java太简单。4GL一般都是以开发效率为基础的OO语言拉,不简单不易用的话哪里能有很高的开发效率。而且Java由于其平台的强大,现在成为主要的中间件平台,用Java来做中间件也不是简单的事情。如果单单只是做应用的话,Java就快淘汰了,因为一般的应用肯定是用当时最流行的语言来开发。
楼主的第一句话似乎有点过了。其实国外很多强人都是coder,而且都是上了年纪的coder,可以说很多新技术就是他们发明和推广的,比如tw的Martin Fowler,Kent Back,Bjarne Stroustrup等等。只是国内之前的氛围还不够,所以导致coder的都是年轻的,像国内现在的coder牛人大部分都没有过40,以后会慢慢改变的。
每一门语言都代表着一种不同的文化,不同的思想。
楼主的第一句话似乎有点过了。其实国外很多强人都是coder,而且都是上了年纪的coder,可以说很多新技术就是他们发明和推广的,比如tw的Martin Fowler,Kent Back,Bjarne Stroustrup等等。只是国内之前的氛围还不够,所以导致coder的都是年轻的,像国内现在的coder牛人大部分都没有过40,以后会慢慢改变的。
每一门语言都代表着一种不同的文化,不同的思想。