5 fundamental books every engineer must read
Tags: webdev, beginners, programming, books
Published: 2023-05-26 12:43:41

_

_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](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ipcmfmn6ns3jlws5xtba.png) 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](https://www.amazon.com/Refactoring-Improving-Existing-Addison-Wesley-Signature/dp/0134757599/ref=sr_1_1?keywords=refactoring+martin+fowler&qid=1685101514&sprefix=refactoring%2Caps%2C182&sr=8-1&ufe=app_do%3Aamzn1.fos.006c50ae-5d4c-4777-9bc0-4513d670b6bc)

## 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](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cf1o56e8x7vniicpr5y6.jpg)

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](https://www.amazon.com/-/en/David-Thomas/dp/0135957052/ref=sr_1_2?adgrpid=82460957179&hvadid=394592758731&hvdev=c&hvlocphy=9055799&hvnetw=g&hvqmt=e&hvrand=558179471178343342&hvtargid=kwd-298735734907&hydadcr=24491_1812059&keywords=pragmatic+programmer&qid=1685101389&sr=8-2)


## 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](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nyo4lx78p8qvinb6dyxo.jpg)

This book co-authored by David Heinemeier Hansson, aka [@dhh](https://www.twitter.com/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](https://www.amazon.com/Getting-Real-Smarter-Successful-Application/dp/0578012812/ref=asc_df_0578012812/?tag=googshopfr-21&linkCode=df0&hvadid=229238794482&hvpos=&hvnetw=g&hvrand=9234274644795090432&hvpone=&hvptwo=&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=9055799&hvtargid=pla-459907982583&psc=1)

## 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)](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bkuok14oglcacv6seafn.jpg)

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](https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612)


## Pirates of Silicon Valley. A movie

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mw0vj9y706arm4tyxkqz.jpeg)

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](https://www.imdb.com/title/tt0168122/)

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