Structure and Interpretation of Computer Programs


Harold Abelson - 1984
    This long-awaited revision contains changes throughout the text. There are new implementations of most of the major programming systems in the book, including the interpreters and compilers, and the authors have incorporated many small changes that reflect their experience teaching the course at MIT since the first edition was published. A new theme has been introduced that emphasizes the central role played by different approaches to dealing with time in computational models: objects with state, concurrent programming, functional programming and lazy evaluation, and nondeterministic programming. There are new example sections on higher-order procedures in graphics and on applications of stream processing in numerical programming, and many new exercises. In addition, all the programs have been reworked to run in any Scheme implementation that adheres to the IEEE standard.

Introduction to Algorithms


Thomas H. Cormen - 1989
    Each chapter is relatively self-contained and can be used as a unit of study. The algorithms are described in English and in a pseudocode designed to be readable by anyone who has done a little programming. The explanations have been kept elementary without sacrificing depth of coverage or mathematical rigor.

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.

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

User Friendly: How the Hidden Rules of Design Are Changing the Way We Live, Work, and Play


Cliff Kuang - 2019
    Spanning over a century of sweeping changes, from women's rights to the Great Depression to World War II to the rise of the digital era, this book unpacks the ways in which the world has been--and continues to be--remade according to the principles of the once-obscure discipline of user-experience design.In this essential text, Kuang and Fabricant map the hidden rules of the designed world and shed light on how those rules have caused our world to change--an underappreciated but essential history that's pieced together for the first time. Combining the expertise and insight of a leading journalist and a pioneering designer, User Friendly provides a definitive, thoughtful, and practical perspective on a topic that has rapidly gone from arcane to urgent to inescapable. In User Friendly, Kuang and Fabricant tell the whole story for the first time--and you'll never interact with technology the same way again.

Peopleware: Productive Projects and Teams


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

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."

Essential Scrum: A Practical Guide to the Most Popular Agile Process


Kenneth S. Rubin - 2012
    Leading Scrum coach and trainer Kenny Rubin illuminates the values, principles, and practices of Scrum, and describes flexible, proven approaches that can help you implement it far more effectively. Whether you are new to Scrum or years into your use, this book will introduce, clarify, and deepen your Scrum knowledge at the team, product, and portfolio levels. Drawing from Rubin's experience helping hundreds of organizations succeed with Scrum, this book provides easy-to-digest descriptions enhanced by more than two hundred illustrations based on an entirely new visual icon language for describing Scrum's roles, artifacts, and activities. Essential Scrum will provide every team member, manager, and executive with a common understanding of Scrum, a shared vocabulary they can use in applying it, and practical knowledge for deriving maximum value from 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.

Thinking with Type


Ellen Lupton - 2004
    What type of font to use? How big? How should those letters, words, and paragraphs be aligned, spaced, ordered, shaped, and otherwise manipulated? In this groundbreaking new primer, leading design educator and historian Ellen Lupton provides clear and concise guidance for anyone learning or brushing up on their typographic skills. Thinking with Type is divided into three sections: letter, text, and grid. Each section begins with an easy-to-grasp essay that reviews historical, technological, and theoretical concepts, and is then followed by a set of practical exercises that bring the material covered to life. Sections conclude with examples of work by leading practitioners that demonstrate creative possibilities (along with some classic no-no's to avoid).

Web Analytics 2.0: The Art of Online Accountability & Science of Customer Centricity [With CDROM]


Avinash Kaushik - 2009
    "Web Analytics 2.0" presents a new framework that will permanently change how you think about analytics. It provides specific recommendations for creating an actionable strategy, applying analytical techniques correctly, solving challenges such as measuring social media and multichannel campaigns, achieving optimal success by leveraging experimentation, and employing tactics for truly listening to your customers. The book will help your organization become more data driven while you become a super analysis ninja Note: CD-ROM/DVD and other supplementary materials are not included as part of eBook file.

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.

Software Requirements 3


Karl Wiegers - 1999
    Two leaders in the requirements community have teamed up to deliver a contemporary set of practices covering the full range of requirements development and management activities on software projects. Describes practical, effective, field-tested techniques for managing the requirements engineering process from end to end. Provides examples demonstrating how requirements "good practices" can lead to fewer change requests, higher customer satisfaction, and lower development costs. Fully updated with contemporary examples and many new practices and techniques. Describes how to apply effective requirements practices to agile projects and numerous other special project situations. Targeted to business analysts, developers, project managers, and other software project stakeholders who have a general understanding of the software development process. Shares the insights gleaned from the authors' extensive experience delivering hundreds of software-requirements training courses, presentations, and webinars.New chapters are included on specifying data requirements, writing high-quality functional requirements, and requirements reuse. Considerable depth has been added on business requirements, elicitation techniques, and nonfunctional requirements. In addition, new chapters recommend effective requirements practices for various special project situations, including enhancement and replacement, packaged solutions, outsourced, business process automation, analytics and reporting, and embedded and other real-time systems projects.

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

Pervasive Information Architecture: Designing Cross-Channel User Experiences


Andrea Resmini - 2011
    It offers insights about trade-offs that can be made and techniques for even the most unique design challenges. The book will help readers master agile information structures while meeting their unique needs on such devices as smart phones, GPS systems, and tablets.The book provides examples showing how to: model and shape information to adapt itself to users' needs, goals, and seeking strategies; reduce disorientation and increase legibility and way-finding in digital and physical spaces; and alleviate the frustration associated with choosing from an ever-growing set of information, services, and goods. It also describes relevant connections between pieces of information, services and goods to help users achieve their goals.This book will be of value to practitioners, researchers, academics, andstudents in user experience design, usability, information architecture, interaction design, HCI, web interaction/interface designer, mobile application design/development, and information design. Architects and industrial designers moving into the digital realm will also find this book helpful.