What I’ve learned about learning

When I first started learning to code, I was insatiable. I scoured programming subreddits for tips and advice on how to get started. Instead of choosing one path, I chose them all. I registered for edX’s CS50, Coursera’s 7-course Fundamentals of Computing and 10-course Data Science specializations, Codecademy’s Python course, Udemy’s Web Developer Bootcamp and Complete C# Unity Developer courses, and probably a few more that I can’t even remember.

This was, of course, insane. At the time, my logic was that if I treated learning to code like high school, with 6-8 different subjects to learn simultaneously, I would become a well-rounded programmer, with experience in web development, game development, and data science, within a matter of months. To someone who hadn’t coded since high school, this made a lot of sense. To anybody with real programming experience or half a brain, it’s an obvious recipe for disaster.

I started to burn out almost as soon as I began. Then panic set in. I had just left a stable career as a tenured high school teacher, which I had thrown away for something that I wasn’t sure I could do. I couldn’t stand the thought of going back to teaching. The only way out was through the other side. I needed to focus on just one thing.

I chose web development. The job boards showed plenty of junior developer positions in Chicago, and while I didn’t want to drop the $15-20k on a bootcamp, I knew I could work through a similar, cheaper curriculum online by myself. It took a lot of trial and error, but between Colt Steele’s Web Developer Bootcamp on Udemy, the excellent lessons and resources at freeCodeCamp.org, and more advanced tutorials on React and Redux from Wes Bos, I was able to cobble together a decent working knowledge of full-stack web development.

What’s missing now are the computer science fundamentals that I would’ve learned had I earned a degree in the subject. I can survive as a working web developer, but I want to thrive as a computer scientist.

Luckily, there’s a well-respected, solid website that outlines a path for people to teach themselves computer science called, fittingly, teachyourselfcs.com.

I’ve started and stopped learning from this website a couple times already. I start because I’m excited about the subject matter, then stop when I realize that anything that I put into learning CS is time I should’ve been spending on learning JavaScript. Now that I’m comfortable in web development, it’s time for me to start from the basics of CS to build a solid foundation.

This blog will essentially be where I store and share my notes for the 9 courses in Teach Yourself CS, starting with Programming. It starts today!