之所以是浅浅而谈,是因为我下个学期刚上大四,所以对整个体系还不能完全了解.之所以谈,是因为我已经知道大四的内容是什么,方向是什么。
我个人觉得,首先对“计算机”有一个认识:我是计算机专业,不是软件专业,也不是网络专业,但同时也是软件专业,也是网络专业。这很矛盾,但计算机的确离不开软件和网络。
但是必须清楚,我是计算机专业的!有这个明确认识,就可以学习计算机专业了。IT业很浮躁,我们总是在杂志上看到JAVA程序员谈论J2EE框架结构,总是看到一些兴新技术,比如AJAX、ECLIPSE。最近又冒出个什么“敏捷开发”,等等。坐在校园的你,是不是很不情愿去学那些只会加、减、乘、除和显示一个“hello word”的C语言程序?老师在教你们与非逻辑门时,你是不是在想我是搞软件的,学这干吗?老师在和你说电脑是由CPU和内存及IO设备组成的时候,你是不是觉得看一期《大众硬件》也比这来得精彩?
这里不得不说大学教育的确有点问题。可这不是本文所讨论的重点。
我们想学好四年的计算机专业,就必须看到IT业的浮躁!浮躁的IT业会让我们分心,会让我们半途而废。
还是谈下具体课程吧。只能说是泛泛、浅浅的谈,有很多个人观点,肯定有人反对。
C语言。这个必须学好,是的,C语言不能做一个(或者很难)漂亮的windows穿口,这比起JAVA差多了。但是这门语言却是入门级语言,很难想象,C语言没学好,就去碰JAVA是个什么样子。学好C语言体现在:熟练掌握各个基本的函数:for、while、if还有自定义函数等,还有一点很重要,那就是指针——我发觉一些老师在讲C语言时,不讲指针,只能说这个老师不太负责。C语言的精髓就是指针,没有指针,C语言就不会成功,也不会发扬光大。所以必须弄懂指针!
C++。不用说了,这个语言也要学好。可能有人问,直接学C++就可以了,不用学C语言了——潭浩强就这么说。个人认为,还是要学C语言的,因为C语言能打好编程的最基本的理论基础,到了C++就是面向对象为重点了,而且,在目前嵌入式开发,使用C语言居多。那么,C++要学到什么程度呢?我个人认为,你熟练掌握C++的三大特性就可以了:继承、多态和封装。如果想深入,可以看一些高级主题:函数符重载、异常处理等。还有一个问题,在论坛上出现最多:该用什么编译器?这个话题要是说开来,真是会引起一场战争,总之一句话:习惯就好。
数据结构。很多人把这个科目看成挂科绊脚石!不否认,现在的大学应试教育使这个科目成了魔鬼科目!!好不容易学了C++就得了,还搞个什么数据结构干吗?我可以大胆的说:没学过数据结构,等于不会编程!举个例子:现在我们做一个任务队列,它存于内存里,等待CPU调度,那么我们如何设计这个队列?也许还有许多因素使这个队列很复杂,我们怎么处理?这些都需要链表、树(我看过linux源代码,居然哈希表的知识都用上了!)等知识。没有经过数据结构的系统训练,很难编好这一段程序。可是,正如前文所说,数据结构成了应试知识,我们想学好它,真正做到学有所用,必须要上机自己编程,自己调试,你能用代码解决数据结构里面的问题,你就是学会了。
汇编语言。不要嘲笑这个语言,我敢说:JAVA见鬼的时候(假如有这么一天),这个汇编还在使用呢。当然了,你要是向设计应用软件方向发展,你大可60及格。如果你是想做嵌入式系统,那就要学好了。学过的,都知道,不多说了。
计算机组成原理。向软件方向发展的,也60分及格吧。硬件接口方向的,60分及格也不怪你,但是你不想学好点,为简历增点光彩?
操作系统。据我所知,很多大学都是讲理论,基本不讲代码。也许它能激发你对接口或者写自己的操作系统的兴趣吧。
计算机系统结构。和计算机组成原理一样。其实这两个科目,都是拾人牙慧的知识,没有创新可言——除非你打破冯·诺依曼的计算机组成定律。这我也没话可说了,但是,60分的分数,你愿意它出现在你的简历上?
计算机接口技术。这是朝嵌入式发展的平台课。学好它,你可以接触嵌入式了(当然,你直接学嵌入式也可以,不过可能很吃力)。
数据库原理。这也是平台课。想搞ERP,不妨学好它。(同样,你可以直接接触oracle,但是可能会比较吃力)。
还有以下几门课程:信号与系统、自动控制原理、计算机控制、计算机网络制等。这些是理论知识,说实在,这些理论上的东西本人和相关工作人员沟通知:工作基本用不上。我也无话可说了。
业内人知道其实以上很多是废话。我是搞嵌入式的,选修过ASP(什么也没学会)。我觉得想向嵌入式方向发展,应该这么走:C语言——C++——数据结构——计算机组成原理——接口技术(同时学好汇编语言)——嵌入式。四年大学学业你能完美的走完这几步,你应该没什么遗憾了。别的方向:数据库ERP、计算机图形学我就没接触过,你要是有兴趣不妨就学好相关课程吧。