DEV Community

Cover image for 14 Research-Backed Techniques To Learn To Code 2x Faster
Gus Pear 🍐
Gus Pear 🍐

Posted on • Edited on

14 Research-Backed Techniques To Learn To Code 2x Faster

I’ve been fascinated by “how to learn anything faster” since I was 18.

I found an online course promising English fluency in 6 months (I’m Brazilian).

I was sold.
It took me 10 years.

After studying countless articles and half a dozen books on the topic, In the following 12 years, I learned more stuff than most people will learn in their entire lives.

Some of the things I've become:

  • A pencil portrait artist
  • Translator
  • A qualified carpenter
  • A commercial airplane pilot
  • A software developer

Here are the 14 researched-backed techniques to

  • Learn to code 2x faster
  • Don’t forget what you learn
  • And Understand hard concepts

#1 Make your practice as close as possible to the goal

If you are getting prepared for a white-board style interview, you should try and simulate the real interview conditions as closely as possible:

  • Use a white-board(duh) or pen and paper to solve the problems
  • Set a 45min timer (or whatever time they usually give at interviews)
  • Describe your reasoning as you code (as if talking to the interviewer) The closer your practice resembles the real thing, the more prepared you’ll be.

#2 Passive learning doesn’t work

In coding (as in most other things) passive learning has little effect.

You have to code things out to learn.
Just read about the merge sort algorithm? Now get your PC and write it out.

Watched a tutorial on how to build a menu navbar? Now it’s time to try it out for yourself.

1 hour of active learning = 10 hours of passive learning (maybe more)

#3 Practice with purpose

You should set specific goals for your coding practice and focus on areas that need improvement.

For example:
Goal
I want to build a chrome plugin using chatGPT and notion APIs that does x.
Steps
Divide the goal into tasks and choose to complete a single task every morning.

#4 Connect new concepts to things you already know

For example, if you're learning about object-oriented programming, think about how it relates to other programming paradigms you've learned or to things in the real world (e.g. the class is like a factory and the object instance is like one product of that factory).

#5 Create mental models

Create mental models of coding concepts to better understand them.

For example, if have are learning about recursion, try to sketch out a diagram to help you understand the flow of the code
Like in this post

#6 Always try to recall from memory

Say you have just learned a concept or a piece of syntax. Now, try to recall it from memory without looking it up.

For example, after reading about a for loop, try to write out an example of one from memory.

You don't have to get it right to reap the benefits, you just have to try.

#7 Space it out

Practice a little regularly rather than a lot once.

For example, code for 1 hour every day instead of for 7 hours once a week.

#8 Mix it up

For example, if you are solving coding problems, don’t solve all array problems, then all graph problems, then all linked list problems. Instead, solve them randomly.

You’ll have to figure out what type of algorithm and data structure is needed to solve that problem(like in a real code interview, no one is going to tell what the problem is about).

#9 Reflect on what you have learned

After a coding session, take a few minutes to reflect on what you learned and what you found challenging. Write down any questions or areas you need to work on.

#10 Tune it up

Regularly check your skills and understanding by testing yourself with quizzes or coding challenges or asking for feedback from others.

#11 Break it up

Break larger coding tasks into smaller, more manageable pieces. For example, if you're building a website, break it down into specific pages or features.

#12 Ask for feedback

These days you can also tell chatGPT to play the role of a grumpy senior dev to check your code.

Try to get feedback on your coding from more experienced developers. Use feedback to improve.

#13 Rehearse mentally

I used this one a lot during my pilot training(it’s free to fly in your head)

When you are commuting to work for example and don’t have a computer with you, you can for example, mentally go over the steps needed to create a button that toggles a sidebar.

#14 Rest and recharge

This is as important as the other ones.
In the beginning, you don’t give a s***, but when you feel the burnout creeping in:

  • Take breaks and engage in activities that allow for mental recovery and relaxation.
  • Go for a walk or watch a movie.

Top comments (7)

Collapse
 
ant_f_dev profile image
Anthony Fung

I would probably recommend doing #6 selectively. It's a good idea for something like learning for loop syntax.

However, attempting to memorise an entire API, e.g. syntax for d3.js, or even chartJS is going to be challenging.

Collapse
 
gustavupp profile image
Gus Pear 🍐 • Edited

Hey Anthony, how is it going?

You are right, you should not try to memorize an entire API or all the syntax of a language.

6 is for you to "try to recall" from memory. The effort of just trying to recall something increases the chances of persisting that information long term.

Thanks for leaving a comment and have a great weekend!

Collapse
 
ant_f_dev profile image
Anthony Fung • Edited

Thanks for clarifying!

Yes, I agree: I remember when I was learning to touch-type. I was following tutorials that told me to try to not look at the keyboard as I was typing the on-screen prompts. It was really challenging because I couldn't remember which finger should press which key, or where that key was at first.

Have a great weekend too!

Thread Thread
 
gustavupp profile image
Gus Pear 🍐

touch typing class

Collapse
 
twixmixy profile image
Janet Webster

This is a great list! Thanks for sharing. I've recently implemented several of these techniques into my self-paced coding bootcamp.

Also... "reap the benefits" under #6
https://www.google.com/search?q=rip+the+benefits&rlz=1C5CHFA_enUS774US774&sourceid=chrome&ie=UTF-8
RIP = rest in peace

Cheers!

Collapse
 
gustavupp profile image
Gus Pear 🍐

I am glad you liked it Janet and massive thanks for catching the "rip" haha 🤎🤎

Collapse
 
etyplt profile image
Emil Typlt-Tufvesson

list in scam. learn my working!