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.

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.

Visual Thinking for Design


Colin Ware - 2008
    Fortunately, results from the relatively new science of human visual perception provide valuable guidance. In Visual Thinking for Design, Colin Ware takes what we now know about perception, cognition, and attention and transforms it into concrete advice that designers can directly apply. He demonstrates how designs can be considered as tools for cognition - extensions of the viewer’s brain in much the same way that a hammer is an extension of the user’s hand. Experienced professional designers and students alike will learn how to maximize the power of the information tools they design for the people who use them.• Presents visual thinking as a complex process that can be supported in every stage using specific design techniques.• Provides practical, task-oriented information for designers and software developers charged with design responsibilities.• Includes hundreds of examples, many in the form of integrated text and full-color diagrams.• Steeped in the principles of “active vision,” which views graphic designs as cognitive tools.

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.

Using Information Technology


Brian K. Williams - 1990
    This text is user-focused and has been highly updated including topics, pictures and examples. The Williams text contains less theory and more application to engage students who might be more familiar with technology. Continually published and updated for over 15 years, Using Information Technology was the first text to foresee and define the impact of digital convergence--the fusion of computers and communications. It was also the first text to acknowledge the new priorities imposed by the Internet and World Wide Web and bring discussion of them from late in the course to the beginning. Today, it is directed toward the "Always On" generation that is at ease with digital technology--comfortable with iPhones, MySpace, Facebook, Twitter, Wikipedia, and the blogosphere--but not always savvy about its processes, possibilities, and liabilities. This 8th edition continues to address the two most significant challenges that instructors face in teaching this course: -Trying to make the course interesting and challenging, and -Trying to teach to students with a variety of computer backgrounds. In addition, this text correlates with Simnet Online for full integration of resources within the Computing Concepts course.

Cryptocurrency Investing Bible: The Ultimate Guide About Blockchain, Mining, Trading, ICO, Ethereum Platform, Exchanges, Top Cryptocurrencies for Investing and Perfect Strategies to Make Money


Alan T. Norman - 2017
    When hearing those words just a couple of years back, people used to say: It’s a scam, financial bubble IThere is no point in investing, the price is too low INo country will ever recognize cryptocurrency IIt’s an obvious pyramid scheme IIt’s a sort of amusement for nerds IIt's not serious, it will collapse in a couple of years. Until recently, cryptocurrency had been viewed as a sort of amusement for a handful of the chosen who bought and sold something and believed that a new currency would make a hit one day! You surely were also among those people who did not take Bitcoin and cryptocurrency seriously, but the current events gag even the biggest skeptics. Current Bitcoin price is 6,644$* The price of the most popular cryptocurrency repeatedly breaks all the unthinkable records. Capitalization is about $120 billion World recognition The world's largest economies – India and Japan – recognized Bitcoin as the official currency. The US authorities recognized cryptocurrency as the asset. And this is just the beginning. Mining on an industrial scale The cryptocurrency market is extremely fast-changing, and it is almost impossible to monitor the situation and make the right decisions on your own. Most people have no proper experience, time and money for that. My book gives basic yet quite extensive information for those people who do not chase a rainbow but want to build a long-term profitable business in one of the cryptocurrency areas: from mining to investing. So, this book is not about: Illegal ways of making money Praising cryptocurrency and urging you to invest in it to the last penny Fraud techniques and making a fast buck Boring and pointless theory Ways to earn millions without investments and risks This book will help you get to learn the following: Which way of making money in cryptocurrency market suits you best. Where should you start if you have just $500. What information about cryptocurrency the experts withhold (Take the rose-colored glasses off!). How to elaborate a personal strategy, set up your own cryptocurrency business and earn your first $3,000-10,000 as early as 2018. I can also guarantee that you: Puzzle out the main present-day currency trend even if you are clueless about economics, finance and technology. Understand whether you really want to invest in cryptocurrency (perhaps, this type of business doesn’t suit you at all and you will save your time) Get to learn how to check the risks and not to invest in the first available currency Having considered my experience, protect yourself from possible failures and pouring money down the drain which will inevitably happen if you go it blind.

Developer Hegemony: The Future of Labor


Erik Dietrich - 2017
    The modern economy—the world itself—relies on technology. Demand for the people who can produce it far outweighs the supply. So why do developers occupy largely subordinate roles in the corporate structure? Developer Hegemony explores the past, present, and future of the corporation and what it means for developers. While it outlines problems with the modern corporate structure, it’s ultimately a play-by-play of how to leave the corporate carnival and control your own destiny. And it’s an emboldening, specific vision of what software development looks like in the world of developer hegemony—one where developers band together into partner firms of “efficiencers,” finally able to command the pay, respect, and freedom that’s earned by solving problems no one else can. Developers, if you grow tired of being treated like geeks who can only be trusted to take orders and churn out code, consider this your call to arms. Bring about the autonomous future that’s rightfully yours. It’s time for developer hegemony.

The Numerati


Stephen Baker - 2008
    Now, in one of the greatest undertakings of the twenty-first century, a savvy group of mathematicians and computer scientists is beginning to sift through this data to dissect us and map out our next steps. Their goal? To manipulate our behavior -- what we buy, how we vote -- without our even realizing it.In this tour de force of original reporting and analysis, journalist Stephen Baker provides us with a fascinating guide to the world we're all entering -- and to the people controlling that world. The Numerati have infiltrated every realm of human affairs, profiling us as workers, shoppers, patients, voters, potential terrorists -- and lovers. The implications are vast. Our privacy evaporates. Our bosses can monitor and measure our every move (then reward or punish us). Politicians can find the swing voters among us, by plunking us all into new political groupings with names like "Hearth Keepers" and "Crossing Guards." It can sound scary. But the Numerati can also work on our behalf, diagnosing an illness before we're aware of the symptoms, or even helping us find our soul mate. Surprising, enlightening, and deeply relevant, The Numerati shows how a powerful new endeavor -- the mathematical modeling of humanity -- will transform every aspect of our lives. STEPHEN BAKER has written for BusinessWeek for over twenty years, covering Mexico and Latin America, the Rust Belt, European technology, and a host of other topics, including blogs, math, and nanotechnology. But he's always considered himself a foreign correspondent. This, he says, was especially useful as he met the Numerati. "While I came from the world of words, they inhabited the symbolic realms of math and computer science. This was foreign to me. My reporting became an anthropological mission." Baker has written for many publications, including the Wall Street Journal, the Los Angeles Times, and the Boston Globe. He won an Overseas Press Club Award for his portrait of the rising Mexican auto industry. He is the coauthor of blogspotting.net, featured by the New York Times as one of fifty blogs to watch.

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.

Code: The Hidden Language of Computer Hardware and Software


Charles Petzold - 1999
    And through CODE, we see how this ingenuity and our very human compulsion to communicate have driven the technological innovations of the past two centuries. Using everyday objects and familiar language systems such as Braille and Morse code, author Charles Petzold weaves an illuminating narrative for anyone who’s ever wondered about the secret inner life of computers and other smart machines. It’s a cleverly illustrated and eminently comprehensible story—and along the way, you’ll discover you’ve gained a real context for understanding today’s world of PCs, digital media, and the Internet. No matter what your level of technical savvy, CODE will charm you—and perhaps even awaken the technophile within.

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.

Clocks


Jerome K. Jerome - 1891
    You may find it for free on the web. Purchase of the Kindle edition includes wireless delivery.

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.

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

An Introduction to Programming in Go


Caleb Doxsey - 2012