Teaching Yourself How to Code - A Bunch of Beginner Coding Resources

I love giving people resources for learning how to code, so I thought I should probably just make a blog post about it. I was especially inspired by Neha's talk on teaching yourself how to code. Her talk was 1000% accurate, but I used and recommend totally different resources. These are just some of the resources I used, but they're the ones I see as impacting my coding journey the most.

Front End

Front end and back end are totally different, and you really don't need to know both - most people do one or the other - but if you're just getting started and don't know what's what, learning HTML and CSS is a great way to dive in and see what coding is all about.

General Assembly Dash - In my opinion, the one and only beginner HTML/CSS tutorial. It will handhold you through just starting to code but also gives enough freedom to let you learn instead of just parroting back code. It also helps you see the bigger picture of how code can be used in the real world.

Hack Design - For when you've made a couple really ugly things in Dash and don't know where to go from here. Hack Design provides context, history, and design basics that everyone should be aware of.

Learn to Code HTML & CSS - Dash teaches you how to get started with code, but it doesn't necessarily teach good code or complex code. Learn to Code HTML & CSS teaches you how to code properly and how to expand beyond the basics.

Back End

I think that Ruby and Python are by far the best beginner coding languages. I'd suggest only starting with JavaScript if you know that you want to do front end and only front end, or with something else if you have an in-person class in that language available to you. I also think that back end is much harder to learn on your own than front end - which is not to say that front end is easy to do, just easier to get started with.

Try Ruby - Start learning programming in the browser, in a totally adorable way.

Learn to Program - This is a great book for teaching the basics of Ruby, and programming in general. But it's important that you actually do the exercises, no matter how annoying.

Problem Solving with Algorithms and Data Structures - Employers are obsessed with algorithms and data structures, so best learn some basics. This book uses Python, but Python is quite accessible coming from Ruby. This website also has other books involving Python, Java, and general computer science, if you'd rather go in one of those directions.

Version Control

Once you've been coding for a while, version control fades into the background, but when you're first starting, it's one of the more surprising and intimidating things you have to learn. Version control means more than just git (which is part of why some tutorials are so confusing - they're meant for people transitioning to git from other types of version control), but these days git is the thing to know. And you're probably going to need to know how to use it in order to get your work online.

Github and the Magical Black Hole of Version Control - This is a blog post that I wrote a long time ago because I don't think the beginner git resources sufficiently explain what git is and why you're using the commands they say to use.

Try Git - This is a cute tutorial that teaches you the basic commands you need to know to use git.

Atlassian Tutorials - Once you have some understanding of git, Atlassian's tutorials are great for explaining the variety of commands in more detail.

Going Live

So you've made a thing, but nobody really tells you how to actually put it online. It's pretty important, since that's sort of the point. Sometimes it's the hardest part, but it's a lot easier if you've done your studying on git first.

Finally, a Guide to Hosting Your Website - The title pretty much says it all, and the post itself says the rest. I didn't know git when I tried to follow this tutorial, and it was pretty painful, but I'm glad I did it because the learning value was huge.

Getting Started on Heroku - If you made an application with a back end instead of just a static front end site, congrats, and Heroku is the place to start if you want to get your application online.

Culture

What is everyone in tech always talking about anyway? Being able to understand the culture and follow along with conversations is incredibly important and will make it so much easier to make connections, keep learning, and gain confidence.

Hacker Newsletter - A random amalgamation of what's going on in tech culture, some of it educational, some not so much.

Meetup.com - Seriously, go to meetups. If someone as shy as me can go to meetups, you can go to meetups. Contrary to popular belief among beginners, the vast majority of meetups are beginner-friendly, even beginner-dominated, especially hack nights and classes. Just go, and keep going. It will make a difference in the long run.

So those are my top recommendations for teaching yourself how to code, but there are a million more resources out there, and I'm pretty sure I have bookmarks for a significant percentage of them (it's a bit of a problem). I hope this can help someone, and feel free to contact me to get some more of those bookmarks.

And check out the follow-up: Even More Beginner (And Intermediate) Coding Resources