100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 刻意练习好好学习_如何使用刻意练习更有效地学习编程

刻意练习好好学习_如何使用刻意练习更有效地学习编程

时间:2021-10-08 05:41:55

相关推荐

刻意练习好好学习_如何使用刻意练习更有效地学习编程

刻意练习好好学习

I truly believe anyone can learn to code.

我真的相信任何人都可以学习编码。

At the end of the day programming is a skill, and acquiring a skill is open to anyone.

归根结底,编程是一种技能,而获得技能对任何人都是开放的。

Sometimes getting good at something appears to be a magical process. But in reality, there are clear steps to follow.

有时候,擅长某些事情似乎是一个神奇的过程。 但实际上,有明确的步骤可循。

Anders Ericsson, a professor at Florida State University, is a leading researcher of expert performers. He studies the process of acquiring a skill and what it takes to become an expert.

佛罗里达州立大学教授安德斯·爱立信(Anders Ericsson)是专业演奏家的领先研究人员。 他研究了获得技能的过程以及成为专家所需的条件。

Through his years of research, he concludes that what separates top performers from everyone else is the amount of time spent in something he calls Deliberate Practice.

通过多年的研究,他得出的结论是,使表现最佳的人与其他人区分开的是花费在他称为“故意练习”上的时间。

He believes that “The right sort of practice over a sufficient period of time leads to improvement. Nothing else.”

他认为,“在足够长的时间内进行正确的实践会带来进步。 没有其他的。”

I believe the Deliberate Practice framework developed by Dr. Ericsson can be used to help people learning to program.

我相信,爱立信博士开发的“审慎实践”框架可用于帮助人们学习编程。

Implementing Deliberate Practice has helped me in my personal life and I believe it can help you learn programming more efficiently.

实施故意练习对我的个人生活有所帮助,我相信它可以帮助您更有效地学习编程。

Below I’ll explain each component of Deliberate Practice and how you can incorporate Deliberate Practice in your coding journey.

下面,我将解释“故意练习”的每个组成部分,以及如何将“故意练习”纳入您的编码过程。

解构 (Deconstruction)

The first step of Deliberate Practice is to deconstruct and analyze your desired skill.

故意练习的第一步是解构和分析您所需的技能。

Deconstruction requires you to take a bird's eye view of your overall goal and break it down into small manageable components. You're trying to find the most efficient path from where you are to where you want to go.

解构要求您对总体目标有一个整体的了解,并将其分解为可管理的小型组件。 您正在尝试找到从您到目的地的最有效路径。

There are two ways you can go about deconstructing a skill. You can either break down the components yourself or learn from someone who has already acquired the skill.

解构技能有两种方法。 您既可以自己分解组件,也可以向已经学习该技能的人学习。

For someone learning to code, I'd recommend leveraging the knowledge of other developers instead of reinventing the wheel.

对于学习编码的人,我建议您利用其他开发人员的知识,而不是浪费时间。

Most of the material out there (like freeCodeCamp) was created by people who have put effort into deconstructing the learning process and have iterated on the material.

那里的大多数材料(如freeCodeCamp)是由那些致力于解构学习过程并重复使用该材料的人们创建的。

You can leverage their expertise and effort when you're looking for your own path forward.

当您寻找自己的前进之路时,可以利用他们的专业知识和努力。

Flip through a few different coding websites or read the Table of Contents of various coding books (you can preview books on Amazon for free). Also, read a few blogs or ask a developer friend for their opinion.

浏览一些不同的编码网站或阅读各种编码书籍的目录(您可以在Amazon上免费预览书籍)。 另外,请阅读一些博客或询问开发人员朋友的意见。

After a while, you'll get a sense of the best path forward.

一段时间后,您将了解前进的最佳途径。

Also, make sure your interests have a vote. It's hard to learn quickly if you're not interested in the material.

另外,请确保您的利益有表决权。 如果您对材料不感兴趣,则很难快速学习。

The most efficient route to learning to code is at the intersection of what the experts recommend and what you're interested in.

学习编码的最有效途径是专家推荐和您感兴趣的东西的交集。

Don't obsess about perfectly deconstructing the path to becoming a programmer. You'll never find the perfectly efficient route.

不要痴迷于完美地解构成为程序员的道路。 您将永远找不到完美高效的路线。

It's better to do a little research, start somewhere, and readjust as you go.

最好进行一些研究,从某个地方开始,然后随手进行调整。

延伸目标 (Stretch goals)

The next key component of Deliberate Practice is creating stretch goals.

故意实践的下一个关键组成部分是创建延伸目标。

A stretch goal is a small task that pushes you outside your current abilities and moves you along your deconstructed learning path.

伸展目标是一项小任务,可以使您超越当前的能力,并使您沿着解构的学习道路前进。

Creating stretch goals isn't so much about having a huge list of tasks you need to complete. The more important part is setting up your learning in a way that pushes the boundaries of your programming skills.

创建延展目标并不是要拥有大量需要完成的任务。 更为重要的部分是以一种突破编程技能界限的方式来建立您的学习。

We humans naturally favor the things that are easy and automatic.

我们人类自然喜欢简单而自动的事物。

However, if we push ourselves outside our comfort zones for long enough, our body will try to normalize the new behavior and make it a habit.

但是,如果我们将自己长时间推入舒适区之外,我们的身体将尝试使新行为正常化并养成习惯。

The objective of a stretch goal is to consciously put yourself outside your comfort zone and wait for your body to adapt.

伸展目标的目的是有意识地将自己置于舒适区域之外,并等待身体适应。

The trick to creating a stretch goal is making the task difficult but still achievable.

建立延伸目标的诀窍使这项工作变得困难,但仍然可以实现。

If the goal is too difficult, then you'll get lost and won't know how to move forward. If the goal is too easy then you won't develop as quickly as you could (or not at all).

如果目标太困难,那么您会迷失方向,不知道如何前进。 如果目标太容易了,那么您将无法尽快发展(或根本不发展)。

It will take some time to find the sweet spot.

找到最佳位置将需要一些时间。

At the start, a stretch goal could simply be a lesson on freeCodeCamp. As time goes on, a stretch goal could be implementing a button on your portfolio website without using Google.

开始时,延伸目标可能只是freeCodeCamp的一课。 随着时间的流逝,一个扩展目标可能是在不使用Google的情况下在您的投资组合网站上实现一个按钮。

The key thing to remember is that if a task feels easy you're probably not pushing yourself enough.

要记住的关键是,如果一项任务感到容易,那么您可能就没有足够的努力。

重点关注 (Focus and attention)

Focus is a foundational component of memory and skill acquisition.

专注是记忆和技能获得的基本组成部分。

When you try to encode new information into your brain, the strength of the encoding is directly linked to the intensity of your focus.

当您尝试将新信息编码到您的大脑中时,编码的强度与您的专注强度直接相关。

When your focus is weak, new information will be less sticky which will result in slower learning and more time studying.

当您的注意力不足时,新信息的粘性会降低,这将导致学习速度变慢和学习时间增加。

A common trait among people who learn programming quickly is they have the ability to intensely focus on whatever task they're performing for long periods of time.

快速学习编程的人的一个共同特征是,他们有能力专注于长时间执行的任务。

Think about how any world-class performer practices. They're probably not checking their phone every 5 minutes. They're most likely mentally locked into whatever task they're performing.

想想世界一流的表演者如何练习。 他们可能不会每5分钟检查一次手机。 他们很可能在精神上被锁定在执行的任务中。

Having good focus means eliminating all unwanted distractions.

集中精力意味着消除所有不必要的干扰。

There are two types of distractions, internal and external. Decreasing external distractions means shutting off your phone, going to a quiet room, and/or putting a site blocker on your computer.

有两种类型的干扰,内部干扰和外部干扰。 减少外部干扰,意味着关闭手机,进入安静的房间和/或在计算机上放置网站拦截器。

Taming internal distractions means not letting internal thoughts consume your time. This can be done by practicing meditation or having a notebook to write down whatever is on your mind.

驯服内部分心意味着不要让内部思想消耗您的时间。 这可以通过练习冥想或让笔记本记下您的想法来完成。

The key is to build a distraction-free environment and have a plan when a distraction inevitably pops up. You're probably already well aware of all the things that distract you.

关键是要建立一个无干扰的环境,并在无可避免的情况下制定计划。 您可能已经很清楚所有分散您注意力的事物。

(If you want more insights into where your time goes, I'd recommend using something like RescueTime.)

(如果您想了解时间的流逝,建议您使用RescueTime之类的方法 。)

Improving your focus is a process. In the beginning, try to be fully focused for a few minutes. As time goes on, slowly dial up the duration of your focused coding.

提高您的专注力是一个过程。 一开始,请尝试几分钟。 随着时间的流逝,请慢慢调出重点编码的时间。

When deliberately practicing your programming skill, it’s better to be 100% focused for a shorter amount of time than 70% focused for a longer amount of time.

刻意练习编程技巧时,最好集中精力100%的时间较短,而不是集中精力70%的时间较长。

It's might feel impossible to maintain focus since we live in a world that's constantly trying to grab our attention. Nonetheless, you must find a way.

由于我们生活在一个不断努力吸引我们注意力的世界中,因此保持专注可能是不可能的。 但是,您必须找到一种方法。

执行 (Perform)

The only way to get better at something is by actually doing it.

改善某件事的唯一方法是实际做到。

People often confuse acquiring knowledge with acquiring a skill. Knowledge is useful but it isn’t a substitute for actually attempting something.

人们经常将获得知识与获得技能混为一谈。 知识是有用的,但不能替代实际尝试。

Knowledge, in many ways, gives you a false sense of progress. You can watch 100 coding tutorials and feel like you're capable of coding your own website. However, once you go out and try to build one for yourself, you could end up falling on your face.

知识在许多方面都会给您错误的进步感。 您可以观看100篇编码教程,并觉得自己有能力编写自己的网站。 但是,一旦您外出尝试自己建造一个,就可能落在脸上。

It's like the difference between watching baseball and playing baseball. Watching helps you play but you can't become a good baseball player just by watching your favorite professional baseball team.

就像看棒球和打棒球之间的区别。 观看有助于您踢球,但仅通过观看自己喜欢的职业棒球队,您就无法成为一名优秀的棒球运动员。

Acquiring skills requires you to go out into the world and test your knowledge against reality.

掌握技能要求您走遍世界,并针对现实测试您的知识。

This isn't always easy. Practicing something new will attack your ego and make you feel incompetent. You'll want to quit or go back to something that feels more comfortable.

这并不总是那么容易。 练习新事物会攻击您的自我,并使您感到无能。 您将要退出或回到更舒适的地方。

Unfortunately, it's impossible to learn something new without looking incompetent (at least at first). You might as well get used to it.

不幸的是,要学习新知识而不要显得无能(至少在一开始)。 您不妨习惯一下。

As we talked about above, learning doesn't happen inside your comfort zone. Don't be surprised if you start to feel uncomfortable as you code. Discomfort is usually a sign you're headed in the right direction.

正如我们上面所讨论的,学习不会在您的舒适区域内发生。 如果您在编写代码时开始感到不舒服,请不要感到惊讶。 不适通常表示您朝着正确的方向前进。

Make sure you're constantly testing out your knowledge against the real world. Don't settle for reading tutorials or watching videos. Put your fingers to the keyboard and write some code that you can run.

确保您不断在现实世界中测试您的知识。 不要满足于阅读教程或观看视频。 将手指放在键盘上,并编写一些可以运行的代码。

反馈 (Feedback)

It's impossible to get better at anything without feedback.

没有反馈就不可能变得更好。

Imagine trying to improve your golf game but you are unable to see where the ball lands. There'd be no way to know if you're getting better.

想像一下如何改善高尔夫游戏,但看不到球着陆的地方。 没有办法知道你是否正在好转。

Feedback is the way reality communicates with you. It allows you to see the gap between what you think you know and what you actually know.

反馈是现实与您交流的方式。 它使您可以看到自己认为的知识与实际知道的知识之间的差距。

There are two ways to get feedback. You can get it through self-study or someone else can provide it.

有两种获取反馈的方法。 您可以通过自学获得,也可以由其他人提供。

Self-study requires you to compare what you attempted with the correct solution someone else posted.

自学要求您将自己的尝试与他人发布的正确解决方案进行比较。

This naturally happens when you go to websites like Stack Overflow or GitHub to find an answer to a problem. The feedback happens when you discover the gap between your answer and the correct answer.

当您访问Stack Overflow或GitHub之类的网站以找到问题的答案时,这自然会发生。 当您发现答案与正确答案之间存在差距时,就会发生反馈。

When you go to websites like Stack Overflow, make sure you spend time understanding why a chunk of code works and how it’s different. Copying and pasting without understanding the difference will rob you of important feedback that will help improve and update your skills.

当您访问诸如Stack Overflow之类的网站时,请确保您花时间了解为什么一段代码有效,以及它们有何不同。 在不了解差异的情况下进行复制和粘贴会夺走重要的反馈,这将有助于提高和更新您的技能。

You can also read through someone's code on Github and compare it to your own code (or compare it to your current understanding of how to code).

您还可以在Github上阅读某人的代码,并将其与自己的代码进行比较(或与当前对编码方法的理解进行比较)。

Ben Franklin used a similar strategy when he was improving his writing skills.

本·富兰克林在提高写作技巧时也采用了类似的策略。

He would read an article from his favorite newspaper a couple of times. Then he would deconstruct the techniques the author used. He would put the article away and try to replicate it in a similar fashion. After he wrote his version, he would compare the results and analyze his execution.

他会几次从他最喜欢的报纸上读一篇文章。 然后,他将解构作者使用的技术。 他会收起文章,并尝试以类似的方式进行复制。 写完版本后,他将比较结果并分析执行情况。

The other way to get feedback is by letting a more experienced developer see and comment on your code.

获得反馈的另一种方法是让经验丰富的开发人员查看并评论您的代码。

Having a fresh pair of eyes can help you solve individual problems and also can help you get back on track if you’re heading in the wrong direction.

一双新鲜的眼睛可以帮助您解决个人问题,如果方向错误,也可以帮助您重回正轨。

It might be scary having someone else look at your code (or even having a conversation with an experienced developer). None of us want to look dumb. If you can get over your fear, getting feedback from others can have a big impact.

让其他人查看您的代码(甚至与经验丰富的开发人员进行对话)可能会令人恐惧。 我们谁都不想显得愚蠢。 如果您能克服恐惧,那么从他人那里获得反馈可能会产生很大的影响。

One of my biggest regrets when I was teaching myself to code was that I didn't get enough feedback. My code was a mess and I was wasting a lot of time on unimportant things.

当我自学代码时,我最大的遗憾之一就是我没有得到足够的反馈。 我的代码一团糟,我在不重要的事情上浪费了很多时间。

Getting feedback from a more experienced developer would have saved me a lot of time and struggle. They would’ve instantly seen what I was doing wrong and put me on a straighter path.

从经验丰富的开发人员那里获得反馈将为我节省很多时间和精力。 他们会立即看到我在做什么错,并使我走上一条直路。

Think of feedback from an experienced developer as a compass. They won’t physically get you to your destination, but they will make sure you are going in the right direction.

将经验丰富的开发人员的反馈视为指南针。 他们不会实际将您带到目的地,但是他们会确保您朝正确的方向前进。

调整 (Adjust)

Feedback is worthless if you don’t actually use it.

如果您不实际使用反馈,则毫无价值。

Learning to code is like moving through a dark room. You start walking, bump into some furniture, adjust your route, and try again.

学习编码就像在黑暗的房间里穿梭。 您开始走动,碰上一些家具,调整路线,然后重试。

Based on the feedback you receive, it’s important to take some time to think about the gap between what you wanted to do and what actually happened. Based on that gap, make adjustments as you move forward.

根据收到的反馈,重要的是花一些时间思考您想做的事情和实际发生的事情之间的差距。 根据该差距,在前进时进行调整。

If you don't make adjustments, you won't improve.

如果不进行调整,就不会有所改善。

You'll need to adjust specific lines to code to make your program work. You'll also sometimes need to adjust your approach at a macro level.

您需要调整特定的代码行以使程序正常工作。 有时您还需要在宏观层面上调整方法。

Our initial instinct when we aren’t making progress is to try harder. This is only effective to a point.

当我们没有取得进展时,我们的本能就是努力。 这仅在某种程度上有效。

If you are not getting the results you want, try attacking things from different angles. It might take some experimentation to get it right.

如果没有获得想要的结果,请尝试从不同角度攻击事物。 可能需要进行一些实验才能使其正确。

重复 (Repeat)

Performing a task once isn’t enough.

仅执行一次任务是不够的。

Our minds don't store information like computers. We tend to forget new information just as quickly as we learn it.

我们的思想不会像计算机那样存储信息。 我们往往会像学习新信息一样快忘记新信息。

Learning something new requires you to repeat a task multiple times before it sticks.

学习新知识要求您重复多次任务才能坚持下去。

Repetition is a signal to our brains that a new piece of information or a new behavior is valuable and shouldn't be forgotten.

重复向我们的大脑发出信号,即一条新的信息或一种新的行为是有价值的,不应被遗忘。

The repetition stage of acquiring skill is not easy. It’s not supposed to be. You are consciously trying to reprogram your brain and your body will naturally want to do what's familiar.

学习技能的重复阶段并不容易。 不应该这样 您正在有意识地尝试重新编程大脑,并且您的身体自然会想做熟悉的事情。

You will need to consistently apply effort towards learning to become proficient.

您将需要不断地努力学习以变得精通。

The only sure-fire way to fail at learning to code is quitting. If you don't quit and maintain consistency, you will be able to repeat the important coding material and everything will eventually start making sense.

失败的唯一无法学习代码的方法就是放弃。 如果您不退出并保持一致性,那么您将能够重复重要的编码材料,一切最终都将变得有意义。

No matter how tough it feels, make sure you develop a consistent study habit. It is nearly impossible to learn coding without one.

不管感觉如何艰难,都要确保养成一致的学习习惯。 没有编码,几乎不可能学习编码。

For a deep dive into how you can be more consistent, I wrote an article about specifics techniques you can use.

为了深入了解如何保持一致, 我写了一篇有关可以使用的特定技术的文章 。

结论 (Conclusion)

The process of acquiring skill is simple, but it’s not easy. You are your biggest enemy in the process.

获得技能的过程很简单,但这并不容易。 在此过程中,您是最大的敌人。

Old habits are hard to break. Each new skill is its own battle to be won.

旧习惯很难打破。 每个新技能都是要赢得的战斗。

Stay focused, make sure you're pushing yourself, adjust based on the feedback, rinse, and repeat.

保持专注,确保自己在推动自己,根据反馈进行调整,冲洗并重复。

If you follow the Deliberate Practice framework, I believe you’ll surprise yourself with the speed that you pick up programming.

如果您遵循“故意练习”框架,那么相信您会以编程的速度感到惊讶。

Best of luck.

祝你好运。

If you want to hear about other insights I've learned along the way, follow my account Zero to Programmer on Twitter. The goal of the account is to help you learn programming more efficiently.

如果您想了解我在此过程中学到的其他见解,请在Twitter上关注我的帐户Zero to Programmer 。该帐户的目的是帮助您更有效地学习编程。

翻译自: /news/how-to-use-deliberate-practice-to-learn-programming-fast/

刻意练习好好学习

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