Mythicant Games

Junior Developer Cheat Sheet

Published • December 27, 2023

A friend of mine asked me the other day about learning resources for some junior developers he knows. I sent him a list of a few resources off the top of my head. But my brain kept thinking of others to suggest. So I figured I'd write down a list with a bit more thought put in to it.

Disclaimer

By putting together this list, I'm not implying that every junior developer should immediately use every single one of these resources. Even after 20 years of professional software development there are still books that I should have read but haven't, or coding problems I should have implemented but haven't. Please don't look at this list as a wall of "look at all the things I haven't done" shame. I hope people will look at it more as a list of things they could learn more about.

And hopefully it's obvious, but this is by no means a complete list. I'm sure there will be resources that I would have put on here given only a little more thought on my part, not to mention all the resources from other peoples' experiences and opinions. But this is my list, so I'm not going to worry about every else's lists right now.

Books

There are a lot of good books related to software development these days. One could argue that there are too many good books and no one has time to read them all. That's probably true. But here are a few that I often recommend to people:

Like I said, it could be argued that there are too many good books on software development. And I could certainly add many more books to the "good" list. But I think this is a good list of topics that junior devs might otherwise not get exposed to.

Katas

There are some ideas and concepts that can be communicated well in books. But there are other ideas that translate better when learned through actually coding.

The idea of a kata comes from martial arts, where the same forms are practiced repeatedly. Code katas are slightly different, but with a similar intent. They are specific problems that can be repeated to practice various software development skills such as refactoring, test driven development, pair programming, etc.

Some of these code katas are fairly simple, self-contained problems. Some examples include

Small, self-contained problems are great for some types of practice. But sometimes it's helpful to have a real world (or at least closer to real world) problem to practice with and learn from. Personal side projects can be a great way to do this. But sometimes it's hard to come up with good inspiration for a side project you're passionate about. In that case, a closer-to-real-world code kata might help. Here are a few examples:

A few more honorable mentions:

Other Stuff

Sometimes reading a book is the right way to learn. Other times writing some code is the right way to learn. And still other times something completely different is in order. Here are a few resources in the "completely different" category:

Conclusion

Again, this is by no means an exhaustive list. If you have other must-have learning resources that you think should be on this list, let me know. And if you haven't (or don't ever) get to everything on this list, don't feel bad! But if you're looking for ways to practice and learn new skills so you can level up from a junior developer and progress in your career, hopefully some of the things in this list help!