c语言小游戏代码矿井逃生
A few weeks ago, I posted about my experience attempting to learn JavaScript, C#, Python, and more from Codecademy, Udemy, and freeCodeCamp, along with escaping from tutorial purgatory and actually making progress as a developer.
几周前,我发表了自己的经验,尝试从Codecademy,Udemy和freeCodeCamp学习JavaScript,C#,Python等,并逃脱了炼狱和实际上作为开发者的进步。
Deciding on a programming language can be extremely challenging and time-consuming as there are dozens of options out there, with a lot of conflicting information. In this article, I'll share some options based on my own experience learning to code, with suggestions for how to choose a programming language, escape tutorial purgatory, and make progress as a developer.
由于存在许多选择,并且信息相互冲突,因此选择一种编程语言可能会极具挑战性和耗时。 在本文中,我将根据自己在编码方面的经验分享一些选项,并提供有关如何选择编程语言,逃避教程炼狱以及在开发人员方面取得进步的建议。
Here's a video version of this post if you'd prefer (11 minute watch):
如果您愿意,这是此帖子的视频版本(观看11分钟):
Often, in articles such as these (or in the "What Coding Language Should I Learn?" infographics with which you're probably intimately familiar), you're asked to think critically about what you want to build after you've learned to code.
通常,在诸如此类的文章中(或在您可能熟悉的“我应该学习哪种编码语言?”信息图表中),您被要求认真地思考要学习的内容。码。
This approach is useful if you have some idea about what it is that you want to do with a programming language after learning it, but not so much if you just want to learn to code, as was my experience. I'll cover both scenarios in this article.
如果您有关于它是什么,你想学习它后一种编程语言做的 ,但没有这么多,如果你只是想学习代码的一些想法此方法非常有用,因为是我的经验。 我将在本文中介绍这两种情况。
If you do know what direction you want to take your coding career after learning a programming language, you'll most likely have an easier time figuring out which language to learn first. Here are some suggestions in that case.
如果您确实了解了学习编程语言后想要发展编码职业的方向,那么您很可能会更容易地弄清楚首先要学习哪种语言。 在这种情况下,这里有一些建议。
If you already know that you want to work on the "front end" of websites - meaning, anything the user sees when they come to a website - you should begin your coding journey with learning JavaScript. You'll probably start out by learning HTML and CSS, which form the backbone of just about every website, and then begin adding JavaScript to enhance functionality and interactivity to your sites.
如果您已经知道要在网站的“前端”上工作(即用户访问网站时看到的所有内容),则应该开始学习JavaScript。 您可能会开始学习HTML和CSS,它们几乎构成了每个网站的骨干,然后开始添加JavaScript以增强网站的功能和交互性。
JavaScript is fairly ubiquitous as a programming language, and has an easier on-ramp than other, lower level languages like C++. It's a great jumping-off point if you don't know what you want to learn...but more on that later.
JavaScript作为一种编程语言相当普遍,并且比其他较低级的语言(如C ++)更容易上线。 如果您不知道要学习什么,这是一个很好的起点……但是稍后会更多。
Let's say you're more interested in learning about the guts of websites, managing the "back end" and trying your hand at database administration. You've got a lot of options here, and the most straightforward path is Python, which is a beginner-friendly language that has mature frameworks (e.g. Django and Flask) for back end development.
假设您对了解网站的勇气,管理“后端”以及尝试数据库管理更加感兴趣。 您在这里有很多选择,最直接的途径是Python,它是一种对初学者友好的语言,具有用于后端开发的成熟框架(例如Django和Flask )。
You also can't go wrong with C#, which will expose you to Microsoft's .NET ecosystem and a programming language that, once you get into the weeds with it, is a pleasure with which to work. And if you're thinking of going "full stack" - meaning, you want to do front end and back end development - you might consider learning JavaScript, which has younger but highly prized back end frameworks like Express and Koa. Doing so will also ease your learning process as you'll be using the same language to code both stacks.
使用C#也不会出错,它将使您接触Microsoft的.NET生态系统和一种编程语言,一旦陷入困境,它便是工作的乐趣。 而且,如果您打算采用“全栈”方式(即要进行前端和后端开发),则可以考虑学习JavaScript,该JavaScript具有更年轻但倍受重视的后端框架,如Express和Koa 。 这样做也将简化您的学习过程,因为您将使用相同的语言对两个堆栈进行编码。
Whichever language you choose for back end development, you'll most likely also wind up adding SQL to your toolbox for database management, so put that on your radar.
无论选择哪种语言进行后端开发,最终都可能会将SQL添加到用于数据库管理的工具箱中,因此请放心使用。
I've written elsewhere about what engine you should use to make 2D games, but here's the skinny.
我在其他地方写过有关制作2D游戏时应使用哪种引擎的信息,但这很薄。
There are a lot of 2D game engines, many of which may or may not suit your fancy as a game developer, and each with their own benefits, idiosyncrasies, and learning curve. Some of them, like Game Maker Studio 2, for example, utilize their own proprietary languages to run scripts, but I'd actually recommend you first learn JavaScript or C#, even if you're considering using a different game engine in the long run.
有很多 2D游戏引擎,其中很多可能不适合您作为游戏开发者的想象,并且每个都有自己的优势,特质和学习曲线。 其中有些工具 (例如Game Maker Studio 2)利用自己的专有语言来运行脚本,但实际上我建议您首先学习JavaScript或C#,即使您长期考虑使用其他游戏引擎也是如此。 。
With JavaScript, you can use frameworks like Phaser to make 2D games, or fully-featured engines like Construct 3 (which actually uses drag-and-drop development with room for custom scripts). If you choose to learn C# instead, you'll work with Unity 2D, or perhaps MonoGame - but I'd actually recommend starting with non-engine tutorials (e.g. .NET)to get a good handle on the language first.
使用JavaScript,您可以使用Phaser之类的框架来制作2D游戏,或者使用功能齐全的引擎(如Construct 3) (实际上使用拖放式开发并留有自定义脚本的空间)。 如果您选择学习C#,则可以使用Unity 2D或MonoGame-但我实际上建议您从非引擎教程(例如.NET )开始,以便首先掌握该语言。
Learning JavaScript or C# will give you the foundational coding knowledge you'll need to tackle another game engine, like Game Maker, while also providing you with things like programming best practices and clean code organization.
学习JavaScript或C#将为您提供解决其他游戏引擎(如Game Maker)所需的基础编码知识,同时还为您提供编程最佳实践和简洁的代码组织等内容。
There are a lot of options for learning to code for 3D game development, and I'd suggest you start with C# or C++. In fact, unless you're super tech savvy or already have a background in programming, I'd recommend for you to start with C# and work your way down to C++. You'll have an easier learning curve and will learn fundamental programming concepts without having to deal with things like memory management and lower-level code.
有很多可供选择的学习3D游戏开发代码的方法,建议您从C#或C ++开始。 实际上,除非您精通高科技或已经有编程背景,否则我建议您从C#开始并逐步使用C ++。 您将获得一个更轻松的学习曲线,并且将学习基本的编程概念,而不必处理诸如内存管理和低级代码之类的事情。
You'll probably wind up learning both in any case, but if you start with C#, you can tinker around with Unity 3D, and then make your way to C++ with Unreal Engine 4.
无论如何,您可能都会学完这两种方法,但是如果您从C#开始,则可以修改Unity 3D ,然后使用Unreal Engine 4进入C ++。
Although there are options in other languages for learning data science/analysis and machine learning, Python is currently the gold standard for this realm of coding. It's a fairly straightforward language to learn and will expose you to good programming habits and widely-used frameworks, so you can't go wrong here.
尽管在其他语言中也可以选择用于学习数据科学/分析和机器学习的工具,但是Python目前是该编码领域的黄金标准。 它是一种非常简单易学的语言,可让您养成良好的编程习惯和广泛使用的框架,因此您在这里不会出错。
There's the distinct possibility that you've spent days, weeks, or even months searching through articles, videos, reddit posts, and Stack Overflow questions reading about programming languages, and still have no idea where to invest your time because you don't know what you want to build.
很可能您花了几天,几周甚至几个月的时间搜索文章,视频,reddit帖子以及有关编程语言的Stack Overflow问题,但仍然不知道在哪里投入时间,因为您不知道您要构建什么。
I've been there. It's annoying.
我去过那儿。 它很烦人。
My recommendation to you, trite as it may seem, is to just pick one. Literally any one of them, even if they're not listed here. Go learn JavaScript. Or Python. Or Rust. Or Haskell.
我对您的建议(似乎有些陈旧)是选择一个。 从字面上看,即使没有在此处列出,它们中的任何一个也是如此。 去学习JavaScript。 或Python。 或锈。 或Haskell。
OK, maybe not Haskell. But pick something, and stick with it long enough to learn the basics and see if there's a possibility that you might like using that language to build with it. And keep in mind two things as you do so:
好吧,也许不是Haskell。 但是,选择一些东西 ,并坚持使用足够长的时间以学习基础知识,看看是否有可能您希望使用该语言来构建它。 在执行此操作时,请记住两点:
Build something that's not in your tutorials. This is a crucial step in your growth as a developer. I'll cover it in the next section.
构建您的教程中没有的内容。 这是您成长为开发人员的关键一步 。 我将在下一节中介绍它。
If you've found yourself doing tutorial after tutorial, on the same or different websites, without ever actually feeling like you're making progress, you may be really frustrated with the experience of learning to code. I've been there, and can help.
如果您发现自己在相同或不同的网站上接连进行教程,却从未真正感到自己正在取得进步,那么您可能会对学习编码的经验感到沮丧。 我去过那里,可以为您提供帮助。
The first step is to consider what programming tutorials are good for, and what they are not. Most online tutorials - particularly ones that allow you to code right in the browser - are excellent for teaching you how to program.
第一步是考虑哪些编程教程是好的,哪些不是。 大多数在线教程(尤其是允许您直接在浏览器中进行编码的教程)都非常适合教您如何编程。
They are not, on the other hand, good for teaching you how to be a programmer.
另一方面,它们不利于教您如何成为程序员。
The best tutorials will expose you to fundamental coding concepts and require you to apply that knowledge to solve puzzles and projects. They're wonderful learning tools that can, if used beyond their scope, become crutches that will stifle your learning.
最好的教程将使您了解基本的编码概念,并要求您应用该知识来解决难题和项目。 它们是很棒的学习工具,如果超出了它们的使用范围,它们将成为拐杖,扼杀您的学习。
A programmer, for example, doesn't sit around all day doing tutorials. A programmer programs, and that's precisely what you need to do to make progress after you've mastered the basics.
例如,程序员不会整天坐在那里做教程。 程序员的程序 ,而这正是你需要做的,使进度你已经掌握了基本操作后什么。
The best way to make progress as a developer is to pick a project in your language of choice and set out to do it. If you're learning JavaScript, for example, you might choose to build a simple website with HTML/CSS and add some interactivity with jQuery. You'll probably start out by setting up an integrated development environment, immediately forgetting how to do something that you learned in your tutorials, get frustrated, head to Google, find the answer, and keep going. Then you'll make progress, get stuck, search Stack Overflow, scratch your head at the official documentation, maybe share your code with someone, and repeat the whole process.
作为开发人员取得进步的最好方法是选择一种使用您选择的语言的项目并着手进行。 例如,如果您正在学习JavaScript,则可以选择使用HTML / CSS构建一个简单的网站,并与jQuery添加一些交互性。 您可能会首先建立一个集成的开发环境 ,立即忘记如何做自己在教程中学到的事情,感到沮丧,前往Google,找到答案并继续前进。 然后,您将取得进展,陷入困境,搜索Stack Overflow,在官方文档中挠头,也许与他人共享您的代码,然后重复整个过程。
And you'll be doing exactly what programmers do when building a new project.
而且,您将完全像程序员在构建新项目时所做的那样。
Finally, you really can't go wrong with what programming language you choose, even if it's not on this list. If you wind up picking one, learning the basics, making a project, and deciding it's not for you, that experience will actually still help you in the long run. The information you'll learn in the process will be useful, irrespective of whatever language you end up using for your projects.
最后,即使您未选择哪种编程语言,您也确实不会出错。 如果您最终选择一个,学习基础知识,制作一个项目,并决定不适合您,那么从长远来看,这种经验实际上仍然可以为您提供帮助。 无论您最终在项目中使用哪种语言,您都将在此过程中学习的信息将非常有用。
You can do it!
你能行的!
If you enjoyed this article, please consider checking out my games and books, subscribing to my YouTube channel, or joining the Entromancy Discord.
如果您喜欢这篇文章,请考虑查看我的游戏和书籍 , 订阅我的YouTube频道或加入Entromancy Discord 。
M. S. Farzan, Ph.D. has written and worked for high-profile video game companies and editorial websites such as Electronic Arts, Perfect World Entertainment, Modus Games, and MMORPG.com, and has served as the Community Manager for games like Dungeons & Dragons Neverwinter and Mass Effect: Andromeda. He is the Creative Director and Lead Game Designer of Entromancy: A Cyberpunk Fantasy RPG and author of The Nightpath Trilogy. Find M. S. Farzan on Twitter @sominator.
法赞(MS Farzan)博士 他曾为知名的视频游戏公司和编辑网站(例如,Electronic Arts,Perfect World Entertainment,Modus Games和MMORPG.com)撰写和工作,并曾担任《龙与地下城:龙骨无双》和《 质量效应:仙女座》等游戏的社区经理。 。 他是《 Entronancy:Cyberpunk Fantasy RPG》的创意总监和首席游戏设计师,并且是《 The Nightpath Trilogy》的作者。 在Twitter @sominator上找到MS Farzan 。
翻译自: https://www.freecodecamp.org/news/how-to-choose-a-programming-language-and-escape-tutorial-purgatory/
c语言小游戏代码矿井逃生