Product Design for the Web: Principles of Designing and Releasing Web Products
Randy J. Hunt - 2013
To create a successful web product that's as large as Etsy, Facebook, Twitter, or Pinterest-or even as small as a tiny app-you need to know more than just HTML and CSS. You need to understand how to create meaningful online experiences so that users want to come back again and again.In other words, you have to stop thinking like a web designer or a visual designer or a UX designer or an interaction designer and start thinking like a product designer.In this breakthrough introduction to modern product design, Etsy Creative Director Randy Hunt explains the skills, processes, types of tools, and recommended workflows for creating world-class web products. After reading this book, you'll have a complete understanding of what product design really is and you'll be equipped with the best practices necessary for building your own successful online products.
Building Maintainable Software
Joost Visser - 2015
Be part of the solution. With this practical book, you'll learn 10 easy-to-follow guidelines for delivering software that's easy to maintain and adapt. These guidelines have been derived from analyzing hundreds of real-world systems.Written by consultants from the Software Improvement Group (SIG), this book provides clear and concise explanations, with advice for turning the guidelines into practice. Examples are written in Java, but this guide is equally useful for developers working in other programming languages.10 Coding Guidelines- Write short units of code: limit the length of methods and constructors- Write simple units of code: limit the number of branch points per method- Write code once, rather than risk copying buggy code- Keep unit interfaces small by extracting parameters into objects- Separate concerns to avoid building large classes- Couple architecture components loosely- Balance the number and size of top-level components in your code- Keep your codebase as small as possible- Automate tests for your codebase- Write clean code, avoiding "code smells" that indicate deeper problemsWhy you should read this bookTaken in isolation, the guidelines presented in this book are well-known. In fact, many well-known tools for code analysis check a number of the guidelines presented here. The following three characteristics set this book apart from other books on software development: We have selected the ten most important guidelines from experience.We teach how to comply with these ten guidelines.We present statistics and examples from real-world systems.This book is part our Training on Software Maintainability - and subsequent Certification on Quality Software Development program. For more information about this program, please contact training@sig.eu.
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.
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.
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.
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.
Data Science for Business: What you need to know about data mining and data-analytic thinking
Foster Provost - 2013
This guide also helps you understand the many data-mining techniques in use today.Based on an MBA course Provost has taught at New York University over the past ten years, Data Science for Business provides examples of real-world business problems to illustrate these principles. You’ll not only learn how to improve communication between business stakeholders and data scientists, but also how participate intelligently in your company’s data science projects. You’ll also discover how to think data-analytically, and fully appreciate how data science methods can support business decision-making.Understand how data science fits in your organization—and how you can use it for competitive advantageTreat data as a business asset that requires careful investment if you’re to gain real valueApproach business problems data-analytically, using the data-mining process to gather good data in the most appropriate wayLearn general concepts for actually extracting knowledge from dataApply data science principles when interviewing data science job candidates
The Cathedral & the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary
Eric S. Raymond - 1999
According to the August Forrester Report, 56 percent of IT managers interviewed at Global 2,500 companies are already using some type of open source software in their infrastructure and another 6 percent will install it in the next two years. This revolutionary model for collaborative software development is being embraced and studied by many of the biggest players in the high-tech industry, from Sun Microsystems to IBM to Intel.The Cathedral & the Bazaar is a must for anyone who cares about the future of the computer industry or the dynamics of the information economy. Already, billions of dollars have been made and lost based on the ideas in this book. Its conclusions will be studied, debated, and implemented for years to come. According to Bob Young, "This is Eric Raymond's great contribution to the success of the open source revolution, to the adoption of Linux-based operating systems, and to the success of open source users and the companies that supply them."The interest in open source software development has grown enormously in the past year. This revised and expanded paperback edition includes new material on open source developments in 1999 and 2000. Raymond's clear and effective writing style accurately describing the benefits of open source software has been key to its success. With major vendors creating acceptance for open source within companies, independent vendors will become the open source story in 2001.
Designing for Behavior Change: Applying Psychology and Behavioral Economics
Stephen Wendel - 2013
This practical guide shows you how to design these types of products for users seeking to take action and achieve specific goals.Stephen Wendel, HelloWallet’s head researcher, takes you step-by-step through the process of applying behavioral economics and psychology to the practical problems of product design and development. Using a combination of lean and agile development methods, you’ll learn a simple iterative approach for identifying target users and behaviors, building the product, and gauging its effectiveness. Discover how to create easy-to-use products to help people make positive changes.Learn the three main strategies to help people change behaviorIdentify your target audience and the behaviors they seek to changeExtract user stories and identify obstacles to behavior changeDevelop effective interface designs that are enjoyable to useMeasure your product’s impact and learn ways to improve itUse practical examples from products like Nest, Fitbit, and Opower
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
Design for How People Learn
Julie Dirksen - 2011
Many of us are also teaching, even when it's not in our job descriptions. Whether it's giving a presentation, writing documentation, or creating a website or blog, we need and want to share our knowledge with other people. But if you've ever fallen asleep over a boring textbook, or fast-forwarded through a tedious e-learning exercise, you know that creating a great learning experience is harder than it seems.In Design For How People Learn, you'll discover how to use the key principles behind learning, memory, and attention to create materials that enable your audience to both gain and retain the knowledge and skills you're sharing. Using accessible visual metaphors and concrete methods and examples, Design For How People Learn will teach you how to leverage the fundamental concepts of instructional design both to improve your own learning and to engage your audience.
Tapworthy: Designing Great iPhone Apps
Josh Clark - 2010
Set your app apart with elegant design, efficient usability, and a healthy dose of personality. This accessible, well-written guide shows you how to design exceptional user experiences for the iPhone and iPod Touch through practical principles and a rich collection of visual examples.Whether you're a designer, programmer, manager, or marketer, Tapworthy teaches you to "think iPhone" and helps you ask the right questions -- and get the right answers -- throughout the design process. You'll explore how considerations of design, psychology, culture, ergonomics, and usability combine to create a tapworthy app. Along the way, you'll get behind-the-scenes insights from the designers of apps like Facebook, USA Today, Twitterrific, and many others.Develop your ideas from initial concept to finished designBuild an effortless user experience that rewards every tapExplore the secrets of designing for touchDiscover how and why people really use iPhone appsLearn to use iPhone controls the Apple wayCreate your own personality-packed visuals
Microservice Architecture Aligning Principles, Practices, and Culture
Irakli Nadareishvili - 2016
Paper Prototyping: The Fast and Easy Way to Design and Refine User Interfaces
Carolyn Snyder - 2003
Written by a usability engineer with a long and successful paper prototyping history, this book is a practical, how-to guide that will prepare you to create and test paper prototypes of all kinds of user interfaces. You'll see how to simulate various kinds of interface elements and interactions. You'll learn about the practical aspects of paper prototyping, such as deciding when the technique is appropriate, scheduling the activities, and handling the skepticism of others in your organization. Numerous case studies and images throughout the book show you real world examples of paper prototyping at work.Learn how to use this powerful technique to develop products that are more useful, intuitive, efficient, and pleasing:* Save time and money - solve key problems before implementation begins * Get user feedback early - use it to focus the development process * Communicate better - involve development team members from a variety of disciplines * Be more creative - experiment with many ideas before committing to one
Applied Cryptography: Protocols, Algorithms, and Source Code in C
Bruce Schneier - 1993
… The book the National Security Agency wanted never to be published." –Wired Magazine "…monumental… fascinating… comprehensive… the definitive work on cryptography for computer programmers…" –Dr. Dobb's Journal"…easily ranks as one of the most authoritative in its field." —PC Magazine"…the bible of code hackers." –The Millennium Whole Earth CatalogThis new edition of the cryptography classic provides you with a comprehensive survey of modern cryptography. The book details how programmers and electronic communications professionals can use cryptography—the technique of enciphering and deciphering messages-to maintain the privacy of computer data. It describes dozens of cryptography algorithms, gives practical advice on how to implement them into cryptographic software, and shows how they can be used to solve security problems. Covering the latest developments in practical cryptographic techniques, this new edition shows programmers who design computer applications, networks, and storage systems how they can build security into their software and systems. What's new in the Second Edition? * New information on the Clipper Chip, including ways to defeat the key escrow mechanism * New encryption algorithms, including algorithms from the former Soviet Union and South Africa, and the RC4 stream cipher * The latest protocols for digital signatures, authentication, secure elections, digital cash, and more * More detailed information on key management and cryptographic implementations