Peopleware: Productive Projects and Teams


Tom DeMarco - 1987
    The answers aren't easy -- just incredibly successful.

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.

Communicating the User Experience: A Practical Guide for Creating Useful UX Documentation


Richard Caddick - 2011
    This indispensible and full-color book provides practical guidance on this growing field and shares valuable UX advice that you can put into practice immediately on your own projects. The authors examine why UX is gaining so much interest from web designers, graduates, and career changers and looks at the new UX tools and ideas that can help you do your job better. In addition, you'll benefit from the unique insight the authors provide from their experiences of working with some of the world's best-known companies, learning how to take ideas from business requirements, user research, and documentation to create and develop your UX vision.Explains how to create documentation that clearly communicates the vision for the UX design and the blueprint for how it's going to be developed Provides practical guidance that you can put to work right away on their own projects Looks at the new UX tools and ideas that are born every day, aimed at helping you do your job better and more efficiently Covers a variety of topics including user journeys, task models, funnel diagrams, content audits, sitemaps, wireframes, interactive prototypes, and more Communicating the User Experience is an ideal resource for getting started with creating UX documentation.

Agile Estimating and Planning


Mike Cohn - 2005
    In this book, Agile Alliance cofounder Mike Cohn discusses the philosophy of agile estimating and planning and shows you exactly how to get the job done, with real-world examples and case studies.Concepts are clearly illustrated and readers are guided, step by step, toward how to answer the following questions: What will we build? How big will it be? When must it be done? How much can I really complete by then? You will first learn what makes a good plan-and then what makes it agile.Using the techniques in Agile Estimating and Planning , you can stay agile from start to finish, saving time, conserving resources, and accomplishing more. Highlights include:Why conventional prescriptive planning fails and why agile planning works How to estimate feature size using story points and ideal days--and when to use each How and when to re-estimate How to prioritize features using both financial and nonfinancial approaches How to split large features into smaller, more manageable ones How to plan iterations and predict your team's initial rate of progress How to schedule projects that have unusually high uncertainty or schedule-related risk How to estimate projects that will be worked on by multiple teams Agile Estimating and Planning supports any agile, semiagile, or iterative process, including Scrum, XP, Feature-Driven Development, Crystal, Adaptive Software Development, DSDM, Unified Process, and many more. It will be an indispensable resource for every development manager, team leader, and team member.

Eloquent JavaScript: A Modern Introduction to Programming


Marijn Haverbeke - 2010
    I loved the tutorial-style game-like program development. This book rekindled my earliest joys of programming. Plus, JavaScript!" —Brendan Eich, creator of JavaScriptJavaScript is the language of the Web, and it's at the heart of every modern website from the lowliest personal blog to the mighty Google Apps. Though it's simple for beginners to pick up and play with, JavaScript is not a toy—it's a flexible and complex language, capable of much more than the showy tricks most programmers use it for.Eloquent JavaScript goes beyond the cut-and-paste scripts of the recipe books and teaches you to write code that's elegant and effective. You'll start with the basics of programming, and learn to use variables, control structures, functions, and data structures. Then you'll dive into the real JavaScript artistry: higher-order functions, closures, and object-oriented programming.Along the way you'll learn to:Master basic programming techniques and best practices Harness the power of functional and object-oriented programming Use regular expressions to quickly parse and manipulate strings Gracefully deal with errors and browser incompatibilities Handle browser events and alter the DOM structure Most importantly, Eloquent JavaScript will teach you to express yourself in code with precision and beauty. After all, great programming is an art, not a science—so why settle for a killer app when you can create a masterpiece?

The Principles of Beautiful Web Design


Jason Beaird - 2007
    A simple, easy-to-follow guide, illustrated with plenty of full-color examples, this book will lead you through the process of creating great designs from start to finish. Good design principles are not rocket science, and using the information contained in this book will help you create stunning web sites.Understand the design process, from discovery to implementation Understand what makes "good design" Developing pleasing layouts using grids, the rule of thirds, balance and symmetry Use color effectively, develop color schemes and create a palette Use textures, lines, points, shapes, volumes and depth Learn how good typography can make ordinary designs look great Effective imagery: choosing, editing and placing images And much more Throughout the book, you'll follow an example design, from concept to completion, learning along the way. The book's full-color layout and large format (8" x 10") make The Principles Of Beautiful Wed Design a pleasure to read.Editorial Reviews"The Principles of Beautiful Web Design is a good book to kick start your graphic-design journey. The biggest benefit that I got from this book is the knowledge to learn from great designs as opposed to just admiring them in a state of awe." - Slashdot.org"Jason is a great writer, and the book is quite easy to read. It's put together wonderfully, including many full color screenshots and other forms of imagery that make the book a pleasure to read. I'd definitely recommend the book to anyone in Web design." - MondayByNoon"Jason Beaird covers web design in a way that non-designers can understand. He walks you through all of the aspects of design development from initial meeting to finished product. If you are just getting into web development, this is a must read." - Blogcritics.org"This is a thoroughly practical guide to web design that is very well written: good technical depth in easy-to-understand language with excellent illustrations and graphics that support the text. For many users it will be the only web-design text they will need. For those who want to further advance their skills and knowledge it will provide a sound foundation." - PC Update"His "Don't just tell, show!" style makes this book accessible to everyone... It strikes a carefully thought-out balance between describing principles and illustrating them. It is clear and well structured, with practical examples in every chapter." - Mitch Wheat

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.

How to Make Sense of Any Mess: Information Architecture for Everybody


Abby Covert - 2014
     It is easy to be overwhelmed by the amount of information we encounter each day. Whether at work, at school, or in our personal endeavors, there’s a deepening (and inescapable) need for people to work with and understand information. Information architecture is the way that we arrange the parts of something to make it understandable as a whole. When we make things for others to use, the architecture of information that we choose greatly affects our ability to deliver our intended message to our users. We all face messes made of information and people. I define the word “mess” the same way that most dictionaries do: “A situation where the interactions between people and information are confusing or full of difficulties.” — Who doesn’t bump up against messes made of information and people every day? This book provides a seven step process for making sense of any mess. Each chapter contains a set of lessons as well as workbook exercises architected to help you to work through your own mess.

UX for Beginners: 100 Short Lessons to Get You Started


Joel Marsh - 2015
    With this book, new UX designers will learn the practical skills they need to get started in the field, skills that can be immediately applied to real-world UX projects. "UX for Beginners" is broken into one hundred short, illustrated lessons, a user-friendly approach that makes learning fun and gives you the foundation you need to succeed as a UX designer. This book is based on the popular UX Crash Course blog at The Hipper Element, which has more than 400,000 readers."

Soft Skills: The Software Developer's Life Manual


John Z. Sonmez - 2014
    In it, developer and life coach John Sonmez addresses a wide range of important "soft" topics, from career and productivity to personal finance and investing, and even fitness and relationships, all from a developer-centric viewpoint.For most software developers, coding is the fun part. The hard bits are dealing with clients, peers, and managers, staying productive, achieving financial security, keeping yourself in shape, and finding true love. This book is here to help.Soft Skills: The software developer's life manual is a guide to a well-rounded, satisfying life as a technology professional. In it, developer and life coach John Sonmez offers advice to developers on important "soft" subjects like career and productivity, personal finance and investing, and even fitness and relationships. Arranged as a collection of 71 short chapters, this fun-to-read book invites you to dip in wherever you like. A Taking Action section at the end of each chapter shows you how to get quick results. Soft Skills will help make you a better programmer, a more valuable employee, and a happier, healthier person.What's InsideBoost your career by building a personal brandJohn's secret ten-step process for learning quicklyFitness advice to turn your geekiness to your advantageUnique strategies for investment and early retirement

Growing Object-Oriented Software, Guided by Tests


Steve Freeman - 2009
    This one's a keeper." --Robert C. Martin "If you want to be an expert in the state of the art in TDD, you need to understand the ideas in this book."--Michael Feathers Test-Driven Development (TDD) is now an established technique for delivering better software faster. TDD is based on a simple idea: Write tests for your code before you write the code itself. However, this simple idea takes skill and judgment to do well. Now there's a practical guide to TDD that takes you beyond the basic concepts. Drawing on a decade of experience building real-world systems, two TDD pioneers show how to let tests guide your development and "grow" software that is coherent, reliable, and maintainable. Steve Freeman and Nat Pryce describe the processes they use, the design principles they strive to achieve, and some of the tools that help them get the job done. Through an extended worked example, you'll learn how TDD works at multiple levels, using tests to drive the features and the object-oriented structure of the code, and using Mock Objects to discover and then describe relationships between objects. Along the way, the book systematically addresses challenges that development teams encounter with TDD--from integrating TDD into your processes to testing your most difficult features. Coverage includes - Implementing TDD effectively: getting started, and maintaining your momentum throughout the project - Creating cleaner, more expressive, more sustainable code - Using tests to stay relentlessly focused on sustaining quality - Understanding how TDD, Mock Objects, and Object-Oriented Design come together in the context of a real software development project - Using Mock Objects to guide object-oriented designs - Succeeding where TDD is difficult: managing complex test data, and testing persistence and concurrency

This is Service Design Thinking: Basics – Tools – Cases


Marc Stickdorn - 2010
    Service Design is a bit of a buzzword these days and has gained a lot of interest from various fields. This book, assembled to describe and illustrate the emerging field of service design, was brought together using exactly the same co-creative and user-centred approaches you can read and learn about inside. The boundaries between products and services are blurring and it is time for a different way of thinking: this is service design thinking.A set of 23 international authors and even more online contributors from the global service design community invested their knwoledge, experience and passion together to create this book. It introduces service design thinking in a manner accessible to beginners and students, it broadens the knowledge and can act as a resource for experienced design professionals.

The Passionate Programmer


Chad Fowler - 2009
    In this book, you'll learn how to become an entrepreneur, driving your career in the direction of your choosing. You'll learn how to build your software development career step by step, following the same path that you would follow if you were building, marketing, and selling a product. After all, your skills themselves are a product. The choices you make about which technologies to focus on and which business domains to master have at least as much impact on your success as your technical knowledge itself--don't let those choices be accidental. We'll walk through all aspects of the decision-making process, so you can ensure that you're investing your time and energy in the right areas. You'll develop a structured plan for keeping your mind engaged and your skills fresh. You'll learn how to assess your skills in terms of where they fit on the value chain, driving you away from commodity skills and toward those that are in high demand. Through a mix of high-level, thought-provoking essays and tactical "Act on It" sections, you will come away with concrete plans you can put into action immediately. You'll also get a chance to read the perspectives of several highly successful members of our industry from a variety of career paths. As with any product or service, if nobody knows what you're selling, nobody will buy. We'll walk through the often-neglected world of marketing, and you'll create a plan to market yourself both inside your company and to the industry in general. Above all, you'll see how you can set the direction of your career, leading to a more fulfilling and remarkable professional life.

The Laws of Simplicity: Design, Technology, Business, Life


John Maeda - 2006
    We're rebelling against technology that's too complicated, DVD players with too many menus, and software accompanied by 75-megabyte "read me" manuals. The iPod's clean gadgetry has made simplicity hip. But sometimes we find ourselves caught up in the simplicity paradox: we want something that's simple and easy to use, but also does all the complex things we might ever want it to do. In The Laws of Simplicity, John Maeda offers ten laws for balancing simplicity and complexity in business, technology, and design—guidelines for needing less and actually getting more.Maeda—a professor in MIT's Media Lab and a world-renowned graphic designer—explores the question of how we can redefine the notion of "improved" so that it doesn't always mean something more, something added on.Maeda's first law of simplicity is "Reduce." It's not necessarily beneficial to add technology features just because we can. And the features that we do have must be organized (Law 2) in a sensible hierarchy so users aren't distracted by features and functions they don't need. But simplicity is not less just for the sake of less. Skip ahead to Law 9: "Failure: Accept the fact that some things can never be made simple." Maeda's concise guide to simplicity in the digital age shows us how this idea can be a cornerstone of organizations and their products—how it can drive both business and technology. We can learn to simplify without sacrificing comfort and meaning, and we can achieve the balance described in Law 10. This law, which Maeda calls "The One," tells us: "Simplicity is about subtracting the obvious, and adding the meaningful."

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