How to learn a new programming language in an efficient way?

Sagarika Dalai
3 min readApr 1, 2022

--

Photo by Mohammad Rahmani on Unsplash

Hey Guys, let’s discuss how we can learn something new in an efficient way.

1. Taking online courses and watching videos:

I enjoy these courses since I can pause and start at my own pace. Many online platforms allow taking notes or bookmarking frames. Others provide exercises that can be done and shared with the instructor or other members.

There are many platforms that offer online development courses. Some are short and specific, while others need more time and money investment.

Examples:
1) udemy.com
2) coursera.com
3) edx.org
4) teamtreehouse.com
5) udacity.com
6) theodinproject.com
7) codeacademy.com
8) khanacademy.org
9) pluralsight.com
10) freecodecamp.org

2. Doing a side project:

As a start online courses are beneficial. However, it is only when I do a side project on my own that the new information really kicks in and I got used to it. As with learning other stuff, exposure is key. Even if it is a small code addition, getting exposed to the new concept helps a lot in information retention.

3. Reading the official documentation:

This is usually my first step when I start learning a new language or concept. Often, the documentation is well-written and broad. In addition, depending on the material there, I may opt-in for taking an online course, watching videos, or reading articles.

4. Reading blogs posts and articles:

While drinking coffee, I usually give myself half an hour in the morning to read about new stuff I’m learning. I read blog posts and discussions to get new ideas or clear some misconceptions.

When coding, I often use StackOverflow, GitHub discussions, and other blog articles that help me in the new territory.

My favorites general blog platforms are:
1) dev.to
2) medium.com
3) stackoverflow.com
4) github.com

There are many other blog platforms that are specific to certain fields, like CSS, javascript, or HTML. I can not list them all since there are so many.

5. Following people on Twitter:

This will allow me to follow the latest trends, discussions, and thoughts and get links to the latest articles and posts.

6. Exposure to community/peers:

Meeting people who have experience in that field, exchanging knowledge, and discussing new trends or best practices is very important. This is either in my workplaces like pair-programming or reviews or in external places like conferences and meetups.

I am guilty of my shortcomings in attending conferences and meetups and am trying to improve this as soon as possible.

7. Being consistent in learning:

Everyone has their own pace in learning, and I don’t compare myself to others. I usually learn a part or module every other day and implement it. Most importantly, I do not stress myself and keep it fun.

8. Taking a break:

When I feel overwhelmed with the new material, I take a break and do something else. The break may vary from a couple of minutes to several days. When I feel relaxed and rejuvenated, I come back to the topic with a refreshed mind and new energy.

9. Selecting enjoyable topics:

I usually select topics I enjoy doing, which are now related to the web. Most of the time, I select a topic that compliments my existing knowledge but does have not enough experience or exposure.

10. Sharing what I know:

After having enough exposure and experience in the new material, it’s time to give back and share when I can. This is with work colleagues, local communities, online blog posts and articles, and open-source projects. Open-source projects are one aspect, which I unfortunately lack, and am planning to improve in as well.

11. Doing a real-time client project:

This will forge everything I learned and will expose me to new depths in the new language.

In the end, it takes time depending on each person to fully understand a new topic. That said, what’s your process for learning something new?

That’s all for now. See you soon with a new blog :)

--

--