【留言】
贺老师你好,我是软件工程专业的大二学生,我们学校这个学期的专业学习不是很多,已经学完了。参考学校的培养计划,下个学期开始,差不多都是专业课的学习。数据库原理,算法设计,计算机组成原理,操作系统,计算机网络等,还有类似于软件过程管理,软件测试技术的学习,学时都超过48小时,外加实验课和课程设计,编译原理好像没有开课,现在感觉脑子里有点乱,不知道重点应该放在哪里?还请贺老师指点迷津。
【回复】
学习编译原理的目标,主要在于了解计算机系统内部的工作原理。对于软件工程专业,更加注重工程方法的培养,对计算机底层的要求,不必太高。当前专业细分的倾向明显,倒不用纠结这个。如果自己更倾向于做计算机系统方面的工作,额外找途径自学一下未尝不可,这点个性可以有。而如果自己的目标就是软件工程,照此学即是。
软件工程专业要有计算机的基础,数据库原理,算法设计,计算机组成原理,操作系统,计算机网络等课程就是在解决基础的问题,而软件过程管理,软件测试技术等课程,则是软件工程学生更有针对性的课程,计算机科学与技术专业的学生并不必要深钻这些。以此看来,你们学校培养方案中的规定,还是合理的。你需要首先做到的,就是照着开的课程,将该做的环节做到,保证学习效果。
我一直在强调个性化的学习,也强调课外要有自主的学习。所以,刚才所谓“课内”的,就是基础。本来大学阶段,也只是专业学习的基础阶段。你说得那些课,努力学好,该会的都会了,不必求重点。为了自己的学习更加扎实一些,我建议你在课外在实践方面多加些力气,可以选中其中的一门课程承载的技术深入实践,例如做数据库的开发,同时用上软件工程中的方法,以此能够对课程中学过的,或者即将要学习的内容,在感性上获得启发。这将是非常宝贵的积累。等进入大三,可以确定一个要专攻的方向,在学好课程的基础上,用实践的方式,形成自己的特色。
个人观点,仅供参考。