计算机专业大学学生的学习规划
在大学你的身份是学生,而学生的首要任务就是学习,那么,计算机专业大学生如何制定学习规划呢?下面是小编给大家带来的计算机专业大学学生的学习规划,希望对你有帮助。
计算机专业大学学生的学习规划(一)
为了让每一名计算机与信息工程学院的同学入校以后,能够以最快的速度转变角色,科学规划大学生活,为四年后那个收获的6月打好基础,我们编写了这篇“如何规划大学四年”,其中参阅了大量互联网资料,尤其是李开复给大学生的公开信、IT专业解惑真经等资料,在此对这些作者表示感谢!
一、大学——人生的关键
大学是人生的关键阶段。这是因为,从学习上讲大学阶段是高中阶段的延续,但大学阶段又和高中阶段有很大不同,在此阶段你可以追逐自己的理想、兴趣。而且,大学阶段可能是你第一次离开家庭生活,独立参与团体和社会生活。这是你第一次不再单纯地学习或背诵书本上的理论知识,而是有机会在学习理论的同时亲身实践。这是你第一次不再由父母安排生活和学习中的一切,而是有足够的自由处置生活和学习中遇到的各类问题,支配所有属于自己的时间。
大学是人生的关键阶段。这是因为,这是你一生中系统性地接受教育的大好机会。这可能是你最后一次能够全心建立你的知识基础。这可能是你最后一次可以将大段时间用于学习的人生阶段,也可能是最后一次可以拥有较高的可塑性、可以不断修正自我的成长历程。这也许是你最后一次能在相对宽容的,可以置身其中学习为人处世之道的理想环境。
大学是人生的关键阶段。在这个阶段里,你应当认真把握每一个“第一次”,让它们成为未来人生道路的基石;在这个阶段里,你也要珍惜每一个“最后一次”,不要让自己在不远的将来追悔莫及。在大学四年里,大家应该努力编织自己的梦想,及早明确自己的方向,努力学习,奠定自己人生的基础。
显而易见,大学是一生中学习能力转变最大的时候,是把“基础学习”和“进入社会”这两个阶段衔接起来的重要时期。因此,在大学四年中,要努力培养自己的学习能力,提高自己的学习境界,让自己成为一个擅长终身学习的人。
二、认识并认同计算机专业
进入大学,首先我们要树立正确的学业观 。大学生的学业是指在高等教育阶段进行以学习为主的一切活动,是广义的学习阶段,它不仅包括科学文化知识的学习,还包括思想、政治、道德、业务、组织管理能力、科研及创新能力等的培养和学习。观念是行动的先导,要完成好大学学业首先必须树立正确的学业观。所谓学业观就是对所学专业、学业的态度和认识,它在很大程度上影响着同学们的学习、生活乃至人生前景。当代大学生在对待学业问题上存在着种种误区:或将学业涵义理解过窄,或对学业生活预期过高,或学业角色定位不准,或职业期望值过高,以至学业不精甚至荒废学业。为此,我们应正确处理如下四种关系:
一是正确处理学业与专业的关系。珍重自己的学业,就该学得其所,努力培养自己的专业兴趣,把自己的爱好和国家的需要及社会发展的要求有机地统一起来,掌握专业知识、专业技能和相关能力,培养自己的专业素质。就计算机相关专业而言,二十一世纪,人类进入到了信息大爆炸和知识经济时代。以计算机技术为主的计算技术成为该时代的重要特征,并对社会发展产生着前所未有的影响。尤其是随着国家对信息化建设的高度重视,以及计算机学科对几乎所有学科的深入的渗透和交叉,使得计算机各专业将变为基础性的专业。
二是正确处理学业与职业的关系。在学习期间就应自觉地学好职业知识,培养职业技能,锻炼职业能力,以期在将来的就业竞争中立于不败之地。就计算机各专业的社会需求来说,不论从全球的一些统计数据还是国内的一些统计数据,需求量都是很大的,但更好更优更强的职业知识、职业技能、职业能力是你成功的基础。
三是正确处理学业与事业的关系。将自己现在的学业、将来的职业和未来的事业联系起来,在学习的过程中,充分认识所学专业在国家建设和社会发展中的意义、作用和发展前景,立志献身其中,在工作中充分实现自己的人生价值。
四是正确处理学业与就业的关系。就业与学业存在着密切的关系,就业是学业的导向,学业决定了就业。以就业为学业的导向,有利于大学生专业报考的选择、学业目标的调整、学习方式的改变、学习外延的拓展以及综合素质的提高。与此同时,就业也构成了衡量学业成就的重要标志。想要就好业必须具备强烈的事业心、广博精深的专业知识、较强的沟通协调能力、良好的心理素质和强健的体魄以及创新精神,这些都应当在完成大学学业过程中养成。
三、及早规划你的大学四年
进入大学后要及早规划你的大学四年。凡事预则立,不预则废。为了使自己能充分利用这四年时光,能真正学有所成,能坦然地面对四年后继续深造或就业竞争,我们要从及早规划大学四年的学习、生活,及早明确目标,制定航线。
机遇总是垂青有准备的人。一个人的文化知识素质如何,专业技能掌握的怎么样,将决定他在继续深造或求职择业时的自由度和考取的学校或取得职业岗位的层次。为此,根据计算机专业发展和用人单位的需要,应重点从以下三个方面抓好学业,做好准备。
1.构建合理的知识结构
大学四年,应培养宽厚扎实的基础知识、广博精深的专业知识,构建合理的知识结构。这一过程没有捷径可走,其基本途径只能是学习、积累和实践。也绝非一劳永逸,必须持续不断地付出艰辛劳动。采取适合自己的学习方法,并且不断努力、辛苦耕耘,建立和完善自己的知识结构,为继续深造和就业成才打下良好的基础。
2.培养较强的实践能力
知识并不能简单地与能力划等号,知识与能力是辩证的关系。在一定意义上说,能力比知识更重要。因此,一名优秀的大学毕业生应把构见合理的知识结构、培养科学的思维方式和锻炼较强的实践能力统一起来,尤其要培养较强的专业实践能力,对计算机各专业来说,编程技能就是最重要一项专业实践能力。具备了较强的编程技能才能在考研面试、择业、从业过程中立于不败之地。
3.全面提高综合素质
知识、能力、素质是大学生社会化的三大要素。知识是素质形成和提高的基础,能力是素质的一种外在表现,没有相应的知识武装和能力展示,不可能内化和升华为更高的心理品格。但是知识和能力往往只解决如何做事,高素质的人才应该将做事与做人有机地结合,既把养成健全的人格放在第一位,又注重专门知识、技能和能力的培养,使自身得到全面、和谐的发展。因此,一名优秀的大学毕业生应把构建合理的知识结构、培养科学的思维方式、锻炼较强的实践能力和提高全面的综合素质统一起来。
四、大学计算机课程学习路线
如果你是一个计算机相关专业的一名学生,希望你一定要明白我们计算机专业的学生和非计算机专业学生对计算机知识掌握的深度绝对是不一样的。我们仅仅会Windows、Office或其它软件的一些操作是不够的。计算机专业的优势就在于,我们掌握许多其他专业并不“深究”的东西,例如,编程语言、算法,体系结构,操作系统、编译原理等等。非计算机专业的人可以很容易地做一个芯片,写一段程序,但他们做不出计算机专业能够做出来的大型系统。这就需要同学们不仅学懂一些软件的操作,更需要把计算机专业的一些基础课程以及专业核心课程学好,并把许多课本上的知识通过实验、实践转化为自己真正掌握的知识。
(一)计算机理论的一个核心问题——从数学谈起
同学们大一入学后,每周六学时的高等数学,天天作业不断。可能有些同学惊呼走错了门!咱们这到底念的是什么专业?不错,你没走错门,这就是计算机科学与技术专业、软件工程专业、物联网工程专业、信息管理与信息系统专业。计算机专业相关的众多科学研究中,如信息检索,语言文字信息处理,网络传输,图形图像处理,视频音频处理,每个研究方向都与数学有着很大的关系,虽然也许是正统数学家眼里非主流的数学,但没有数学是不行的。而且我们都知道,数学是从实际生活当中抽象出来的理论,人们之所以要将实际抽象成理论,目的就在于想用抽象出来的理论去更好的指导实践,指导利用计算机解决具体问题。
其实我们计算机专业学数学光学高等数学是不够的,有条件应该像数学系一样学一下数学分析(清华计算机系开的好像就是数学分析),这对培养计算机专业学生良好的分析能力极有帮助。因为在一些软件企业中,数学系的学生大多作软件设计与分析工作,而计算机系的学生做程序员的居多,原因就在于数学系的学生分析推理能力,从所受训练的角度上要远远在我们之上。
正如上面所论述的,计算机专业的学生学习高等数学:知其然更要知其所以然。你学习的目的应该是:将抽象的理论再应用于实践,不但要掌握题目的解题方法,更要掌握解题思想,对于定理的学习:不是简单的应用,而是掌握证明过程即掌握定理的由来,训练自己的推理能力。只有这样才达到了学习这门科学的目的,同时也缩小了我们与数学系的同学之间思维上的差距。
另外,线性代数,概率论与数理统计这两门课很重要,可惜大多数院校讲授这些课都会少些东西。少了的东西现在看至少有随机过程。到毕业还没有听说过Markov过程,此乃计算机专业学生的影响很大。没有随机过程,你怎么分析网络和分布式系统?怎么设计随机化算法和协议?所以,同学们不仅要学好讲到的东西,甚至要自学一些该掌握的知识。
计算机科学和数学的关系有点奇怪。三四十年以前,计算机科学基本上还是数学的一个分支。而现在,计算机科学拥有广泛的研究领域和众多的研究人员,在很多方面反过来推动数学发展,从某种意义上可以说是孩子长得比妈妈还高了。但不管怎么样,这个孩子身上始终流着母亲的血液。这血液是the mathematical underpinning of computer science(计算机科学的数学基础),也就是理论计算机科学。所以推荐大一的同学们一定要学好高等数学,线性代数、概率论与数理统计等数学课,因为数学是开启计算之门的钥匙!
最常和理论计算机科学放在一起的一个词是什么?答:离散数学。这两者的关系是如此密切,以至于它们在不少场合下成为同义词。,数学是以分析为中心的。数学系的同学要学习三四个学期的数学分析,然后是复变函数,实变函数,泛函数等等。实变和泛函被很多人认为是现代数学的入门。在物理,化学,工程上应用的,也以分析为主。随着计算机科学的出现,一些以前不太受到重视的数学分支突然重要起来。人们发现,这些分支处理的数学对象与传统的分析有明显的区别:分析研究的问题解决方案是连续的,因而微分,积分成为基本的运算;而这些分支研究的对象是离散的,因而很少有机会进行此类的计算。人们从而称这些分支为“离散数学”。“离散数学”的名字越来越响亮,最后导致以分析为中心的传统数学分支被相对称为“连续数学”。离散数学经过几十年发展,基本上稳定下来。一般认为,离散数学包含以下学科:1)集合论,数理逻辑与元数学。这是整个数学的基础,也是计算机科学的基础。2) 图论,算法图论;组合数学,组合算法。计算机科学,尤其是理论计算机科学的核心是 算法,而大量的算法建立在图和组合的基础上。3) 抽象代数。代数是无所不在的,本来在数学中就非常重要。在计算机科学中,人们惊讶地发现代数竟然有如此之多的应用。每个学校计算机专业都会开一门离散数学,涉及集合论,图论,和抽象代数,数理逻辑。但同学们学的怎么样呢?希望每个同学都重视这门课的学习。
另外,计算机科学理论的根本,在于算法。所以同学们也要重视算法设计与分析等课程或知识的学习。
(二)理论与实际的结合——计算机科学研究的范畴
前面主要是从数学角度来看的。从计算机角度来看,我们学好学科基础课:数学系列课的同时,更要把专业基础课,尤其是专业核心课程学好。
这方面先说说各专业普遍开设的《计算机基础》。在高等学校开设《计算机基础》是我国高教司明文规定的各专业必修课程要求。主要内容是使学生初步掌握计算机的发展历史,学会简单的使用操作系统,文字处理,表格处理功能和初步的网络应用功能。但是在计算机专业讲授该课程时应该侧重的是:让学生较为全面的了解计算机学科的发展,清晰的把握计算机学科研究的内容,以及专业课程中每门基础课和核心课程在整个学科体系中所处的地位及作用。使学生在学科学习初期就对整个学科有一个整体的认识,以做到在今后的学习中清楚要学什么,怎么学。然后要侧重从整体上讲解计算机内部的数据表示方法,计算机的体系结构及计算机运行的基本原理等内容。而相应的Windows基本操作、Office等计算机基本应用技能应当放在第二位,这些技能主要通过大量的实验和课外实践并借助一些竞赛平台让学生加以掌握。
一个计算机专业的优秀学生决不该仅仅是一个编程高手,但他一定首先是一个编程高手。同学们第一门编程类的课是程序设计基础(C语言程序设计),念计算机的人从某种角度讲相当一部分人是靠写程序吃饭的。在许多学校的计算机专业里一直有这样的争论,关于学生第一程序设计语言该用哪一种。我个人认为,用哪种语言并不重要,关键在养成良好的编程习惯。因为许多程序员都觉得一门语言打好基础后学一门新语言只要一个星期,甚至根本不用一个星期。前提是先把基础打好。我们学院新版的人才培养方案,程序设计基础课程开设一年,意在让大家学好这门基础课,同时掌握好指针、结构体、链表、自定义数据类型等内容,为后继的数据结构等课程打好基础。
另外,我们新版人才培养方案中,编程类的课是一条线。对计算机科学与技术专业的学生来说,第一年是程序设计基础(C语言),第3学期开设面向对象程序设计(C++),第4学期系统平台程序设计(Windows程序设计),之后有框架程序设计技术(VC集成环境),MFC程序设计,高级程序设计,高质量程序设计等。之所以这样设置是希望,同学们学习的语言不用门门俱到,但一定要把一个语言学精通。另外,我们希望同学们通过四年的学习,编写和调试的代码量能得到2万~4万行。
硬件的课程是电子技术基础,汇编语言和微机原理,计算机组成原理,然后就是嵌入式和计算机控制方面的一些课。电子技术基础这门课不仅要讲到模拟电路,而且要讲到数字电路。模拟电路这东东,如今不仅计算机系学生搞不定,电子系学生也多半害怕。如果你真想软硬件通吃,那么建议你先看看邱关源的“电路原理”,也许此后再看模拟电路底气会足些。数字电路比模拟电路要好懂得多。
汇编语言和微机原理是将汇编语言和微机原理融合到一起的课。你的数学/理论基础再好,也占不到什么便宜。这两部分内容之间的次序也好比先有鸡还是先有蛋,无论你先学哪部分,都会牵扯另一部分里的东西。所以,只能静下来慢慢琢磨。这就是典型的工程课,不需要太多的聪明和顿悟,却需要水滴石穿的渐悟。
有了汇编语言和微机原理这门课的知识,再学计算机组成原理就有一定基础了。有些人说不想了解计算机体系结构,也不想制造计算机,所以诸如计算机组成原理,汇编语言,接口之类的课觉得没必要学,这样合理吗?显然不合理,这些东西迟早得掌握,肯定得接触,而且,这是计算机专业与其他专业学生相比的少有的几项优势。做项目的时候,了解这些是非常重要的,不可能说,仅仅为了技术而技术,只懂技术的人最多做一个编码工人,而永远不可能全面地了解整个系统的设计。
数据结构的重要性就不言而喻了,学完数据结构你会对你的编程思想进行一番革命性的洗礼,会对如何建立一个合理高效的算法有一个清楚的认识。对于算法的建立我想大家应当注意以下几点:
当遇到一个算法问题时,首先要知道自己以前有没有处理过这种问题.如果见过,那么你一般会顺利地做出来;如果没见过,那么考虑以下问题:
1. 问题是否是建立在某种已知的熟悉的数据结构(例如,二叉树)上?如果不是,则要自己设计数据结构。
2. 问题所要求编写的算法属于以下哪种类型?(建立数据结构,修改数据结构,遍历,查找,排序...)
3. 分析问题所要求编写的算法的数学性质.是否具备递归特征?(对于递归程序设计,只要设计出合理的参数表以及递归结束的条件,则基本上大功告成.)
4. 继续分析问题的数学本质.根据你以前的编程经验,设想一种可能是可行的解决办法,并证明这种解决办法的正确性.如果题目对算法有时空方面的要求,证明你的设想满足其要求.一般的,时间效率和空间效率难以兼得.有时必须通过建立辅助存储的方法来节省时间.
5. 通过一段时间的分析,你对解决这个问题已经有了自己的一些思路.或者说,你已经可以用自然语言把你的算法简单描述出来.继续验证其正确性,努力发现其中的错误并找出解决办法.在必要的时候(发现了无法解决的矛盾),推翻自己的思路,从头开始构思.
6. 确认你的思路可行以后,开始编写程序.在编写代码的过程中,尽可能把各种问题考虑得详细,周密.程序应该具有良好的结构,并且在关键的地方配有注释.
7. 举一个例子,然后在纸上用笔执行你的程序,进一步验证其正确性.当遇到与你的设想不符的情况时,分析问题产生的原因是编程方面的问题还是算法思想本身有问题.
8. 如果程序通过了上述正确性验证,那么在将其进一步优化或简化。
9. 撰写思路分析,注释.
对于具体的算法思路,只能靠你自己通过自己的知识和经验来加以获得,没有什么特定的规律(否则程序员全部可以下岗了,用机器自动生成代码就可以了).要有丰富的想象力,就是说当一条路走不通时,不要钻牛角尖,要敢于推翻自己的想法。
操作系统是一门很重要的课程,除了大家用的教材外,建议大家再看看以下一些相关书籍。想看理论方面的就推荐清华大学出版社《操作系统》吧,高教司司长张尧学写的。另外推荐一本《Windows操作系统原理》机械工业出版社的,这本书是我国操作系统专家在微软零距离考察半年,写作历时一年多写成的,教操作系统的专家除了清华大学的张尧学(现高教司司长)几乎所有人都参加了。Bill Gates亲自写序。里面不但结合windows2000,xp详述操作系统的内核,而且后面讲了一些windows编程基础,有外版书的味道,而且上面一些内容可以说在国内外只有那本书才有对windows内核细致入微的介绍。
学数据库要提醒大家的是,会用VF,VB, Power builder,SQL Server不等于懂数据库。(这世界上自以为懂数据库的人太多了!)数据库设计既是科学又是艺术,数据库实现则是典型的工程。所以从某种意义上讲,数据库是最典型的一门计算机课程——理工结合,互相渗透。咱们人才培养方案中数据库主要是两门课,数据库概论及应用,以及高级数据库技术。第一门课主要讲解数据库基本原理,并结合一门数据库讲解应用技术。第二门课主要讲解在程序设计过程中联接数据库、操作数据表和数据记录的相关方法和技术。
计算机网络作为硕士研究生入学考试专业课四门统考课程之一。推荐谢希仁的《计算机网络教程》(人民邮电出版社)问题讲得比较清楚,参考文献也比较权威。不过,网络也属于Hardcore System,所以光看书是不够的。建议多从互联网上找一些参考资料阅读,并利用我们的实验室多实践,以便加深对课本知识的理解。
关于计算机科学的一些边缘科学我想谈一谈软件工程技术,对于一个企业,推出软件是不是就是几个程序员坐在一起,你写一段程序,我写一段程序呢?显然不是。软件工程是典型的计算机科学和数学,管理科学,心理学,社会学等学科的综合。它使我们这些搞理论和技术的人进入了一个社会。你所要考虑的不仅仅是程序的优劣,更应该考虑程序与软件的区别,软件与软件产品的区别,软件软件产品的市场前景,如何去更好的与人交流。这方面推荐给大家几本书:畅销20年不衰的《人月神话》(清华大学中文版,中国电力出版社影印版),《软件工程-实践者研究的方法》(机械工业出版社译本),《人件》(据说每一位微软公司的部门经理都读过这本书,推荐老总们和想当老总的同学都看看,了解一下什么是软件企业中的人)以及微软公司的《软件开发的科学与艺术》和《软件企业的管理与文化》(研究软件企业的制胜之道当然要研究微软的成功经验了!)
计算机技术牵扯的内容更为广泛些,一项一项说恐怕没个一年半载也说不清。我只想提醒大家的还是那句话,技术与科学是不能分家的,学好了科学同时搞技术,这才是上上策。犹如英语,原先人们与老外交流必须要个翻译,现在满马路的人都会说英语。就连21世纪英语演讲比赛的冠军都轮不到英语系的学生了。计算机也是一样的,我们必须面对的一个现实就是:计算机真就只是一个工具,如果不具备其它方面的素养,计算机系的学生虽然不能说找不到工作,不过总有一天当其他专业性人才掌握了计算机技术后将比我们出色许多。原因就在于计算机解决的大都是实际问题,实际问题的知识却是我们少有的。单一的计算机技术没有立足之地。
另外还需要指出:学习每一个课程之前,都要先搞清这一课程的学习目的。这一学科的应用领域。据我所了解到的同学和低年级的同学的学习状况:他们之中很少有人知道学一门课程的学习目的,期末考试结束了也不知道学这课做什么用。这就失去了读计算机科学的意义。
有些同学说按照这样学习学的东西太多,有的未见得有用,我想打个形象的比方:学校学出来的人都是一个球体,方方面面的知识都应具备。可是社会上需要球体的地方很少,反而需要的是砖和瓦,即精通某一行的人才。但是对于同等体积的物体,用球体来改造是最方便最省事的。学校的学生很多,为了能够使更多的学生来适应这个社会,学校也就不得以把所有的学生都打造成一个球体,然后让社会对这些学生进行再加工,成为真正能够有用的人才。即使你非常清楚自己的将来要干什么,并且非常下定决心要走自己的路,这一步你也必须走,世界是在不断变化的,你不能预料未来。想清楚,努力去干吧!对于博大精深的计算机科学,我们每个人只能说永远都是个Beginner。即使把以上说的这些这些全弄通了,前面的路还长,计算机科学需要我们为之奋斗......学习计算机科学需要韧性,更需要创新,需要激情。深刻学习理论知识,勇于接受新技术的挑战,这才是我们这一代人应具有的素质。希望同学们都能保持一颗平常心,戒骄戒躁,平和的埋头学习吧。
五、编程技能——你翱翔蓝天的翅膀
这一部分就以互联网上一个完整的帖子:“修炼编程的内功”来说说编程技能培养的重要性。
很多年以前,我还是一个学建筑的学生,但是很喜欢学计算机。不过呢,由于专业限制,我没有计算机用的。学校只开了一个学期的Fortran语言,上机时间只有可怜的5节课,那会把我憋坏了,呵呵。
计算机专业大学学生的学习规划的评论条评论