真正的程序员,不应被语言束缚。

自从大连Regional比赛结束之后,我就一直在思考一个问题,我该选择什么编程语言?我该选择什么编程环境?我该选择哪个方向?

不停地思考,不停地买书,看书。。直到在成都regional比赛后又悲剧的拿了个铜牌。。。(明年我怎么着也得要银的啊T_T。。。。),看了C++Primer,看了absolute java,中途还简单看了一下C的多线程。。。最近在看thinking in java,思来想去,我始终难以决定选择哪个语言。到今天终于想通了,真正的coder,真正的牛人,不应局限于语言。

语言有很多,每一种大都有他的用途。拿C++和java来说吧,不能说孰优孰劣,每个语言都有适合它的领域,亦如真正的人才具有不可替代性。自己喜欢或者说习惯哪一种语言,这是个个人信仰问题。而工作中使用哪种语言,这不是一个人说了算的。在实际中我们必然会考虑开发的效率、开发语言的优点及缺陷、维护的难易成度、安全性等等。如果像ACM中的game theory那样综合各种因素去制定一个最优决策(选择一门最适合自己的语言)几乎是不可能的,在这种情形下,跟随自己的爱好,follow your heart也许是最佳的选择。正像乔帮主说的那样,"keep simple && stupid"。

那么作为学生的我到底该学些什么东西以适应实际工作的需要呢?

搞数据挖掘么??我觉得这个不大适合我,我不太喜欢概率和统计分析,而且那么多的数学博士硕士什么的,我一个计算机系的本科娃娃能做什么,ACM里的那些算法基本上都是些打酱油的算法,ACM重在考智商吧。。。(当然题海战术也是有效的)。

阅读了不少大牛和网友的文章,总结了一下自己的想法:我们在校的学生,最重要的是要理解所学的课程。我们可以不必管C/C++的那些各种库的应用,当然C++ STL除外,我觉得对于STL必须要熟悉,否则就相当于没学C++。java也是一样,关键在于理解。理解java编程的思想,理解线程和并发的机制;理解GUI的运行机制等等。除了语言方面,算法和数据结构、操作系统、数据库、体系结构(大概就是微机原理、汇编、组成原理什么的)、编译原理等基础课程都是非常重要的。当然,我们课本上讲的这些课程,不少都是很浮云的,如果对某个方面比较感兴趣的话,还是推荐购买基本相关领域的权威著作,然后自己慢慢消化吸收就好了。比如说你对算法感兴趣,那么你可以去看《算法导论》、TAOCP等。

对于操作系统的学习,个人觉得结合linux好好学学是个很不错的主意。

暂时就想到那么多,学习去啦,以后再补充吧,希望这篇文章对跟我有同样迷惑的同学有帮助。

posted on 2011-11-14 21:24  Moon_1st  阅读(376)  评论(0编辑  收藏  举报

导航