_
Whether you just start your journey as a software engineer or already have practical experience those books will help you to deepen your knowledge and understanding of software development and shine at the job interviews.
_
I've read those books many years ago but they are very relevant in today's world.
Refactoring: Improving the Design of Existing Code (2nd Edition) by Martin Fowler
This book gives you an idea that all the code you write may have been rewritten some day by you or by someone else. And this really happens all the time in real life.
The book guides you on how to 'polish' code in an organized manner – a very useful skill for a good engineer.
The Pragmatic Programmer: Your Journey To Mastery by Dave Thomas and Andy Hunt
This book is much more about philosophy than some code snippets or hints. And this makes this book a real gem – get practical experience in managing requirements, maintaining codebase, and approaching security.
Getting Real: The Smarter, Faster, Easier Way to Build a Successful Web Application by Jason Fried, David Heinemeier Hansson, Matthew Linderman
This book co-authored by David Heinemeier Hansson, aka @dhh has created web framework Ruby on Rails, which is a great view of software development not just from an engineering perspective but from the end user's point of view. And from this point of view, things like an 'empty state' (when there is no data, e.g. no articles in the blog yet) evolve from the least priority of the engineer to one of the most crucial ones – as almost all the applications start with no user data inside.
Things like this give you a much more solid understanding of how your code is used in real-life and what should be prioritized.
Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (Gang of Four)
This book focuses on an object-oriented approach but even for functional programmers it will be very valuable as in the end all the software models some real-world objects (e.g. apps manage orders, products, etc.)
Inside the book, you'll find 23 patterns for organizing your code's architecture. And I'd say more – it helps you to interpret code specifications that you have and make your design more structured, which helps you not only in C++ but also in React or React Native with their components.
Pirates of Silicon Valley. A movie
Wow, it's not a book, right? Yes – after reading all these books, you need to chill a bit 🍿. And this movie will help you to feel the spirit of the early days of computing – through the story of the rivalry between Bill Gates of Microsoft and Steve Jobs of Apple.
I'd love to hear from you 👋 What books influenced your career as an engineer?
Top comments (4)
Really great books! There are some from my list, that you didn't mentioned:
Thanks for sharing, Sergey! Robert Martin is for sure also one of the classics!
One book that was important for me (I read it first in 1991 and later) is the Tom De Marco's Structured Analysis and System Specification. My boss gave me a copy of this book and asked me read it for my current project at that time. The project was to re-engineer an application and also document it. The Data Flow Diagrams was part of the work. This book was helpful for the project. I had the opportunity to study the book and apply the methods.
Thanks for sharing your story, Prasad! Tom is a great author - his books on team management ‘Deadline’ and ‘Peopleware’ are also gems 💎