Python Crash Course: A Hands-On, Project-Based Introduction to Programming


Eric Matthes - 2015
    You'll also learn how to make your programs interactive and how to test your code safely before adding it to a project. In the second half of the book, you'll put your new knowledge into practice with three substantial projects: a Space Invaders-inspired arcade game, data visualizations with Python's super-handy libraries, and a simple web app you can deploy online.As you work through Python Crash Course, you'll learn how to: Use powerful Python libraries and tools, including matplotlib, NumPy, and PygalMake 2D games that respond to keypresses and mouse clicks, and that grow more difficult as the game progressesWork with data to generate interactive visualizationsCreate and customize simple web apps and deploy them safely onlineDeal with mistakes and errors so you can solve your own programming problemsIf you've been thinking seriously about digging into programming, Python Crash Course will get you up to speed and have you writing real programs fast. Why wait any longer? Start your engines and code!

Designing Data-Intensive Applications


Martin Kleppmann - 2015
    Difficult issues need to be figured out, such as scalability, consistency, reliability, efficiency, and maintainability. In addition, we have an overwhelming variety of tools, including relational databases, NoSQL datastores, stream or batch processors, and message brokers. What are the right choices for your application? How do you make sense of all these buzzwords?In this practical and comprehensive guide, author Martin Kleppmann helps you navigate this diverse landscape by examining the pros and cons of various technologies for processing and storing data. Software keeps changing, but the fundamental principles remain the same. With this book, software engineers and architects will learn how to apply those ideas in practice, and how to make full use of data in modern applications. Peer under the hood of the systems you already use, and learn how to use and operate them more effectively Make informed decisions by identifying the strengths and weaknesses of different tools Navigate the trade-offs around consistency, scalability, fault tolerance, and complexity Understand the distributed systems research upon which modern databases are built Peek behind the scenes of major online services, and learn from their architectures

Head First Design Patterns


Eric Freeman - 2004
     At any given moment, somewhere in the world someone struggles with the same software design problems you have. You know you don't want to reinvent the wheel (or worse, a flat tire), so you look to Design Patterns--the lessons learned by those who've faced the same problems. With Design Patterns, you get to take advantage of the best practices and experience of others, so that you can spend your time on...something else. Something more challenging. Something more complex. Something more fun. You want to learn about the patterns that matter--why to use them, when to use them, how to use them (and when NOT to use them). But you don't just want to see how patterns look in a book, you want to know how they look "in the wild". In their native environment. In other words, in real world applications. You also want to learn how patterns are used in the Java API, and how to exploit Java's built-in pattern support in your own code. You want to learn the real OO design principles and why everything your boss told you about inheritance might be wrong (and what to do instead). You want to learn how those principles will help the next time you're up a creek without a design pattern. Most importantly, you want to learn the "secret language" of Design Patterns so that you can hold your own with your co-worker (and impress cocktail party guests) when he casually mentions his stunningly clever use of Command, Facade, Proxy, and Factory in between sips of a martini. You'll easily counter with your deep understanding of why Singleton isn't as simple as it sounds, how the Factory is so often misunderstood, or on the real relationship between Decorator, Facade and Adapter. With Head First Design Patterns, you'll avoid the embarrassment of thinking Decorator is something from the "Trading Spaces" show. Best of all, in a way that won't put you to sleep! We think your time is too important (and too short) to spend it struggling with academic texts. If you've read a Head First book, you know what to expect--a visually rich format designed for the way your brain works. Using the latest research in neurobiology, cognitive science, and learning theory, Head First Design Patterns will load patterns into your brain in a way that sticks. In a way that lets you put them to work immediately. In a way that makes you better at solving software design problems, and better at speaking the language of patterns with others on your team.

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.

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.

Sprint: How to Solve Big Problems and Test New Ideas in Just Five Days


Jake Knapp - 2016
    And now there’s a sure-fire way to solve their problems and test solutions: the sprint.While working at Google, designer Jake Knapp created a unique problem-solving method that he coined a “design sprint”—a five-day process to help companies answer crucial questions. His ‘sprints’ were used on everything from Google Search to Chrome to Google X. When he moved to Google Ventures, he joined Braden Kowitz and John Zeratsky, both designers and partners there who worked on products like YouTube and Gmail. Together Knapp, Zeratsky, and Kowitz have run over 100 sprints with their portfolio companies. They’ve seen firsthand how sprints can overcome challenges in all kinds of companies: healthcare, fitness, finance, retailers, and more.A practical guide to answering business questions, Sprint is a book for groups of any size, from small startups to Fortune 100s, from teachers to non-profits. It’s for anyone with a big opportunity, problem, or idea who needs to get answers today.

The Sketchnote Handbook: The Illustrated Guide to Visual Note Taking


Mike Rohde - 2012
    Author Mike Rohde shows you how to incorporate sketchnoting techniques into your note-taking process--regardless of your artistic abilities--to help you better process the information that you are hearing and seeing through drawing, and to actually have fun taking notes. The Sketchnote Handbook explains and illustrates practical sketchnote techniques for taking visual notes at your own pace as well as in real time during meetings and events. Rhode also addresses most people's fear of drawing by showing, step-by-step, how to quickly draw people, faces, type, and simple objects for effective and fast sketchnoting. The book looks like a peek into the author's private sketchnote journal, but it functions like a beginner's guide to sketchnoting with easy-to-follow instructions for drawing out your notes that will leave you itching to attend a meeting just so you can draw about it.

Managing Humans: Biting and Humorous Tales of a Software Engineering Manager


Michael Lopp - 2007
    Drawing on Lopp's management experiences at Apple, Netscape, Symantec, and Borland, this book is full of stories based on companies in the Silicon Valley where people have been known to yell at each other. It is a place full of dysfunctional bright people who are in an incredible hurry to find the next big thing so they can strike it rich and then do it all over again. Among these people are managers, a strange breed of people who through a mystical organizational ritual have been given power over your future and your bank account.Whether you're an aspiring manager, a current manager, or just wondering what the heck a manager does all day, there is a story in this book that will speak to you.

Gamification by Design


Gabe Zichermann - 2011
    This book provides the design strategy and tactics you need to integrate game mechanics into any kind of consumer-facing website or mobile app. Learn how to use core game concepts, design patterns, and meaningful code samples to a create fun and captivating social environment.Whether you're an executive, developer, producer, or product specialist, Gamification by Design will show you how game mechanics can help you build customer loyalty.Discover the motivational framework game designers use to segment and engage consumersUnderstand core game mechanics such as points, badges, levels, challenges, and leaderboardsEngage your consumers with reward structures, positive reinforcement, and feedback loopsCombine game mechanics with social interaction for activities such as collecting, gifting, heroism, and statusDive into case studies on Nike and Yahoo!, and analyze interactions at Google, Facebook, and ZyngaGet the architecture and code to gamify a basic consumer site, and learn how to use mainstream gamification APIs from Badgeville"Turning applications into games is a huge trend. This book does a great job of identifying the core lasting principals you need to inspire your users to visit again and again." —Adam Loving Freelance Social Game Developer and founder of Twibes Twitter Groups

For the Win


Kevin Werbach - 2012
    The careful and skillful construction of these games is built on decades of research into human motivation and psychology: A well-designed game goes right to the motivational heart of the human psyche.In For the Win, authors Kevin Werbach and Dan Hunter argue persuasively that gamemakers need not be the only ones benefiting from game design. Werbach and Hunter are lawyers and World of Warcraft players who created the world’s first course on gamification at the Wharton School. In their book, they reveal how game thinking—addressing problems like a game designer—can motivate employees and customers and create engaging experiences that can transform your business.For the Win reveals how a wide range of companies are successfully using game thinking. It also offers an explanation of when gamifying makes the most sense and a 6-step framework for using games for marketing, productivity enhancement, innovation, employee motivation, customer engagement, and more.In this illuminating guide, Werbach and Hunter reveal how game thinking can yield winning solutions to real-world business problems. Let the games begin!

Flow: The Psychology of Optimal Experience


Mihaly Csikszentmihalyi - 1990
    During flow, people typically experience deep enjoyment, creativity, and a total involvement with life. Csikszentmihalyi demonstrates the ways this positive state can be controlled, not just left to chance. Flow: The Psychology of Optimal Experience teaches how, by ordering the information that enters our consciousness, we can discover true happiness, unlock our potential, and greatly improve the quality of our lives.

Effective C++: 55 Specific Ways to Improve Your Programs and Designs


Scott Meyers - 1991
    But the state-of-the-art has moved forward dramatically since Meyers last updated this book in 1997. (For instance, there s now STL. Design patterns. Even new functionality being added through TR1 and Boost.) So Meyers has done a top-to-bottom rewrite, identifying the 55 most valuable techniques you need now to be exceptionally effective with C++. Over half of this edition s content is new. Templates broadly impact C++ development, and you ll find them everywhere. There s extensive coverage of multithreaded systems. There s an entirely new chapter on resource management. You ll find substantial new coverage of exceptions. Much is gained, but nothing s lost: You ll find the same depth of practical insight that first made Effective C++ a classic all those years ago. Bill Camarda, from the July 2005 href="http://www.barnesandnoble.com/newslet... Only

A Whole New Mind: Why Right-Brainers Will Rule the Future


Daniel H. Pink - 2004
    A Whole New Mind takes readers to a daring new place, and a provocative and necessary new way of thinking about a future that's already here.

Letting Go of the Words: Writing Web Content that Works


Janice G. Redish - 2007
    Ironically, I must recommend that you read her every word so that you can find out why your customers won't read very many words on your website -- and what to do about it.-- Jakob Nielsen, Principal, Nielsen Norman Group"There are at least twelve billion web pages out there. Twelve billion voices talking, but saying mostly nothing. If just 1% of those pages followed Ginny's practical, clear advice, the world would be a better place. Fortunately, you can follow her advice for 100% of your own site's pages, so pick up a copy of Letting Go of the Words and start communicating effectively today."--Lou Rosenfeld, co-author, Information Architecture for the World Wide WebOn the web, whether on the job or at home, we usually want to grab information and use it quickly. We go to the web to get answers to questions or to complete tasks - to gather information, reading only what we need. We are all too busy to read much on the web.This book helps you write successfully for web users. It offers strategy, process, and tactics for creating or revising content for the web. It helps you plan, organize, write, design, and test web content that will make web users come back again and again to your site.Learn how to create usable and useful content for the web from the master - Ginny Redish. Ginny has taught and mentored hundreds of writers, information designers, and content owners in the principles and secrets of creating web information that is easy to scan, easy to read, and easy to use.This practical, informative book will help anyone creating web content do it better.Features* Clearly-explained guidelines with full color illustrations and examples from actual web sites throughout the book. * Written in easy-to-read style with many befores and afters.* Specific guidelines for web-based press releases, legal notices, and other documents.* Tips on making web content accessible for people with special needs.Janice (Ginny) Redish has been helping clients and colleagues communicate clearly for more than 20 years. For the past ten years, her focus has been helping people create usable and useful web sites. She is co-author of two classic books on usability: A Practical Guide to Usability Testing (with Joseph Dumas), and User and Task Analysis for Interface Design (with JoAnn Hackos), and is the recipient of many awards.

The Accidental Creative: How to Be Brilliant at a Moment's Notice


Todd Henry - 2011
     It isn't enough to just do your job anymore. In order to thrive in today's marketplace, all of us-even the accountants-have to be ready to generate brilliant ideas on demand. Business creativity expert Todd Henry explains how to establish effective practices that unleash your creative potential. Born out of his consultancy and his popular podcast, Henry has created a practical method for discovering your personal creative rhythm. He focuses on five key elements: *Focus: Begin with your end goal in mind. *Relationships: Build stimulating relationships and ideas will follow. *Energy: Manage it as your most valuable resource. *Stimuli: Structure the right "inputs" to maximize creative output. *Hours: Focus on effectiveness, not efficiency. This is a guide for staying inspired and experiencing greater creative productivity than you ever imagined possible.