It's late January.
The Buck's Fizz has run out, you've swept up the confetti, and you kissed your gran goodbye until next Christmas.
It's time to get back to work.
But the reality is that job sending a bazillion cold-emails a day just isn't hitting the same way it used to. Or you work with developers, and you are tired of being told we can't do that and you want to understand why we can't.
Still need convincing? Here's a job listing I got today for $800,000. Sure, you won't get that one (at first). But there are very few industries where this is a legitimate career goal.
So, in the spirit of the new year, I've decided to put together the definitive* course tutorial list for 2022.
You're welcome, you little scamps.
Note: I'm a big believer of learning by doing. The goal of these courses should be to have your website live on the internet.
Why live? Because it'll be an ugly, ugly baby. It will embarrass you, and that will incentivise you to learn more and be better.
Learn the basics
First things first, you need to learn HTML and CSS.
These are the base lego building blocks of the internet. It doesn't matter what framework you use, eventually its going to spit out some HTML and CSS.
So it's helpful if you can read it.
- + HTML is the function of websites. Every button you see, every piece of text that's rendered to the screen and absorbed by your eyeballs is HTML.
- + CSS is the form of websites. Its the styling. Every colour, every rounded square, every beautiful font has been written with CSS.
I recommend this course.
Learn programming
Now you might be thinking, that's cool - I could make a static version of Twitter. But, how do I make it move? How do I make the content dynamic?
That's where programming come into it.
You may have heard of JavaScript. It's the marmite love language of the internet.
My recommendation is this course and this course.
Also, this is a great cheat sheet.
I'll caveat by saying the first time I tried to learn JavaScript, I did not get it. I gave up for a few months, before someone sent me another course. In Ruby.
And surprisingly it clicked.
Then when I understood Ruby, I went back to JavaScript - and it felt completely different. I got JavaScript.
I guess what I'm saying is - coding is hard - so trying out a few different languages might help you see the fundamental patterns that govern all languages.
Never be afraid to step sideways.
Learn React
Now, that you know JavaScript we can now get on to my favourite language:
✨ React ✨
A lot of the benefits of React are not going to be obvious to you yet. It's going to feel like you're having to write slightly different HTML for no reason.
This is true and false.
Right now, its true that is all your going to be doing. But when you start to advance into databases and APIs, you'll have a solid foundation upon which to apply those techniques.
You'll have to trust me on this one.
This the course (you only need the basic version).
Deploy something
So, lets recap. You have a rough understanding of HTML, CSS, JavaScript, and now, React. A gun to your head you could probably knock out a very basic web page, no problem.
But what you might struggle with, is how do I make a website with lots of different pages? Or how do I even get that website on the internet so other people can see it?
That is this step.
I'm going to recommend four pieces of technology.
- + Git: A way to track the changes you make to your code.
- + Github: A place to store your code.
- + Next.js: A framework for building React web apps.
- + Vercel: A way to deploy your code.
Along with two courses that will give you a rough understanding of all four jigsaw pieces:
What next?
Right now, especially after that last section. You should have something live on the internet (hurray! 🎊) but you might feel like you don't understand anything.
That's okay! Imposter syndrome is a real thing! You've done a crash course through what must feel like a bazillion different things. But lets not forget, you do have something. That's more than a lot of people can say.
My advice would be to take a breather, and then try and build another website from scratch. Pick your favourite web developer and try and re-create their portfolio.
By your third or fourth project, you'll have a pretty decent grasp on what its like to be a frontend developer.
The glaring admissions
Wait what, a frontend developer? I thought you were going to teach me the whole enchilada.
Here's the thing. Coding is a lot. Trying to explain authentication, authorization, APIs, data-fetching and databases all at once?
It's a recipe for burnout.
Plus, once you can build something you can see, it becomes obvious where things like the database slot in to what you already know.
But I don't want to leave you hanging. So once you feel like you have a good grasp of everything above - I'd check out this course or this one.
Last Thoughts
2024 Edition: It's hard to end here
Thanks for reading! If you ever need any guidance, you can reach out to me on Twitter. Come say hi!
* It's not definitive, the cake is a lie.
** Some of these are paid courses, and I want to make it clear I'm not being paid to promote them. I just think they are great.