1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 自学编程 做游戏 自学程序员需要多长时间 – 游戏开发 – 前端

自学编程 做游戏 自学程序员需要多长时间 – 游戏开发 – 前端

时间:2020-08-06 12:51:48

相关推荐

自学编程 做游戏 自学程序员需要多长时间 – 游戏开发 – 前端

背景知识

出色的逻辑思维能力,以及扎实的理工专业背景例如数学、物理等专业背景,能为你做一个良好的铺垫。就答主自身而言,本科是心理学与建筑的双学士背景,针对Python的自学,大约只花了偶一个月时间。

领域方向

编程有很多领域,比如嵌入式编程、后台服务编程、前端编程、驱动编程等等,很多很多。每个领域都有不同的知识范围,有的比较小,有的则稍大一下。从学以致用的根本目的而言,提前明确好自己的应用方向,也会对自己的学习事半功倍。

语言选择

不同的语言难度千差万别,就以答主之前提的Python为例,针对没什么基础的新手而言,Python是一种友好的语言,就是上手难度较低,同时现在的应用面也越来越广,因此如果你想短时间上手一门就业面较广的语言,偶建议Python是一个不错的选择。

学习效率

从小到大读了这么久的书,其实都应该明白。如果你想学,认真静下来几个小时的自学效率会比你在课堂呆坐一天都高。而学习的道路也不是一帆风顺的,难免会有各种挫折坎坷,重要的是你自己对于目标的追求,持之以恒的坚持。三天打鱼两天晒网,如此这般,到头来你不仅会丧失学习的兴趣,甚至会对自己的能力产生质疑。切忌半途而废,三心两意。

简单总结

还是以答主自己出发,偶是理工科专业背景,没有相关的计算机基础,以一天学习四小时计,Python大约花了偶一个月左右,C大约花了偶四个月,附加的SQL只花了半个月,因为逻辑其实是差不多的,只是语法规则以及应用的区别。

当然了,最为重要的还是要明确自己的努力目标, 确定具体的领域方向,制定实际的学习计划,再加上持之以恒的耐力决心,才能成功达成所愿。

学习什么编程最好?

孩子学编程,推荐Scratch。

“最适合的”编程语言,真的存在吗?

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

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

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

因此,大家推荐零基础的孩子,先从 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% 是在处理逻辑和解决问题,而不是去生搬概念。

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

自学编程学哪些语言比较好?

初学者如何选择编程语言和开发方向全世界的编程语言有 600 多种,TIOBE 统计的有 100 种,参与排名的有 50 种,前 20 种是常用的,它们目前正在流行,或者曾经非常流行。

图1: 年 11 月份编程语言排名 TOP 20要想选择编程语言,首先得确定开发方向,比如网站开发、APP 开发、机器学习、大数据、嵌入式、GUI 软件、算法设计等。编程语言不是万能的,一门编程语言只能胜任一个或者几个开发方向,一个开发方向往往也有多种编程语言可以选择。大家首先谈一下开发方向的选择,然后再说编程语言的选择。

1. 选择开发方向

选择大于努力,只有切入一个适合自己的开发方向,才能持续进步。关于开发方向,偶有以下两个选择标准。(1) 兴趣学习编程是一个非常枯燥的过程,内容多,时间长,成本高,就算参加全职培训班,至少也得学习半年才能入门,做出一点小玩意来。要想成为别人眼中的大神,或者编程专家,没有三五年的功夫肯定是不行的。学习编程的过程是比较艰苦的,没有兴趣很难硬抗下来,即使报名了培训班也学不会,所以,大家首先要选择自己感兴趣的一个开发方向,这样不但能快速学习,以后还能持续进步。比如偶就对网站感兴趣,高中阶段偶就想开发一个属于自己的网站,感觉非常炫酷,所以大学偶毫不犹豫地选择了网站开发这个方向。偶在选择开发方向的时候没有任何纠结,偶知道自己必须选择网站开发。兴趣是最好的老师,没有之一。遗憾的是,对某个事物有强烈兴趣的人很少,大部分人都是被动选择。此处偶说的兴趣,是指别人无法撼动的热爱,是工作之余让你放松的事情。如果你只是有过某种想法,别人告诉你这个想法不靠谱,你就放弃了,这顶多是一时的鸡血。

(2) 未来发展

如果你学习编程不是因为兴趣,只是想选择一份职业,那偶希望你切入一个有发展潜力的开发方向。每个产业的发展规律都是类似的,都要经历以下几个周期:拓荒期 -> 发展期 -> 成熟期 -> 衰落期偶希望你在发展期切入一个产业,然后持续努力和积累,让产业的发展带着你起飞。站在风口上,猪都能飞起来。你应该听说过很多没啥背景的人,突然之间一夜暴富了,惹得别人羡慕嫉妒恨吧,这些人,大都是在一个爆发式增长的行业里面翻了身,比如十年前的包工头、持续火热的程序员。注意,最好不要在拓荒期切入一个产业,你很有可能坚持不到曙光到来之时就已经转行或者年老色衰了,成为了别人谈笑中的“烈士”。对于软件开发产业来说,GUI 桌面软件已经是过去式了,APP 和网站也已经进入成熟期,偶推荐机器学习(人工智能)和大数据两个方向,它们都是国家重点扶植的细分产业,而且写入了十四五规划,未来至少还有十年的发展时间。机器学习需要大数据提供原料,反过来,大数据分析也依赖机器学习模型,它们是相辅相成的,很难隔离开。另外,选择产业方向也是有风险的,也是一次命运赌博,谁也不能确定这个产业能不能发展起来,就算发展起来,又需要多少年呢?又有多大的产值呢?比如人们一直谈论的人工智能已经发展了几十年了,到现在还是“人工智障”,底层理论并没有本质的突破。虽然国家把人工智能选为重点产业,注入了海量资金和人才,各家大公司也跟风进入,但是底层理论如果不突破,十年以后没准还是智障,只不过应用场景多了。谁也不能穿越到未来,谁也不能告诉你确定的答案。就算一个国家,也会点错科技树,比如:美国认为自己无人能敌,发展了朱姆沃尔特级驱逐舰,打算近岸攻击,想不到中国突然崛起,海军开始下饺子,美国不得不转为远洋作战,废掉朱姆沃尔特级。日本押宝混动汽车和氢能汽车,积累了大量专利,但是中国却切换了赛道,倾力发展纯电动汽车,并且积累了一定的优势,日本想逆袭非常困难,汽车产业岌岌可危。在产业发展过程中,会有很多不确定因素,大家只能尽力选择一个有前景的产业。其实吧,很多“暴发户”也不懂得什么产业发展规律,他们只是阴差阳错地进入了某个产业,恰好赶上产业崛起而已。偶自己当初也不懂互联网,只是对网站感兴趣,就进入了互联网产业,抓住了 PC 互联网的尾巴,所有才比其他行业的同学混得好点。也就是说,偶混的好,不是因为偶足够优秀,而是因为偶进入了互联网产业,搭上了产业的便车,偶只是比偶的同学更加幸运而已。

2. 选择编程语言

确定了开发方向,接下来就可以选择编程语言了。有的开发方向比较纯粹,只有一两种编程语言,有的开发方向鱼龙混杂,有五六种编程语言,选择编程语言也是一个让人纠结的过程。以下是部分开发方向可以选择的编程语言:

1) GUI 桌面软件

能开发 GUI 软件的编程语言众多,既有传统的 C++、C#、VB、Delphi、Java,也有新晋选手 Python、Node.js(JavaScript),还有小众的易语言(中文编程语言)。如果你只是想玩玩,那么你随意,适合自己的就行,其中 Python 上手比较简单。如果你想找一份工作,建议学习 C++ 或者 C#。C# 虽然比 C++ 简单一点,但是它只适用于 Windows 平台;而 C++ 是一种通用语言,它可以应用于 Windows、Linux 以及嵌入式平台,就业选择较多。

2) 网站开发

网站开发分为前端和后台,前端就是用户在浏览器中看到的界面,后台就是放在服务器上的程序。前端开发需要学习 HTML、CSS 和 JavaScript,没得选,而且必须都学习。后台发开语言则多如牛毛,有走进坟墓的 ASP、Ruby on Rails,也有常用的 PHP、Java(JSP)、C#,还有新晋选手 Python、Node.js(JavaScript)、Go 语言。如果你想自己玩玩或者创业,建议选择 PHP,上手非常简单。偶使用的也是 PHP,因为当时学不会 和 JSP,所以选择了简单的 PHP。如果你想找一份工作,那么已经走近坟墓的 ASP、Ruby on Rails 就不要选了,没人用了。C# 也不要选了,只适用于 Windows 平台,而大量的服务器都是 Linux。Python 也不要选,实际应用场景不多。Go 语言主要用作 Web 底层开发,而不是应用层开发。剩下的 PHP、Java、Node.js 你自己看着办吧,没法说哪种语言一定有优势,它们只是适用于不同的场景。值得一提的是,这里大家将 Node.js 和 JavaScript 看做是等价的,如果你选择了 JavaScript,那么你既能开发网站前端,也能开发网站后台,就不用学习多种编程语言了。

3) APP 开发

这个开发方向比较简单,Android APP 开发使用 Java 或者 Kotlin,iOS APP 开发使用 Objective-C 或者 Swift。每种操作系统都有两种编程语言,一种是传统的,一种是新晋的,选择好了操作系统,把两种语言都学了吧。

4) 嵌入式开发

一般使用汇编、C语言和 C++,近年来也有开发板支持 JavaScript 和 Python。自己玩的话,可以选择 Python,上手简单。想找工作的话,还是走传统路线吧,把汇编、C语言和 C++ 都学了吧。只有那些有 Web 开发基础的程序员才会选择 JavaScript。

5) 机器学习

这是一个比较综合的开发方向,初学者一般从 Python、MATLAB 开始搭建模型,实际工程应用中可能需要使用 C++、Java 等其它语言去实现。Python 是必学的,MATLAB 最好也要掌握,C++ 和 Java 视情况而定。

6) 大数据

这也是一个比较综合的开发方向,相关语言有 Python、R语言、Java、Scala。把 Python 和R语言学习一下,剩下的看情况吧。由于偶的能力所限,偶无法对所有开发方向做深入的分析,有说的不到位的地方,请大家留言,或者在公众号聊天框中反馈给偶。以上说的仅仅是编程语言,除了编程语言,大家还需要学习某些框架或者库,比如:Java 网站开发需要掌握 Servlet、JSP 技术,以及 Spring、Spring MVC、Spring Boot、Spring Cloud、Mybatis、Hibernate 框架;Python 机器学习需要掌握 PyTorch、TensorFlow、Caffe 等框架,以及 sklearn、NumPy 等模块。除了编程语言和框架/库,你当然还要掌握一两种数据库,常用的有 MySQL、Oracle、MongoDB、Redis、Sqlite 等,这里不再展开讨论。

总结

软件开发是一个大产业,其中有很多细分方向,每个方向使用的技术栈都不一样,而且要经过长期学习才能掌握,所以大部分程序员都只擅长某个开发方向,那些多面手,要么是学艺不精,要么是技术大咖。人们之所以迷茫,就是不知道如何选择,这篇文章虽然不一定能让你做出最终的决定,但是可以给你一种不同的视角和标准,帮助你打开思路。

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