My advice on how to learn programming technologies

I did a lot of studying in my 28-year long life. And I expect to do a lot in the future. Being able to learn new skills is crucial, especially in the tech industry, where I work. Over the past few years a number of programming bootcamps and MOOC platforms increased, and with them the number of people that are learning to code. There are a lot of “beginners” that often don’t know where to begin. Which studying methods to use, which resources, where to get help. So in this article I’ll share my advice that are a result of my education, my work experience and my membership in the tech community.

Choose the technologies you want to learn

There are a lot of programming languages, web frameworks, databases… out there. It’s important to pick the ones you want to learn. The decision should be based on what kind of a tech job you want to do (backend web developer, frontend web developer, data scientist, dev ops…). For each job type there are some popular technologies. If you’re a beginner, I’d advise choosing some popular programming language (for example, for web it’s Ruby). The reasons are a big community that created a lot of tutorials, StackOverflow wisdom and there are a lot of jobs.

An example of Ruby on Rails code of my food blog

Choose the right resources

It’s essential to find the best books, online courses and tutorials out there. Because studying takes time and why waste your time on poor material? To find the good studying material, Google it or ask around. I definitely recommend reading books because they explain concepts in a form of a story and often in bigger depth than online courses. Also it looks good in your CV if you mention that you’ve read some programming books.

Resources I used when I was studying Ruby on Rails

Make a studying plan

Decide which time in your schedule you’ll dedicate to studying. Personally I study everyday at work (by reading articles, watching MOOCs, reading books) and on Sundays afternoon I study non-work-related things like machine learning. Even if you have a busy schedule, you can always find some hours in your week to dedicate to your goal. Early in the morning, after dinner, on the weekends — choose what works best for you. But it’s important to come up with a plan and stick to it.

Ensure a good studying environment

Concentration is key when it comes to studying. So make sure nothing can interrupt you while you’re doing it. That means putting your phone aside, not checking Facebook and email… My ideal studying “env” is to be alone in a room.

Maintain a positive mindset

At the very beginning of your studying journey you will likely feel a bit insecure or afraid. But those negative emotions will serve you no good. Instead you should ignore them and “just do it”. After some time, when you see the first results, you’ll become more motivated to continue. Chances are you’ll get hooked on programming quickly and the fear will disappear and be replaced with passion.

Also, always keep in mind why you’re doing it. Is it to have a more interesting, better payed job? To become a freelancer and work remotely from anywhere in the world? Visualise the final result and it will motivate you to keep on studying.

Make notes

Ever since elementary school I wrote notes while studying. For example, I’d read the presentations and the lessons in books and extract the most important things in my notebook, in my own words. Then I would re-read those notes while doing commute or while revising for the exam. Like the famous Latin proverb says, repetitio est mater studiorum. Nowadays I no longer use notebooks but Google Docs. I have a file for every technology I’m studying. When I read/hear something important or useful, I note it in the corresponding file. For example, when reading a book or watching a MOOC. I re-read those notes when I have time or need to refresh my knowledge of that particular technology.

My Computer Science studying notes. This was about state machines and if you’re wondering, the language is Croatian.

Connect with the community

There are a ton of tech meetups on Choose the ones that interest you and go meet the people from your community. The meetups include talks where you can learn stuff and networking where you build your network. Also some meetups have Slack channels so you can ask questions if you’re stuck with some problem, see job postings etc. I am a big fan of the concept since through meetups I made a lot of friends and expanded my network and knowledge. One last thing — meetups are great if you want to be recruited ;)

…and don’t forget to code!

An indispensable part of studying programming is actually programming. So practice what you learned in those books and tutorials by solving kata (my favourite sites are HackerRank, Exercism and CodeWars) and by doing a personal project. Ideally it will be something that interests you. That way you’ll be more motivated to do it. When I was a junior, I did a food blog in Ruby on Rails and it helped me to learn faster. Also since as a beginner you don’t have a lot of experiences to put in your CV, personal projects can be a good substitute.

That was my advice for studying programming (but some of them can be applied to other domains too). I hope they will be of some help!