How To Learn a New Programming Language Fast

Jun Wu
Apr 25, 2020

Contents Outline

How To Learn a New Programming Language Fast

Apr 25, 2020 6 minutes read


Photo by Marvin Meyer on Unsplash

People often marvel at a star programmer’s ability to pick up any language extremely fast. “This person must be gifted,” they’ll say. This person must be good at science and math.

The truth is that becoming a master learner is a practice. The more you practice learning any skill, the more you will understand how to learn any programming language with the speed and agility of a star programmer.

Each person is different. People think that there must be some shortest route to this learning problem. But the learning problem is tailored toward the type of thinker you are. Are you a bottom-up thinker, a top-down thinker, a visual learner, or an auditory learner? You are the architect who can design your learning solution. I am here to simply help you get there faster.


Qualifications

When I started programming 15+ years ago, I had to pick up four programming languages in six months for a project that was due at the end of the year. My career was riding on it. Before that year finished, I not only learned these four programming languages, but I also completed that project.

When I started my career, I went on a graduate training program where for six weeks we had to pick up the entire undergraduate course work of various parts of finance: corporate finance, interest-rate products, equity products, etc. I barely passed that training program because up until that point, I had no prior finance education. But I passed the program.

Am I gifted? No. Am I a master learner? No. Because I grew up in a household where I received no love unless I performed, the pressure enabled me to learn this one trick that I applied over and over again.


The # 1 Trick in Learning

I have found a trick that works for me through practice and pressure. I didn’t realize I found my trick until someone asked me one day, “Do you remember the books that you read from childhood?” I replied, “No, I don’t. But, I’ve internalized these books.” These were fiction books that this person was talking about.

But I realized I’ve internalized the struggles from the characters and learned from the struggles of the characters. Even though I didn’t remember the details of the book, I didn’t have to go back to re-reading the book because I’ve internalized the most important parts of the book.


How Do You Go About Internalizing the Most Important Concepts?

If you study so-called gifted education, you will realize that gifted peopleare people who are more sensitive than the average person. The way they pick up knowledge fast is mainly due to their sensitivity. Because they are sensitive to anything presented, they can internalize the knowledge faster than anyone.

All of us who are not gifted can pretend that we are gifted and implement a method to internalize concepts. This method will enable us to learn as a gifted person learns. We may take longer than the gifted person. But we will nevertheless get there faster than we did before.

The method has to be tailored to the type of learner you are: visual learner, auditory learner, reading/writing learner, or kinesthetic learner.

You can straddle a few different types and be in the middle of the quadrants. For instance, I am a visual learner who has learned to be a reading/writing learner at school. At work, due to my programming profession, I became a kinesthetic learner.

By figuring out which type of learner you are, you can immerse yourself in the type of mediums that will enable you to learn the best. By immersing yourself in the medium, you will heighten your sensitivity to the subject. This way it is much easier to internalize the concepts.


Types of learners (illustration by Jun Wu)

Visual learner

If you are a visual learner, you love visualizing ideas and concepts. You can create mind maps of the concepts. I am a visual learner. I often use a whiteboard to diagram all the components of the concepts in my programming books. I also diagram all of the components of the systems I am building. Once I do it once, it’s easier for me to imprint the image into memory.

Tools for learning:
YouTube videos, lists-oriented training, diagrams, mind maps
Exercises for remembering: create mind maps, make modules, create Visio diagrams

Auditory learner

If you are an auditory learner, then you are likely to learn by listening to someone talk about the subject.

Tools for learning:
audiobooks, podcasts, TED videos, classroom instruction
Exercises for remembering: teaching the concepts to someone else, coding with a buddy and teaching each other.

Reading/writing learner

If you are a reading/writing learner, then you are likely to learn from reading programming books and taking notes.

Tools for learning:
programming books, making list, taking notes
Exercises for remembering: writing a blog about concepts learned, creating question/answer lists

Kinesthetic learner

If you are a Kinesthetic learner, then you learn best by doing. You like to engage in learning that involves physically acting out what you have learned.

Tools for learning:
programming projects, study groups, coding competitions
Exercises for remembering: tracing through mind maps, coding with Visio block diagrams, engaging in different coding projects with a buddy


How Do You Practice the Concepts You’ve Internalized?

Practicing the concepts you’ve just learned is just as important as internalizing the concepts. From my experience, the first time you internalize something, it’s in your short-term memory. For you to remember it for the long haul, you must practice these concepts over and over again.

Here are resources where you can practice concepts that you have learned:

CodeChef
— This is a website that contains practice modules and holds competitions for programming. Particularly for algorithms coders, this is the website to be to practice what you have learned.

Coderbyte
— This is a website where you can solve coding challenges and view other people’s coding solutions.

HackerRank
— This is a website where you can practice with coding challenges and learn from tutorials.

CodinGame
— This is a website where you can solve coding challenges tied to online games.

Practice working on projects

Once you’ve had the practice you need to master concepts, then you are ready to work on projects.

1. Create one project per language that showcases all the important concepts of the language.

For instance, if you use Ruby/Rails, you should try to build a website; if you are learning SQL, you should install and put together a database; if you are learning data science, you should analyze a dataset trying different algorithms with it.

2. Code interviews are the best practice around.

Technical interviews can be grueling. The way to master these interviews is really to look at it as practice for the big leagues. You can prepare for it by using some interview-preparation sources, such as Cracking the Coding Interview, LeetCode (practice coding with an online judge, Gainlo (mock interviews with professionals), Glassdoor (practice past interview questions), and GeeksforGeeks (look at the solved questions).


Conclusion

Now you know becoming a master learner is a practice. By internalizing concepts, anyone can become a master learner of programming languages fast. Like a gifted person, if you heighten your sensitivity around the subjects you learn by immersing yourself in a learning medium (e.g., audio, visual, words, etc.), you will learn faster than ever before.

After you’ve learned the concepts, you can practice the concepts through projects, code interviews, and coding competitions. In no time, you will be hired as a programmer.

What are you waiting for?
Join our private community in Discord

Keep up to date by participating in our global community of data scientists and AI enthusiasts. We discuss the latest developments in data science competitions, new techniques for solving complex challenges, AI and machine learning models, and much more!