The Whirlwind Guide to Learning Web Development
A Complete Web Development Career Road Map in 5 Minutes
Working in web development is hard. There are constant distractions, conflicting advice, a bajillion different tech stacks to choose from, employers who seem to only be interested in hiring people with years of experience.
So how can someone with no professional experience or education land a job? Make your own professional experience and education.
With a combination of the right mindset, acquiring some soft skills like writing and communication, and some projects out in the real world, you can get a great job as a developer.
Let’s do this.
From Lion to Angler Fish
Before getting started, it’s important to start going about this the right way.
You’re going to shift your perspective from desperate job hunter who will do anything to get your first job, to competent learner that steadily learns more and more, creates useful stuff, and has a public profile.
We want to start attracting the right employers to us, instead of chasing them down.
Rather than being a lion and going out and actively hunting, your going to be an angler fish, and work on making that creepy light on your head as pretty as possible.
Maybe this analogy is flawed, but the point is that you want to make yourself into an irresistible candidate by becoming so good they can’t ignore you, and making your presence known in a high-quality way, rather than constantly applying to every developer job you can find.
Patience is key here. Focus on becoming as great as you can, and the journey of getting there, rather than obsessing over the destination.
Pick A Framework
Here’s your simple two step guide to choosing a framework to learn and sticking to it.
- Find companies you would like to work for
- Learn what they use
Don’t base the decision on what’s popular, what’s new, or what you feel like learning today. Down that road lies madness, and a really crappy, unfulfilling career.
Pick a dang framework and focus on just that.
If you really can’t pick one, I’ll do it for you.
Learn Rails.
Awesome, remote companies with great culture like GitLab, Basecamp, Baremetrics, ConvertKit, and Discourse use Rails.
It has an awesome doctrine and is a pretty awesome antidote to the miserable hell that the JS ecosystem can be.
And no, Rails is not irrelevant just because it’s not the cool new JS kid on the block.
Build Things
Now that you’ve picked a framework. Start building things.
Take a brief glance at the docs and any guides your chosen framework has.
Take note of the major concepts and components that the framework consists of.
Brainstorm potential projects for an hour.
Sit down, uninterrrupted, for one hour with a notebook.
Think of as many problems that you can that you have that can be solved with a piece of software built using your framework.
Applicability to other people doesn’t matter, scale doesn’t matter. The only purpose of these is to learn and demonstrate your knowledge.
Then, start building them.
Make sure you add real-world features like authentication and billing to some of them. Make sure it works.
Learn TDD and add test coverage to them.
Do this in stages. Make bite-sized, incremental improvements to your personal projects as you go.
This will be hard, and feel borderline impossible at first. Embrace that feeling, it means you are learning.
Your stuff will be crappy and broken and ugly and that’s also good.
Keep making it better.
That horrible feeling you are getting of trying to push a car but not quite getting it to move anywhere meaningful is called deliberate practice.
It means you are stretching your limits. This is how you learn. Screen casts and follow along tutorials feel good because you aren’t stretching your brain.
Make Those Things Public
As you are building things, put them up on GitHub and make them public.
Then write about them publicly.
This can be on your own blog, on Medium, wherever.
Write about your goals with the project, design decisions you made and why, struggles you ran into and how you overcame them, things you learned about the development process in general and the framework you are using.
Not only does this part help you publicize yourself, it helps develop your writing skills, which according to people like Jason Fried of Basecamp, are absolutely essential to being hired.
Write about everything you do.
I recommend writing on Medium because it is super enjoyable and you get way more exposure right off the bat than you would if you started your own blog.
The main complaint I hear about this is lack of ownership, but I wouldn’t worry about that too much at this stage. Writing shouldn’t be a finite collection of articles that you own, it should be an ongoing process that you are always doing and working on.
If Medium ever goes under, just keep on writing somewhere else.
But if the ownership things does bother you, you can write on your own site and republish on Medium, a la Baremetrics.
Contribute to Open Source
Now that you’ve got some experience with your framework of choice, start contributing to it.
Yep, seriously.
Every major framework has a contribution guide. Read and get going.
Start off small by contributing to documentation, then gradually work your way up to adding pull requests and contributing to code.
Keep Your Eye Out
Over time, you’ll start to gain some notoriety and people will start to notice you.
Keep an eye on the career pages of companies you would like to work for, and apply when they are hiring.
When they start hiring, you’ll have an arsenal of open source contributions, proven writing experience, and a slew of apps you built from the ground up to show your experience.
Do It
The most important thing to do is to focus.
Once you pick a framework, don’t switch to another.
Once you start a project, don’t switch to another until it’s complete.
Stay the course and be patient. Learn to enjoy the journey.
It’s not an easy road but since when is anything worth having easy?
My name is Ken. Let me know if I can help you at all on this journey — ken@kenrogers.co