大家好,我是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. MySQL中SQL语句的分类

    1:数据定义语言(DDL) :创建和删除数据库(CREATE DATABASE || DROP  DATABASE):2:创建.修改.重命名.删除表(CREATE  TABLE || ALTER TA ...

  2. 重学C语言 -- printf,scanf

     printf();    用来显示格式串的内容          注意: 参数不可以换行,否则会出一个警告.       格式串中占位符比表达式数量多     会显示一个无意义值 格式串中占位符比表 ...

  3. [JQuery]选择器详解

      示例 说明 $(this) 当前元素 $("p") 所有<p>元素 $("input") 所有input元素 $(".intro&qu ...

  4. 自制3D打印机---挤出头

    计划准备自己制作一台3D打印机,故将制作过程记录在此方便以后查阅. 计划首先制作加热头部件,此部件的主要功能是通过加热棒加热挤出头,然后从送料管道将ABS或者PLA材料线材送入后融化成为液体后,从挤出 ...

  5. 【python】迭代一列 斐波那契数列

    def fabm(n): if n < 1: print('输入不能小于1') return -1 if n == 1 or n == 2: return 1 else: return fabm ...

  6. Boost format

    浅尝boost之format 概述      std::string是个很不错的东东,但实际使用时基本在每个程序里都会遇到不愉快的事情:格式化字符串.我甚至由于这个原因在代码里引入平台有关的MFC,A ...

  7. Python中map,filter,reduce,zip的应用

    事例1: l=[('main', 'router_115.236.xx.xx', [{'abc': 1}, {'dfg': 1}]), ('main', 'router_183.61.xx.xx', ...

  8. EasyUI portal自定义小图标,不是用js方式加载

    <script src="~/Scripts/jquery.portal.js"></script> <script> $(function ( ...

  9. 事件分发&响应链

    iOS的三种事件:触摸事件/运动事件/远程控制事件 typedef enum { UIEventTypeTouches, UIEventTypeMotion, UIEventTypeRemoteCon ...

  10. ctf总结

    在过去的一个学期中,草人在西普学院还有一些其他安全夺旗网站上刷了一些题,草人我是菜鸟一个,刚开始很是苦恼,所以经历过以后希望将之分享给一起学习安全的同学,目的呢是希望以后学习的人能尽快理清学习思路,进 ...