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.

The Leader's Compass: A Personal Leadership Philosophy Is Your Key to Success


Ed Ruggero - 2003
    Most leaders recognize that developing these clearly articulated statements is time well spent; they help keep the organization on track and pointed toward clear goals. A written leadership philosophy, which we call "The Leader's Compass", achieves the same thing on a personal level; it lets people know what you expect, what you value, how you'll act, and how you'll measure performance, with the additional benefits of making the workplace less stressful and more productive. And, like a compass, it helps to keep you, the leader, on course".

New Dark Age: Technology and the End of the Future


James Bridle - 2018
    Underlying this trend is a single idea: the belief that our existence is understandable through computation, and more data is enough to help us build a better world.   In actual fact, we are lost in a sea of information, increasingly divided by fundamentalism, simplistic narratives, conspiracy theories, and post-factual politics. Meanwhile, those in power use our lack of understanding to further their own interests. Despite the accessibility of information, we’re living in a new Dark Age.   From rogue financial systems to shopping algorithms, from artificial intelligence to state secrecy, we no longer understand how our world is governed or presented to us. The media is filled with unverifiable speculation, much of it generated by anonymous software, while companies dominate their employees through surveillance and the threat of automation.   In his brilliant new work, leading artist and writer James Bridle excavates the limits of technology and how it aids our understanding of the world. Surveying the history of art, technology, and information systems, he explores the dark clouds that gather over our dreams of the digital sublime.

Java Puzzlers: Traps, Pitfalls, and Corner Cases


Joshua Bloch - 2005
    This lively book reveals oddities of the Java programming language through entertaining and thought-provoking programming puzzles.--Guy Steele, Sun Fellow and coauthor of The Java(TM) Language SpecificationI laughed, I cried, I threw up (my hands in admiration).--Tim Peierls, president, Prior Artisans LLC, and member of the JSR 166 Expert GroupHow well do you really know Java? Are you a code sleuth? Have you ever spent days chasing a bug caused by a trap or pitfall in Java or its libraries? Do you like brainteasers? Then this is the book for you!In the tradition of Effective Java(TM), Bloch and Gafter dive deep into the subtleties of the Java programming language and its core libraries. Illustrated with visually stunning optical illusions, Java(TM) Puzzlers features 95 diabolical puzzles that educate and entertain. Anyone with a working knowledge of Java will understand the puzzles, but even the most seasoned veteran will find them challenging.Most of the puzzles take the form of a short program whose behavior isn't what it seems. Can you figure out what it does? Puzzles are grouped loosely according to the features they use, and detailed solutions follow each puzzle. The solutions go well beyond a simple explanation of the program's behavior--they show you how to avoid the underlying traps and pitfalls for good. A handy catalog of traps and pitfalls at the back of the book provides a concise taxonomy for future reference.Solve these puzzles and you'll never again fall prey to the counterintuitive or obscure behaviors that can fool even the most experienced programmers.

The Cybernetic Hypothesis


Tiqqun - 2001
    The Cybernetic Hypothesis presents a genealogy of our “technical” present that doesn't point out the political and ethical dilemmas embedded in it as if they were puzzles to be solved, but rather unmasks an enemy force to be engaged and defeated. Cybernetics in this context is the teknê of threat reduction, which unfortunately has required the reduction of a disturbing humanity to packets of manageable information. Not so easily done. Not smooth. A matter of civil war, in fact. According to the authors, cybernetics is the latest master fable, welcomed at a certain crisis juncture in late capitalism. And now the interesting question is: Has the guest in the house become the master of the house?The “cybernetic hypothesis” is strategic. Readers of this little book are not likely to be naive. They may be already looking, at least in their heads, for a weapon, for a counter-strategy. Tiqqun here imagines an unbearable disturbance to a System that can take only so much: only so much desertion, only so much destituent gesture, only so much guerilla attack, only so much wickedness and joy.

Laws of Media: The New Science


Marshall McLuhan - 1990
    Works such as The Gutenberg Galaxy, The Mechanical Bride , From Cliche to Archetype , and Understanding Media have established his reputation throughout the world and have profoundly influenced our understanding of contemporary communication. In his later years McLuhan was working on a 'unified field' theory of human culture, an effort in which he collaborated with and was assisted by his son, Eric McLuhan. This book is the result of that collaboration. The McLuhans are retrieving another way of understanding our world, a way known to some ancient Greeks (but not Aristotle), to medieval thinkers, to Francis Bacon and Giambattista Vico, and to T.S. Eliot and James Joyce in this century. It is based on the use of words and the conseuqent power of the 'logos' to shape all the elements of culture - media - with which we surround ourselves. The authors explain how the invention of the alphabet led to the dominance of visual-space conceptualizations over those of acoustic space and its creative words (and word-plays). They consider the differences between the left- and right-hand sides of our brains, and use Gestalt theories of figure and ground to explore the underlying principles that define media. 'Media, ' the word so closely connected with Marshall McLuhan's thought, is here explored in its broadest meaning, encompassing all that has been created by humans: artefacts, information, ideas - every example of human innovation, from computer program to a tea cup, from musical arrangement to the formula for a cold remedy, from an X-ray machine to the sentence you're reading right now. All these are media to whcih can be applied the laws the McLuhans have developed. The laws are based on a set of four questions - a tetrad - that can be applied to any artefact or idea: What does it enhance or intensify? What does it render obsolete or displace? What does it retrieve that was previoulsy obsolesced? What does it produce or become when pressed to an extreme? Inherent in every human innovation is an answer to each of the questions of this tetrad; anything that does not contain answers to these four questions is not the product of human creation. The laws identified by the McLuhans consitute a new scientific basis for media studies, testable, and able to allow for prediction. It takes in all human activities and speech; it breaks down barriers and reconsiders them as mere intervals. In the McLuhan tradition, this New Science offers a while new understanding of human creation, and a vision that could reshape our future.

Joel on Software


Joel Spolsky - 2004
    For years, Joel Spolsky has done exactly this at www.joelonsoftware.com. Now, for the first time, you can own a collection of the most important essays from his site in one book, with exclusive commentary and new insights from joel.

Game-Changer: Game Theory and the Art of Transforming Strategic Situations


David McAdams - 2014
    He was referring to battlefield tactics, but the same can be said about any strategic situation. Even seemingly certain defeat can be turned into victory--whether in battle, business, or life--by those with the strategic vision to recognize how to "change the game" to their own advantage.The aim of David McAdams's Game-Changer is nothing less than to empower you with this wisdom--not just to win in every strategic situation (or "game") you face but to change those games and the ecosystems in which they reside to transform your life and our lives together for the better.Game-Changer develops six basic ways to change games--commitment, regulation, cartelization, retaliation, trust, and relationships--enlivened by countless colorful characters and unforgettable examples from the worlds of business, medicine, finance, military history, crime, sports, and more.The book then digs into several real-world strategic challenges, such as how to keep prices low on the Internet, how to restore the public's lost trust in for-charity telemarketers, and even how to save mankind from looming and seemingly unstoppable drug-resistant disease. In each case, McAdams uses the game-theory approach developed in the book to identify the strategic crux of the problem and then leverages that "game-awareness" to brainstorm ways to change the game to solve or at least mitigate the underlying problem.So get ready for a fascinating journey. You'll emerge a deeper strategic thinker, poised to change and win all the games you play. In doing so, you can also make the world a better place. "Just one Game-Changer [is] enough to seed and transform an entire organization into a more productive, happier, and altogether better place," McAdams writes. Just imagine what we can do together.

Machine Learning With Random Forests And Decision Trees: A Mostly Intuitive Guide, But Also Some Python


Scott Hartshorn - 2016
    They are typically used to categorize something based on other data that you have. The purpose of this book is to help you understand how Random Forests work, as well as the different options that you have when using them to analyze a problem. Additionally, since Decision Trees are a fundamental part of Random Forests, this book explains how they work. This book is focused on understanding Random Forests at the conceptual level. Knowing how they work, why they work the way that they do, and what options are available to improve results. This book covers how Random Forests work in an intuitive way, and also explains the equations behind many of the functions, but it only has a small amount of actual code (in python). This book is focused on giving examples and providing analogies for the most fundamental aspects of how random forests and decision trees work. The reason is that those are easy to understand and they stick with you. There are also some really interesting aspects of random forests, such as information gain, feature importances, or out of bag error, that simply cannot be well covered without diving into the equations of how they work. For those the focus is providing the information in a straight forward and easy to understand way.

Cassandra: The Definitive Guide


Eben Hewitt - 2010
    Cassandra: The Definitive Guide provides the technical details and practical examples you need to assess this database management system and put it to work in a production environment.Author Eben Hewitt demonstrates the advantages of Cassandra's nonrelational design, and pays special attention to data modeling. If you're a developer, DBA, application architect, or manager looking to solve a database scaling issue or future-proof your application, this guide shows you how to harness Cassandra's speed and flexibility.Understand the tenets of Cassandra's column-oriented structureLearn how to write, update, and read Cassandra dataDiscover how to add or remove nodes from the cluster as your application requiresExamine a working application that translates from a relational model to Cassandra's data modelUse examples for writing clients in Java, Python, and C#Use the JMX interface to monitor a cluster's usage, memory patterns, and moreTune memory settings, data storage, and caching for better performance

Beyond Software Architecture: Creating and Sustaining Winning Solutions


Luke Hohmann - 2003
    There are currently a significant number of books on creating, documenting, and implementing software architecture, but precious few resources have addressed how to build a software architecture that aligns with a customer's overall business goals. In this new book, Luke Hohmann borrows from his extensive experience managing successful enterprise software projects to provide practical wisdom on creating and sustaining winning software solutions. This book helps technologists grasp the business ramifications of their decisions, and provides business-oriented software professionals (e.g. sales people and marketers) with better knowledge of how robust software can be built and maintained.

Software Engineering at Google: Lessons Learned from Programming Over Time


Titus Winters - 2020
    With this book, you'll get a candid and insightful look at how software is constructed and maintained by some of the world's leading practitioners.Titus Winters, Tom Manshreck, and Hyrum K. Wright, software engineers and a technical writer at Google, reframe how software engineering is practiced and taught: from an emphasis on programming to an emphasis on software engineering, which roughly translates to programming over time.You'll learn:Fundamental differences between software engineering and programmingHow an organization effectively manages a living codebase and efficiently responds to inevitable changeWhy culture (and recognizing it) is important, and how processes, practices, and tools come into play