https://medium.com/@iamjwr/software-engineer-roadmap-via-books-a6aabdc2589c

1.The Passionate Programmer by Chad Fowler
This is first on the list because it’s a super easy read, not too technical, and provides loads of value around how to build and structure your career. If you’re entrepreneurial, you’ll take to the book quickly. Essentially, it teaches you how to manage your career from a business perspective.

2. Building a Career in Software by Daniel Heller
Leading teams, switching jobs, promotions, staying sharp, you’ll find it all in this book. I wish I had this as a resource to navigate my career optimally. The predicaments I found myself in over the years would have been far less harsh with this to reference.
Moving onto section 2, the fundamentals.
3. Elements of Computing Systems by Noam Nisan, Shimon Schocken
To this day, I haven’t found a better book of exploring the art of programming and the rewarding outcomes. If you can make it through the book front-to-back, you’ll learn so much about computers, how they work, and how to get them to do what you want.

4. You Don’t Know JS by Kyle Simpson
These are free on Github, but I’d advocate for buying the hard copies. I think they’re hands down the best JavaScript resources on the market (they are a series). He has great talks and even better books.
Note: As I said above, these should be replaced if you’re learning another language (like python).
Section 3, the advanced stuff.

5. Grokking Algorithms by Aditya Bhargava
Cracking the Coding Interview is a fantastic resource for algorithms, but I feel it’s more targeted for engineers mastering technical interviews. Grokking Algorithms is a smaller book that provides simpler explanations. This will eventually be necessary learning material (algo’s and data structures) whether or not it’s for an on-the-job task, or for interviewing.

6. Design Patterns by Gamma Erich, Helm Richard, Johnson Ralph, Vlissides John, Grady Booch
Now, this could very well come up in an interview, more likely though is you actually utilize patterns at work — sometimes you may not even know you’re using one. Memorizing all of these is probably not the best approach, but knowing a few and when to use them will change your codebases for the better.

7. Test-Driven Development by Example by Kent Beck
You’ll probably encounter this earlier in your journey (or at least the concept of testing). This book will solidify your knowledge of test-driven development and how to test your code.

8. Clean Code by Robert Martin
Code cleanliness is a hot topic in the programming world, and a lot of engineers have differing opinions on what’s considered “clean.” Uncle Bob does a good job of detailing some of the more proven practices when it comes to writing code.
Last section, the books I need to read 3 times over.

9. Explain the Cloud Like I’m 10 by Todd Hoff
A fun, short read. This book explains a variety of cloud concepts (and computing in general) with short, easy to read, summaries. You could give this to your dad and he’d come back with some new knowledge. I find the juicy bits near the end, but the whole book is great.
10. System Design Interview by Alex Xu
Alex does a great job of prepping engineers for the system design questions in interviews with this read. I’d consider this the Cracking the Coding Interview for system design questions. As an aside, this is a good book for system design overall.

11. Designing Data-Intensive Applications by Martin Kleppmann
A massive book, with a plethora of stories and practices on how to build reliable, scalable, data-intensive applications. I’m currently in the middle of this, and it’s amazingly complex. If I was at the head of Netflix early on, this would be my go-to resource.

12. Domain-Driven Development Distilled by Vaughn Vernon
I heard about DDD early in my career from a senior I worked with. I never got around to working on an application that had DDD conventions, but I did architect a few hobby projects using DDD.
It’s a useful technique for aligning the business and technical side of a product, and for the greenfield projects I’ve started, I wish I could go back and implement them with DDD in mind.

Bài viết khác

My book choices

Building a Career in Software: A Comprehensive Guide to Success in the Software Industry “` Software engineering education has a problem: universities and bootcamps teach aspiring engineers to write code, but they leave graduates to teach themselves the countless supporting tools required to thrive in real software companies. Building a Career in Software is the […]