These are some of the books I read and made an impact in me. Some of them, I read again.
They are very valuable books and I believe they contribute to the humanity's knowledge highly.
|Clean Code book helps developers writing maintainable and understandable codes. Maintainable and understandable code is critical for software projects as they can be the sole reason of a success or failure. Users expect highly reliable software products and having a clean code base is the first important step to do it. this book helped me to have better code base in software projects that can be easily changed, improved and collaborated on as a team.|
|Lean startup is an interesting book talking about how projects can find and extend their user base and market. This book allowed me to design and implement software applications by scientifically giving the most to the users because the best product is the product people want and that solve people's problems. Any project that wants to innovate over the time should follow the guides in this book. (on Amazon)|
|Growth Hacker is a very good book explaining how the marketing is changing and how software engineering is shaping the new scalable and innovative marketing. This book helped me to tweak software applications in a way that as users use the application, the application attracts more users naturally. Dropbox, Microsoft, Google and so many companies used and grew their user base with Growth Hacking techniques without spending millions on marketing budgets. (on Amazon)|
|React.js Essentials is a very extensive book about React.js and goes into very good technical detail. This book has helped me to go through all the React.js concepts all at once and helped me see all that React.js library offers and where, when and how much can a project take advantage of React. (on Amazon)|
|7 Habits of Highly Effective People is a book that everyone should read at least once. If you wonder the 7 habits they are: 1) Be proactive, 2) Plan what you’re taking action about, 3) Put first things first, 4) Thin Win/Win, 5) Understand and be understood, 6) Synergize & improve 7) Take time to refresh. (on Amazon)|
|NoSQL Distilled is an amazing book from Martin Fowler discussing merits of NoSQL in comparison with merits of relational databases. The book draws clear lines about when to use which of the NoSQL solutions and when to use relational databases. (on Amazon)|
|Graph Databases is an interesting book on how to use the graph databases and their benefits. Graph databases are very different compared to other database solutions and allows relating all the data with each other. Especially for big data analysis and customer/user behaviours they are very beneficial and they are maturing every day. Many projects can benefit from using graph databases especially like matching users to user's friends to products and then query them very fast. (on Amazon)|
|SAMS J2EE in 21 Days is a very broad book over 1000 pages which includes many important topics about Java Enterprise Edition. In my opinion the book is more than one-time read and is a reference guide while doing Java EE development. This book taught me enterprise applications development, critical requirements, tools and features an enterprise app should have and how can have. (on Amazon)|
|Design Patterns is one of the most important books in designing good software architectures. The knowledge in this book can be applied to any programming language. This book helped me designing reusable software architectures to speed up and tidy up the whole application. Also following this book helps other people understands your architecture faster. (on Amazon)|
|ASP.NET Unleashed is a very good book explaining all ASP.NET framework, implementations, setups, security protections and many more concepts in details related to the whole framework. (on Amazon)|
|Dependency Injection in .NET is an excellent book covering the concepts of Inversion of Control and Dependency Injection. This book has helped me to design better technical architectures and not just in .NET but in all languages because the concept is the same. Basically Dependency Injection is one kind of Inversion of Control and it encourages dependency objects (could be database connection object, session object, a user service) to be injected into our code as a parameter automatically instead of we instantiate it ourselves. This allows our code to be testable as well, because we can inject a mock dependency any time to test our code. (on Amazon)|
|Operating System Concepts is a de facto book for understanding how operating systems line Linux, Windows and Mac work, how they manage other applications that runs on top of them. This is a very important book about understanding memory management, process management, threading and distribute systems. (on Amazon)|
|Computer Networks is a book about how the network system, including internet and local intranets work. How each network package is created and they are read, how protocols like HTTP can work, TCP and UDP protocol and much more. Even though most of the development we do rely on abstracted high level libraries above computer networks, this book helped me understand how the all underlying networking work and this improved me designing network dependent applications, which are almost all applications now. (on Amazon)|
|Data Structures and Algorithm Analysis is a book that covers the most common data structures like queues, links, stacks, hashes, sets that are found in every software environment. While developing software applications we don't necessarily go and write these structures from scratch, we just go and use a library however understanding how they are implemented especially in a low level language like C++ helps taking the most out of them in the most right way when using them. (on Amazon)|