Programming 101: getting started.

I started programming vaguely when I was about 14 and had my own website that consisted of 80% flashy and animated glitter text and 20% pictures of my friends (with loads of hearts around them). I loved the structure and the (horrible) design part of it, but for some reason, I didn't think of it as an option for future jobs and studies. Fast forward to now and I'm suddenly a self-taught junior developer in an established company in my city (trust me, it feels very surreal).

I love programming because of the autonomy it gives me. It empowers me and inspires me; all the things I can create and shape, and all the opportunities that come with it. It's like sitting with a huge puzzle that you can make into whatever you want. It's challenging and it forces you to grow in several ways. But it can be hard and confusing to get started, and most of the time it's hard to keep going as well. So here are a few tips on how to approach and try out coding.

Figure out why you want to do it

This is so important for your motivation. Programming is a rollercoaster of feelings of success and failure, and when you hit a wall – and you will hit that wall many times – it's valuable to have reason to keep going.

A list to get you started:

  • You want to be able to make sleek Tumblr themes
  • You constantly look at TED talk about AI and want a deeper understanding
  • You love video games and it would be cool to make your own
  • You do other creative things and would like to show them in a portfolio
  • You have some sort of need to impress someone
  • Robots, dude
  • All of the above

Figure it out. Write it down. Look at it whenever you feel demotivated. Bonus point for more specific goals, like "I want to be able to make my own website within the next six months". You do you.

Just get started

For every Google search you do you will find a new person with a new argument telling you why you should learn these languages in this order with these sources. Coders are .. an opinionated breed, and the best thing to learn is really to trust your gut and not listen to others when they're being condescending and tell you all the things you're doing wrong. Trust me, there will be mansplaining.

The jungle of languages and frameworks are extremely overwhelming when you're brand new. My main tip here is to look at your answer on why you want to learn to code and go on from there. Different coding languages are used for different things (have a look at this infographic for a very basic overview). If games are your thing you can do Unity tutorials in C# or JavaScript. If it's the part of web pages you can see (aka front-end) you want to work with HTML, CSS and JavaScript. If masochism is your thing you should do Java (← this is a joke, but not really). And so on. The /r/learnprogramming sub is a good place to start, as well as StackOverflow and Google in general. Maybe you'll get a little more insight into trends from this StackOverflow's 2017 survey.

Resources

There are tons of resources you can use to try out different languages, to get a feeling of what you like and what you dread. These are my four favourites:

  1. CodeCademy is a classic and offers many different languages and some frameworks. It's a good introduction to coding, but keep in mind that to actually learn from this you probably have to do a course multiple times, as it tends to guide you a bit too much and not give you enough problems to actually solve yourself.
  2. FreeCodeCamp is another good way to get started. Sign up to their forum and newsletter for articles and discussions about learning and technology. This is more detailed than CodeCademy and can be a bit harder, but only in a good way. They offer HTML, CSS and JavaScript, algorithms, and are soon releasing a huge new curricilum on a bunch of new stuff.
  3. I already mentioned using Unity as a way to learn C#, especially if you're into games. They have loads of game tutorials, and you'll learn the language as you go along.
  4. The Odin Project is my absolute fave. It's harder than both CodeCademy and FreeCodeCamp, but it gives you a great understanding of Ruby, Ruby on Rails, HTML, CSS, JavaScript and more. It makes you build your own projects and commit them to GitHub, and uses tons of different resources for your learning.

Other tips

Use Google a lot. Google every word and sentence you don't understand. Ask questions (you can even ask me if you like) and read other's questions. Be active on forums and coding communities. Find out how you like to learn and do that. Go back to review what you've learned now and then. Git is a friend, even if it might not feel like it in the beginning. Keep going, even when you feel like shit. Code every day. Every day. Do this course on learning how to learn if you're terrible at learning (like me). Have loads of fun.