So You Want To Learn To Code?
People sometimes ask me for recommendations on where to start with learning to code, now I can send them this.
Feb 22, 2020On a number of occasions, I have been asked to help people figure out where to start with learning to code. It makes me SO HAPPY to see such wonderful people give tech a go. I try my best to be helpful and provide them with resources I have used and recommend, or good ones that I have come across. Thats all well and good until the next person asks me, and I have to make the list of advice all over again.
So here it is friends, from my brain to yours, my tips for getting started with learning to code.
NOTE — I know that some people may be more interested in web development and front-end coding rather than back-end or data analysis, so I’ve tried to be vague but provide as much help as I can with a few areas of interest.
In The Beginning…
In general, I think one of the most important things for learning to code is to just have a go. Watch some tutorials, do some practice and, if you can, think of some mini problems you could write some code to solve, and go from there.
Now for the recommendations on where exactly to start…
I did a talk recently on starting out in web development, in which I gave a whistle-stop tour of HTML, CSS and JavaScript, and I have included some of the resources I mentioned in that talk.
I also want to mention that if you are a student at university or aged 18–23, you should absolutely take a look at the free coding courses offered across the country by Code First: Girls! They are an amazing not for profit organisation with a campaign to teach 20,000 women to code by end of 2020.
(All the recommendations are free, or at least have an unpaid subscription tier)
Tutorials
- Free Code Camp — for some good beginner tutorials on a variety of topics, they also do some good youtube videos to follow along with.
- General Assembly — Dash — for front-end / web development goodness. (When I wanted to make websites when I was younger, this was the first course I followed)
- Codecademy — less variety than free code camp, but still good for a lot of different topics. They also now have an app so you can practice your skills on the go!
- YouTube — an endless source of tutorial videos, varying degrees of difficulty.
Before you go anywhere, you might want to set yourself up well from the start. A lot of these tutorial resources have built-in tools that allow you to write code from their website which is super useful and handy for starting out, but eventually you might want to look into code editors like Visual Studio Code or Atom if you want to progress onto writing programs from scratch.
Practice Problems - to flex the coding muscle and get used to whichever language you decided to learn.
- Hacker Rank — lots of generic problems to solve with varying difficulty in a wide range of languages.
- CodeWars — (Not used it myself, but have seen it recommend for a similar purpose)
Aside from those, an ‘uncategorised’ recommendation, especially for those wanting to get into web development, is Codepen, a site where you can play around and make mini projects in HTML, CSS and JavaScript all from the comfort of your preferred browser. I find it most useful for practicing small elements of web development, and making weird and wonderful JavaScript creations.
What's Next?
After you can’t possibly look at another arbitrary practice problem in code form, it’s time to think of your own problems. I’ve learnt so much from thinking of things to make, and working out how to use the language I’m learning to make it do what I want it to do.
When I was trying to level up my JavaScript & front-end skills, I made an endless number of “useless” things. Don’t get me wrong, these little projects were useful in helping me develop my knowledge, even if they don’t actually do anything or have any real purpose. Thats not the point. I made them to learn, not to actually use — I’m not sure if I will ever find a use for code that displays emojis based on the current season, but it did help me work on switch statements in JavaScript.
If you can’t think of anything you could possibly work on — don’t worry. Every month (or so), Codepen release a ‘CodePen Challenge’, in which they provide a prompt and some ideas of projects to work based around a theme. They are usually beginner friendly and cover topics that you might not have thought of. I’ve even made a collection of all the pens I have made for CodePen challenges that you can have a look at!
Again, if web development isn’t your thing, learnpython.org is a great place to start learning Python — use this as a reference, and think of some useful (or useless) things you could make! The first thing I made in Python was a pig-latin translator… super useful, right?
Python can also be a window into the wonderful world of data science and machine learning, Kaggle is a great place if you are interested in that.
The Final Frontier
After you’ve made all your beautiful creations, where do you go next? That really is up to you. If through this process you have decided you want to get into tech but you aren’t sure if you prefer data analysis, or maybe back-end development, or any other stream / branch of tech… go and explore those topics! There are a multitude of courses and resources on all the different kinds of tech career paths.
If your heart is set on the front-end, take a look at some courses you could complete, and think about creating a portfolio to showcase all of your hard work (I have a blog post on that too).
I know this is a little hypocritical coming from someone about to graduate with a degree in Computer Science, but you don’t NEED a Comp Sci degree to get involved with tech. All you need to start off with is curiosity and motivation!
In short, get out there, learn to code, practice, create, and get inspired. Learning to code isn’t the easiest thing in the world, but it is rewarding, and for the most part, pretty fun!