大家好,我是MarsZ,上次给大家带来了程序猿Mars谈大学之大学应该怎么过 ,反响还不错(……),这次继续给大家分析一下大学应该学好哪些课程。
首先必须说明两点:一,以下我说的仅代表个人观点。二,仅供未来想从事游戏前端开发的程序猿的同学参考(因为我是个游戏开发程序猿,我的经验当然只能作为游戏开发程序猿的参考了)。
我记得我大学在是计算机科学院技术系学的计算机科学院技术专业,虽然不同学校这个专业的名字可能略有不同,但是学到的东西大约都是相近的。很多同学可能在大学的时候过得浑浑噩噩,上课打瞌睡的、逃学的、通宵玩游戏的等等等等,比比皆是。很多人以为过了高中这个独木桥之后,大学就是天堂,是专门用来放松的,其实也不尽然。大学一般没有高中那么严格,但是如果整个大学都敷衍过去的话,多少对以后还是有点影响的-虽然最终你可能都会拿到毕业证。
废话不多说,我先列出计算机专业的同学可能的专业课,包括可能的选秀课:
计算机导论(含C语言)、面向对象程序设计(VC++)、大学英语、高等数学、线性代数、大学物理、电路与电子技术、复变函数与积分变换、离散数学、数据结构、计算方法、数字逻辑与数字电路、概率论与数理统计、编译原理、计算机组成原理、数据库原理及应用、操作系统、计算机网络原理、JAVA语言、软件工程、嵌入式系统原理、控制系统设计与仿真、平面设计、单片机原理及应用、软件开发技术、人工智能、计算机图形学、汇编语言程序设计、软件测试、网络数据库编程技术、微型计算机技术、动画设计技术、实时操作系统、算法设计与分析、高级软件工程、数字图像处理技术、OpenGL编程技术、EDA技术及应用、游戏编程技术、数据压缩与储存、计算机控制技术、软件项目管理、网站建设与网页设计……
排名不分先后,虽然某些可能确实比较重要点,有的课程又没那么重要。
专业课自然不必多说,对于选修课,如果你看到跟游戏程序开发有关系的,而你又有足够的精力,不放选一选。
我来讲讲其中一些权重比较高的课程。
1、英语。
大家都知道,很多最先进的技术资料,大都是英文的。尤其是程序开发,又尤其是游戏开发。很多的IDE(Integrated Development Environment,集成开发环境)也是英文版的,很多程序员喜欢找汉化的,姑且不说有没有,汉化的总没有原版的那么真实贴切的。很多的开发资料和文档也大都是英文版的。然后程序出BUG了或者需要什么技术方案的话,也不能只找百度,这些方面Google(谷歌)更重要更强大。甚至你要去国外的技术论坛用英文跟别人交流才能得到解决。就更不用说某些公司必须会英文了。所以说,英语是很重要的。然而我又要说了,英语不是必须很懂的。程序猿大都是男的,男的的英语大都不是很好。不过也不用担心,经常用到的英语不会太难,约莫就那么些个,即使不会,临时查查也是可以的。
2、数学和物理。
包括物理、高等数学、线性代数、离散数学、概率论与数理统计、复变函数与积分变换等等。游戏开发越到后边,越需要数学和物理知识。所有有个良好的数学和物理基础也是很有益的。
3、算法和数据结构。
这个决定了你写的程序能不能高效地解决问题,越高级的游戏开发越需要好的算法,而数据结构即便是基础的游戏开发也是很需要的。
4、程序设计语言基础。
可以是C,可以是C++,也可以是Java和C#等等,但是你必须掌握一门计算机程序开发语言。我的建议是,在学好C的基础上,学好一门其他的OOP(Object Oriented Programming,OOP,面向对象程序设计)语言,如C++、Java、C#等,这几门语言都非常吃香的。当然要学好也没那么容易,一般般掌握也是可以的,不用说学的非常好,以后正式工作了用起来后慢慢就熟悉了。这里可能有的童鞋要问了,这个程序语言到底咋学呢?这个,首先熟记好语法,然后可以把源代码敲几遍运行起来,最后可以尝试自己写点小工具什么的熟悉巩固。
5、软件工程。
包括什么软件工程、软件开发技术、项目管理等等。这个学的是一些思想,这些思想会在以后你工作和开发中潜移默化中影响你的,也可以帮你更好地理解策划需求(凑字,哦不,解释:游戏策划是游戏开发公司中的一种职称,是电子游戏开发团队中负责设计策划的人员,是游戏开发的核心。主要工作是编写游戏背景故事,制定游戏规则,设计游戏交互环节,计算游戏公式,以及整个游戏世界的一切细节等)。
6、数据库。
例如MYSQL和MSSQL啊什么的,这些是游戏开发后端必备的技术。然而即便是游戏前端开发,熟悉一下这些数据库的原理和操作,也是有益的。一个牛逼的游戏开发程序员,是有必要前后端都懂的。
7、人工智能。
这个对于高级的程序猿来说是有必要好好学学的,不论是游戏里的AI(Artificial Intelligence,人工智能),如技能、寻路等,还是现在看苗头,AR(Augmented Reality,增强现实)和VR(Virtual Reality,即虚拟现实)貌似是一个发展方向。我觉得以后必定火,不论是生活应用还是游戏开发。
8、计算机相关知识。
例如编译原理、计算机组成原理、计算机网络等等。知道计算机怎么在底层和硬件层面工作的,有利于写出更好代码。
9、其他。
例如OpenGL编程技术、EDA技术及应用等等。这些都是高级游戏开发必备的,例如Unity3d的Shader等。早些接触以后深入起来也是有好处的。
大约就这么些吧,可能有一些遗漏的,以后看看要不要补上。
然后有几点说明,首先顺序其实也没有太大关系。例如英语和数学、物理其实都是很重要的,决定没有数学、物理没有英语重要的意思。然后说这些多并非就是说一定要把这些课程学得很好,其实有一点基础就可以了,以后还是有机会在用到的时候学回来的。所以没学好的童鞋也不要慌张。最后,好吧,大学其实还是要好好玩一玩,出了校门就真的没有那么多时间和纯朴了……
这次就说这么多吧,有什么不懂的还是可以联系我的,QQ569491198,妹子优先……
最后的总结:尽量学好我提到的那些课程,没学好也没关系……