Seriously Good Software: Code that works, survives, and wins cover
welcome to this free extract from
an online version of the Manning book.
to read more

About This Book


The core idea of this book is to convey the mindset of an experienced developer by comparing and contrasting different code qualities (aka nonfunctional requirements).

The figure inside the front cover relates the content of this book to the wider landscape of the knowledge required of professional developers. First, you start by learning the basics of a programming language. In Java, that entails knowing about classes, methods, fields, and so on. This book won’t teach you those basics. Then, you should ideally follow three paths:

  • The programming language path— Learn about the more advanced language features, such as generics and multithreading.
  • The algorithmic path— Learn about solid theoretical principles, standard algorithms and data structures, and ways to measure their performance.
  • The software engineering path— Learn about design principles, methodologies, and best practices that help manage complexity, especially in large projects.

This book covers all of these areas, with a twist. Rather than teaching these different aspects separately, I’ll mix and match them according to the needs of each chapter.

Who Should Read This Book

Book Structure

The Online Repository

Why Java? Which Java?

Livebook Discussion Forum