A Starter Pack for Aspiring Coders
Some building blocks I used to achieve basic competency in developing web applications.
So you want to learn to code. Great! Let’s get you started.
Think of something you want to build. It doesn’t need to be anything grand, but it should feel fun, exciting and maybe even useful.
Setting up a design portfolio, making a game, writing a script to automate weekly forklift sales reports. If you thought of something, brilliant! Hold that thought. If not, read on, we’ll revisit.
To be clear, learning to code is a lot of work. Then again, with some effort, you can make a stone do what it’s told. You’ll have an army of robots packed inside data centers for your convenience, awaiting your orders.
Where was I? Right, web development.
The tl;dr version of steps to take, in order, is here:
- HTML / CSS
Still here? Excellent!
I’ve curated a list of learning resources I found the most impactful in 2020, the year I got serious about learning to code. These are the big ones that really ignited the spark and kept me going, the ones that drove a successful career pivot.
They are still extremely relevant entering 2022, and probably for a long time to come. Most of these assets are free, the rest are affordable. All are worth it, recommended with five stars and a full heart.
Learn website layouts
- Study HTML/CSS at Freecodecamp.
- Focus on Flexbox and Grid
- Get familiar with MDN early on. Seriously, it is an absolute treasure.
- Simon Allardice has a handful of astoundingly well summarized walkthroughs over at Pluralsight. This one is my pick.
- University of Helsinki’s Python programming course is an excellent follow-up to further solidify the foundation. Less computer science, more coding.
- Learning How to Learn on Coursera. You’re going to be doing a lot of learning for a long time, this is worth taking early.
- Once you’ve gotten the hang of some basics, start practicing some quiz-like problems at Code Wars and Hacker Rank to reinforce the habit of writing code.
Dip into React, or Vue
- You’ll most likely want to learn at least one major framework for building user interfaces. A short, free video course about the very basics of React is hosted at Egghead, by Kent C. Dodds. Highly recommended, probably worth watching in its entirety at least twice.
- Dave Ceddia’s Pure React book limits focus on just the core functionalities of React, which I found very helpful when starting out.
- Vue is another popular JS framework that you may wish to consider. By all means explore the syntax of both frameworks and your relevant job market, but don’t overthink it. Just pick one and get started.
- That thing you wanted to build? The one I asked about at the start? Now’s a good time to do something about it, if you haven’t already.
Test the waters
- Send a few job applications once you’ve made it to this point, maybe even sooner. Alternatively, find a client who needs a website and is willing to pay for it. I asked and received very valuable feedback after my first rejections, and also got a major confidence boost from seeing I wasn’t far off.
- Look into contributing to open source. Perhaps a library you’ve found useful, maybe fixing out-of-date documentation or writing a few tests. You’ll learn about pull requests — here’s my first one! This also trains you to read code written by others, which is a crucial skill. First Timers Only is a good place to start.
Alternatives exist to everything listed here, feel free to explore them. It’s a good idea to do so, sometimes things click when you get bombarded by the same idea from different angles.
Whatever you find to be true, don’t get stuck micro-optimizing your study plan. What matters is getting started and sticking with it; writing code, day after day. Make it a habit.
Once you’ve gained momentum, keep on creating things. Explore stuff you’re interested in. Maybe it involves wrangling sports data with Python to visualize in D3, perhaps writing compilers and containers in Go is your thing.
Then do whatever you want. You can speak to golems.Update log May 5, 2022: Some wording tweaks, link updates.