Book and course references
A short list of really good books for Software Engineers

Search for a command to run...
A short list of really good books for Software Engineers

No comments yet. Be the first to comment.
Here will be presented a few tools and commands which help one to handle files and texts in Linux. All tools here were tested in Ubuntu 18.04 and 20.04. Please note that this is supposed to be a quick guide with hopefully some meaningful information ...

Introduction We are all too familiar with the Singleton and Observable design patterns. Yet, there is the so-called Strategy Design Pattern, which is quite useful but unknown to many developers. This design approach is a very nice example of the favo...

This is a list of books and courses that one may find pertinent to several areas of software development. Please note that, even though this is an article, this is a "living list" which will be updated from time to time. Furthermore, of course, there are many more great books out there.
Team lead, tech lead... these positions have similar responsibilities and there is no clear definition on the market of what is what. Regardless, a management and technical component is always involved, and that is what these references below are about.
The Manager's Path: A Guide for Tech Leaders Navigating Growth and Change - a book that shows the path from a beginner manager, to a big executive. It is fun to read and gives one a perspective on what it is to be a manager.
Talking with Tech Leads: From Novices to Practitioners- this book is a collection of stories from several tech leads. it gives a perspective on the biggest challenges of such a role.
Presentation Zen: Simple Ideas on Presentation Design and Delivery (Voices That Matter) - this has to do with presentation techniques, which comes to be quite useful in team lead's activities.
Managing Humans: Biting and Humorous Tales of a Software Engineering Manager - a book with several useful tips for management.
Radical Candor: be a kick-ass boss without losing your humanity - it is a book about communication. But not your common-sense way of speaking with people, however, a broad range of techniques and a unique perspective of communicating efficiently.
Become an Effective Software Engineering Manager: How to Be the Leader Your Development Team Needs - this is a great book with tips when starting your first management role.
Quality Engineer goes from someone who does manual testing to an engineer who develops automated ones. Finding references for this position is not easy.
In the interest of full disclosure, I did not read the books nor took the courses from this section, however, I got very good recommendations, thus I am putting them here.
In one word it means a programmer. It could be backend, frontend developer, SRE Engineer, or whatever other position for someone who builds code and handles infrastructure.
Domain-Driven Design: Tackling Complexity in the Heart of Software - a classic. Every software engineer should read this book. It teaches you everything you should know about modeling systems. This book is not for the fainted-hearted.
Design Patterns: Elements of Reusable Object-Oriented Software - this is the original design patterns book. It is not the easiest reading, but worth it.
Head First Design Patterns: A Brain-Friendly Guide - the best book I read about design patterns. The patterns are well explained, as well as their purposes.
Clean Code: A Handbook of Agile Software Craftsmanship - you probably know about lots of code best practices, and most of them probably come from this book.
Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems - a very good book about the distributed system. The subject is not trivial, however, the book makes a very good job explaining it.
Per this reference, microservices can be defined as:
Microservices are an architectural and organizational approach to software development where software is composed of small independent services that communicate over well-defined APIs. These services are owned by small, self-contained teams.
Apache Kafka Series - Learn Apache Kafka for Beginners v2 - your classic Kafka course, a very good one though.
Docker and Kubernetes: The Complete Guide - this is a very complete and good course about docker and Kubernetes. It is lengthy but worth taking it.
Per the amazon website, AWS means
AWS is designed to allow application providers, ISVs, and vendors to quickly and securely host your applications – whether an existing application or a new SaaS-based application. You can use the AWS Management Console or well-documented web services APIs to access AWS's application hosting platform.
Hopefully, this is self-explanatory, but here it means references to subjects like data structures, sorting, graph algorithms, etc.
Introduction to Algorithms, 3rd Edition (The MIT Press) - this is the algorithm bible. It has everything and it is surprisingly not hard to understand.
Algorithms (4th Edition) - quite a good algorithm book. The nice touch is that the examples are in Java :).
The Algorithm Design Manual - this is another good alternative for learning algorithms. It is not so lengthy, therefore it helps if one wants a quicker reading.
This is not very easy to define, so please read this post for a lengthy description of the theme. Unfortunately, not too many references are provided here.
Here is a very nice definition:
Cryptography is the study of secure communications techniques that allow only the sender and intended recipient of a message to view its contents. The term is derived from the Greek word kryptos, which means hidden.