Taro Logo
32

Must read books for new software engineers?

Profile picture
Anonymous User at Taro Communitya year ago

What are some of the must read books for new software engineers which will prepare them for the real world?

Especially ones that can help me get acquainted with:

  1. Writing high quality code
  2. Design patterns (both high level i.e, system design and low level i.e, object oriented design)

My goal is to become fast at going from ideas to working solutions (thinking of approaches, thinking about organization of my code into functions, classes, etc).

1.4K
4

Discussion

(4 comments)
  • 25
    Profile picture
    Senior Software Engineer and Career Coach
    a year ago

    Great question and something awesome to be thinking about. Books have definitely been extremely impactful in my career.

    For your goals:

    1. A Philosophy of Software Design
    2. System Design Interview Vol 2
    3. Designing Data-Intensive Applications

    I also have a full set of recommended books that have helped me in my career here: https://bento.me/jordancutler

  • 16
    Profile picture
    Tech Lead @ Robinhood, Meta, Course Hero
    a year ago

    This is getting away from the original question, but I strongly believe that books are the worst resource for teaching these 2 more tactical areas of code quality and design patterns. Here's why:

    • Good code is highly subjective - If you ask 10 top-tier software engineers what the best code looks like, they will give you 10 different answers. The best code you can write is whatever your team thinks is clean. What 1 book claims is good code will be viewed as terrible code by many, including top companies like Big Tech.
    • They aren't richly formatted - The comparison here is to a video or a rich blog post. A video is inherently rich as the presenter will probably present their IDE, and you can see them making edits. Blog posts can also include code formatting and include rich widgets like .gifs.
    • They aren't interactive - This makes it harder for the learning to truly stick in your brain: Knowledge only really sinks in when you're actively engaging with it. Online coding courses are better, and many of these are free. Even on a video or blog post, you can engage in the comments section.

    The best way to get amazing at coding in the real world is to:

    1. Join a team with stellar engineering culture that pushes you to be better
    2. Be bold trying new things, making mistakes, and asking your teammates to share their wisdom
    3. Suck up any and all feedback you get, particularly on code review

    If you aren't employed yet, then you should build side projects: [Masterclass] How To Build And Grow Tech Products To 500k+ Users For Free

    That being said, if you want a resource to get better at coding, I highly recommend these:

    It's great that your goal is to just build stuff. In a nutshell, my approach is that you should just do it (and share what you're building with the Taro community so we can support you every step of the journey!).

  • 19
    Profile picture
    Tech Lead @ Robinhood, Meta, Course Hero
    a year ago

    I did want to actually share some books, so here they are:

    • Deep Work: Rules for Focused Success in a Distracted World - It has great tactics on maximizing productivity, which is especially relevant for SWEs as the job is so focus-block dependent.
    • How to Win Friends & Influence People - Since we're talking about the real world, a crucial SWE learning is understanding that building relationships is much more important than building code. If you are great with people, they will teach you how to be great at code.
    • Mythical Man-Month, The: Essays on Software Engineering - These are lessons and stories drawn from the author's time at IBM as an engineering leader, covering the dynamics behind what makes software engineering teams succeed or fail. It's more tactically relevant as you grow to a tech lead level, but you can use the knowledge today by helping you identify good teams to join and bad teams to avoid.

    I have found that books are much better at teaching higher-level concepts that are more about challenging your preconceived notions and making you think as opposed to making you do specific tactical things.

    To maximize the growth you get from books, I recommend going through this discussion as well: "How do you manage knowledge you gain from reading?"

  • 13
    Profile picture
    Senior Software Engineer [L5] at Google
    a year ago

    I love books. They can be transformative in helping you to see yourself differently and help you approach situations in our careers differently.

    Though, like Alex mentioned, books aren't as useful as real practice for learning hard technical skills. Additionally, to really appreciate a book, you need to have had the experiences to relate to its message.

    I shared about some of the books that spoke to me at different engineering ladder for me on LinkedIn - see the post here if you want the full list. Not all books here will be useful since you are just getting started, but I hope everyone can find the right book for them!