An essential text on the analysis, development, and implementation of fundemental data structures and algorithms.
Patterns to assist with the creation of enterprise software. Enterprise software can be small to large applications, but the use of good patterns can assist with development, maintenance, longevity, and cost-efficiency.
The principles, patterns, and practices chosen to assist with the delivery of software projects are essential to the long term success of the project. Design patterns, development principles, and clean code practices directly impact the quality and speed of delivery of software.
Your legacy is determined by what you choose to care about and and not care about. Pain is a necessary part of life and you often get to choose what your pain or pile of crap is. Always strive to doubt your conclusions and challenge your values so that you may continually grow.
Deep work, the ability to work in a flow state and produce both a quality and quantity of work, is under attack in the current age of distraction that we're in but it has never been more valuable given the extreme technical nature of the knowledge work that most are undertaking. In addition, it provides a greater meaning to work and life because of the richness and focusedness of the experiences. Lastly, it leads to a more rounded life because of the focus on what is most valuable and the discipline to shun the innessential.
Owning your situation, in life and work, allows you to determine your future rather than let circumstances determine it. Leadership is simple but not easy given the numerous dichotomies in leadership. Effectively communicating not only the what but also the why is important so that even the lowest level understands the greater picture to a degree. Through constant dedication, discipline, and continous improvement, individuals and teams can attain the ultimate freedom: intrinsic self-discipline.
How you handle conversations has a huge impact on your relationships. Ensuring safety in conversations is essential to allow for the real issues to be discussed. If there's a safe environment you can talk about anything.
Uncle Bob outlines what he has learned over the years when it comes to architecture on a systems and project level. The goal of architecture is to reduce the long-term cost of a project by delaying decisions and maintaining as much flexibility as possible. A special team does not accomplish this goal but architects who are the best programmers. Through the pragmatic application of principles and architectural methods, one can make a project easier and more cost effective.
By asking your peers and or subordinates the right questions and listening you gain greater insight and they learn more than if you just talked for the duration or engaged in random social chit chat. The words that you use to formulate questions makes a big difference as does the sequence in which you ask particular questions. Realize that you do not have to answer _"yes"_ to questions and that it is your job to get buyin and more than tacit agreement for anything that you ask of someone - that way you know that you're on the same page.