名牌大学计算机硕士的困惑

来源:互联网 发布:ubuntu 14.04 jenkins 编辑:程序博客网 时间:2024/04/27 15:20
  转自:http://www.5xue.com/modules/bbs/viewthread.php?tid=101406
对自己的学习方向有所启发,就放在这里以备以后查阅吧

      我是2005年考取了国内计算机专业名牌大学系统软件专业的硕士研究生,现在正好是硕士二年级,马上就要开题了。我被同年级人称之为高手,但内心深处其实非常困惑。
   第一次接触计算机还是在2002年我大一下学期的时候,那个时候课堂上教的是C语言。因为有点感兴趣,也觉得自己是学计算机的,应该掌握编程,就在暑假 买了一台计算机。同时,暑假的时候,在一个师兄的建议下,我开始学习C++。C++比较有意思,语法非常丰富。从C++的对象模型到为什么C+ +能做到面向对象,我深有体会。然后2004年我又学习了Java,由于C++的基础,Java我学的非常快。本科期间,课程比较紧张,没有多少业余时间 参与项目。但我每一个课程设计包括毕业设计都是自己亲自编码实现的。从一开始学习程序设计,到现在,用过Turbo C,Borland C++Builder6.0,VC6.0,JBuilder9.0。但,我仅仅是用它们做作业,对于BCB的VCL,VC的MFC等框架没有非常深入的研 究。平日里我也买这方面的书籍去看,了解这些框架的原理,但是我确实抽不出那么多时间去实践。读研的时候,我们高级软件工程这门课程,讲授设计模式和 MOF,我听了非常有感觉,自我感觉功力大增。今年上半年,也就是研一的时候,做了两个项目,一个用到了Jsp+JavaBean,一个是J2EE的分布 式应用系统,用到Jsp+Struts+EJB+Hibernate+Oracle。项目完成后,非常有收获。对于系统的稳定性,并发控制,可扩展性,有 了非常直观、非常深刻的体会。但是,这种应用性的项目,除了做整体的体系结构设计外,具体实现起来其实没有什么太大的技术含量,写代码只要正确的表达出业 务逻辑就行了,用不到什么复杂的数据结构。难就难在工具的使用上(比如IBM的WSAD5.0或者RSDP6.0等开发工具),系统的部署(比如 Websphere和Oracle在Linux上的部署等等,整个系统的部署)上。另外,业务逻辑主框架的设计是一件非常有意思的事情,因为用到设计模式 用的非常多。
  我从一开始接触计算机就晚了。我学理论知识的时候,喜欢总结,我写下来的专业课心得,已经累积下了不少。但是,本科和研究生就那 么几门课程,而且都是基础性非常强的。就是这么几门课程,几乎占掉了我全部的时间。我就是这样一边摸索机器,一边学习理论。可到现在,很多专业知识也都忘 的差不多了。比如数据结构,很多经典的 算法,比如排序,查找,树,图等很多算法,性能分析,复杂度,我都忘光了,现在即使拿起来分析,心里反而有点恐惧和发怵。我听说找工作的时候,大公司的笔 试题目很多都是这方面的。当时学的时候其实也稀里糊涂的,主要也是不重视,自己有点迎难而退吧,当时就跳过去了。现在,对于万行以上程序的调试,和汇编语 言程序设计,我觉得自己仍然不过关。我现在仅仅是熟悉各种编程语言的语法,可以流畅的按照自己的意图写代码。
  为什么我这么担心这个事情呢?因为我现在的环境里面,周围有不少优秀的同学,从小学就开始接触计算机,初中就自学了数据结构和算法分 析之类的,大学以前就有大量的代码经验,我估计自己本科阶段也就两万行代码经验,我看了微软亚研院的要求是一个本科毕业生要10万行代码经验。读了大学, 他们又继续参加ACM程序设计竞赛,接受赛前培训,他们的动手方面的培训经历,让我羡慕。举个例子,他们可以非常快速的写出在一个象棋棋盘上,给出一个起 点,给出一个终点,一个棋子能否到达。或者再举一个例子,他们可以非常快速的实现一些算法。
  我对计算机,谈不上很大的兴趣。有一句话说的非常 对,知之者不如好之者,好之者不如乐之者。我觉得自己充其量算是一个好之者。我只是觉得自己是学计算机的,将来要靠这个吃饭,或者至少现在要立足这个专 业。另外,学生的天职就是学习。我学东西应该还算认真。通过我的体会,我认为,工科学起来一个最大的特色在于――实践!只有有了丰富的实践经验,你不管看 书还是看论文,看起来才有感觉,才能迅速理解。如果你不实践,你根本不知道别人在讲什么。你做起研究来肯定累,效率也肯定低,而且理解的还未必深。我现在 的环境还算好。每个礼拜有 学术交流,能听到计算机领域各个方面的研究生做的报告。我本人的兴趣,从计算机体系结构到操作系统,编译器,网络,都有一点。我本科毕业的时候的定位是, 希望自己毕业后可以迅速过渡为一名合格的程序员。现在整个人的视野都开阔很多了。希望自己硕士毕业后不仅仅是一名合格的程序员。我师兄经常批评我在分析系 统的时候,站的不够高,他说我一定要具备系统的概念,要能分析大的系统的框架。可我总是达不到他那么高的高度或者说站不起来。
  马上就要开题了。但是,在一起做 课题的日子,我总感觉很自卑。因为我的周围有很多很早就接触计算机的人,有让我羡慕的比我丰富的程序设计经验。我在实践方面的不足和无知,让我现在不是特 别有信心继续做下去。其实我知道,我已经比周围大部分同学的实践经验都丰富,他们也都这么认为我。但跟这些人比起来,我就是小巫见大巫了。我认为,一个优 秀的计算机专业的学生,最起码应该具备扎实的理论基础和程序设计能力。可是我自己,上面我写了,有那么多不足,让我觉得很不踏实。这些不足,跟我认可的人 相比,让我偶尔会很自卑,心里还特别焦虑。我甚至连换专业的想法都有了。尽管平日里我也被大家称之为高手,但我心里清楚,很多人的水平都比我高,我只是个 普普通通的还算认真学习的学生。或许,我光看到了别人的优点。或许我的很多观念还不太对。现在做课题的时候,我的步伐总是慢。我目前研究的一个东西国外已 经抢先搞了3年了,我头一次接触这么大的东西,总代码量甚至超过了Linux的源代码。看文章的时候,也总是特别慢,看快了,我什么也体会不到。我觉得是 自己的水平还不够高,所以看快了才跟不上理解。我的英语不成问题,口语还是写作,都非常流利。我师兄的教导是看的时候,一定要心里主动去猜测,根据文章作 者的思路马上形成自己的思路,然后去跟作者在文章中的论述去对,看作者是不是跟自己一样的思路,如果是一样的,就不用自己看了,如果不一样再仔细往下看。 可是,我在看文章的时候,文章作者的思路却不能启发我形成自己的猜测或自己的想法,也就没法去跟文章作者的思路去比对。
  我师兄对我的评价是,什么都想学会是不可能的,必须用有限的知识做更多的事情。他们认为我太拘泥于细节,性格上太认死理。我的学习方法,比较慢,现在总是跟不上课题的进度。我觉得课题进度的确太快了些。这个寒假我想了很多,发个帖子到开复学生网上,摘下面具,把自己所有的郁闷和缺点都倒出来,跟专家交流一下,希望得到大家的指点。谢谢!