抑郁症健康,内容丰富有趣,生活中的好帮手!
抑郁症健康 > 游戏编程学什么专业 软件工程专业学生第一门应该自学哪种编程语言 – 游戏开发 – 前端

游戏编程学什么专业 软件工程专业学生第一门应该自学哪种编程语言 – 游戏开发 – 前端

时间:2024-08-22 14:06:39

相关推荐

一、综述

经过研究计本专业与软工专业的专业核心课程,可以看出这两个专业的学生应该具备良好的计算机科学基础理论、软件工程理论、软件开发实施基础理论,奠定了IT行业长远发展的基础。而对学生初入IT互联网、软件开发行业来讲还是欠缺直接与产业对接的实践性技术,比如前端开发框架Vue、Hadoop与Spark大数据开发技术、Python编程语言等,学生可以依据以下从业方向分析酌情做出发展方向的合理选择。以下大家首先对IT与互联网行业现状、薪酬分析、行业人才画像、行业前景、人才趋势进行调研与分析,之后重点对从业方向进行详细分析,以期望能够对计算机相关专业学生择业与就业有一定的指导作用。

二、IT与互联网行业

1. IT与互联网行业招聘全景(/)

1) 在人才需求升级的同时,IT与互联网公司对人才技能的要求也在逐渐提高。

2) BOSS直聘研究院数据显示,在雇主发布的职位说明中,Python技能需求增速达到174%,居于首位,Spark、Hadoop等大数据技能需求增幅也十分靠前。

3) 以数据分析师为例,,超过40%的职位技能要求中只提到了SQL或HIVE,而到,这一比例已降至30%以下,半数岗位要求候选人还须掌握通用编程技能(Python、Java),数据挖掘技能(R语言,SAS)以及数据可视化等技能,其他岗位技能要求也普遍较过去更为严格。

4) 对于应届生来说,科班出身正成为进入IT互联网行业的先决条件。部分开发类岗位因技术含金量较高,专业匹配度达到90%以上。

5) 企业对人才院校背景也更为关注,双一流大学人才获得的企业关注频率是普通学生的2倍以上,特别是在高端岗位的招聘中,这一现状更为普遍。

2. IT与互联网行业薪酬分析(/)

1),互联网行业平均招聘薪酬达到1.06万元,同比上升3.1%。受AI、大数据等新兴行业高级技术职位大量涌现及基础岗位薪资回调影响,互联网薪资分化逐渐加剧,前10%高薪职位平均薪资是低薪职位的8.1倍,较的7.9倍进一步扩大。

2)技术岗位薪酬停止普涨 新兴职位薪资大幅上升,两极分化现象开始显现。以AI、大数据为代表的新兴技术岗位薪资出现明显上升。特别是人工智能岗位,由于人才严重供不应求,企业普遍一掷千金争抢顶级人才。

3)在薪资涨幅方面,新兴技术岗位也普遍排在前列,图像算法、推荐算法、深度学习岗位薪资增幅均在15%以上,大数据类岗位仅次于人工智能。相比之下,通用类岗位程序员由于从业人数不断上升,人才稀缺程度大幅缓解,招聘薪酬不升反降,过去几年格外吃香的PHP、.Net、iOS、Java等职位招聘薪资在下半年出现了2-3%的回调。

4)随着大批IT互联网企业向技术驱动型转变,技术人才在企业中薪资占比逐年提高。面对不断增加的薪资成本,部分公司开始削减销售和市场类基层岗位的招聘薪酬,以此平衡薪资预算。,销售、市场类岗位整体平均招聘薪酬分别同比回落4.3%和3.5%。

5)北上深杭平均月薪过万 增幅超其他城市。

6)游戏、泛娱乐领域薪酬涨幅领跑行业,资深内容运营、内容策划和设计类人才薪资涨幅达到10%以上,高出其他领域同等岗位。

3. IT与互联网行业人才画像(/)

1)从业者平均年龄降低,高学历占比逐年上升。

2)数学专业走红,专业背景占比增幅超100%。

3)从人才专业背景分布来看,计算机类专业不出意外包揽前三,计算机科学与技术以7.4%的占比排名第一,软件工程紧随其后,电子和通讯类专业排名同样十分靠前。

4)大数据、AI技术的飞速发展令数学背景人才愈发吃香,应用数学成为近两年互联网行业人才专业占比提升最快的学科。

5)AI、大数据等新兴岗位人才最为抢手,普通技术型岗位、如Java,PHP等有不同程度的减少。随着越来越多IT互联网公司开始加强用户体验,UI交互设计、UI视觉设计人才迎来翻身仗,抢手程度大幅提升,综合竞争力超过PHP、Android等技术人才。

6)数据科学、人工智能等岗位站在了潮流最前端。

4. IT互联网行业前景

1) /人才紧缺指数IT互联网行业遥遥领先。

2) 在被调查的众多行业中,IT软件成为四季度人才吸引力指数最高的行业,环比上升71.8%;互联网和教育培训行业人才吸引力指数继续排名二三,指数绝对值均有小幅下降。四季度,在日益激烈的技术竞争浪潮下,人工智能和数据科学相关的前沿技术类岗位保持着极高的人才吸引力优势,承包了大部分高薪岗位,大量通用型人才寻求转型。其中,推荐算法、架构师和数据架构师为月平均薪资最高三个岗位,分别达33570元、30510元和29623元。数据来源:《BOSS直聘:Q4人才吸引力报告》

5. IT技术发展脉络

左边是IT平台变迁、右边是软件开发技术演进

测试、UI、营销技术也会因此不断演化

6. IT人才趋势分析

1) 互联网行业人才需求高度集中,北上广深杭五座城市的互联网人才需求占到了全国的63%(数据来源:BOSS直聘)

2) 技术驱动成为主流趋势,高级人才广受追捧,从巨头到创业公司,为寻找新的增长动力,纷纷转向技术驱动,力图通过技术手段提高综合竞争力。

7. IT与互联网从业方向分析

1) 可选从业方向

2) 技术 or 市场 or 管理?

是互联网行业全面转向技术驱动的一年,技术类人才招聘需求已经占到整体人才需求的25%。在人工智能热潮的驱动之下,AI相关岗位人才需求飙升,然而缺口依然超过百万。还是热门职位更迭的一年。与人工智能、数据科学等前沿技术相关的职位热度显著提升;移动互联网红利日渐消退,通用开发基础岗位的平均薪酬和需求均进入下行通道。(数据来源:BOSS直聘)

建议:以技术作为进入职场的手段,从业5年左右也转型市场、运营、管理,有技术功底做强力支撑会具备很大的优势。

3) 从业方向简要点评:

a. 硬件开发、嵌入式开发、物联网开发电子与物联网相关专业比较合适,计本与软工专业不是很合适。

b. IT项目经理、产品经理往往需要3~5年以上行业经验。

c. Java企业级应用开发形势走低、企业要求提高到需要三年或以上经验,入行薪酬比几年前下降明显,学习难度也不低,已经不大适合作为职场入门选择的方向。

d. Android、iOS原生移动App开发需求量下滑很多,市场份额很多被可跨平台的HTML5所抢占,就业困难,很多业内人员处于不敢轻易跳槽的状况,已经不大适合作为职场入门选择的方向。

e. 大数据、人工智能方向处于爆炸增长的前沿,现在进入是具备先发优势并获得红利的,其中人工智能相对大数据门槛更高,现在直接学习人工智能方向可能会面临就业困难,学历、数学功底等是从业人工智能的硬条件。相比之下大数据开发是普通应用本科与优秀的专科学生较好的选择,以后等人工智能不断地出现的新框架,会逐步降低开发难度,大家也可以顺利地从大数据转型到人工智能,成为复合型人才。适合作为计算机相关本专科中上游学生的职场入门好选择之一。

f. 软件测试是从软件开发中分离出来的,软件测试作为质量保证的最好手段日益得到重视,随着IT业成熟度越来越高,客户对软件的质量要求也越来越高,好公司大公司更加重视软件质量,需要的测试人员数量逐步增长,测试人员的出路主要是大公司好公司,这是软件测试从业人员的一个巨大的优势。难度比通用软件开发要低,是大家计算机相关本专科学习不是很扎实的学生职业好方向之一。

g. HTML5前端开发也是从软件开发中分离出来的独立岗位,专注于Web端、APP端、微信小程序的前端构建工作,开发难度相较与后端服务器程序的开发难度相对要第一点,HTML5前端开发适应面很广,Web端与APP端都可以使用,与后台服务器端编程语言无关,无论是Java、PHP、Python都可以结合使用。因此HTML5前端人才需求也比较旺盛,是大家计算机相关本专科大部分学生的好选择之一。

h. 追求个性化、追求良好的用户体验、良好的视觉体验与交互性对广告、海报、商品、网站、APP等产品来说至关重要,UI设计方向是美术、艺术等专业的比较好的选择。

i. 互联商务运营偏向营销型,适合电商、市场营销类专业。

j. 运维方向两极分化严重,初级的运维就是所谓的网管,需要做很多低级的技术支持工作,高级运维需要掌握编程技术,比如通过shell/Python编写自动化运维脚本,但是高级运维需要5年以上的初级运维经验支撑才能有良好的发展空间,Linux需要相当熟练。

k. DBA数据库管理员也是挺好的职业,但是招聘根本不接受初学者,业界往往是程序员转行或高级运维兼做DBA。

4) 计本与软工学生从业建议

综合上述各种分析,基本上可以给出如下建议:

A) 对自己有信心学习扎实的学生可以选择大数据开发与Python开发方向,未来向人工智能开发方向进军。

B)普通的学生可以选择HTML5前端开发方向,更努力更多地付出也可以选择大数据开发与Python开发方向。

C) 不是很扎实的或对自己信心不足的学生可以选择Python自动化测试或前端开发方向发展,Python自动化测试对编程功底要求不是很高,甚至比前端开发难度还要低。

5) 择业与就业分析思路

同学们需要兼顾主观因素与客观因素,将以上因素综合考虑!

跨专业学习IT?

[抠鼻]偶做过保险、电销,投递过期刊,干过超市营业员,家里蹲毕业好几期,后来30岁时,转身入职软件行业,成为一名设计师。

[捂脸]这个过程没有那么顺利,偶也是先学的安卓开发,学前自己事先学了基础的java开发,后来进了培训班,结果不到两周,偶就开始如同听天书了。

[酷拽]没办法,生活就是曲折的,偶后来申请改专业,这才开始了偶的Ui设计师的生涯。

[机智]想跨行可以,但是必须坚持学习的信念,六年了,偶一直有早起学习的习惯,因为不学,只有被替代。

[赞]选择大于努力,It太多方向可以学,大数据,人工智能,编程语言就分了很多类,考虑好自己喜欢什么,哪个更符合未来趋势,这样的时间投入才是值得的,否则,你还会从头再来一次。

[呲牙]希望偶的回答能帮助到你,偶的微头条也在写偶的互联网生活笔记,喜欢的朋友可以关注下偶。

软件开发行业的就业前景怎么样?

你好,很开心收到邀请来回答你的问题。

随着互联网的快速发展,越来越多人想要从事互联网软件开发工作,可是又不知道联网软件开发的岗位都有哪些,不知道从何入手。那么在当前互联网软件行业下,一般公司所涉及的岗位都有哪些呢?

产品经理

产品经理是在互联网行业中诞生的一个新岗位,他们要根据业务需求进行大量的用户分析,需求过滤,将业务需求进行产品、以及信息化的转化,从而用一种新的产品理念服务于客户,具体工作包括用户体验设计、交互设计、业务流程设计、信息架构设计等等,一般产出:产品原型。

架构师

架构师了解业务之后,对业务进行抽象与架构设计,根据设计进行技术选型和框架搭建,制定整个软件系统的技术方向和开发方式,就像是建筑设计师一样,不仅要有良好的抽象能力、设计能力、更要有良好的技术和攻关能力。

UI设计师

UI设计师的主要负责软件的外在美观设计,增强用户的视觉感官体验

前端开发工程师

后台工程师的主要工作是实现功能,而前端工程的工作就是实现用户的操作界面,完成人机交互,包括:App( Android、i0s)和Web。

后端开发工程师

后端开发工程师,主要就是负责编写应用系统的代码实现,实现产品要求中的业务功能。

测试工程师

软件总会有bug,所以在上线之前需要对软件进行全方位的测试工作,包括:功能测试(黑盒、灰盒、白盒测试)、安全测试、性能测试、压力测试、稳定性测试等等,那么就用到了测试工程师,他们主要对软件质量进行把控。

运维工程师

系统在运行中,还需要有运维工程师,保障系统能够安全有效的、不间断的提供服务,他们需要对硬件、软件、网络、安全设备等进行实时监控、运营维护

大数据开发工程师

大数据工程师主要负责数据处理,简单来说是在大数据处理平台下的数据处理,包括数据收集、存储、转换、分析与可视化。为企业业务决策提供数据支撑,注重数据价值提取。

希望偶的回答可以帮到你,欢迎留言评论或私信交流。

计算机学什么专业好?

零基础想做一名程序员—勤奋比天赋更重要!

姓名:熬睿麒

年龄:16

报读专业:移动APP软件开发工程师

籍贯:四川省成都市

年末的某一天,来自四川省成都市的熬睿麒,跌跌撞撞地来到了四川新华电脑学院。

熬睿麒:偶是一个性格内向的南方小伙子,偶对设计很有兴趣,并且愿意尽全力学习,偶想做一名低调用实力说话的程序员。来四川新华之前偶有很多疑虑,比如,偶担心自己可能没有足够的天赋,如何才能拥有一双对美敏感的眼睛?做一名程序员,是不是一定要有天赋?有没有什么捷径可以让偶变成偶理想中的程序员?后来,四川新华的老师告诉偶,勤奋比天赋更重要,只要肯努力,你就是未来之星。

“天才是百分之一的灵感,加上百分之九十九的汗水。”

编程、软件开发是一个知识更新很快的行业,只有真正有热情并掌握了好的学习方法的人,才能走的长久。经过一番深刻的自偶解剖之后,“四川新华”出现在偶的视野中。出于内心的迫切需求,移动APP软件开发工程师正中红心,燃起了偶学习的欲望。学校的学习氛围和互联网化学院的学院环境,让偶对接下来的每一天都充满了希望,这一学习,便是整整三个月。

在四川新华偶遇到了更好的自己!

三个月的入门学习,让偶放弃了类似“偶以为”“偶觉得他这样的设计”,偶学会了从用户角度、数据角度、产品角度进行系统编程。在四川新华偶找到了更好的自己,对未来,偶有一种拨开乌云见天日的感觉。

非常感谢和一起学习的同窗、室友、战友,很开心大家在四川新华一起度过充实而有趣的三个月。虽然偶是零基础入学,但是只要肯努力,偶相信,偶可以成为一名成功的程序员!接下来,偶会不骄不躁,跟着四川新华导师的脚步一步步向前走,未来可期,与自己共勉。

Q:对于未来你有什么样的期望?

熬睿麒:“偶相信只要肯付出,人人都可以成为一个程序员编程大神,跟上老师的步伐,学习的路上不再迷茫。虽然偶是零基础入学,但是四川新华初学者毕业后到互联网行业就业,年薪百万的人也不是少数,偶相信偶可以跟他们一样。”

如果你正处于学习的迷茫期或者职业的迷惘期,不知道未来何去何从,又或者已经在轨道上,却不知道如何发力,不妨来四川新华看一看。无论你的水平是初级还是零基础,只要你喜欢!就挺好!少一些浮躁,沉下心来踏踏实实的跟着老师的步伐走,只要你坚持下去,四川新华带你走上逆袭之路,相信你一定能成为你想要的样子。

大学学计算机类哪个专业好点?

你好,非常荣幸为您解答!

偶个人的一些经历和这个问题比较相关, 打算详细写一写, 希望能帮助到题主和其他有类似迷惑的朋友。

先讲故事:偶进入大学计算机系就读本科。 刚来就震惊了,因为偶和信息学奥赛圈内出名的cqf是同班同学。 cqf嘛, 现在的后辈们估计不认识, 但是在大家那个时候前三届后三届搞信息学奥赛或者关注一点点信息学奥赛的人都认识他。此兄初中的时候参加高中的国家信息学奥赛就拿到了清华的保送名额,, 但是他没去, 此后连年拿保送资格自然如探囊取物不在话下, 后来也顺理成章拿到国际奥赛金牌。 他算法水平极强, 16岁的时候就发明了一种很复杂的高效数据结构, 被后来的信息学奥赛选手广为使用, 该数据结构和相关算法至今偶都没看懂。在同龄的偶对电脑的认识还停留在“开开机就能玩WOW和WAR3了哟”的时候,他已经写过不少信息学奥赛的教材了。

总之偶想说,刚进大学的时候,偶和cqf完全不在同一起跑线上。偶只是那种”关注一点点信息学奥赛的人”, 偶全然不知道作为程序员要学什么、懂什么知识,也没写过一行C++代码。而当时cqf和一些同样有信息学奥赛基础的同学早就有成千上万行代码的积累了。大学第一年偶还没想明白自己该干什么,而在此期间cqf把一半的专业必修课都上完了(这些课偶直到大三才上完)。大学第一年结束的时候,偶想哎哟偶这样不行,得仔细想想自己该干啥。

在大二这一年偶慢慢想清楚了自己的强项在哪里,然后转系去了电子工程,后来学的不错。如今偶在大疆创新做程序员,写无人飞行器的程序,参与一些很酷的产品的研发,也有自己的团队做项目。自己觉得自己发展还不错。深深觉得自己当年做的选择还算正确,对于“程序员怎么学数学”也有了一些自己的认识。

故事先讲到这里。顺便说,后来cqf本科毕业的时候被一堆美国大学哄抢,最后去了斯坦福读博士。

现在随着计算机水平的进步,各行业的自动化都在蓬勃进展,计算机和代码广泛深入到了很多领域。现在谁骂“程序员是屌丝”,其实已经是开了一个很大的地图炮了,因为各行各业现在都有程序员。除了BAT(腾讯阿里百度)这类传统互联网公司之外,银行、实业公司、研究机构、政府机关等等组织和公司,都有做网站\分析数据\写自动化辅助工具程序\写组织管理程序等等多种需求。 那么种种程序员的工作,有多少工作需要数学呢?需要怎么样的数学呢?

首先毫无疑问地,程序员,就是所有“对着电脑,用手敲下特定编程语言构成的代码的人”的总称。大家要分析程序员的工作,也就是写代码。偶个人把写代码的工作分为五类,不一定正确和全面啊,就是个概念性的分类:

1. 第一类是结构性的工作。这类工作把特定的代码、代码段(函数)、代码库构成具有特定功能的程序,这些程序可以接受特定的数据、输出特定的数据。例子如网站的界面、 软件的界面、 软件的一些可视化功能,再复杂一些有网站前端如何与后端通信、如何分配用户请求给后端,如何处理两个并行的程序、通信过程、计算机系统等等。结构性工作需要的是经验以及对已有数据结构的了解,并不需要特别高的数学水平。偶说的经验指的是对于一个特定的想要实现的功能,如何选择程序逻辑和数据结构去实现,这种选择的过程需要程序员有大量读写代码的基础,能够把要实现的功能和自己以前实现过的或者看到过的功能联系起来,设计出解决方案并实现。举个例子,比如说网页设计,通过HTML的元素构建页面,通过javascript给页面元素以动态,这个过程基本是“所见即所得的过程。

目前大部分的互联网公司以及银行系统需求的主要都是这类工作。为了实现特定功能,程序有非常复杂的结构,必须要很多人一同参与编写和测试,因此才有了软件工程这门学科的诞生。

结构性工作的巅峰产物是计算机操作系统。计算机操作系统虽然复杂,但是其中涉及到的数学并不多,最复杂的数学就是如何处理多个任务的调度以及进行内存分配管理,都可以抽象成简单的离散数学和排列组合问题。不过,1万行的操作系统和100万行的操作系统的数学理论复杂度是差不多的,他们主要的区别是结构性的,而非数学上的。比如支持更多种CPU、硬件外设、网络协议等等。

2. 第二类是效率性的工作。这类工作把特定的工程问题抽象成数学问题,然后发明新的数据结构或者操作逻辑去优化解决问题的效率。

最简单的例子是排序,用冒泡排序或者快速排序给大批量数据做整理有显著的时间差别,这个大家都知道的……计算机科学家们主要从事的就是这类工作,需要极高的组合数学和图论等知识。早期的效率性问题通常依靠较为复杂的离散数学,而近年来大部分问题都是应用图论来解决。

解决这类问题需要程序员对大部分的数据结构都有深刻的理解,并且能够进行严格的理论分析,能够清楚地指出某种数据结构或操作逻辑的时间效率和内存效率。上面谈到的cqf 16岁发明的数据结构,就属于这类工作……反正偶对这类工作毫无天赋,继离散数学败了以后,后来的高级算法课成绩也很差。

效率性工作的巅峰产物是一套书叫做《The Art of Computer Programming》,作者是斯坦福大学的教授Donald.E.Knuth。这部神书包含了人类已知的大部分计算机算法的理论分析和最优形式, 50年来被公认为算法领域的圣经。吃透这套书,就可以拿到世界上最好的程序员的工作了(比尔盖茨说如果谁看懂了这套书,就请把简历发给他……),当然这很不容易。偶至今只认真看了第一本的前言

兼有前两类工作的巅峰产物是淘宝网,尤其是双十一前后的淘宝网。不解释太多Google这两年在这方面做的不如淘宝,因为中国人实在太多了……

3. 第三类是逻辑性的工作。指的是用计算机模拟人类的认知逻辑,这类工作包括语音识别、文字理解、信息检索、数据分析等等。这类工作最早属于高大上的人工智能、自然语言处理研究,后来随着互联网的兴起开始逐步进入大众视野。这类工作的主要基础是概率统计、机器学习和数据挖掘的模型,包含的数学知识主要有概率、线性代数和图论。由于互联网公司和金融公司对于机器学习的需求,相关的基础知识已经发展得非常成熟,如何学习这类知识也已经有很规范的教程。如今在硅谷,程序员不懂点机器学习,都不好意思出门和人打招呼。

这类工作的应用大约是这样的:通过分析用户在淘宝上买东西的数据,推测他还会买啥;通过分析股市的变化以及一些市场信息,推测股市下一步涨还是跌。还有就是分析搜索关键词给出搜索结果,分析语音信号转化成文字等等。这些不同的应用都是为了分析数据,都有类似的处理模型和数学方法。近年来在机器学习的基础上人们发明了深度学习。这个偶不是很懂,不好加以评论。但是偶知道这类工作的主要目的是模仿人类的认知能力。特别地,机器学习领域最基础最出名的模型“神经网络”,已经被生物学家证明是比较好的对于人类大脑逻辑的模拟。

这类工作说简单也简单,说难也可以很难。你只需要学过大学一年级的线性代数,就可以理解神经网络、支持向量机等机器学习的模型,然后自己训练模型去分析数据了——这也是大部分硅谷公司的需求。百度新任首席科学家Andrew Ng在Coursera上有个机器学习的公开课,讲完神经网络之后他就说:“Good,你现在已经比大部分硅谷工程师更加了解机器学习了。”(真的不是黑么)然而机器学习的模型背后的数学非常深奥,比如说神经网络可以等效成一些复杂的高维拓扑结构,网络的训练实际上是这些拓扑结构做拓扑变换的过程。比如如果待训练的数据维数非常高,要选择合适的函数降维。为了理解这些东西,需要深入学习线性代数、拓扑学、数学分析等数学知识。其实偶说的偶也不是很懂,偶没系统学过拓扑。

兼有前三类工作的巅峰产物是IBM的计算机waston。Waston在美国的智力问答比赛“Jeopardy!” 中击败了两位经验老道的人类选手。这件事之所以令人震惊,是因为Jeopardy中主持人提出的问题大部分无法直接理解,而是隐藏在英语俚语和双关语当中的巧妙语言。Waston在人工智能史上的地位远远超过当年击败国际象棋大师的Deep Blue。

4. 第四类是仿真性的工作。这类工作主要集中在游戏和动画领域,其他边缘一点但是更加高要求的有飞行器设计、气象、天文等。仿真意味着在电脑的环境中虚拟出现实世界,这就需要程序员理解力学和光学等物理学理论。比如最简单的,任何3D游戏引擎开发的第一步都是学习刚体变换等力学知识,用来把模拟出来的小人或者飞船等物体进行移动。刚体变换有很多种表示方法(茴香豆的茴字有四种写法……),背后有不少数学理论。此外为了仿真毛发、浪花、溅起的尘土等等这类细小的物体,也有自己相关的物理和数学知识。

不同的行业对于仿真的需求不一样,因此要求的专业知识也不同。游戏和动画的需求是尽可能地真实表现场景,而飞行器设计上用的仿真更强调空气动力学和结构力学,因为要用仿真分析飞行器飞行时的受力情况。天文、气象和其他需求仿真的行业又有各自的侧重点和知识领域,各个行业应该也都有自己暂时解决不了的问题。这些具体的知识区别偶也不是很清楚,按照偶对某些行业的理解,可能无非就是牛顿力学、动力学、微积分、微分方程和线性代数,因为都是在经典力学范畴内的物理,就那么点东西,从本科毕业开始算,把数学认真学个三年左右之后就能进入某个行业了。

这类工作的巅峰产物隐藏在大众视线之外。比方说美军号称在海湾战争开始之前,就已经通过仿真软件把战斗推演过好多次了,最后真打起来的时候“就像打电脑游戏一样”(语出《失控》)。再比如说,现在很多超级计算机都被用在气象预测上。北京奥运会前夕,北京气象局就购买了一台计算能力排全球前十的计算机,用来在奥运会期间提供气象预测。当然,这些巅峰产物依然有很大的局限性。美国人预测不出他们会陷入伊拉克和阿富汗的战争泥潭,北京气象局预测不出几年后北京常常会有雾霾。当然大家也不能太强求,毕竟这种工作有点夺取上帝视角的倾向。这都说明了在仿真计算领域,人类还有很长的路要走。

5. 第五类是物理性的工作。“物理”指的是这类工作中产生的代码要直接与物理世界发生接触,比如从传感器获取世界的信息,控制执行器进行特定的运动等等。这类工作主要集中在航空航天工业以及机器人产业当中,是偶现在主要从事的工作。 这类工作主要分为两部分,一部分是观测(如何通过传感器数据了解自身和世界的状态),另一部分是控制(如何根据自身和世界的状态规划自身的下一步运动),两者都需求很多物理学和数学的知识,控制需要刚体力学和运动学、系统理论、控制论等,观测需要信号处理、系统建模、机器视觉、概率统计、优化等等。

物理性工作的一个主要特点是,代码与硬件以及机械紧密耦合,测试很困难(想想该怎么给一颗导弹debug……),所以通常这类工作要和仿真类工作同步展开,先在仿真平台上做测试,然后再移植到真的机械上面去。而且程序员要深刻理解运行自己代码的平台的硬件和机械的性能和极限,一行错误的代码很有可能会导致严重的事故(一个小数点点错导致火箭发射失败这种故事大家小时候应该都听说过)。

这类工作近年来也开始进入普通行业,比如任何安卓手机现在都内置惯性导航元件,上面说的“观测”中的算法就可以写在手机里,用来获取手机相对于世界的位置。这类工作的巅峰产物是Boston Dynamics公司制造的大狗机器人和Petman机器人,可以自行百度了解一下。

好,接着说故事。

后来偶自己想明白的问题是。大学的计算机科学系主要教育人学习如何从事第二类工作,但是世界上还有其他几类程序员的工作是大学不教授的,而偶的天赋和兴趣主要在第三类和第五类工作上。其中物理性的工作所需要的知识,主要是电子工程、物理和机械系才能学到。所以偶后来转去了电子系,学得还不错。而且通过对控制论和机器人学的学习,偶对数学也有了全新的认识。

(下面是很个人的观点,不一定正确啊,请轻拍)

大家高中学的数学,以及大学一年级学的微积分,其实都不是数学的本质,而是数学工具。数学的本质是建立一套严密的体系来描述世界,揭示世界本身的严格表示形式。当偶在学习了机器人运动学之后,再回头去看代数与几何,就明白了人们为什么要建立种种复杂的代数结构并且去分析他们的性质。在学习了概率机器人理论以后,再回头去看概率和统计,就明白了期望和方差这些不知道是确定还是不确定的玩意到底有什么用。偶感觉其实学习大部分的数学知识都不存在有没有天赋这样一个说法,目前好的数学教材非常多,而且都把知识解释得非常清楚,这本书看不懂了完全可以换一本再看。任何智力正常的人,在系统的训练和合理的时间投入之后,都可以学会数学系本科涵盖的一切数学知识。学习数学的关键在于有没有兴趣去欣赏它抽象的美,以及是不是愿意投入时间。 一开始偶是不太会欣赏数学的,偶高中数学很差,高考数学只有100多几分。大学一开始学微积分也学得很差。但是偶在大二大三期间写机器人程序的时候发现了代数的重要性,学会了欣赏数学,于是就能学好数学了。大四的时候到美国交换,在一个还算不错的大学的数学系上了两门数学课,都比许多数学专业的同学学得好。研究生的时候项目比较多,不太专心上课,成绩都一般,但是偶能感觉出自己数学水平的进步。偶没有再回头去学离散数学和算法,所以不知道现在自己在这方面进步如何,不过反正偶不再搞相关的工作了,也没时间去探究。借用一个名言,偶觉得,以大部分程序员所需的数学的难易程度,根本没到拼天赋的时候。

总而言之,偶想说,题主还年轻,你既不太了解数学是什么,也不太了解程序员是什么。这个时候也不用担心太多,安心把功课学好,多了解了解技术新闻,有时间的话尝试一些编程的训练,比如去coursera上找公开课听一听。除了学写C/C++,Java这类程序之外,也可以尝试学习HTML和网页编程,两者的思路不太相同。你对数学和编程的认识会不断改变,在几年之后才完全定形的。

如果觉得《游戏编程学什么专业 软件工程专业学生第一门应该自学哪种编程语言 – 游戏开发 – 前端》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。