1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 学习小游戏编程好学吗 学习什么编程最好 – 游戏开发 – 前端

学习小游戏编程好学吗 学习什么编程最好 – 游戏开发 – 前端

时间:2022-03-08 19:52:29

相关推荐

学习小游戏编程好学吗 学习什么编程最好 – 游戏开发 – 前端

其实选择哪种编程语言不是重点,激发孩子的学习兴趣,培养孩子的逻辑思维,掌握编程思想,学会用编程的方式去发现问题和解决问题才是重点。

如果孩子能够熟练掌握编程中变量、条件、循环,还有函数等基本的编程概念,并以一种语言编程成功,这时再用另一种语言来编程就不难了。

转换编程语言虽然不像打个响指那样容易,但只要了解了其他语言的语法就能快速上手,因为编程的核心不在于语法,而是解决问题的思路和方法(算法)。

因此,大家推荐零基础的孩子,先从 Scratch 语言开始学起。

有的家长不理解,觉得:

“那种拖块看起来像玩游戏,不如 Python、C++ 这样的代码编程语⾔⾼级,对于孩子太简单了。””现在是人工智能时代,直接让孩子从Python学习,以后前景更好。““让孩子学习C++,以后考个信奥对升学有帮助!”

其实语言并没有高级低级之分,只是各自应用的场景不同,盲目追求编程语言的复杂度,是不可取的。

对于一名零基础的孩子来说,培养编程的兴趣很重要,直接上手代码编程不是不可以,只是这样的学习会让孩子觉得枯燥,容易打消他们学习编程的积极性,甚至产生抵触。

如果真的想让孩子学习编程,那么他的学习路径应该是循序渐进的,孩⼦刚开始接触编程时,重要的有 2 点。

⼀是容易上手,让孩⼦能⽤编程做出东西,体会到编程的乐趣,培养孩子对编程的兴趣。⼆是把精力尽量用在学习编程逻辑上,而不是编程语言的语法上。因为编程逻辑,才是编程的核心,真正锻炼思维的东西,而编程语⾔只是大家为了完成目的使用的⼯具。

Scratch的 4 个特点,⾮常好地满⾜了这 2 点要求。

(1)Scratch特点1:入门容易

Scratch使⽤了图形化的呈现,通过拖拽代码块进⾏编程,过程很像搭建“电⼦积⽊”,对刚接触编程的孩⼦来说,上⼿容易、门槛低。

Scratch与Python、C++对比

从上⾯这张图大家可以看出Scratch更直观易懂,⽽Python、C++则需要具备打字能力,和⼀定的英⽂基础。

尤其C++,语法相当复杂,还有很多与编程逻辑⽆关的繁琐细节。由于C++语法过于复杂,很多孩子学C++时理解不了它的语法,导致孩⼦只能抄代码,没有实际独立创作的能力,最终连逻辑也没能学习到。

这就像大家想教孩子学骑车,但大家⼀开始就给了他一辆摩托车,本想为他提供便利,可孩⼦骑不好摩托,结果最后连自行车也没学会。而如果大家⼀开始给孩⼦骑自行车,他是能学会的,再上手摩托车就容易多了。因此,一开始就把入门门槛抬得太高,导致孩子入不了门,后续的学习就更困难了!

(2)Scratch特点2:及时反馈

孩⼦使⽤Scratch时,点击单个代码块,就能看到“移动”、“转向”、“切换造型”等代码效果;通过⼀些简单的操作就能完成⼀个小故事、节⽇贺卡、⼩游戏⼀类的作品。

这能让孩⼦在刚接触编程时,就体会到⾃⼰创造出作品的成就感,获得精神上的⿎励,更容易激起孩子的学习兴趣,有信心迎接后续的挑战。

(3)Scratch特点3:避免了代码语法错误

Python和C++之所以让⼈感觉⽐Scratch难,是因为Python/C++的代码语法更繁琐,在完成⼀个相同逻辑难度的作品时,Python/C++⽐起Scratch,需要花费更多的时间在解决语法问题上。

过早学习代码语言无形中浪费了很多时间,俗话说:“思考5分钟,找茬2小时。”⽐如,把英⽂的分号写成了中⽂的分号、把双引号⽤成了单引号、少写了⼀半括号等都会造成程序报错,无法正常运行。

而这些繁琐的语法问题,对孩⼦理解编程核⼼逻辑并没有任何帮助,却总是需要孩⼦花费时间去解决,就像是大家在⾛路时,总得花很多时间去倒掉鞋⼦⾥的⼩⽯⼦,⽽因此忽略了沿途的风景。

⽽Scratch是⽤拖拽代码块的⽅式来编程的,从根本上就不需要孩⼦去关注拼写错误、标点错误等⽆意义的语法问题,极大减轻了孩子对编程的挫败感,而让他们留有更多时间全⾝⼼专注于理解编程逻辑上,这才是对锻炼思维真正有⽤的部分。

另外,由于Scratch把编程的常规语句都做成了代码块,孩⼦只需要根据⾃⼰梳理好的编程逻辑挑选符合要求的代码块拖拽就能使⽤,不⽤⾃⼰一个字一个字地敲出来,大大提高了孩子的学习效率。

(4)Scratch特点4:高上限

有的家长看到Scratch语法简单,就误以为Scratch只能做出简单的作品。其实编程的核⼼是逻辑和算法,编程语⾔只是⼯具,作品的复杂度是由编程逻辑决定的,⽽不是由⼯具决定的。

现在很多热门软件和游戏,虽然它们本身不是⽤Scratch开发的,但同样可以⽤Scratch还原出来,实现相同的效果。

另外,Scratch对于创新的鼓励以及在图像创作、声音编辑和项目混制方面的功能优化,让它在成为各年龄段孩子首选编程语言上变得理所当然。

较之被称为“编程语言”,它更希望被定位为一个绘图工具,一个动画制作工具,或是一个故事与游戏创作工具。

学习了Scratch孩子,更愿意去尝试代码编程,因为他们觉得那意味着长大,只有“真正的编程”才会被行业采纳。

至于Python 和 Scratch 哪一个更适合小孩子学习。偶的回答是:低年级的孩子建议学 Scratch,初中左右可以考虑直接学 Python。因为 Scratch 的图形化更能激发学习的兴趣,而 Python 的好处在于,以后可以拿来真刀真枪的做项目,甚至养家糊口。

但其实在任何年龄,如果你不是那么急切地想掌握一门实用语言,Scratch 都是值得花时间尝试的。虽然它的初衷是给小孩子用的,但也完全适合一个对计算机毫无基础的成人用来了解编程思想和开发流程。

在 reddit 有这样一个帖子:

大意就是:一个网友说,如果你完全没有编程经验,强烈推荐从 Scratch 开始入手。

他自己就通过学习一阵子之后,很快做出了一个自己的游戏,这给他继续学习编程带来了很大的动力。

另一个网友评论说,有不少会一点编程的人会瞧不起 Scratch,觉得它算不上一门语言。

但事实上,很多编程初学者因为搞不清变量、循环、函数等概念而放弃。

而真正在编程时,大家 90% 是在处理逻辑和解决问题,而不是去生搬概念。

如果从逻辑出发来教授编程,那么可能对于学习者来说是更合适的。如果你理解了程序背后的逻辑,之后再学习其他语言也是很容易的。

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

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

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

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

有哪些培训机构比较好的?

培训机构?

不知题主年龄多大?

如果还是在校生的话,偶有几句话说说:

1. 如今,早已不是游戏的蛮荒年代,一人凭借自学、培训独立完成一个游戏了;

各大厂(主要是腾讯鹅厂、网易猪厂)哪个不要求学历?非985、211不考虑的。

2. 爱玩游戏不代表在做游戏,玩游戏和做游戏是两码事儿。

你看看游戏测试,哪个下了班还在玩儿?都吐了。。

然后游戏开发,后两个字才是重点的,好吧。

3. 非要培训+自学,那先去测个智商,超过130可以考虑;

否则老老实实上个大学,学计算机,学高数,学算法,学数据结构,

学图形学以及C++等等等等,一步一步来吧。

4. 开发游戏(动词)除了开发之外还有策划、剧本、美术等等,不考虑下?

一家之言,还请指正 。

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