Writing for students at all levels of experience Farley illuminates durable principles at the
heart of effective software development. He distills the discipline into two core exercises:
first learning and exploration and second managing complexity. For each he defines
principles that can help students improve everything from their mindset to the quality of their
code and describes approaches proven to promote success. Farley's ideas and techniques cohere
into a unified scientific and foundational approach to solving practical software development
problems within realistic economic constraints. This general durable and pervasive approach
to software engineering can help students solve problems they haven't encountered yet using
today's technologies and tomorrow's. It offers students deeper insight into what they do every
day helping them create better software faster with more pleasure and personal fulfillment.