DEV Community

Cover image for 5 fundamental books every engineer must read
Sergey Panarin
Sergey Panarin

Posted on

5 fundamental books every engineer must read

_

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

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.

Book on Amazon

The Pragmatic Programmer: Your Journey To Mastery by Dave Thomas and Andy Hunt

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.

Book on Amazon

Getting Real: The Smarter, Faster, Easier Way to Build a Successful Web Application by Jason Fried, David Heinemeier Hansson, Matthew Linderman

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.

Book on Amazon

Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (Gang of Four)

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.

Book on Amazon

Pirates of Silicon Valley. A movie

Image description

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.

Movie on IMDB


I'd love to hear from you 👋 What books influenced your career as an engineer?

Top comments (4)

Collapse
 
sergiofry profile image
Sergei O. Udalov

Really great books! There are some from my list, that you didn't mentioned:

  1. Clean Architecture by Robert Martin
  2. Patterns of Enterprise Applications by Martin Fowler
  3. Elegant Objects by Yegor Bugayenko
Collapse
 
spanarin profile image
Sergey Panarin

Thanks for sharing, Sergey! Robert Martin is for sure also one of the classics!

Collapse
 
prsaya profile image
Prasad Saya

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.

Collapse
 
spanarin profile image
Sergey Panarin

Thanks for sharing your story, Prasad! Tom is a great author - his books on team management ‘Deadline’ and ‘Peopleware’ are also gems 💎