— Books — 1 min read
I'm self-taught, and over the years of me working as a developer full-time, I've gone through a few phases:
When first learning, I wish I had a CS degree purely for the luxury of having time to digest things. Even syntax confused me. Imagine learning to code and seeing String string=new String("example")
. Understandably, it is a deliberately confusing one-line example but I saw this personally many times (why not use better variable names or use newer syntax?). There's a lot to unpack in that one short line.
Then I got the basics down, convinced someone to actually pay me while I learned on the job, and viewed a CS degree as unnecessary -- this is all stuff I could pick up with experience, right?
Next, a few years in, I run into enough complex patterns and concepts that others with a formal education seem to just get, but I ... didn't. Or I did, but more slowly. And I felt like the slowpoke in the room.
Before reaching stage 3, my self-learning system consisted of Codecademy and its competitors, or mashing together online tutorials like everyone else does. I've started 100 side-projects and finished a few, absorbing learnings along the way. Then, the past few years I've gone deeper, and started actually reading some actual books.
But there's one worth calling out specifically. I've gotten more mileage out of The Impostor's Handbook than any other book or video series I've followed. It's truly underrated -- the writing is at just the right level. It covers Big O notation, Lambda notation, and other more classical CS fundamentals in an extremely approachable way.