大家好,我是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,妹子优先……
最后的总结:尽量学好我提到的那些课程,没学好也没关系……

[MarsZ]程序猿谈大学之大学应该学好哪些课程的更多相关文章

  1. [MarsZ]程序猿谈大学之为什么不推荐就业时做程序猿

    这篇文章适合一切有志做一个程序猿的人,而不仅仅只是即将进入就业市场的大学生. “又到了毕业找工作的时候了,好多朋友打电话向我咨询要不要让孩子做程序员.作为一个业内资深人士,我觉得这不能一概而论!要辩证 ...

  2. [MarsZ]程序猿谈大学之工作三年半的程序猿给大学童鞋的一些注释

    我本不是个喜欢写文章的人,更甭提写这种基本没技术含量的文章了.但是今天上班的时候,不经意浏览了下学校的QQ群,突然很想把自己的经验经历分享给还在大学里的同学,希望能让某些对前途职业迷茫的童鞋有所帮助. ...

  3. 少走弯路,一个老程序猿谈PHP职业发展规划

    PHP是一个使用者非常多的开发语言,但在每个领域里的开发侧重点有所不同互联网方面,在稳定的基础上,更注重性能.高并发,高负载的处理. PHP职业发展规划一般有三条路线,一条技能专精发展路线.另两条,是 ...

  4. 怎样跟程序猿谈一场没有Bug的恋爱

    <iframe width="580" height="90" align="center,center" id="cpro ...

  5. 浅谈Objective-C对象初始化的三类程序猿

    序 早上看了位仁兄写了<Swift:让人眼前一亮的初始化方式>的文章.什么?!初始化?Objective-C!好吧,吓哔哔~~~ 一.普通程序猿 普通程序员使用最常见路人姿势等场.普普通通 ...

  6. 送给和我一样曾经浮躁过的PHP程序猿

    送给和我一样曾经浮躁过的PHP程序猿   2012年偶决定开始写博客了,不为别的,就希望可以通过博客记录我的成长历程,同时也希望可以帮助一些刚毕业,刚入行业的兄弟姐们 们.我们是一群充满浮躁.抱怨.迷 ...

  7. 程序猿进化 - 在拉钩子1024对APE节讲座计划

    注意:下面这篇文章来自于我在网上拉勾1024对APE节现场演示程序. 我是蒋宇捷,信天创投的合伙人.之前是百度魔图的联合创始人. 我先做个自我介绍,事实上每次介绍自己事实上是非常痛苦的事情,由于我前不 ...

  8. 站在风口,你或许就是那年薪20w+的程序猿

    最近面试了一些人,也在群上跟一些群友聊起,发现现在的互联网真是热,一些工作才两三年的期望的薪资都是十几K的起,这真是让我们这些早几年就成为程序猿的情何以堪!正所谓是站在风口上,猪也能飞起来!我在这里就 ...

  9. 关于CPU Cache:程序猿需要知道的那些

    天下没有免费的午餐,本文转载于:http://cenalulu.github.io/linux/all-about-cpu-cache/ 先来看一张本文所有概念的一个思维导图: 为什么要有CPU Ca ...

随机推荐

  1. Centos7源码安装mysql及读写分离,互为主从

       Linux服务器 -源码安装mysql 及读写分离,互为主从   一.环境介绍: Linux版本: CentOS 7 64位 mysq版本: mysql-5.6.26 这是我安装时所使用的版本, ...

  2. Aspose.Cells.dll引用导入导出Excel

    Aspose.Cells 导入导出EXCEL 文章出处:http://hi.baidu.com/leilongbing/item/c11467e1819e5417595dd8c1 修改样式       ...

  3. js中的referrer返回上一页使用介绍

    js中的referrer的用法举例. js完整代码:  <script language="javascript">  var refer=document.refer ...

  4. 树莓派 raspberry 入门之安装操作系统以及配置

    最近新入手一树莓派,型号是2代B,屏幕是微雪的7 inch c型 显示屏.下面来教大家怎么点亮树莓派. 第一步,装好显示器,显示器的电源接在树莓派的usb口上,HDMI口不多说,连上.然后装好鼠标.键 ...

  5. C语言数据结构之栈:括号匹配

    括号匹配这是个很简单的题目,如果只有小括号,就模拟进栈和出栈的过程就行了: 注:输入时'@'作为结束标志 #include <stdio.h> int main() { freopen(& ...

  6. Qt 5 常见错误汇总

    1.没加 QT+=sql,需要再.pro文件中加上 2.无故崩溃,这个有多种原因,多为指针问题,例如,指针内存泄露,指针未开辟空间直接使用,UI还未建立就使用UI里面的东西..等等 3.Sql问题,有 ...

  7. C++函数转换成C#函数

            ///                        /// </param>         /// <returns></returns>    ...

  8. js和Jquery获取选中select值和文本

    <body> <select name="PaymentType" style="width:110px" > <option v ...

  9. linux挂载详解

    一 .linux文件结构 文件结构是文件存放在磁盘等存贮设备上的组织方法.主要体现在对文件和目录的组织上.目录提供了管理文件的一个方便而有效的途径. linux使用标准的目录结构,在安装的时候,安装程 ...

  10. Html之img标签

    我发现了为什么我不会开发,或者不愿意,我感觉是因为我不会前端,自认为写出来完美的后台显示不好也没人用,为了解决这一问题,笔者新增html栏目,和大家一起交流分享. 一.img必须有src和alt属性 ...