300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 多大可以学游戏编程 软件开发一般学什么 – 游戏开发 – 前端

多大可以学游戏编程 软件开发一般学什么 – 游戏开发 – 前端

时间:2023-10-20 13:21:10

相关推荐

多大可以学游戏编程 软件开发一般学什么 – 游戏开发 – 前端

看到这个问题,作为一个从业的IT老兵,个人觉得软件开发这个概念太过庞大,它既涉及到很多行业领域,又能包含各种具体的开发技术,面面俱到的描述会让人无所适从而且其实也不可行。个人建议学习软件开发不用着急马上入手学习编程语言,应从计算机原理开始,由底层上上层,循序渐进,由硬件到软件。虽然所花的时间会长一点,但会学的比较扎实透彻。

计算机原理的学习

首先最好学习下计算机背景知识,包括计算机发展历史,二进制计算原理。总之从科普角度全面的了解计算机的含义。这块的资料很容易在网络上获取。其次学习下计算机的硬件知识,包括CPU,内存,输入输入设备,搞清楚这些设备的用途,有条件的话可以跑跑电脑城,自行配置组装一台计算机,这是有好处的。学习以上的内容原因在于再高级的计算机语言,都要通过控制硬件来实现。先熟悉硬件,了解计算机的运行机制,才会对软件设计有扎实的理解。

选择一门编程语言

在众多的计算机编程语言中,选择一门语言进行入门学习。建议选一门相对“低级”的语言,比如C语言,它其实是一种介于高级语言和低级语言之间的语言,它有控制硬件的能力,可以通过指针直接操作计算机内存。学习好C语言可以让你透彻的理解计算机原理,也会对变量,数组,内存存储等这些基本概念有本质的理解,这些是其他语言所不能带给你的。一般来说,熟练掌握C语言后,学习其他语言会比较容易。另外,C语言得入门书很多,比如谭浩强版本得就比较经典。

比技术本身更重要的是习惯的培养

最后,编程要一开始就养成良好的习惯,例如变量命名,书写格式都要有规范。刚开始看似会浪费时间,但习惯养成后,以后就轻松了。此外,要重视架构,架构即设计模式,它本身也是软件工程中的一个重要组成。编写一个程序的时候不能只顾完成功能即可,一定要思考软件能不能分个模块,能不能层次化,方便以后扩展。比如完成一个特定功能有好几种算法,那能不能设计成工厂模式,方便以后扩展算法,这样做,看似代码复杂化了,但是其内涵就要比普通做法提升了很多。所以设计模式其实就是编程思维的一种重要表现形式。

总之,不管哪个行业,不要被五花八门的具体技术所困扰,选择原理性的,基础性的技术去学习,并且坚持实践。长此以往,才能举一反三,触类旁通。

在以上的分享关于这个问题的解答都是个人的意见与建议,偶希望偶分享的这个问题的解答能够帮助到大家。

计算机程序员能做多久?

放心大胆地干,甭管你做到多大年龄,肯定是不犯法的!

自从有了IT这个行业,关于年龄问题的讨论从来没有停止过,自从很多招聘信息中增加了35岁以下这个关键字,此风气有了尘嚣甚上、愈演愈烈的趋势!

其实对于程序员年龄论、青春饭等话题的纠结真的不用去在意,这也使得很多年轻人在选择专业的时候也是谨小慎微,担心“误入歧途”!仿佛工作到了这个年龄就一定会发生什么?那么偶想问一下,35岁以上的人怎么也有几亿了吧,他们都从职场上退休回家了吗?

对于即将要离开校园踏入职场的学生来说,未来工作的选择基本上分成两个大类,第一个大类进入到体制内,未来一切的发展都是按部就班的,不需要考虑失业的问题,基本上不犯什么原则性的错误工作到退休是没有问题的,另一个大类就是民营经济序列,此类是作为就业的主体存在,工作灵活性相对也比较大,犹如魔兽争霸游戏中的战争迷雾,没有人知道迷雾中是一番什么样的天地,但需要大家一步一个脚印地走进去探索,所以关于年龄论限制在这个分类中都是需要面对的问题,这也是时代经济发展的留下的鲜明烙印!

对于一些互联网公司来讲,年龄属实是一个非常敏感的话题,因为互联网产品讲究就是迅速,谁先把产品搞出来就占得先机,后弄出来的则步步落后!而且产品迭代速度非常快,需要迎合更年轻的用户群体,所以对于人员的新陈代谢率肯定是相对比较高的!

但是对于程序员未来发展的路线还是比较多的,没有必要人云亦云,结合自己的兴趣爱好以及志向,在工作中不断地积累、提升自己的能力、找准定位还是未来可期的,当然大家也应该随着自己年龄的不断增长,随之对应的角色以及工作内容也要产生相应的变化!

如果一定要有一个绝对的说法,偶只能写代码其他什么也不会、也不感兴趣、不想有其他的发展能一直搞下去吗?答案也是肯定的,为什么不能呢?企业的本质是需要盈利的,而盈利的前提就是要员工不断地创造价值,只要有输出可以满足企业的生产要求,肯定会有企业愿意接纳的!试想一下如果步入中年并且手无一技之长,那么在求职的过程中肯定会比你难得多吧!

喜欢的小伙伴可以关注偶,一起交流学习!偶是IT鸟叔,一位喜欢写程序、钓鱼、喝茶、玩游戏的中年大叔!

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

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

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

先讲故事:偶进入大学计算机系就读本科。 刚来就震惊了,因为偶和信息学奥赛圈内出名的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和网页编程,两者的思路不太相同。你对数学和编程的认识会不断改变,在几年之后才完全定形的。

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