So you’re convinced that learning web development might be cool but you literally have no idea what even

I do a good job of convincing my friends that they can and should learn web development, and so I often get asked how. Free and not free resources abound for learning, but they tend to be a little showing-the-trees instead of showing a map of the forest. My friends want a map of the forest.

There are lots of paths through this forest. Just as there are lots of reasons to learn web development. My favorite reason to learn web development, though, is EMPOWERMENT. Having the ability to make a website, slap it on the internet, and share it with the entire world? I AM AMAZING. That’s how it makes me feel. I want everyone to have that feel.

So the path that I recommend is one to maximize this feeling of empowerment, while delaying the bits that tend to make everyone feel like an inferior imposter dimwit. I call it the Path Of Most Empowerment, or POME. I don’t intend this path to stay as-is forever. The trees grow and the forest changes and every six months it seems like the specifics of this path change. Maybe I’ll keep this article updated, maybe I won’t. But the main crux is that you should learn in a way that makes you feel awesome, and empowered, and makes you want to explore more.

Don’t misunderstand! There are times in these woods when everyone feels like an inferior imposter dimwit! I’ve been making websites professionally since 2010, and I certainly still feel like that sometimes. So do my teammates, who have been coding much longer than me. I think it builds character, to become comfortable with staring into the enigma void, scratching one’s head. Usually, once you finally track down the problem, it will be a typo. These damn computers, made out of carefully organized sand, are dreadfully pedantic and unforgiving.

So without further ado, the POME

I would not recommend anything you have to pay a lot for. I would not recommend getting a college degree. Instead, I would recommend Codecademy, and I would recommend starting with HTML and CSS. I think they try to start you with JavaScript, but that shit is intimidating and weird. Years into programming, I still find JS weird. Everyone does, even people who are good at it. It’s a crappy little language.

Once you are making toy websites with HTML & CSS and feeling good about it (3 months? 6 months? There’s no speed limit, maybe you’ll get there in 1 month. But don’t judge yourself if it takes you a year to feel sort of ok with these two. But DON’T GET STUCK. HTML & CSS are cool and fun, but they are just the beginning of fun. It gets waaay cooler if you keep going.), I’d recommend learning Ruby, because it’s fun and won’t make you feel stupid (well, I mean, I’m five years into Ruby and it still makes me feel stupid SOMETIMES, but compared to JavaScript, it’s much less inferiority-inducing). I think Codecademy might have a class on it. If not, I’ve also heard good things about Code School and Treehouse, but those are paid services. It seems like new websites to teach people programming pop up about once a month, and I can’t keep up with them all. Maybe there are better ones than these, now.

When you learn Ruby, everyone will try to teach you Rails. Honestly, I don’t recommend learning it yet, though. If Ruby is your first real programming language (HTML and CSS don’t qualify), I think you should just learn some Ruby and have fun with it. It’s a fun language! Humans can learn to think in it]( And once you’ve learned a little Ruby (this probably won’t take as long as learning HTML & CSS did), I recommend you make toy websites with Middleman. I use Middleman for not-toy websites like Why Believe and A Series Of Pipes. It’s a really great little framework for building static sites. So when I say “build toy sites”, maybe you can leave out the “toy”.

Along that path you’ll probably see other things that you want to learn. Go ahead and get distracted. Learn other things. Regular expressions? Sure. Markdown? Definitely. The Foundation and Bootstrap CSS frameworks? Build toy sites with each of them. Terminal/the command line/shell/bash? Don’t fear it. Learn it. It will be your best friend.

Once you’ve got all that, you’ll probably be gunning to make fully-interactive sites (websites where people can log in and maybe interact with other logged-in people, or play a game, or whatever). But I urge you! Pause. And learn git. You must have git from here on out. You may not understand why before learning it, but this is the one time when I’ll tell you that you should push through and do it anyway. After building all of those (toy?) websites, you will have caused yourself some pain. You will wish you can go back to how it was yesterday. You will wish you’d made a backup of files. Git will empower you to turn back time, to make changes boldly, and stop worrying so much. If you haven’t learned Terminal/the command line/shell yet, do it now. Learn to use git on the command line. Ruby might be an oven. HTML might be a knife, and CSS a cutting board. But Terminal and git are the kitchen itself.

Once you’ve got all that, go ahead and learn about databases. Learn SQL. I learned it from W3 Schools back when I taught myself in 2008, and I haven’t really seen any better resources come along.

Databases are the last piece you need, I think, for Rails to really make sense when you learn it. So once you have all of that stuff down, go ahead and learn Rails. Rails will let you make interactive websites, meaning websites like Facebook, Twitter, or Google. Any site that isn’t just a blog. Hell yeah!

And at this point, you won’t really need to refer to this article anymore. Go learn whatever you want. And don’t fear JavaScript anymore. You got that like an ant has a crumb. Nbd.

Have fun. Go build silly things, and weird things, and amazing things. I can’t wait to see what you make.


Now read this

Why You Shouldn’t Use Vagrant: Real talk from a Vagrant burn-out

Hey, kid. Someday, some charmer is going to smooth talk you. “Why would you want MySQL and PostgreSQL both running on your machine all the time?” they’ll probably ask. “Just run them when you need them.” Then they’ll tell you about some... Continue →