Refactoring: Improving the Design of Existing Code


Martin Fowler - 1999
    Significant numbers of poorly designed programs have been created by less-experienced developers, resulting in applications that are inefficient and hard to maintain and extend. Increasingly, software system professionals are discovering just how difficult it is to work with these inherited, non-optimal applications. For several years, expert-level object programmers have employed a growing collection of techniques to improve the structural integrity and performance of such existing software programs. Referred to as refactoring, these practices have remained in the domain of experts because no attempt has been made to transcribe the lore into a form that all developers could use... until now. In Refactoring: Improving the Design of Existing Software, renowned object technology mentor Martin Fowler breaks new ground, demystifying these master practices and demonstrating how software practitioners can realize the significant benefits of this new process.

Site Reliability Engineering: How Google Runs Production Systems


Betsy Beyer - 2016
    So, why does conventional wisdom insist that software engineers focus primarily on the design and development of large-scale computing systems?In this collection of essays and articles, key members of Google's Site Reliability Team explain how and why their commitment to the entire lifecycle has enabled the company to successfully build, deploy, monitor, and maintain some of the largest software systems in the world. You'll learn the principles and practices that enable Google engineers to make systems more scalable, reliable, and efficient--lessons directly applicable to your organization.This book is divided into four sections: Introduction--Learn what site reliability engineering is and why it differs from conventional IT industry practicesPrinciples--Examine the patterns, behaviors, and areas of concern that influence the work of a site reliability engineer (SRE)Practices--Understand the theory and practice of an SRE's day-to-day work: building and operating large distributed computing systemsManagement--Explore Google's best practices for training, communication, and meetings that your organization can use

Domain-Driven Design: Tackling Complexity in the Heart of Software


Eric Evans - 2003
    "His book is very compatible with XP. It is not about drawing pictures of a domain; it is about how you think of it, the language you use to talk about it, and how you organize your software to reflect your improving understanding of it. Eric thinks that learning about your problem domain is as likely to happen at the end of your project as at the beginning, and so refactoring is a big part of his technique. "The book is a fun read. Eric has lots of interesting stories, and he has a way with words. I see this book as essential reading for software developers--it is a future classic." --Ralph Johnson, author of Design Patterns "If you don't think you are getting value from your investment in object-oriented programming, this book will tell you what you've forgotten to do. "Eric Evans convincingly argues for the importance of domain modeling as the central focus of development and provides a solid framework and set of techniques for accomplishing it. This is timeless wisdom, and will hold up long after the methodologies du jour have gone out of fashion." --Dave Collins, author of Designing Object-Oriented User Interfaces "Eric weaves real-world experience modeling--and building--business applications into a practical, useful book. Written from the perspective of a trusted practitioner, Eric's descriptions of ubiquitous language, the benefits of sharing models with users, object life-cycle management, logical and physical application structuring, and the process and results of deep refactoring are major contributions to our field." --Luke Hohmann, author of Beyond Software Architecture "This book belongs on the shelf of every thoughtful software developer." --Kent Beck "What Eric has managed to capture is a part of the design process that experienced object designers have always used, but that we have been singularly unsuccessful as a group in conveying to the rest of the industry. We've given away bits and pieces of this knowledge...but we've never organized and systematized the principles of building domain logic. This book is important." --Kyle Brown, author of Enterprise Java(TM) Programming with IBM(R) WebSphere(R) The software development community widely acknowledges that domain modeling is central to software design. Through domain models, software developers are able to express rich functionality and translate it into a software implementation that truly serves the needs of its users. But despite its obvious importance, there are few practical resources that explain how to incorporate effective domain modeling into the software development process. Domain-Driven Design fills that need. This is not a book about specific technologies. It offers readers a systematic approach to domain-driven design, presenting an extensive set of design best practices, experience-based techniques, and fundamental principles that facilitate the development of software projects facing complex domains. Intertwining design and development practice, this book incorporates numerous examples based on actual projects to illustrate the application of domain-driven design to real-world software development. Readers learn how to use a domain model to make a complex development effort more focused and dynamic. A core of best practices and standard patterns provides a common language for the development team. A shift in emphasis--refactoring not just the code but the model underlying the code--in combination with the frequent iterations of Agile development leads to deeper insight into domains and enhanced communication between domain expert and programmer. Domain-Driven Design then builds on this foundation, and addresses modeling and design for complex systems and larger organizations.Specific topics covered include:Getting all team members to speak the same language Connecting model and implementation more deeply Sharpening key distinctions in a model Managing the lifecycle of a domain object Writing domain code that is safe to combine in elaborate ways Making complex code obvious and predictable Formulating a domain vision statement Distilling the core of a complex domain Digging out implicit concepts needed in the model Applying analysis patterns Relating design patterns to the model Maintaining model integrity in a large system Dealing with coexisting models on the same project Organizing systems with large-scale structures Recognizing and responding to modeling breakthroughs With this book in hand, object-oriented developers, system analysts, and designers will have the guidance they need to organize and focus their work, create rich and useful domain models, and leverage those models into quality, long-lasting software implementations.

The Algorithm Design Manual


Steven S. Skiena - 1997
    Drawing heavily on the author's own real-world experiences, the book stresses design and analysis. Coverage is divided into two parts, the first being a general guide to techniques for the design and analysis of computer algorithms. The second is a reference section, which includes a catalog of the 75 most important algorithmic problems. By browsing this catalog, readers can quickly identify what the problem they have encountered is called, what is known about it, and how they should proceed if they need to solve it. This book is ideal for the working professional who uses algorithms on a daily basis and has need for a handy reference. This work can also readily be used in an upper-division course or as a student reference guide. THE ALGORITHM DESIGN MANUAL comes with a CD-ROM that contains: * a complete hypertext version of the full printed book. * the source code and URLs for all cited implementations. * over 30 hours of audio lectures on the design and analysis of algorithms are provided, all keyed to on-line lecture notes.

Mindstorms: Children, Computers, And Powerful Ideas


Seymour Papert - 1980
    We have Mindstorms to thank for that. In this book, pioneering computer scientist Seymour Papert uses the invention of LOGO, the first child-friendly programming language, to make the case for the value of teaching children with computers. Papert argues that children are more than capable of mastering computers, and that teaching computational processes like de-bugging in the classroom can change the way we learn everything else. He also shows that schools saturated with technology can actually improve socialization and interaction among students and between students and teachers.

A Mind at Play: How Claude Shannon Invented the Information Age


Jimmy Soni - 2017
    He constructed a fleet of customized unicycles and a flamethrowing trumpet, outfoxed Vegas casinos, and built juggling robots. He also wrote the seminal text of the digital revolution, which has been called “the Magna Carta of the Information Age.” His discoveries would lead contemporaries to compare him to Albert Einstein and Isaac Newton. His work anticipated by decades the world we’d be living in today—and gave mathematicians and engineers the tools to bring that world to pass.In this elegantly written, exhaustively researched biography, Jimmy Soni and Rob Goodman reveal Claude Shannon’s full story for the first time. It’s the story of a small-town Michigan boy whose career stretched from the era of room-sized computers powered by gears and string to the age of Apple. It’s the story of the origins of our digital world in the tunnels of MIT and the “idea factory” of Bell Labs, in the “scientists’ war” with Nazi Germany, and in the work of Shannon’s collaborators and rivals, thinkers like Alan Turing, John von Neumann, Vannevar Bush, and Norbert Wiener.And it’s the story of Shannon’s life as an often reclusive, always playful genius. With access to Shannon’s family and friends, A Mind at Play brings this singular innovator and creative genius to life.

Hackers & Painters: Big Ideas from the Computer Age


Paul Graham - 2004
    Who are these people, what motivates them, and why should you care?Consider these facts: Everything around us is turning into computers. Your typewriter is gone, replaced by a computer. Your phone has turned into a computer. So has your camera. Soon your TV will. Your car was not only designed on computers, but has more processing power in it than a room-sized mainframe did in 1970. Letters, encyclopedias, newspapers, and even your local store are being replaced by the Internet.Hackers & Painters: Big Ideas from the Computer Age, by Paul Graham, explains this world and the motivations of the people who occupy it. In clear, thoughtful prose that draws on illuminating historical examples, Graham takes readers on an unflinching exploration into what he calls “an intellectual Wild West.”The ideas discussed in this book will have a powerful and lasting impact on how we think, how we work, how we develop technology, and how we live. Topics include the importance of beauty in software design, how to make wealth, heresy and free speech, the programming language renaissance, the open-source movement, digital design, internet startups, and more.

Automate This: How Algorithms Came to Rule Our World


Christopher Steiner - 2012
    It used to be that to diagnose an illness, interpret legal documents, analyze foreign policy, or write a newspaper article you needed a human being with specific skills—and maybe an advanced degree or two. These days, high-level tasks are increasingly being handled by algorithms that can do precise work not only with speed but also with nuance. These “bots” started with human programming and logic, but now their reach extends beyond what their creators ever expected. In this fascinating, frightening book, Christopher Steiner tells the story of how algorithms took over—and shows why the “bot revolution” is about to spill into every aspect of our lives, often silently, without our knowledge. The May 2010 “Flash Crash” exposed Wall Street’s reliance on trading bots to the tune of a 998-point market drop and $1 trillion in vanished market value. But that was just the beginning. In Automate This, we meet bots that are driving cars, penning haiku, and writing music mistaken for Bach’s. They listen in on our customer service calls and figure out what Iran would do in the event of a nuclear standoff. There are algorithms that can pick out the most cohesive crew of astronauts for a space mission or identify the next Jeremy Lin. Some can even ingest statistics from baseball games and spit out pitch-perfect sports journalism indistinguishable from that produced by humans. The interaction of man and machine can make our lives easier. But what will the world look like when algorithms control our hospitals, our roads, our culture, and our national security? What hap­pens to businesses when we automate judgment and eliminate human instinct? And what role will be left for doctors, lawyers, writers, truck drivers, and many others?  Who knows—maybe there’s a bot learning to do your job this minute.

Quadrivium: The Four Classical Liberal Arts of Number, Geometry, Music, & Cosmology


John Martineau - 2010
    It was studied from antiquity to the Renaissance as a way of glimpsing the nature of reality. Geometry is number in space; music is number in time; and comology expresses number in space and time. Number, music, and geometry are metaphysical truths: life across the universe investigates them; they foreshadow the physical sciences.Quadrivium is the first volume to bring together these four subjects in many hundreds of years. Composed of six successful titles in the Wooden Books series-Sacred Geometry, Sacred Number, Harmonograph, The Elements of Music, Platonic & Archimedean Solids, and A Little Book of Coincidence-it makes ancient wisdom and its astonishing interconnectedness accessible to us today.Beautifully produced in six different colors of ink, Quadrivium will appeal to anyone interested in mathematics, music, astronomy, and how the universe works.

The Rise of the Creative Class: And How It's Transforming Work, Leisure, Community, and Everyday Life


Richard Florida - 2002
    Weaving storytelling with masses of new and updated research, Richard Florida traces the fundamental theme that runs through a host of seemingly unrelated changes in American society: the growing role of creativity in our economy. Just as William Whyte's 1956 classic The Organization Man showed how the organizational ethos of that age permeated every aspect of life, Florida describes a society in which the creative ethos is increasingly dominant. Millions of us are beginning to work and live much as creative types like artists and scientists always have-with the result that our values and tastes, our personal relationships, our choices of where to live, and even our sense and use of time are changing. Leading the shift are the nearly 38 million Americans in many diverse fields who create for a living-the Creative Class. The Rise of the Creative Class chronicles the ongoing sea of change in people's choices and attitudes, and shows not only what's happening but also how it stems from a fundamental economic change. The Creative Class now comprises more than thirty percent of the entire workforce. Their choices have already had a huge economic impact. In the future they will determine how the workplace is organized, what companies will prosper or go bankrupt, and even which cities will thrive or wither.

Phenomenology of Perception


Maurice Merleau-Ponty - 1945
    What makes this work so important is that it returned the body to the forefront of philosophy for the first time since Plato.

The Story of Art


E.H. Gombrich - 1950
    Attracted by the simplicity and clarity of his writing, readers of all ages and backgrounds have found in Professor Gombrich a true master, and one who combines knowledge and wisdom with a unique gift for communicating his deep love of the subject. The Story of Art, one of the most famous and popular books on art ever written, has been a world bestseller for over four decades. Attracted by the simplicity and clarity of his writing, readers of all ages and backgrounds have found in Professor Gombrich a true master, and one who combines knowledge and wisdom with a unique gift for communicating his deep love of the subject.For the first time in many years the book has been completely redesigned. The illustrations, now in colour throughout, have all been improved and reoriginated, and include six fold-outs. The text has been revised and updated where appropriate, and a number of significant new artists have been incorporated. The bibliographies have been expanded and updated, and the maps and charts redrawn. The Story of Art has always been admired for two key qualities: it is a pleasure to read and a pleasure to handle. In these respects the new edition is true to its much-loved predecessors: the text runs as smoothly as ever and the improved illustrations are always on the page where the reader needs them. In its new edition, this classic work continues its triumphant progress tirelessly for yet another generation, to remain the title of first choice for any newcomer to art or the connoisseur. The Story of Art has always been admired for two key qualities: it is a pleasure to read and a pleasure to handle. In these respects the new edition is true to its much-loved predecessors: the text runs as smoothly as ever and the improved illustrations are always on the page where the reader needs them. In its new edition, this classic work continues its triumphant progress tirelessly for yet another generation, to remain the title of first choice for any newcomer to art or the connoisseur.

Sacred Geometry


Miranda Lundy - 1998
    In this small volume, Miranda Lundy presents a unique introduction to this most ancient and timeless of universal sciences.Sacred Geometry demonstrates what happens to space in two dimensions - a subject last flowering in the art, science and architecture of the Renaissance and seen in the designs of Stonehenge, mosque decorations and church windows. With exquisite hand-drawn images throughout showing the relationship between shapes, the patterns of coin circles, and the definition of the golden section, it will forever alter the way in which you look at a triangle, hexagon, arch, or spiral.

Fractals


John P. Briggs - 1992
    Describes how fractals were discovered, explains their unique properties, and discusses the mathematical foundation of fractals.

The Postmodern Condition: A Report on Knowledge


Jean-François Lyotard - 1979
    Many definitions of postmodernism focus on its nature as the aftermath of the modern industrial age when technology developed. This book extends that analysis to postmodernism by looking at the status of science, technology, and the arts, the significance of technocracy, and the way the flow of information is controlled in the Western world.