Over time I have gathered a selection of learning material that I really enjoy and tend to recommend often. It is a mix between management, tech and self improvement materials that can help you to become a great technical leader. From time to time I revisit this list and make changes, but I try to stay below a dozen recommendations overall.
High Output Management is a great book to start thinking about KPIs and metrics. It guides you to start thinking about growing and scaling your business and which challenges will pop up that you need to overcome. It focuses on keeping your teams and your whole organization efficient and explains that you need to adapt as your company grows.
More on GoodreadsThe Art of war is a classic that I try to read every year again. It is full of information about leadership and organizational structure. The author wrote it in the context of war and military, but it is easily adaptable to company management. It teaches you how to lead clearly and how to tackle challenges. Many modern leaders read and recommend this book.
More on GoodreadsMany countries teach rethoric and argumentation in their curriculum. Unfortunately, in Germany it is not mandatory and I've seen people in tech suffer because of that. This is a great argumentation and crictial thinking course from Duke University. It goes into the basics and quickly extends into common fellacies and tricks other people use. There are 4 courses, but I think the first two are the most important ones.
More on CourseraClean Code changes the way you think about code. It emphasizes the importance of writing readable and maintainable code by structuring it in a logical way with clear interfaces. The principles are solid and hold strong over time. I often recommend it to developers that strive to become more senior. It helps to have a copy in your library that you can lend out. Some of the principles can be thought through vigorous pull request reviews, but I belive it cannot replace reading this book.
More on GoodreadsRefactoring is a classic written by Martin Fowler that introduces the concept of refactoring. Refactoring is a never ending process of improving your code base step by step. It introduces principles and methods that help you make progress. Unfortunately, I've heard the term refactroing from developers when they just want to rewrite significant parts of the codebase. It important to have the same understanding of the word, so you and your team can plan improvements properly.
More on Goodreads