Effective Java


Joshua Bloch - 2001
    The principal enhancement in Java 8 was the addition of functional programming constructs to Java's object-oriented roots. Java 7, 8, and 9 also introduced language features, such as the try-with-resources statement, the diamond operator for generic types, default and static methods in interfaces, the @SafeVarargs annotation, and modules. New library features include pervasive use of functional interfaces and streams, the java.time package for manipulating dates and times, and numerous minor enhancements such as convenience factory methods for collections. In this new edition of Effective Java, Bloch updates the work to take advantage of these new language and library features, and provides specific best practices for their use. Java's increased support for multiple paradigms increases the need for best-practices advice, and this book delivers. As in previous editions, each chapter consists of several "items," each presented in the form of a short, standalone essay that provides specific advice, insight into Java platform subtleties, and updated code examples. The comprehensive descriptions and explanations for each item illuminate what to do, what not to do, and why. Coverage includes:Updated techniques and best practices on classic topics, including objects, classes, methods, libraries, and generics How to avoid the traps and pitfalls of commonly misunderstood subtleties of the platform Focus on the language and its most fundamental libraries, such as java.lang and java.util

Writing for Computer Science


Justin Zobel - 1997
    For the most part the book is a discussion of good writing style and effective research strategies. Some of the material is accepted wisdom, some is controversial, and some is my opinions. Although the book is brief, it is designed to be comprehensive: some readers may be interested in exploring topics further, but for most readers this book should be suf?cient. The ?rst edition of this book was almost entirely about writing. This e- tion, partly in response to reader feedback and partly in response to issues that arose in my ownexperiences as an advisor, researcher, and referee, is also about research methods. Indeed, the two topics writing about and doing research are not clearly separated. It is a small step from asking how do I write? to askingwhatisitthatIwriteabout? As previously, the guidance on writing focuses on research, but much of the material is applicable to general technical and professional communication. Likewise, the guidance on the practice of research has broader lessons. A pr- titioner trying a new algorithm or explaining to colleagues why one solution is preferable to another should be con?dent that the arguments are built on robust foundations. And, while this edition has a stronger emphasis on research than did the ?rst, nothing has been deleted; there is additional material on research, but the guidance on writing has not been taken away."

Working Effectively with Legacy Code


Michael C. Feathers - 2004
    This book draws on material Michael created for his renowned Object Mentor seminars, techniques Michael has used in mentoring to help hundreds of developers, technical managers, and testers bring their legacy systems under control. The topics covered include: Understanding the mechanics of software change, adding features, fixing bugs, improving design, optimizing performance Getting legacy code into a test harness Writing tests that protect you against introducing new problems Techniques that can be used with any language or platform, with examples in Java, C++, C, and C# Accurately identifying where code changes need to be made Coping with legacy systems that aren't object-oriented Handling applications that don't seem to have any structureThis book also includes a catalog of twenty-four dependency-breaking techniques that help you work with program elements in isolation and make safer changes.

Absolute C++


Walter J. Savitch - 2001
    Concepts and techniques are presented in a clear and concise style, giving readers the opportunity to master key topics.

Software Design Decoded: 66 Ways Experts Think


Marian Petre - 2016
    Expert software designers have specific habits, learned practices, and observed principles that they apply deliberately during their design work. This book offers sixty-six insights, distilled from years of studying experts at work, that capture what successful software designers actually do to create great software.The book presents these insights in a series of two-page illustrated spreads, with the principle and a short explanatory text on one page, and a drawing on the facing page. For example, "Experts generate alternatives" is illustrated by the same few balloons turned into a set of very different balloon animals. The text is engaging and accessible; the drawings are thought-provoking and often playful.Organized into such categories as "Experts reflect," "Experts are not afraid," and "Experts break the rules," the insights range from "Experts prefer simple solutions" to "Experts see error as opportunity." Readers learn that "Experts involve the user"; "Experts take inspiration from wherever they can"; "Experts design throughout the creation of software"; and "Experts draw the problem as much as they draw the solution."One habit for an aspiring expert software designer to develop would be to read and reread this entertaining but essential little book. The insights described offer a guide for the novice or a reference for the veteran--in software design or any design profession.A companion web site provides an annotated bibliography that compiles key underpinning literature, the opportunity to suggest additional insights, and more.

The Pragmatic Programmer: From Journeyman to Master


Andy Hunt - 1999
    It covers topics ranging from personal responsibility and career development to architectural techniques for keeping your code flexible and easy to adapt and reuse. Read this book, and you'll learn how toFight software rot; Avoid the trap of duplicating knowledge; Write flexible, dynamic, and adaptable code; Avoid programming by coincidence; Bullet-proof your code with contracts, assertions, and exceptions; Capture real requirements; Test ruthlessly and effectively; Delight your users; Build teams of pragmatic programmers; and Make your developments more precise with automation. Written as a series of self-contained sections and filled with entertaining anecdotes, thoughtful examples, and interesting analogies, The Pragmatic Programmer illustrates the best practices and major pitfalls of many different aspects of software development. Whether you're a new coder, an experienced programmer, or a manager responsible for software projects, use these lessons daily, and you'll quickly see improvements in personal productivity, accuracy, and job satisfaction. You'll learn skills and develop habits and attitudes that form the foundation for long-term success in your career. You'll become a Pragmatic Programmer.

Organic Chemistry


Paula Yurkanis Bruice - 1995
    The author's writing has been praised for anticipating readers' questions, and appeals to their need to learn visually and by solving problems. Emphasizing that learners should reason their way to solutions rather than memorize facts, Bruice encourages them to think about what they have learned previously and apply that knowledge in a new setting.

Introducing Quantum Theory: A Graphic Guide


J.P. McEvoy - 1992
    At the subatomic level, one particle seems to know what the others are doing, and according to Heisenberg's "uncertainty principle", there is a limit on how accurately nature can be observed. And yet the theory is amazingly accurate and widely applied, explaining all of chemistry and most of physics. "Introducing Quantum Theory" takes us on a step-by-step tour with the key figures, including Planck, Einstein, Bohr, Heisenberg and Schrodinger. Each contributed at least one crucial concept to the theory. The puzzle of the wave-particle duality is here, along with descriptions of the two questions raised against Bohr's "Copenhagen Interpretation" - the famous "dead and alive cat" and the EPR paradox. Both remain unresolved.

The Tyranny of Metrics


Jerry Z. Muller - 2017
    But in our zeal to instill the evaluation process with scientific rigor, we've gone from measuring performance to fixating on measuring itself. The result is a tyranny of metrics that threatens the quality of our lives and most important institutions. In this timely and powerful book, Jerry Muller uncovers the damage our obsession with metrics is causing--and shows how we can begin to fix the problem.Filled with examples from education, medicine, business and finance, government, the police and military, and philanthropy and foreign aid, this brief and accessible book explains why the seemingly irresistible pressure to quantify performance distorts and distracts, whether by encouraging "gaming the stats" or "teaching to the test." That's because what can and does get measured is not always worth measuring, may not be what we really want to know, and may draw effort away from the things we care about. Along the way, we learn why paying for measured performance doesn't work, why surgical scorecards may increase deaths, and much more. But metrics can be good when used as a complement to--rather than a replacement for--judgment based on personal experience, and Muller also gives examples of when metrics have been beneficial.Complete with a checklist of when and how to use metrics, The Tyranny of Metrics is an essential corrective to a rarely questioned trend that increasingly affects us all.

The Myth of the Rational Market: Wall Street's Impossible Quest for Predictable Markets


Justin Fox - 2008
    The book brings to life the people and ideas that forged modern finance and investing, from the formative days of Wall Street through the Great Depression and into the financial calamity of today. It's a tale that features professors who made and lost fortunes, battled fiercely over ideas, beat the house in blackjack, wrote bestselling books, and played major roles on the world stage. It's also a tale of Wall Street's evolution, the power of the market to generate wealth and wreak havoc, and free market capitalism's war with itself.The efficient market hypothesis--long part of academic folklore but codified in the 1960s at the University of Chicago--has evolved into a powerful myth. It has been the maker and loser of fortunes, the driver of trillions of dollars, the inspiration for index funds and vast new derivatives markets, and the guidepost for thousands of careers. The theory holds that the market is always right, and that the decisions of millions of rational investors, all acting on information to outsmart one another, always provide the best judge of a stock's value. That myth is crumbling.Celebrated journalist and columnist Fox introduces a new wave of economists and scholars who no longer teach that investors are rational or that the markets are always right. Many of them now agree with Yale professor Robert Shiller that the efficient markets theory "represents one of the most remarkable errors in the history of economic thought." Today the theory has given way to counterintuitive hypotheses about human behavior, psychological models of decision making, and the irrationality of the markets. Investors overreact, underreact, and make irrational decisions based on imperfect data. In his landmark treatment of the history of the world's markets, Fox uncovers the new ideas that may come to drive the market in the century ahead.

The Book of Why: The New Science of Cause and Effect


Judea Pearl - 2018
    Today, that taboo is dead. The causal revolution, instigated by Judea Pearl and his colleagues, has cut through a century of confusion and established causality -- the study of cause and effect -- on a firm scientific basis. His work explains how we can know easy things, like whether it was rain or a sprinkler that made a sidewalk wet; and how to answer hard questions, like whether a drug cured an illness. Pearl's work enables us to know not just whether one thing causes another: it lets us explore the world that is and the worlds that could have been. It shows us the essence of human thought and key to artificial intelligence. Anyone who wants to understand either needs The Book of Why.

Consilience: The Unity of Knowledge


Edward O. Wilson - 1998
    In Consilience  (a word that originally meant "jumping together"), Edward O. Wilson renews the Enlightenment's search for a unified theory of knowledge in disciplines that range from physics to biology, the social sciences and the humanities.Using the natural sciences as his model, Wilson forges dramatic links between fields. He explores the chemistry of the mind and the genetic bases of culture. He postulates the biological principles underlying works of art from cave-drawings to Lolita. Presenting the latest findings in prose of wonderful clarity and oratorical eloquence, and synthesizing it into a dazzling whole, Consilience is science in the path-clearing traditions of Newton, Einstein, and Richard Feynman.

Mastering Bitcoin: Unlocking Digital Cryptocurrencies


Andreas M. Antonopoulos - 2014
    Whether you're building the next killer app, investing in a startup, or simply curious about the technology, this practical book is essential reading.Bitcoin, the first successful decentralized digital currency, is still in its infancy and it's already spawned a multi-billion dollar global economy. This economy is open to anyone with the knowledge and passion to participate. Mastering Bitcoin provides you with the knowledge you need (passion not included).This book includes:A broad introduction to bitcoin--ideal for non-technical users, investors, and business executivesAn explanation of the technical foundations of bitcoin and cryptographic currencies for developers, engineers, and software and systems architectsDetails of the bitcoin decentralized network, peer-to-peer architecture, transaction lifecycle, and security principlesOffshoots of the bitcoin and blockchain inventions, including alternative chains, currencies, and applicationsUser stories, analogies, examples, and code snippets illustrating key technical concepts

Principles Materials Science Engineering


William F. Smith - 1986
    It provides up to date information on structural properties, the processing of materials and their applications.

The Road to Reality: A Complete Guide to the Laws of the Universe


Roger Penrose - 2004
    From the very first attempts by the Greeks to grapple with the complexities of our known world to the latest application of infinity in physics, The Road to Reality carefully explores the movement of the smallest atomic particles and reaches into the vastness of intergalactic space. Here, Penrose examines the mathematical foundations of the physical universe, exposing the underlying beauty of physics and giving us one the most important works in modern science writing.