Can young programmers have a hard time learning to code because of their age?
I started programming when I was around 10 or 11. I started out just trying to focus on the basics. I never really considered if age would impact my ability to learn. I have seen many consider the “age-block” for programmers to be the math and science part of it. This somewhat makes sense, right? Let us say for example you are interested in becoming a game programmer. Game programming can often involve math and physics, especially if you are creating 3D games. Age block is a topic that I have considered in later years, more specifically, when I entered High School. In High School programming classes, math was focused on a lot more than I expected. Even for the basic introductory classes, a lot of focus was put on the math course you are in. At the time, I resented this. I did not think advanced mathematical knowledge was needed for introductory programming classes, and I still don’t.
我在10或11岁左右就开始编程了。我刚开始只是专注于基础知识。 我从未真正考虑过年龄是否会影响我的学习能力。 我已经看到许多人认为程序员的“年龄段”是其中的数学和科学部分。 这有点道理，对吗？ 例如，让我们说您有兴趣成为一名游戏程序员。 游戏编程通常涉及数学和物理学，尤其是在创建3D游戏时。 年龄障碍是我后来几年(更具体地说，当我进入高中时)考虑的一个话题。 在高中编程课程中，数学的重点超出了我的预期。 即使是基础入门课程，也将重点放在您所在的数学课程上。当时，我对此表示不满。 我认为入门编程课不需要高级数学知识，但我仍然不需要。
Can “age-block” become a reality for young programmers? Yes. But also no.
“年龄限制”能否成为年轻程序员的现实？ 是。 但也没有。
It is most likely that if a young programmer progresses quickly into more advanced topics, they will run into situations where they do not have the mathematical or the proper scientific knowledge to complete their task. However, this is only the case if a young programmer progresses to that level.
What was my experience in these High School introductory programming classes?
So far I have taken two introductory high school programming classes. Of course, it isn’t like you won’t use math at all. You will probably need to solve basic equations, know how to add and subtract, and other basic stuff like that. However, programming isn’t just math math math. You have to be a problem solver! Sometimes this can mean getting a notebook and thinking up some ideas or even pacing back and forth wondering what is the most efficient and optimal way to solve a problem. In a lot of cases, this can be far more important than being familiar with advanced math. For example, if someone is great at memorizing equations and memorizing how to solve a math problem when they see it on paper, that doesn’t automatically mean they will be a great programmer. They may find programming easier than some others will, but ultimately, programming a lot of the time involves solving problems they most likely won’t expect.
到目前为止，我已经参加了两门高中编程入门课程。 当然，这并不像您根本不会使用数学。 您可能需要解决基本方程式，知道如何加减法，以及其他类似的基本知识。 但是，编程不只是数学数学。 您必须是一个解决问题的人！ 有时，这可能意味着拿起笔记本并想出一些想法，甚至来回走动，想知道什么是解决问题的最有效和最佳方法。 在许多情况下，这比熟悉高级数学重要得多。 例如，如果某人擅长记住方程式并记住在纸上看到数学问题时如何解决数学问题，这并不意味着他们会成为优秀的程序员。 他们可能会发现编程比其他一些编程更容易，但是最终，很多时候编程需要解决他们最不可能想到的问题。
Sometimes these are just general problems someone else has already solved, sometimes the problem can be more complex, and sometimes these can be problems that you end up creating your self. The other day I was watching some game development Youtube videos. The developer I was watching needed to shoot a projectile like a bow and an arrow, and they explained that they didn’t remember the math to do so, and as a result, they searched up the needed equations. I’ve found my self in similar situations where I’ve just needed to search up an equation or another type of solution to solve my problem. These are what I would consider a general or popular issue that already has a solution.
有时，这些只是别人已经解决的一般问题，有时，问题可能会更加复杂，有时，这些问题最终可能会导致您创造自我。 前几天，我在观看一些YouTube游戏开发视频。 我正在观看的开发人员需要射击像弓箭一样的弹丸，他们解释说他们不记得这样做的数学原理，因此他们搜索了所需的方程式。 我发现自己处于类似的情况，我只需要搜索方程式或另一种类型的解决方案来解决我的问题。 这些就是我认为已经解决的一般性或普遍性问题。
However, as your project becomes more complex, you will be tasked with organizing it, connecting it, keeping the code clean and readable, while also create a scalable solution that will allow you to make modifications to the system without rewriting entire parts of the code. These are the kind of tasks that can leave you with multiple problems or obstacles you may not easily find a solution to, and you may have to think up your own solution or collaborate with others for help. This is when you may start doing something like pacing around a room or getting out a notebook to think of solutions.
但是，随着项目变得越来越复杂，您将承担组织，连接，保持代码干净和可读性的任务，同时创建一个可扩展的解决方案，使您无需修改代码的整个部分即可对系统进行修改。 。 这些任务可能会给您带来许多问题或障碍，您可能不容易找到解决方案，因此您可能不得不考虑自己的解决方案或与他人合作以寻求帮助。 在这种情况下，您可能会开始做一些事情，例如在房间周围调步或拿出笔记本考虑解决方案。
So when does “Age-Block” become a reality?
As you progress in whatever your learning, you will start to learn more advanced topics. Your projects will become more advanced and your goals will become more advanced. This is when your projects may start requiring a bit more math or science. There are many examples of this. Maybe you started out just coding a few user interfaces, doing simple things like making a button change color when a mouse hovers over it. From there maybe you wanted to start making your user interfaces more appealing and you started learning how you can use linear interpolation for example to make your user interface appear over time. After that, you may want to progress further. You might want to start creating more advanced animations and effects that require you to learn more on the math side. Here is another example. Maybe you are a game programmer who started out making a cube go up and down when a player clicks a button, but now you want to code a plane! A plane can require more advanced math and physics knowledge to create since you are pretty much attempting to recreate the accurate movement of a plane in a game environment.
随着学习的进展，您将开始学习更高级的主题。 您的项目将变得更高级，目标将变得更高级。 这是您的项目可能开始需要更多数学或科学知识的时候。 有很多例子。 也许您只是开始编写一些用户界面，做一些简单的事情，例如当鼠标悬停在按钮上时使按钮改变颜色。 从那里开始，您可能想开始使您的用户界面更具吸引力，并且您开始学习如何使用线性插值(例如)使用户界面随时间出现。 之后，您可能需要进一步进行。 您可能要开始创建更高级的动画和效果，这些动画和效果需要您在数学方面学习更多。 这是另一个例子。 也许您是一个游戏程序员，当玩家单击一个按钮时开始使立方体向上和向下移动，但是现在您想对飞机进行编码！ 飞机可能需要更高级的数学和物理知识来创建，因为您几乎正在尝试在游戏环境中重新创建飞机的精确运动。
So what can someone do when they run into some problems that can be solved through math and science they do not yet understand? They can get help. There are a lot of online resources you can study to try and figure out a solution. If you can’t, I recommend asking for help on a forum or online community as they may be able to guide you to a solution. Sometimes you can implement a solution even though you do not completely understand it, and in my opinion, there is nothing wrong with that. There will always be a debate about what is considered “cheating” or what is considered your own hard work. In this case, if you implement a solution you don’t completely understand, I recommend trying to break the solution down to better understand it. If you are still unable to understand it, I wouldn’t worry about it. There are plenty of times I’ve implemented a solution I did not completely understand because I didn’t fully comprehend the math or science involved, but later when I took a class to understand it I had an “Ohhhhh” moment. Even though I may have only truly understood the solution I used months or years later, I was still able to accomplish my task way before.
那么，当某人遇到一些尚无法通过数学和科学解决的问题时，该怎么办？ 他们可以获得帮助。 您可以学习许多在线资源，以尝试找出解决方案。 如果您不能这样做，建议您在论坛或在线社区寻求帮助，因为它们可能会引导您找到解决方案。 有时，即使您不完全了解它，也可以实施解决方案，我认为这没有错。 关于什么被认为是“作弊”或什么是您自己的辛勤工作，始终会有争论。 在这种情况下，如果您实施的解决方案不完全了解，我建议您尝试分解解决方案以更好地理解它。 如果您仍然无法理解它，我不会担心。 很多时候我实施了一个我不完全理解的解决方案，因为我没有完全理解所涉及的数学或科学，但是后来当我上课理解它时，我有一个“噢噢噢”的时刻。 即使我可能只真正理解了几个月或几年后使用的解决方案，但我仍然能够完成以前的工作方式。
If you are young and new to programming like I was, there are plenty of concepts you can understand without diving too much into the advanced math and/or science of it. Eventually, as you progress you will most likely start projects that involve more complicated problems that need more complicated and advanced solutions. When I ran into these, I went through the internet looking for answers, I tried to find forums, etc. It all depends on how the young programmer progresses. They may hit an “age-block”, but there is also a chance they can break through that block through more research and help. Keep in mind, programming is a complicated skill. Learning it at a young age can be a struggle, but in my opinion, if programming really interests a young programmer, it’s better to learn it and hit a few roadblocks rather then giving up altogether. I didn’t understand every solution I used when I was younger, but ultimately, my programming skills paid off when I became older and started High School. I didn’t have to go through the basics or even the intermediate topics, I was able to start diving right into more advanced projects in my free time.
如果您像我一样年轻并且不熟悉编程，那么您可以了解很多概念，而无需过多地学习它的高级数学和/或科学。 最终，随着您的前进，您很可能会开始涉及更复杂问题，需要更复杂和高级解决方案的项目。 当我遇到这些问题时，我在互联网上寻找答案，尝试寻找论坛等。这一切都取决于年轻的程序员的进步。 他们可能会遇到“年龄障碍”，但是他们也有机会通过更多的研究和帮助突破这一障碍。 请记住，编程是一项复杂的技能。 在年轻时学习它可能会很困难，但是在我看来，如果编程确实让年轻程序员感兴趣，那么最好学习它并遇到一些障碍，而不是完全放弃。 我不了解我年轻时使用的每种解决方案，但最终，当我变老并开始读高中时，我的编程技能就得到了回报。 我不必遍历基础知识或中级主题，我可以在业余时间开始跳入更高级的项目。
Thank you for reading my opinion on this. I hope you find this helpful. :)
感谢您阅读我对此的看法。 我希望你觉得这有帮助。 :)