深度学习去燥学习编码
This post was originally published on Coder-Coder.com.
该帖子最初发布在Coder-Coder.com上 。
I know that sounds strange. The thing is, there are so many resources for learning to code that it can get easy to feel lost and overwhelmed. But approaching your coding education as if you were learning a different language will give you a helpful framework to operate from.
我知道这听起来很奇怪。 事实是,有太多学习编码的资源,很容易感到迷路和不知所措。 但是,如果像学习其他语言一样进行编码培训,将会为您提供一个有用的操作框架。
Using a framework will allow you to structure your learning progress. This will provide you with direction, milestones along your path, and a destination at the end.
使用框架可以让您构建学习进度。 这将为您提供方向,沿路径的里程碑以及最后的目的地。
One of the main advantages of this technique is that it divides up your path. From beginner to advanced stages. Differentiating these stages will help you make more sense of what you are doing.
此技术的主要优点之一是它可以划分您的路径。 从初学者到高级阶段。 区分这些阶段将有助于您更好地了解自己在做什么。
For example, knowing what level you are currently playing at. That knowledge will set your expectations. If you’re still at the beginner stage, don’t feel that you should achieve intermediate or advanced skills.
例如,了解您当前正在玩的级别。 这些知识将设定您的期望。 如果您仍处于初级阶段,请不要认为您应该掌握中级或高级技能。
Having realistic expectations will help keep you from getting discouraged or even quitting.
抱有现实的期望将帮助您避免灰心,甚至戒烟。
Sound good? Let’s start out with a fun little exercise:
听起来不错? 让我们从一个有趣的小练习开始:
When you’re learning a language, the goal isn’t about learning a list of vocabulary, words and random phrases.
学习语言时,目标不是要学习词汇,单词和随机短语的列表。
No one tries to learn a language for the sake of learning new words. There are always some kind of real-world application in mind.
没有人会为了学习新单词而尝试学习一种语言。 始终会考虑某种实际应用。
You want to be able to do something useful with it, right? You even had a specific goal in mind. It might be to hold a fluent conversation with someone, to travel to that country, or to read a book in that language.
您希望能够使用它做一些有用的事情,对不对? 您甚至有一个特定的目标。 可能是与某人进行流畅的对话,前往该国或以该语言阅读一本书。
Learning to code should be the same way.
学习编码应该是相同的方式。
You should have an ultimate goal other than “learning to code.”
除了“学习代码”之外,您还应该有一个最终目标。
It could be to find a new full-time job, to sell a mobile app, or to work for yourself. That goal will give you the motivation to keep learning even when it gets hard.
可能是找到新的全职工作,出售移动应用程序或为自己工作。 该目标将使您即使在学习困难时也能继续学习。
It will be your true north as you navigate the world of programming.
当您浏览编程世界时,这将是您真正的北方。
Stop reading this article for a moment. Take a minute to consider what your ultimate goal is in learning to code.
暂时停止阅读本文。 花一点时间考虑一下您的最终目标是学习编码。
Why are you doing this?
你为什么做这个?
What was the initial motivation that got you started down this path?
促使您踏上这条道路的最初动机是什么?
Write down your goal on a piece of paper.
在一张纸上写下您的目标。
Put it somewhere where you will see it every day — like next to your computer, or on your bathroom mirror.
将其放置在每天都能看到它的地方,例如,计算机旁或浴室镜子上。
When you read that note, you’ll be reminded of why you’ve chosen to start your journey. Remembering your core reasons will give you the encouragement not to give up.
阅读该说明时,您会想起为何选择开始旅程。 记住您的核心原因会鼓励您不要放弃。
Got your goal written down? Good.
写下您的目标了吗? 好。
After you finish reading this article, leave a comment to share what your goal is with the Medium community.
阅读完本文后,发表评论以与Medium社区分享您的目标。
We can always find encouragement in hearing someone else’s story. I’d love to hear yours.
在听到别人的故事时,我们总是会感到鼓舞。 我很想听听你的声音。
Now, let’s move on to getting fluent in coding!
现在,让我们继续流利的编码!
There are many spoken languages in the world (over 6,000 in fact!) — there are also many programming languages that you can choose to learn.
世界上有许多口头语言(实际上超过6,000种 !)–您还可以选择学习许多编程语言。
If you’re just starting out, I wouldn’t recommend that you learn Python, Ruby, JavaScript, React and Java all at once.
如果您只是入门,我不建议您一次学习Python,Ruby,JavaScript,React和Java。
That would be impractical.
那将是不切实际的。
You wouldn’t try to learn Chinese, Spanish, German and Portuguese at the same time, right?
您不会尝试同时学习中文,西班牙语,德语和葡萄牙语,对吗?
If you’re trying to pick your first language to learn, don’t stress! Pick one and learn it to a reasonable level of proficiency.
如果您想选择母语学习,请不要压力! 选择一个并学习到一定水平的熟练程度。
This first language will be the most difficult to learn because you are not only learning a language. You are also learning how programming works.
母语是最难学的,因为您不仅在学习语言。 您还将学习编程的工作原理。
Once you get good at one language, it will be easier to learn your second and third languages.
一旦您精通一种语言,学习第二种和第三种语言将变得更加容易。
All programming languages have common principles that run through them.
所有编程语言都有贯穿它们的通用原理。
And once you learn those principles, it’s more a matter of learning the new syntax and vocabulary, if you will.
一旦学习了这些原理,如果需要的话,更多的是学习新的语法和词汇。
Each language has its own quirks. But once you have laid the foundation of learning programming, it will be easier to pick up more skills later on down the road.
每种语言都有自己的怪癖。 但是,一旦您奠定了学习编程的基础,以后便会更容易掌握更多技能。
Now that you’ve picked your first language, let’s start at the first stage in your journey:
现在您已经选择了第一语言,让我们从旅程的第一阶段开始:
What’s the first thing you learn how to say in a foreign language? Usually, it’s the most basic greeting, how to say “hello.”
您学会用外语怎么说的第一件事是什么? 通常,这是最基本的问候,怎么说“你好”。
Coincidentally, learning how to output “Hello, world!” is often the very first thing that you learn how to do in a programming language.
巧合的是,学习如何输出“ Hello,world!” 通常,这是您学习如何使用编程语言做的第一件事。
After learning greetings, you move on to memorizing the vocabulary and basic grammar.
学习完问候语后,您将继续记忆词汇和基本语法。
In programming, you’ll learn concepts like variable types, methods, syntax, and how project files are structured.
在编程中,您将学习诸如变量类型,方法,语法以及项目文件的结构等概念。
It may not be all that fun to manually learn functions and to get stuck on minor syntax errors. But mastering these building blocks will give you the skills to keep moving up.
手动学习函数并陷入较小的语法错误可能并不那么有趣。 但是精通这些构建基块将为您提供不断发展的技能。
At this beginning stage, you are probably going to make a lot of mistakes. No, you will make a LOT of mistakes. But that’s okay!
在这个开始阶段,您可能会犯很多错误。 不,您会犯很多错误。 但这没关系!
The point here is not to learn something perfectly before you try to use it.
这里的要点是在尝试使用某些东西之前,不要完全学习一些东西。
In fact, making mistakes is a good thing, because you can learn from those mistakes. If you’re too afraid to risk doing something wrong that you don’t try, you will hinder your own learning process.
实际上,犯错误是一件好事,因为您可以从这些错误中学习。 如果您太害怕冒险尝试做一些错误的事情,那将会阻碍您自己的学习过程。
The key here is to make mistakes, to experiment with the new things you’re learning.
这里的关键是犯错,尝试正在学习的新事物。
Here’s one way you can experiment:
您可以尝试以下一种方法:
If you are going through a coding tutorial to learn a language, follow along with the lessons like usual.
如果您正在阅读编码教程来学习语言,请像平常一样上课。
But then take some time go off by yourself and play around with the code in your editor.
但是,请花一些时间自己动手,然后在编辑器中使用代码。
See if you can break the code you’re working on, and try to understand how and why it breaks.
查看是否可以破坏正在处理的代码,并尝试了解其破坏方式和原因。
Then try to rewrite the code yourself from scratch, only looking back at the lesson notes when you get stuck.
然后尝试从头开始重写代码,只有在遇到问题时才回顾课程笔记。
Experimenting like this will demand an up-front investment of time and energy. But it will pay off in the long run.
这样的实验将需要时间和精力的前期投资。 但是从长远来看,它会有所回报。
By playing around with coding concepts, you’re working out what makes them tick. This will help those skills to stick in your brain better.
通过研究编码概念,您正在研究使它们产生变化的原因。 这将帮助这些技能更好地融入您的大脑。
You can make this an intrinsic part of how you approach new ideas no matter your skill level. This technique of doing experiments as the path to expertise was the topic of a recent post by Michael Simmons.
无论您的技术水平如何,都可以将其作为处理新想法的内在部分。 Michael Simmons在最近的一篇文章中谈到了这种将实验作为获得专业知识的途径的技术。
For foreign languages, this is where things start to get more fun. The more you know, the more things you can do with your new language.
对于外语,这是开始变得更加有趣的地方。 您了解的越多,使用新语言就能做的事越多。
You’ll develop conversational skills. You will be able to understand a good chunk of what you’re reading and hearing in that language.
您将发展会话技巧。 您将能够理解该语言所阅读和听到的内容中的很大一部分。
You might even be able to make friends with native speakers of that language. Thanks to online language learning resources.
您甚至可以与以该语言为母语的人交朋友。 感谢在线语言学习资源。
In programming, the intermediate level means that you are starting to make sense of the principles of the language and what you can do with it.
在编程中,中级意味着您已经开始理解该语言的原理以及可以使用该语言做什么。
You still need to keep working on the basics. Read books, go through tutorials, and experiment. But you are starting to build a framework that you can continue improving upon over time.
您仍然需要继续学习基础知识。 阅读书籍,学习教程并进行实验。 但是您开始建立一个可以随着时间的推移不断改进的框架。
You can also learn to interact with other experienced developers in communities like GitHub. In fact, studying how other people are programming can help you immensely.
您还可以学习与GitHub等社区中其他经验丰富的开发人员进行交互。 实际上,研究其他人如何编程可以极大地帮助您。
For example, you can look at different GitHub repositories that interest you. See how other developers solve particular problems. Once you study a particular repository, you might notice a possible fix for an issue, and try to submit a pull request.
例如,您可以查看您感兴趣的其他GitHub存储库。 了解其他开发人员如何解决特定问题。 一旦研究了特定的存储库,您可能会注意到问题的可能解决方法,并尝试提交请求请求。
Even if the owner doesn’t accept your request, you will still have gained a bit of experience working with the code. Keep trying, and keep learning.
即使所有者不接受您的请求,您仍将获得一些使用代码的经验。 不断尝试,不断学习。
You can also get help and support from other programmers from online forums. Like Stack Overflow, Facebook groups, and Slack channels.
您还可以从在线论坛上获得其他程序员的帮助和支持。 像Stack Overflow,Facebook组和Slack频道一样。
There are a lot of people out there that are more than willing to help you figure out a bug. Then point you in the right direction. There’s a worldwide community of people all learning how to code out there!
有很多人乐于帮助您找出错误。 然后将您指向正确的方向。 全世界都有一群人在那里学习如何编码!
Hitting the slump
暴跌
Now I have to break a bit of bad news to you. At some point in your learning, you’ll feel like you’ve plateaued.
现在,我必须向您通报一些坏消息。 在学习的某个时刻,您会觉得自己已经达到了平稳状态。
You won’t be on the steep side of the learning curve anymore. But you may feel like there’s so much more distance to cover, with no end in sight. Let’s be honest, it sucks.
您将不再处于学习曲线的陡峭一侧。 但是您可能会觉得需要遮盖的距离太多,看不到尽头。 老实说,这很糟糕。
But, don’t despair!
但是,不要绝望!
This slump is a normal part of picking up any new skill.
这种低迷是学习任何新技能的正常部分。
At the very beginning, you’ll make a ton of progress and feel like you are gaining skills.
从一开始,您将取得大量进步,并觉得自己正在掌握技能。
But, as you get better and better, the more intermediate and advanced skills are more difficult to learn. Because, they are more advanced.
但是,随着您变得越来越好,越难掌握更多的中级和高级技能。 因为,它们更先进。
Mastering any skill will always take much more time than becoming an adept beginner.
掌握任何技能都比成为熟练的初学者要花费更多的时间。
If you feel like you’re stuck in this slump, don’t give up.
如果您觉得自己陷于这种低迷中,请不要放弃。
Be patient with yourself, and understand that it will take more time to keep moving up in skill.
对自己要有耐心,并了解保持技巧上的进步将需要更多时间。
Try not to burn out, and don’t put too much pressure on yourself to excel and be perfect.
尽量不要筋疲力尽,也不要对自己施加太大的压力以使其表现出色和变得完美。
Most of all, now is the time that having a strong support network, in real life and online, can help you. Reach out to others who may be in the same boat as you and swap stories and encouragement.
最重要的是,现在是拥有一个强大的支持网络(无论是现实生活还是在线生活)可以为您提供帮助的时候。 与可能与您同舟共济的其他人联系,交流故事和鼓励。
“Hey, I think I might actually be kinda good at this!”
“嘿,我想我可能真的很擅长此事!”
When learning a foreign language, becoming proficient is the destination that most people strive to reach.
学习外语时,精通语言是大多数人努力追求的目标。
Proficiency means that you are pretty confident that you can express any idea or feeling in that language. The way you want to. You are practically fluent at this stage!
熟练程度意味着您很有信心可以用该语言表达任何想法或感觉。 您想要的方式。 在此阶段,您实际上是流利的!
Hitting the proficiency level in a coding language or technology feels good.
熟练掌握某种编码语言或技术水平。
Although you may still struggle with impostor syndrome from time to time.
尽管您可能仍会时不时患冒名顶替综合症。
You will feel more confident in your own skills and your value as a programmer. You will be able to hit almost anything that clients or bosses throw at you.
您将对自己的技能和作为程序员的价值更有信心。 您几乎可以击中客户或老板扔给您的任何东西。
You know that even if you don’t know exactly how to do something. You have the tools to be able to research (Google) and figure out a solution with time.
您知道,即使您不确切地知道该怎么做。 您拥有可以进行研究的工具(Google),可以随着时间找到解决方案。
But, now is not the time to rest on your laurels.
但是,现在不是时候停下桂冠了。
Programming is changing and it moves fast.
编程正在改变,并且发展Swift。
You need to continue honing your skills. If you stop, your hard-won proficiency will start ebbing away.
您需要继续磨练自己的技能。 如果您停下来,来之不易的熟练程度将开始减弱。
Becoming complacent and stagnant will be a death knell for your career as a programmer.
沾沾自喜和停滞不前将是您成为一名程序员的丧钟。
The good news, though, is that by this time, you’ve gotten pretty good at learning.
好消息是,这一次,您已经很擅长学习了。
Having to learn a new language, framework, or tool won’t take you as long as it used to. And you might even enjoy the process!
像以前一样,不必学习新的语言,框架或工具。 您甚至可能会喜欢这个过程!
I hope you’ve enjoyed reading this article about how to learn programming. Like I said above, I’d love to hear what your programming goal is, as well as what you’re learning right now.
希望您喜欢阅读有关如何学习编程的文章。 就像我上面说的,我很想听听您的编程目标是什么,以及您现在正在学习什么。
? Read more tutorials on my blog, coder-coder.com.? Sign up here to get emails about new articles.? Join 25,000+ others — Follow @thecodercoder on Instagram.? Check out coding tutorials on my YouTube channel.
? 在我的博客c oder-coder.com上阅读更多教程。 ? 请点击此处以获取有关新文章的电子邮件。 ? 加入25,000多个其他人- 在Instagram上关注@th ecodercoder。 ? 在我的YouTube频道上查看编码教程。
翻译自: https://www.freecodecamp.org/news/learning-to-code-is-like-learning-a-foreign-language-bc20f9b7015a/
深度学习去燥学习编码