What are the books all junior devs should read in 2022?

24 points by dusklight 3 years ago | 14 comments
I find myself in a situation where I need to recommend some good books on software engineering to some developers who are just entering the workforce after finishing their education. When I was young, there were some books that generally everybody agreed were "must reads". They included:

Refactoring by Martin Fowler, Design Patterns by the Gang of Four, Test Driven Development by Example by Kent Beck, Clean Code by Uncle Bob.

There's others like Pragmatic Programmer but I want to keep this list short to simplify the discussion.

My question is, are these books still relevant? Should any of them be replaced by more relevant books for 2022?

Refactoring is still one of my favorite tech books of all time, and I see it has recently been revised in 2018 to include javascript examples. I think this remains a solid recommendation.

Test Driven Development by Example is probably timeless as a historical record, but I'm wondering if there's a more recent work that covers the same content but also goes into Behavior Driven Development and Acceptance Test Driven Development.

Clean Code I would say is certainly still relevant, but I am wondering if there is any book that covers the same content with more recent code examples.

Design Patterns is the one I'm struggling with the most. Back when I first read it, it changed my life. But in 2022, with OOP looking increasingly dated and more and more people realizing they shouldn't make everything a noun, I wondering if there isn't a better choice out there? In many ways Design Patterns were created as a way for Java programmers to emulate useful tools from functional programming by nounifying them. I'm wondering if there isn't any good book to cover instead basic patterns from functional programming, stuff you see regularly in languages like javascript and python. Stuff like function composition, applying a closure to a container, that kind of thing. Any good options?

  • Etheryte 3 years ago
    More than anything else, junior devs need to put in the hours and do the work. You need to make mistakes, figure out how to fix them, and how to go from there. Books are nice, but no book will help you if you're not putting in the hours.
    • wy35 3 years ago
      Yeah, I’d recommend reading books for fun first-and-foremost.

      I read a bunch of technical and self-help books when I got my first job because I thought it would help my career, and it was AWFUL. I barely used anything I learned. It was so boring.

      Now, I read purely for fun. I would say the split is 70% fiction, 20% technical, 10% anything else. Even though I read less technical books, they are immensely more useful because I find them interesting enough to actually apply the concepts.

      • tcbasche 3 years ago
        Worst case is a junior who has read all the books but done none of the work so they end up parroting the talking points without being able to back them up or explain why.
      • dglass 3 years ago
        Shameless plug, but I think you should take a look at my book Junior to Senior that is soon to be published by Holloway[0]. Like other commenters have mentioned, the best way for junior devs to sharpen their technical skills is to just put in the work. Lean on your senior engineers to help the juniors develop the good skills and kick the bad habits.

        Not enough managers push their junior devs to work on developing their soft skills early on, so they're left figuring these things out later in their career, but those are some of the most important things that will help them grow into an effective engineer.

        Here are the general topics my book covers:

        1. Choosing a career path (IC vs. Manager, generalist vs. specialist)

        2. Qualities of a senior engineer

        3. How to deal with imposter feelings

        4. Working with your manager

        5. What to do when you make mistakes

        6. How to ask good questions

        7. How to read unfamiliar code

        8. Adding value

        9. Managing risk

        10. Delivering results

        11. How to communicate effectively

        12. Work life balance

        13. How to ask for a promotion to a senior role

        I also started a substack newsletter to cover these topics are more. [1]

        [0]: https://www.holloway.com/b/junior-to-senior [1]: https://newsletter.beginner.dev/

        • jjice 3 years ago
          I have to admit, you're hitting all the points I'd love to learn about. Any idea of the release date, price, and if there will be a print copy?
          • dglass 3 years ago
            Unfortunately we don't have a definite release date yet. The manuscript is complete so we're about to bring in an editor and get the book ready for publication. Pricing hasn't been finalized but if I had to guess it would be around $30 USD or possibly a little higher. There's an email list you can sign up for on the link in my original comment if you'd like to be notified when the book is available.

            Initially it will be published on the web, but eventually the plan is to release a print copy as well.

        • mooreds 3 years ago
          I'd pitch my book/blog: https://letterstoanewdeveloper.com/ to you. It's about all the soft skills I wish I'd known when I was younger. :)

          > I'm wondering if there isn't any good book to cover instead basic patterns from functional programming, stuff you see regularly in languages like javascript and python.

          I liked Eloquent Javascript. It's JS specific of course, but has a chapter on higher order functions: https://eloquentjavascript.net/05_higher_order.html plus more.

          • noahjk 3 years ago
            I was interested in purchasing, but it's so expensive! Is that a choice or a symptom of small print runs? Amazon was more reasonable but I really don't like to purchase from them.
            • mooreds 3 years ago
              Yeah, sorry! I don't control pricing and they recently upped it by 50% (used to be around $30, now around $45).

              My only advice would be to look for a coupon code. They run a lot of them. Here's one they sent me for 40% off before Mar 22: SXSW22

              Cheers!

              • noahjk 3 years ago
                I ended up biting the bullet and ordering from Amazon. Read the first chapter to my daughter and we both enjoyed it! Glad I saw you mention it here.
          • breckenedge 3 years ago
            It depends if people are asking you for personal recommendations, or you’re adding this to a company-recommended reading list.

            The Pragmatic Programmer is still my favorite all-around book on programming. Gang of Four is good for folks with a few more years of experience and a critical mindset. I also really like POODR, it shows you that designs should be extracted and it’s great for any level, and it touches on a lot of functional concepts.

            • tcbasche 3 years ago
              Clean Code has some truly awful and aged code examples (the prime number generator for instance) and constantly ignores its own advice particularly around avoiding side effects and “single purpose” functions. Working Effectively with Legacy Code is my go-to junior dev example as I think it’s most important to understand what that means and what it looks like early on!
              • d13 3 years ago
                If you’re into JavaScript, this is the one:

                Cristian Salcescu, Functional Programming in JavaScript

                https://www.amazon.co.uk/Functional-Programming-JavaScript-R...

                • bregr 3 years ago
                  - The Effective Engineer

                  - Designing Data Intensive Applications