In BlogPost, Career

7 Hacks To Help You Learn a New Programming Language

It’s been a while since I was actively trying to come up to speed on using the Ruby programming language. I remember trying to teach myself everything at once – the Rails framework and the Ruby programming language it was based on.

learning programming language outside your comfort zone

I had decided to do this so I could freelance and pick up some contracting gigs while I was working on my next opportunity. Recently, I have been dabbling with Elixir.

So I started to reflect on what it took for me to learn a programming language to the point where I could feel comfortable with it.

Upon further reflection, I realized my learning method consisted of both mindset and action.

Part 1 – Mindset

The first thing to note is that I was so enthusiastic about learning Ruby that my mindset was pure hunger. I just wanted to learn. I attended study groups, read books, and programmed like crazy. So I didn’t need any of the mindset hacks I’m about to discuss.

Hack 1: Overcome imposter syndrome

But as you go on in the industry, you may hear about something called imposter syndrome that a lot of programmers suffer from. Imposter syndrome is a feeling that they aren’t good enough.

This happens to me today and I found I just have to get over myself.

No one can know everything and the best way to learn something new is to just get started.

Hack 2: Ignore critics who say you’re not good enough

I remember my parents being somewhat skeptical of my plan to move from the east coast to California and do freelance programming.

Ultimately, I didn’t end up staying freelance, but I did learn enough to get a programming job.

Bottom line: ignore critics who say you’ll never do it.

Hack 3: Get comfortable with being uncomfortable

One thing that stopped me is feeling out of place. It’s very easy for me now to start a project in Ruby because I’m so comfortable with it. But when I first started, I remember trying to wrap my head around the concept of blocks.

Now that I’m learning Elixir, I’m trying to get comfortable with the idea of immutable data.

Go outside your comfort zone always.

Part 2 – Action

While you’re working on your mindset, it’s important to take action to learn. As I said before, this happened naturally when I was learning Ruby because I was so enthusiastic.

Hack 4: Set aside the time

Working a full time job, it can be hard to find time. I use a calendar to make appointments with myself. Sometimes this means I say no to doing something on a weekday night so I can make the time to learn.

One of the fastest learners I ever saw in one of my programming study groups would learn a new language or framework every quarter. He truly inspired me.

Hack 5: Actively work (not passively) or project based learning

I do project based learning. Before I used to read whole books before even typing anything into a file.

Over the past couple of years, I’ve learned I’m much better off trying to tackle something outside my comfort zone (which happens when I do side projects).

For myself, the main problem with reading is that it’s too passive for me. I can read and then I might have trouble remembering a particular concept unless I actively do something with the material.

Hack 6: Have a well-defined goal

For learning something new, I find it’s best to have a well-defined goal. You can’t learn everything at once, so I find it’s best to pick a small goal.

For example, for Elixir, one of my goals is to write a small program that implements a version of the Traveling Salesman Problem. This really forced me to learn the Elixir programming API in a way that reading it never could.

So give it a try. A good learning process differs from person to person I think.

Hack 7: Make it gradually harder

Wherever your skill level is at, striving to make your learning challenges gradually harder helps you master the language and its nuances.

Summary

Learning a new programming language takes time and energy. Hopefully these hacks around mindset and action can help take you where you need to go.

Recent Posts
elixir logo from github