感想2012-3-31

来源:互联网 发布:360软件中心 编辑:程序博客网 时间:2024/06/07 13:01

        首先说明本人写的代码并不多,可能是因为自己有些眼高手低吧,想着某件事情非常简单,可是动手做时却做不出来,总是试图去参考别人代码。不知道这是不是每一个初学者都有的感觉,说这些都感觉自己有些可笑,现在的自己都是准大四的人了,还跟自己说我还是个初学者。

        前几日看到李开复先生写的一篇文章,名为《李开复给计算机系大学生的建议》(见下文),其中提到了若干要点,首先要重视内功。作为一个计算机学生的我来说,说来有些忏愧。由于当初受到各种思想(包含老师、同学)的熏陶,而且我所上的大学属于二本院校,学校主要注重应用,所以从来不会把计算机组成原理、数据结构、算法之类的课程分配太多的课程,课程是因为我们学校一向重视应用、就业率之类必然的要求吧,现在觉得这样做非常的得不偿失,毕竟这些知识始终贯穿于计算机的学习。本人的专业跟计算机的关系也不是很大,虽然属于计算机学院,却和计算机学院其他专业学习的课程完全不一样,大一、大二时我也曾跟辅导员提起过转专业,可是都被拒绝了,说什么要有特别天赋的同学才可以转专业。说这些又有些埋怨学校了,实际上跟自己的关系最大。

        有人会问我们计算机专业和非计算机专业学习计算机有什么区别,拿清华大学刘卫东老师的话来说我们需要学习具备设计以及制造计算机的能力,而其他非计算机专业的学生学习计算机是为了学习应用或者使用计算机,这些东向西往往很快便能够学会的。我觉得这种能力便是计算机专业需要具备的“内功”,而这种能力并非轻而易举便能学得会的。

        像我们平时上课,比较重要的课程如离散数学、组成原理、数据结构与算法基本上就没什么人去听课,然而老师却讲的津津有味,似乎本来就应该这么少学生来这听课似的,我不知道各个大学是不是都是这种现状,但是作为一个“过来人”,我坚决反对这种状况,这些先修课程非常的重要,这些课程学习的好坏直接影响到了你后面学习的效果,又或者在学习后续课程的时候肯定更加的吃力。

        吃一堑,长一智。之前的自己太无知了,没有认真学习这些课程,现在的自己要花费更多的时间和经历学好这些课程。

        还有我觉得,搞数据结构、算法等需要感觉,至于这种感觉如何才能锻炼我还不太清楚,可能只有通过多实践、写代码的方式才能做到吧;学习C语言的人都知道,C语言的语法非常的简单,难点在于指针和算法的学习,所以学习C语言的同学一定要专心研究指针和算法,而这种研究还是建立在一定的编程经验的基础上的,两者具有一定的相辅相成之关系。

        自己的心太野了,或者说自己不能够在一段时间内专注于一件事情,就像学习arm-linux那段时间一样,自己总喜欢东搞搞、西弄弄,什么Gtk、QT也有所涉猎,却没有三分的专业;又如现在的自己既想学习数据结构与算法,又想早点把它解决掉(并没有先前那么多的“爱好”了),算法书上大多都是一些理论分析,对于数学不好的我带来了极大的阻碍,可能自己的思维不够活跃,所以只能依靠勤奋了。

        一个朋友考上了东南大学,在我们学校也算是比较牛逼的了,首先他的初试分数非常的高,因此给复试提供了及其有利的条件,跟他讨论面试方面的经验时他着重提到了项目经验,他说大多考试在370分以上被刷掉大多原因就在于没有项目经验,各所高校招研究生的目的就是搞研究、做项目,也就是为导师或者学校办事。注意项目经验并不仅仅是应用能力,大多则是内功,能够把各科知识融会贯通,非常流离的回答导师提出的问题。

        多说一点题外话,做项目学习的不止是应用能力,大多学习的是各种文档的书写,以及对整个项目有一个很好的设计。如过不侧重于这些,当你做项目一段时间后,发现数据库设计出现了问题,又或者程序架构设计出现了严重问题,再改起来比重写更加麻烦,每一个程序员都应该有过这种让人头痛的经历。

        在计算机学习的过程中有时需要一个比较好的“老师”,我这里所说的老师是指教材,如果一本书你看三遍还没有任何感觉,我觉得还是换一本书吧,或者你也应该思考一下问题到底在哪里。是自己真的不会,还是对自己的要求太高了?如果感觉什么都不会,这时成就感就特别的重要了,有了成就感你才能更加自信、高效率的学习,试想怎么可能让一个不知道自己未来要做什么的人坚定一件事?而这种成就感、自信心可以通过做项目、多实践(编程)等做到,也可以选择比较简单的书籍来学习。

        最后强调一下,第一、搞计算机要耐得住寂寞,不能一时兴起便放下手中未完成的任务;第二、项目编程能力非常的重要,这种能力必须通过勤奋来做到;第三、多花点时间以修炼内功,须知内功不是一天两天就能够练成的,而且内功会间接的影响未来的发展速度;最后、让自己自信起来,方能更加高效率的学习。



附录(李开复给计算机系大学生的建议):

1)练内功。不要只花功夫学习各种流行的编程语言和工具,以及一些公司招聘广告上要求的科目。要把数据结构、算法、数据库、操作系统原理、计算机体系结构、计算机网络,离散数学等基础课程学好。不妨试试Donald KnuthArt of Computer Programming里的题目,如果你能够解决其中的大部分题目,就说明你在算法方面的功力不错了。

2)多实战。通过编程的实战积累经验、内化知识。建议大家争取在大学四年中积累编写十万行代码的经验。

3)求实干。不要轻视任何的实际工作,比如一些看似简单的编码或测试。要不懈追求对细节一丝不苟的实干作风与职业精神。

4)不放弃数学。数学是思维的体操,数学无处不在。尤其当你对一些“数学密集型”的领域有兴趣,例如视频、图像处理等等,你需要使它成为你的利器。

5)培养团队精神,学会与人合作。

6)激励创新意识,不为书本和权威意见所束缚。

7)有策略地“打工”。在不影响学业的前提下,寻找真正有意义的暑期工作或兼职。去找一个重视技术的公司,在一个好的“老板”指导下完成真正会被用户使用的程序。不要急于去一个要你做“头”而独挡一面的地方,因为向别人学习,是你的目的。打工和找工作一样,“不要只看待遇和职衔,要挑一个你能够学习的环境,一个愿意培养员工的企业,一个重视你的专业的公司,最后,要挑一个好老板。”当然我们在学习过程中就会眼高手低,感觉简单的代码不用再去花那个时间调试,其实只有在这个过程中我们也才能够完全的发现自己容易犯错误的地方,提高自己。

当然我们在学习过程中就会眼高手低,感觉简单的代码不用再去花那个时间调试,其实只有在这个过程中我们也才能够完全的发现自己容易犯错误的地方,提高自己。

原创粉丝点击