How to Learn a New Programming Language Effectively

Learning a new programming language does not have to be boring or difficult.

Developers can and should learn to study smartly when they attempt to learn a new programming language. The ability to learn a new programming language effectively will scale and become more pronounced as the developer continues to invest their time and effort into sharpening their skills.

The days of monoglot programming are behind us.

If you examine job posts for developer jobs, they usually list at least two languages and also a working knowledge of multiple frameworks.

Therefore, the need to continue learning new frameworks and programming languages will continue to exist into the near foreseeable future.​

In this post, I wish to address developers that are already proficient at one or more languages.

Unlike the other posts, where I go into extreme depth, I will aim to keep this post short and concise.

If readers want more detailed content, I might add a "read more" tab with details in this post later on. Let me know via comments :).

More...

1. Have a Good Reason for Learning the New Programming Language

Before proceeding, answer this question.

Once you learn that new language, will you be using it on a regular basis?

By regularly, I am talking about minimum three hours of coding in that language every week, spread throughout at least three days.

I think even three hours a week is not enough.

Consistency is key when learning a new programming language.

What is your reason for wanting to learn <insert language>?

If the reason you want to learn is to be cool or just because the language is popular, you are not going to get far.

First of all, ask yourself if there is an actual avenue for yourself to continue using that language on a regular basis. Some good avenues include

  • Using that programming language at your job.
  • Starting and finishing a side-project.
  • Learning the new programming language to change jobs.

2. Familiarize yourself with the Syntax, Structure and Conventions of the Language

You are probably thinking "duh ... " right now. 

However, I ask you to critically assess this statement.

First of all, allow me to break down the components called syntax, structure and conventions. Let us start of with syntax.

If you have been programming for some time, you should be aware of the fact that each language has its own unique set of syntaxes. Because languages share many common points, some of these syntaxes might seem very familiar at first.

One primary example is the addition operator, the while loop and the if statement.

But let me warn you.

Familiarity breeds contempt. And contempt breeds a false sense of security and a defiant spirit.

Click to Tweet

​If something feels familiar, naturally, you will be less inclined to explore it. This can prove very dangerous when learning a new language. 

For example, lets start off with the double equals operator ( == ) ​in JavaScript. 

JavaScript veterans wil​l know that there is a huge difference between double equals ( == ) and triple equals ( === ). 

However, those coming from a Java background will look at the following equality check and make assumptions. Why? Just because they have seen == all around JavaScript when performing sanity checks or checking for equality.​

3. Re-visit the Fundamentals of Programming in the New Language

If you already know a programming language, you will most likely know which parts are the most important. In order to learn a new programming language speedily, focus on the key parts.

Fundamentals are called fundamentals, because they form the foundation of the given topic. Programming is no exception and all languages are built upon that foundation. Therefore, if you have a strong foundation, transferring that into a new language takes less time.

String API, collections, built-in data structures. Hopefully these keywords ring a bell.

In case you are wondering, here is a list of key items you should learn in order to learn the new programming language in a timely manner. This list is always subject to change based upon evaluations, research, as well as testing.

  • ​Basic syntax for fundamental programming concepts (E.g. control flows, variable declarations, etc.)
  • String API
  • Numbers API (includes all number types E.g. double, float, long, int, etc.)
  • Call by Reference vs Value
  • If it is an object-oriented programming language, class creation, inheritance and polymorphism.
  • Built-in Data Structures
  • Built in API for multi threading and/or asynchronous programming. 

4. Code Consistently

​I touched upon this briefly on the first point.

You can read all the books that you want. But unless you apply the knowledge, don't expect to be able to learn the language. 

For example, I can read all the books that I want about Mandarin. But unless I start speaking, reading and writing in Mandarin, I will never actually learn the language.

There is a reason why they are called programming languages.

I recommend you to code at least an hour a day. ​I underlined hour a day because it is important to be consistent. Coding an hour a day is more effective than coding 5 hours on Saturday, Sunday and not coding during the week.

5. Keep your Morale High

Motivation is one of the most important factors when learning a new language.

In order to continue learning, you must continue coding. Sounds simple right? The problem is, however, that people stop coding. Reasons include the following (but not limited to):

  • Becomes too "difficult"
  • Boredom

It all boils down to demotivation.

Therefore, search yourself. Find out what keeps you motivated. Some good ways of making sure that coding does not become a chore include the following.

  • Code with a friend or a group of people with common interests.
  • Apply your knowledge by working on a side project.
  • Find an accountability partner to keep you in check.

6. Code with an Expert in that Language

If you code regularly on your own, there is a high chance that you developed tunnel vision. This may lead to you being unable to think of alternative solutions. 

Coding with a master in a particular language is easily one of best ways to learn the language. As you code with them or watch them code, you are able to see them code and utilize features of the language that you have never used or have little knowledge of.

Even better, ask if it is okay to take a break and watch that expert code.

As you watch them code, since you are not coding yourself, you have the freedom to process the way they approach the task at hand, their usage of the language's built in API. 

7. Build Meaningful Applications

​There is no point in learning a language if you are not going to use it right? 

One of the best ways to retain and solidify knowledge is to build something meaningful with that application.

How do I define meaningful?

Well, if you find purpose​ in writing code, sacrificing your energy and efforts to see this thing through to completion, it is meaningful.

The most important point when building an application is that you complete the application. You only reap minimum benefits if you drop out half way.​

Ideas for Projects/Application

8. Read High Quality Code

Each programming language has its own set of best practices. If you want to learn to write good code, you need to first know what good code is. 

The best way to find out is to crack open some good quality open source code and read through it. If you have solid fundamental programming knowledge, working through the open source code should not be impossible. 

It will be challenging at first, but you will reap huge benefits in the long run. The investment of time and mental energy is well worth it.

A good way to tell whether the source code is good is to check the number of stars and forks on GitHub. ​

9. Ask an Expert

In this day and age, we go to Google for answers. But an even better source for answers to your question is a nearby expert (assuming you know somebody).

Below are some questions that you can ask.

  • When learning <insert language>, what are some points that you wish you knew before learning the language?
  • What topics should I learn first when starting out?
  • Are there any gotchas that I should be aware of when learning <insert language>?
  • What is the most important concept to understand/know when learning <insert language>? 
  • What are some great ways of developing a solid foundation in <insert language>?
  • What are some great ways of practicing and learning <insert concept> in <insert language>?

10. Find a Mentor

Programmers work in teams. Therefore, it makes sense to seek out mentors. You learn. You also gain experience and the opportunity to work with somebody else.

Kill two birds with one stone right?

Mentors speed up the process of learning drastically. 

Good mentors will provide you with better answers that Google could ever give. 

They teach you not just the hows, but why. Ever read a tutorial and left thinking there was much to be desired? Well, with a mentor, you can ask away to your hearts content.​

Immediate responses to your questions with minimal filtering.

Specific, detailed answers tailored just for you and your situation.

You get the gist right?

If you don't have people around you that can fill such shoes, and you are willing to fork out the cash, I suggest trying out codementor

11. Build first. Ask Questions Later.

If you are like me, you probably want to analyze the problem at hand, draw use case diagrams, etc. to organize your thoughts.

But sometimes, especially when learning a new programming language, you may not know the "most effective" way to code a solution. 

Therefore, once you have drawn the big picture, or a general idea of what you want to build, start writing the code.

Get your solution working first. 

After you have a working solution/finished product, you can start asking the questions.

Not starting and endlessly reading API documentation/books on the programming language can set you back way more than expected. 

When learning a new programming language, the most important point is to actually use the language.

Trust the process. The answers will come naturally along the way.

Learn New Programming Languages Creatively

All the methods described above are recommended ways to learn a new programming language quickly. However, we all know that each person is unique. Some of these methods might not work for you. 

These methods are a springboard for developers seeking to learn a new programming language. 

Experiment and find out what works best for YOU as an individual. If you have any recommendation/suggestion, I would love to hear about it. 

Please leave a comment below. That would help tremendously.

I am going to be continuously updating this list, as I ponder, revise my thoughts, conduct tests and do some additional research.

Thank you for reading!

If you liked this post, please share this with other people. I hope that you got a lot of insight into how to learn new programming languages quickly. 

 

About the Author Jay

I am a programmer currently living in Seoul, South Korea. I created this blog as an outlet to express what I know / have been learning in text form for retaining knowledge and also to hopefully help the wider community. I am passionate about data structures and algorithms. The back-end and databases is where my heart is at.

follow me on:
19 Shares