Management 3.0: Leading Agile Developers, Developing Agile Leaders


Jurgen Appelo - 2010
    Unfortunately, reliable guidance on Agile management has been scarce indeed. Now, leading Agile manager Jurgen Appelo fills that gap, introducing a realistic approach to leading, managing, and growing your Agile team or organization. Writing for current managers and developers moving into management, Appelo shares insights that are grounded in modern complex systems theory, reflecting the intense complexity of modern software development. Appelo's Management 3.0 model recognizes that today's organizations are living, networked systems; and that management is primarily about people and relationships. Management 3.0 doesn't offer mere checklists or prescriptions to follow slavishly; rather, it deepens your understanding of how organizations and Agile teams work and gives you tools to solve your own problems. Drawing on his extensive experience as an Agile manager, the author identifies the most important practices of Agile management and helps you improve each of them. Coverage includes - Getting beyond "Management 1.0" control and "Management 2.0" fads - Understanding how complexity affects your organization - Keeping your people active, creative, innovative, and motivated - Giving teams the care and authority they need to grow on their own - Defining boundaries so teams can succeed in alignment with business goals - Sowing the seeds for a culture of software craftsmanship - Crafting an organizational network that promotes success - Implementing continuous improvement that actually works Thoroughly pragmatic-and never trendy-Jurgen Appelo's Management 3.0 helps you bring greater agility to any software organization, team, or project.

The Nature of Code


Daniel Shiffman - 2012
    Readers will progress from building a basic physics engine to creating intelligent moving objects and complex systems, setting the foundation for further experiments in generative design. Subjects covered include forces, trigonometry, fractals, cellular automata, self-organization, and genetic algorithms. The book's examples are written in Processing, an open-source language and development environment built on top of the Java programming language. On the book's website (http://www.natureofcode.com), the examples run in the browser via Processing's JavaScript mode.

Pro Git


Scott Chacon - 2009
    It took the open source world by storm since its inception in 2005, and is used by small development shops and giants like Google, Red Hat, and IBM, and of course many open source projects.A book by Git experts to turn you into a Git expert. Introduces the world of distributed version control Shows how to build a Git development workflow.

The Art of Innovation: Lessons in Creativity from IDEO, America's Leading Design Firm


Tom Kelley - 2001
    At many companies, being first with a concept and first to market are critical just to survive. In The Art of Innovation, Tom Kelley, general manager of the Silicon Valley based design firm IDEO, takes readers behind the scenes of this wildly imaginative and energized company to reveal the strategies and secrets it uses to turn out hit after hit.IDEO doesn't buy into the myth of the lone genius working away in isolation, waiting for great ideas to strike. Kelley believes everyone can be creative, and the goal at his firm is to tap into that wellspring of creativity in order to make innovation a way of life. How does it do that? IDEO fosters an atmosphere conducive to freely expressing ideas, breaking the rules, and freeing people to design their own work environments. IDEO's focus on teamwork generates countless breakthroughs, fueled by the constant give-and-take among people ready to share ideas and reap the benefits of the group process. IDEO has created an intense, quick-turnaround, brainstorm-and-build process dubbed "the Deep Dive."In entertaining anecdotes, Kelley illustrates some of his firm's own successes (and joyful failures), as well as pioneering efforts at other leading companies. The book reveals how teams research and immerse themselves in every possible aspect of a new product or service, examining it from the perspective of clients, consumers, and other critical audiences.Kelley takes the reader through the IDEO problem-solving method:> Carefully observing the behavior or "anthropology" of the people who will be using a product or service> Brainstorming with high-energy sessions focused on tangible results> Quickly prototyping ideas and designs at every step of the way> Cross-pollinating to find solutions from other fields> Taking risks, and failing your way to success> Building a "Greenhouse" for innovationIDEO has won more awards in the last ten years than any other firm of its kind, and a full half-hour Nightline presentation of its creative process received one of the show's highest ratings. The Art of Innovation will provide business leaders with the insights and tools they need to make their companies the leading-edge, top-rated stars of their industries.From the Hardcover edition.

Upstream: The Quest to Solve Problems Before They Happen


Dan Heath - 2020
    We put out fires. We deal with emergencies. We stay downstream, handling one problem after another, but we never make our way upstream to fix the systems that caused the problems ... [This book] probes the psychological forces that push us downstream--including 'problem blindness,' which can leave us oblivious to serious problems in our midst. And Heath introduces us to the thinkers who have overcome these obstacles and scored ... victories by switching to an upstream mindset.

The Nature of Technology: What It Is and How It Evolves


W. Brian Arthur - 2009
    Brian Arthur puts forth the first complete theory of the origins and evolution of technology, in a major work that achieves for the invention of new technologies what Darwin’s theory achieved for the emergence of new species. Brian Arthur is a pioneer of complexity theory and the discoverer of the highly influential "theory of increasing returns," which took Silicon Valley by storm, famously explaining why some high-tech companies achieve breakaway success. Now, in this long-awaited and ground-breaking book, he solves the great outstanding puzzle of technology—where do transformative new technologies come from?—putting forth the first full theory of how new technologies emerge and offering a definitive answer to the mystery of why some cultures—Silicon Valley, Cambridge, England in the 1920s—are so extraordinarily inventive. He has discovered that rather than springing from insight moments of individual genius, new technologies arise in a process akin to evolution. Technology evolves by creating itself out of itself, much as a coral reef builds itself from activities of small organisms. Drawing on a wealth of examples, from the most ancient to cutting-edge inventions of today, Arthur takes readers on a delightful intellectual journey, bringing to life the wonders of this process of technological evolution. The Nature of Technology is the work of one of our greatest thinkers at the top of his game, composing a classic for our times that is sure to generate wide acclaim.

Hands-On Machine Learning with Scikit-Learn and TensorFlow


Aurélien Géron - 2017
    Now that machine learning is thriving, even programmers who know close to nothing about this technology can use simple, efficient tools to implement programs capable of learning from data. This practical book shows you how.By using concrete examples, minimal theory, and two production-ready Python frameworks—Scikit-Learn and TensorFlow—author Aurélien Géron helps you gain an intuitive understanding of the concepts and tools for building intelligent systems. You’ll learn how to use a range of techniques, starting with simple Linear Regression and progressing to Deep Neural Networks. If you have some programming experience and you’re ready to code a machine learning project, this guide is for you.This hands-on book shows you how to use:Scikit-Learn, an accessible framework that implements many algorithms efficiently and serves as a great machine learning entry pointTensorFlow, a more complex library for distributed numerical computation, ideal for training and running very large neural networksPractical code examples that you can apply without learning excessive machine learning theory or algorithm details

Seven Languages in Seven Weeks


Bruce A. Tate - 2010
    But if one per year is good, how about Seven Languages in Seven Weeks? In this book you'll get a hands-on tour of Clojure, Haskell, Io, Prolog, Scala, Erlang, and Ruby. Whether or not your favorite language is on that list, you'll broaden your perspective of programming by examining these languages side-by-side. You'll learn something new from each, and best of all, you'll learn how to learn a language quickly. Ruby, Io, Prolog, Scala, Erlang, Clojure, Haskell. With Seven Languages in Seven Weeks, by Bruce A. Tate, you'll go beyond the syntax-and beyond the 20-minute tutorial you'll find someplace online. This book has an audacious goal: to present a meaningful exploration of seven languages within a single book. Rather than serve as a complete reference or installation guide, Seven Languages hits what's essential and unique about each language. Moreover, this approach will help teach you how to grok new languages. For each language, you'll solve a nontrivial problem, using techniques that show off the language's most important features. As the book proceeds, you'll discover the strengths and weaknesses of the languages, while dissecting the process of learning languages quickly--for example, finding the typing and programming models, decision structures, and how you interact with them. Among this group of seven, you'll explore the most critical programming models of our time. Learn the dynamic typing that makes Ruby, Python, and Perl so flexible and compelling. Understand the underlying prototype system that's at the heart of JavaScript. See how pattern matching in Prolog shaped the development of Scala and Erlang. Discover how pure functional programming in Haskell is different from the Lisp family of languages, including Clojure. Explore the concurrency techniques that are quickly becoming the backbone of a new generation of Internet applications. Find out how to use Erlang's let-it-crash philosophy for building fault-tolerant systems. Understand the actor model that drives concurrency design in Io and Scala. Learn how Clojure uses versioning to solve some of the most difficult concurrency problems. It's all here, all in one place. Use the concepts from one language to find creative solutions in another-or discover a language that may become one of your favorites.

Rocket Surgery Made Easy: The Do-It-Yourself Guide to Finding and Fixing Usability Problems


Steve Krug - 2009
    But with a typical price tag of $5,000 to $10,000 for a usability consultant to conduct each round of tests, it rarely happens. In this how-to companion to Don't Make Me Think: A Common Sense Approach to Web Usability, Steve Krug spells out an approach to usability testing that anyone can easily apply to their own web site, application, or other product. (As he said in Don't Make Me Think, "It's not rocket surgery".)In this new book, Steve explains how to: -Test any design, from a sketch on a napkin to a fully-functioning web site or application-Keep your focus on finding the most important problems (because no one has the time or resources to fix them all)-Fix the problems that you find, using his "The least you can do" approachBy pairing the process of testing and fixing products down to its essentials (A morning a month, that's all we ask ), Rocket Surgery makes it realistic for teams to test early and often, catching problems while it's still easy to fix them. Rocket Surgery Made Easy adds demonstration videos to the proven mix of clear writing, before-and-after examples, witty illustrations, and practical advice that made Don't Make Me Think so popular.

Hacking: The Art of Exploitation


Jon Erickson - 2003
    This book explains the technical aspects of hacking, including stack based overflows, heap based overflows, string exploits, return-into-libc, shellcode, and cryptographic attacks on 802.11b.

Game Programming Patterns


Robert Nystrom - 2011
    Commercial game development expert Robert Nystrom presents an array of general solutions to problems encountered in game development. For example, you'll learn how double-buffering enables a player to perceive smooth and realistic motion, and how the service locator pattern can help you provide access to services such as sound without coupling your code to any particular sound driver or sound hardware. Games have much in common with other software, but also a number of unique constraints. Some of the patterns in this book are well-known in other domains of software development. Other of the patterns are unique to gaming. In either case, Robert Nystrom bridges from the ivory tower world of software architecture to the in-the-trenches reality of hardcore game programming. You'll learn the patterns and the general problems that they solve. You'll come away able to apply powerful and reusable architectural solutions that enable you to produce higher quality games with less effort than before. Applies classic design patterns to game programming. Introduces new patterns specific to game programming. Brings abstract software architecture down to Earth with approachable writing and an emphasis on simple code that shows each pattern in practice. What you'll learn Overcome architectural challenges unique to game programming Apply lessons from the larger software world to games. Tie different parts of a game (graphics, sound, AI) into a cohesive whole. Create elegant and maintainable architecture. Achieve good, low-level performance. Gain insight into professional, game development. Who this book is forGame Programming Patterns is aimed at professional game programmers who, while successful in shipping games, are frustrated at how hard it sometimes is to add and modify features when a game is under development. Game Programming Patterns shows how to apply modern software practices to the problem of game development while still maintaining the blazing-fast performance demanded by hard-core gamers. Game Programming Patterns also appeals to those learning about game programming in their spare time. Hobbyists and aspiring professionals alike will find much to learn in this book about pathfinding, collision detection, and other game-programming problem domains.

Enterprise Architecture As Strategy: Creating a Foundation for Business Execution


Jeanne W. Ross - 2006
    In Enterprise Architecture as Strategy: Creating a Foundation for Business Execution, authors Jeanne W. Ross, Peter Weill, and David C. Robertson show you how.The key? Make tough decisions about which processes you must execute well, then implement the IT systems needed to digitize those processes. Citing numerous companies worldwide, the authors show how constructing the right enterprise architecture enhances profitability and time to market, improves strategy execution, and even lowers IT costs. Though clear, engaging explanation, they demonstrate how to define your operating model—your vision of how your firm will survive and grow—and implement it through your enterprise architecture. Their counterintuitive but vital message: when it comes to executing your strategy, your enterprise architecture may matter far more than your strategy itself.

The Art of Computer Programming, Volume 1: Fundamental Algorithms


Donald Ervin Knuth - 1973
     -Byte, September 1995 I can't begin to tell you how many pleasurable hours of study and recreation they have afforded me! I have pored over them in cars, restaurants, at work, at home... and even at a Little League game when my son wasn't in the line-up. -Charles Long If you think you're a really good programmer... read [Knuth's] Art of Computer Programming... You should definitely send me a resume if you can read the whole thing. -Bill Gates It's always a pleasure when a problem is hard enough that you have to get the Knuths off the shelf. I find that merely opening one has a very useful terrorizing effect on computers. -Jonathan Laventhol This first volume in the series begins with basic programming concepts and techniques, then focuses more particularly on information structures-the representation of information inside a computer, the structural relationships between data elements and how to deal with them efficiently. Elementary applications are given to simulation, numerical methods, symbolic computing, software and system design. Dozens of simple and important algorithms and techniques have been added to those of the previous edition. The section on mathematical preliminaries has been extensively revised to match present trends in research. Ebook (PDF version) produced by Mathematical Sciences Publishers (MSP), http: //msp.org

Messy: The Power of Disorder to Transform Our Lives


Tim Harford - 2016
    His liberating message: you'll be more successful if you stop struggling so hard to plan or control your success. Messy is a deeply researched, endlessly eye-opening adventure in the life-changing magic of not tidying up' Oliver BurkemanThe urge to tidiness seems to be rooted deep in the human psyche. Many of us feel threatened by anything that is vague, unplanned, scattered around or hard to describe. We find comfort in having a script to rely on, a system to follow, in being able to categorise and file away.We all benefit from tidy organisation - up to a point. A large library needs a reference system. Global trade needs the shipping container. Scientific collaboration needs measurement units. But the forces of tidiness have marched too far. Corporate middle managers and government bureaucrats have long tended to insist that everything must have a label, a number and a logical place in a logical system. Now that they are armed with computers and serial numbers, there is little to hold this tidy-mindedness in check. It's even spilling into our personal lives, as we corral our children into sanitised play areas or entrust our quest for love to the soulless algorithms of dating websites. Order is imposed when chaos would be more productive. Or if not chaos, then . . . messiness.The trouble with tidiness is that, in excess, it becomes rigid, fragile and sterile. In Messy, Tim Harford reveals how qualities we value more than ever - responsiveness, resilience and creativity - simply cannot be disentangled from the messy soil that produces them. This, then, is a book about the benefits of being messy: messy in our private lives; messy in the office, with piles of paper on the desk and unread spreadsheets; messy in the recording studio, the laboratory or in preparing for an important presentation; and messy in our approach to business, politics and economics, leaving things vague, diverse and uncomfortably made-up-on-the-spot. It's time to rediscover the benefits of a little mess.

The Rust Programming Language


Steve Klabnik
    This is the undisputed go-to guide to Rust, written by two members of the Rust core team, with feedback and contributions from 42 members of the community. The book assumes that you’ve written code in another programming language but makes no assumptions about which one, meaning the material is accessible and useful to developers from a wide variety of programming backgrounds.Known by the Rust community as "The Book," The Rust Programming Language includes concept chapters, where you’ll learn about a particular aspect of Rust, and project chapters, where you’ll apply what you’ve learned so far to build small programs.The Book opens with a quick hands-on project to introduce the basics then explores key concepts in depth, such as ownership, the type system, error handling, and fearless concurrency. Next come detailed explanations of Rust-oriented perspectives on topics like pattern matching, iterators, and smart pointers, with concrete examples and exercises--taking you from theory to practice.The Rust Programming Language will show you how to: Grasp important concepts unique to Rust like ownership, borrowing, and lifetimes Use Cargo, Rust’s built-in package manager, to build and maintain your code, including downloading and building dependencies Effectively use Rust’s zero-cost abstractions and employ your ownYou’ll learn to develop reliable code that’s speed and memory efficient, while avoiding the infamous and arcane programming pitfalls common at the systems level. When you need to dive down into lower-level control, this guide will show you how without taking on the customary risk of crashes or security holes and without requiring you to learn the fine points of a fickle toolchain.You’ll also learn how to create command line programs, build single- and multithreaded web servers, and much more.The Rust Programming Language fully embraces Rust’s potential to empower its users. This friendly and approachable guide will help you build not only your knowledge of Rust but also your ability to program with confidence in a wider variety of domains.