Learn to Code
Tags: beginners, codenewbie
Published: 2020-08-01 09:32:35

When I first started my computer science degree seven years ago (*whoa*), I instantly regretted all the decisions that led up to that first lecture. It quickly became apparent that I couldn't write or perhaps more importantly *understand* code. Literally, it was like trying to learn an entirely new language. I found it so difficult that I considered giving up and trying something else.

But I persisted through my wayward understanding, smashed my dissertation, graduated and got a job in web development which has me set up nicely for the rest of my career. Even more surprising is the fact that I now enjoy writing code and creating components for the web that people can use.

None of this would have been possible if I gave up or completely ignored the prospect of programming in the first place. So now I'm here to convince you, digital stranger, that you should learn to code also. It could genuinely change your life and the lives of those around you.

## Starting Out
It’s pretty easy to get overwhelmed here. When it comes to learning how to code, there are many different routes to go down:

- Web development
- Mobile app development
- Software engineering
- Data analytics
- DevOps

Most of those can even be split into more granular specialities. I've learned that the general consensus for beginners is to start off learning something like [Python](https://www.python.org/). It’s an easy to learn scripting language that will get you up and running with the basics of programming very quickly. By all means, do that. However, I also like to encourage people that you should start off with what actually interests you. If the snazziest, fanciest websites get your heart racing (like [my one](https://www.tunde.io) no doubt), then why not learn how to make one? Or, if you’re fascinated by all the apps keeping you glued to your phone, then try creating some. These initial projects tend to be more involved than writing lines of Python code, but at the end of it you’ll have a solid understanding of programming that can be readily applied to real world applications.

Having spoken to many people about what they should start with, the number one fear always seems to be *‘finding it too difficult’* and I too can vouch for that. Real talk, creating websites and mobile apps can be complex. But regardless of whatever you choose to start out with, there exists thousands of online tutorials and articles that can help you learn at a pace that suits you. A bunch of those are also guaranteed to require *no prior programming knowledge* (🙌🏾) so you can learn from scratch. Just remember, you’ll only get out what you put in.

## When do I become rich and famous?
<figure class="post-image">
    <img src="https://media.giphy.com/media/d49xKuZ49wP8RUpq/giphy.gif" alt="Not Today Gif - from Giphy (https://gph.is/24dezDQ)">
</figure> <br />

It is well documented that this field of work can be incredibly lucrative. We’ve all heard of Mark Zuckerberg and the book of faces along with Dong Nguyen and the bird that flaps. But where does that leave you, a promising prospective programmer? Well, actually in quite a good position according to the following average salaries for various developer positions in London*

- Software Engineer: £55,000/yr (https://www.glassdoor.co.uk/Salaries/london-software-engineer-salary-SRCH_IL.0,6_IM1035_KO7,24.htm)
- Web developer: £39,249/yr (https://www.glassdoor.co.uk/Salaries/london-web-developer-salary-SRCH_IL.0,6_IM1035_KO7,20.htm)
- DevOps: £53,445/yr (https://www.glassdoor.co.uk/Salaries/london-devops-engineer-salary-SRCH_IL.0,6_IM1035_KO7,22.htm)
- Mobile app (iOS) developer: £53,391/yr (https://www.glassdoor.co.uk/Salaries/london-ios-developer-salary-SRCH_IL.0,6_IM1035_KO7,20.htm)

These are all full time salaries. You could earn a lot more if you hire yourself out as a contractor — up to and over £500 a day.

But I sense *you* want more. You want to be earning millions and billions and trillions for your highly addictive and super successful app, right? The truth is, success stories like Nguyen's and Zuckerberg’s aren’t necessarily the norm and have perhaps warped expectations when it comes to understanding how much you can earn from this line of work. If you’re going to learn to code and make a career out of it, how much money you make shouldn’t be the driving factor. Same could be said for pretty much any other kind of work. You'll find a lot more fulfilment in managing your expectations well and doing something because you love it.

## Tools 🛠
So, you know where you want to start out and what kind of job you want afterwards. Now it’s time to learn about some commonplace tools to help you out with your brand new venture.

### Integrated Development Environment (IDE)
This is where the magic happens. IDEs are basically where your code gets written and in some cases, compiles and debugs too. Here’s some of my favourites:

[Visual Studio Code](https://code.visualstudio.com/) — great for web development and Javascript apps.  
[Xcode](https://developer.apple.com/xcode/) — Apple’s own IDE for building apps across the Apple ecosystem.  
[Visual Studio](https://visualstudio.microsoft.com/) — different to the other VS, but great for building more complex websites and apps utilising Microsoft products (for example, the [.NET framework](https://dotnet.microsoft.com/)).

### Websites 
Some useful tools that’ll help you understand your code, connect with others, and enhance your apps:

[Github](https://github.com/) — think of this as like Dropbox for your code. You can push and pull down updates via the cloud and even roll back to previous versions whenever you need to.  
[MDN Web Docs](https://developer.mozilla.org/) — if you’re building a website, this is an invaluable resource covering tutorials and explanations on various aspects of web development.  
[DEV Community](https://dev.to/) — a community of developers from many different disciplines sharing walkthroughs and experiences about literally anything you can think of related to code.  
[web.dev](https://web.dev/) — after you’ve built your website and it’s live (or in staging), this is a great place where you can test it out and see how it performs regarding today’s best web practices.  
[Google Fonts](https://fonts.google.com/) — a vast collection of open source fonts, available for use in your projects.

### Apps
More useful tools to enhance your developer experience!

[Sip](https://sipapp.io/) — a Mac app allowing you to collate different colour palettes for your projects.  
[Postman](https://www.postman.com/) — you can use this to test out API calls and see what kind of responses you get. 
[Github Desktop](https://desktop.github.com/) — a simple, easy-to-use git GUI that will make handling your code a lot easier! (If you detest the command line.)

Also, just bookmark [StackOverflow.com](https://stackoverflow.com/) right now. This is a programming forum and it will save your life.

## Final tips
Persistence is key. Practice makes perfect. I could throw a bunch more clichés at you, but the message remains the same. If you want to become the world's next Ultimate Developer, you'll have to put in the hours. When I discovered this for myself as I was starting out, my heart broke into thousands of little 1s and 0s. But the value of hard work is tangible with programming. Nothing beats the feeling of creating something that — after many hours of debugging, screaming and refactoring — actually, finally, works.

---
<small>*Salaries correct as of 24th July 2020</small>