Cracking the PM Interview: How to Land a Product Manager Job in Technology


Gayle Laakmann McDowell - 2013
    Cracking the PM Interview is a comprehensive book about landing a product management role in a startup or bigger tech company. Learn how the ambiguously-named "PM" (product manager / program manager) role varies across companies, what experience you need, how to make your existing experience translate, what a great PM resume and cover letter look like, and finally, how to master the interview: estimation questions, behavioral questions, case questions, product questions, technical questions, and the super important "pitch."

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.

JavaScript: The Definitive Guide


David Flanagan - 1996
    This book is both an example-driven programmer's guide and a keep-on-your-desk reference, with new chapters that explain everything you need to know to get the most out of JavaScript, including:Scripted HTTP and Ajax XML processing Client-side graphics using the canvas tag Namespaces in JavaScript--essential when writing complex programs Classes, closures, persistence, Flash, and JavaScript embedded in Java applicationsPart I explains the core JavaScript language in detail. If you are new to JavaScript, it will teach you the language. If you are already a JavaScript programmer, Part I will sharpen your skills and deepen your understanding of the language.Part II explains the scripting environment provided by web browsers, with a focus on DOM scripting with unobtrusive JavaScript. The broad and deep coverage of client-side JavaScript is illustrated with many sophisticated examples that demonstrate how to:Generate a table of contents for an HTML document Display DHTML animations Automate form validation Draw dynamic pie charts Make HTML elements draggable Define keyboard shortcuts for web applications Create Ajax-enabled tool tips Use XPath and XSLT on XML documents loaded with Ajax And much morePart III is a complete reference for core JavaScript. It documents every class, object, constructor, method, function, property, and constant defined by JavaScript 1.5 and ECMAScript Version 3.Part IV is a reference for client-side JavaScript, covering legacy web browser APIs, the standard Level 2 DOM API, and emerging standards such as the XMLHttpRequest object and the canvas tag.More than 300,000 JavaScript programmers around the world have made this their indispensable reference book for building JavaScript applications."A must-have reference for expert JavaScript programmers...well-organized and detailed."-- Brendan Eich, creator of JavaScript

Agile Retrospectives: Making Good Teams Great


Esther Derby - 2006
    The tools and recipes in this book will help you uncover and solve hidden (and not-so-hidden) problems with your technology, your methodology, and those difficult "people" issues on your team.Project retrospectives help teams examine what went right and what went wrong on a project. But traditionally, retrospectives (also known as "post-mortems") are only helpful at the end of the project--too late to help. You need agile retrospectives that are iterative and incremental. You need to accurately find and fix problems to help the team today.Now, Derby and Larsen show you the tools, tricks, and tips you need to fix the problems you face on a software development project on an on-going basis. You'll see how to architect retrospectives in general, how to design them specifically for your team and organization, how to run them effectively, how to make the needed changes, and how to scale these techniques up. You'll learn how to deal with problems, and implement solutions effectively throughout the project--not just at the end.With regular tune-ups, your team will hum like a precise, world-class orchestra.ContentsForwardPrefaceIntroduction1. Helping your team inspect and adapt2. A retrospective custom-fit for your team3. Leading retrospectives4. Activities to set the stage5. Activities to gather data6. Activities to gather insights7. Activities to decide what to do8. Activities to close the retrospective9. Releases and project retrospectives10. Make it soA1. Facilitation suppliesA2. Debriefing activitiesA3. Activities quick reference matrixA4. Resources for learning facilitation skillsA5. Bibliography

Mismatch: How Inclusion Shapes Design


Kat Holmes - 2018
    Something as simple as color choices can render a product unusable for millions. These mismatches are the building blocks of exclusion. In Mismatch, Kat Holmes describes how design can lead to exclusion, and how design can also remedy exclusion. Inclusive design methods--designing objects with rather than for excluded users--can create elegant solutions that work well and benefit all.Holmes tells stories of pioneers of inclusive design, many of whom were drawn to work on inclusion because of their own experiences of exclusion. A gamer and designer who depends on voice recognition shows Holmes his "Wall of Exclusion," which displays dozens of game controllers that require two hands to operate; an architect shares her firsthand knowledge of how design can fail communities, gleaned from growing up in Detroit's housing projects; an astronomer who began to lose her eyesight adapts a technique called "sonification" so she can "listen" to the stars.Designing for inclusion is not a feel-good sideline. Holmes shows how inclusion can be a source of innovation and growth, especially for digital technologies. It can be a catalyst for creativity and a boost for the bottom line as a customer base expands. And each time we remedy a mismatched interaction, we create an opportunity for more people to contribute to society in meaningful ways.

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

Set Phasers on Stun: And Other True Tales of Design, Technology and Human Error


Steven Casey - 1993
    Structurally sound aircraft plummet to the earth, supertankers run aground in calm weather, and the machines of medical science maim unsuspecting patients - - all because designers sometimes fail to reflect the characteristics of the user in their designs. Designers and the public alike are realizing that many human' errors are more aptly named designed-induced' errors. Most consumers experience the frustration of using many new products; amusing stories about programming a VCR, operating a personal computer, or finding the headlight switch on a rental car are heard in everyday conversation. The problems consumers experience with modern everyday things are shared by the users of large-scale technologies where the consequences of design can go well beyond simple matters of inconvenience or amusement. In the new second edition of Set Phasers on Stun' and Other True Tales of Design, Technology, and Human Error, noted designer and author Steven Casey has assembled 20 factual and arresting stories about people and their attempts to use modern technological creations. Although the operator or pilot usually gets blamed for a big disaster, the root cause can frequently be found in subtle characteristics of the device's human interface.' Technological disasters can often be traced directly to the interplay between people and the design of a device - - be it an airliner cockpit, the controls in an industrial plant, a spacecraft's instruments, a medical system, a nuclear reactor, or even a commercial dishwashing machine.

Discussing Design: Improving Communication and Collaboration through Critique


Adam Connor - 2015
    Designers are no different, but there are not many resources available that concentrate on these necessary soft-skills. This book provides practical and actionable insights to help your team give and receive constructive criticism. For managers, this book discusses proven tools to set a foundation for your team to stay focused on overall goals, and how to handle negative critiques. As an added bonus, the book also includes a Critique Cheat Sheet so you can quickly reference strategies and tools from top industry experts.

Effective JavaScript: 68 Specific Ways to Harness the Power of JavaScript


David Herman - 2012
    His walk through the syntax and semantics of JavaScript is both charming and hugely insightful; reminders of gotchas complement realistic use cases, paced at a comfortable curve. You'll find when you finish the book that you've gained a strong and comprehensive sense of mastery." --Paul Irish, developer advocate, Google Chrome "This is not a book for those looking for shortcuts; rather it is hard-won experience distilled into a guided tour. It's one of the few books on JS that I'll recommend without hesitation." --Alex Russell, TC39 member, software engineer, Google In order to truly master JavaScript, you need to learn how to work effectively with the language's flexible, expressive features and how to avoid its pitfalls. No matter how long you've been writing JavaScript code, Effective JavaScript will help deepen your understanding of this powerful language, so you can build more predictable, reliable, and maintainable programs. Author David Herman, with his years of experience on Ecma's JavaScript standardization committee, illuminates the language's inner workings as never before--helping you take full advantage of JavaScript's expressiveness. Reflecting the latest versions of the JavaScript standard, the book offers well-proven techniques and best practices you'll rely on for years to come. Effective JavaScript is organized around 68 proven approaches for writing better JavaScript, backed by concrete examples. You'll learn how to choose the right programming style for each project, manage unanticipated problems, and work more successfully with every facet of JavaScript programming from data structures to concurrency. Key features include Better ways to use prototype-based object-oriented programming Subtleties and solutions for working with arrays and dictionary objects Precise and practical explanations of JavaScript's functions and variable scoping semantics Useful JavaScript programming patterns and idioms, such as options objects and method chaining In-depth guidance on using JavaScript's unique "run-to-completion" approach to concurrency

Think First: My No-Nonsense Approach to Creating Successful Products, Memorable User Experiences + Very Happy Customers


Joe Natoli - 2015
    Designing anything for people is tough, because we’re inherently complex and...well...messy. Which means that things like market share and ROI don’t come easy. But time and effort spent finding the right problems to solve allows designers, developers and product teams to take quantum leaps forward in exceeding the expectations of everyone involved. In Think First, Joe Natoli shows you exactly how to do this, using lessons learned from his 26 years as a UX consultant to Fortune 100 and 500 organizations. You’ll find proven principles, step-by-step methods and straightforward, jargon-free advice that can be applied to any kind of digital product. Think First proves that while people are indeed messy and complex, designing for them doesn’t have to be. Here’s what a few well-respected UX practitioners and authors had to say about Think First: “A very practical guide to success in business.” – Dr. Don Norman, Director of the DesignLab, UC San Diego and Author of The Design of Everyday Things “Think First is a practical guide to UX that makes sense of strategy and structure. Highly recommended!” – Peter Morville, Bestselling Author of Intertwingled “For designers and developers, understanding strategy and UX is an increasingly necessary skill. Joe Natoli’s Think First demystifies these foundational ideas in a very conversational, easy to read style.” – Ilise Benun, Founder of Marketing-Mentor.com and Author of 7+ Books Author Joe Natoli explains why he believes Think First is unlike any other book on the subject of UX strategy and design: "I didn’t want to write yet another book that covers the narrow, tactical pieces of the design process," he says, "because great design and great UX are the result of multiple activities across multiple people, roles and disciplines. It’s everybody’s business. Think First walks you through everything that must be considered to create great UX — and gives you a roadmap to make it happen." Think First details Joe's no-nonsense approach to creating successful products, powerful user experiences and very happy customers. He share countless lessons learned from more than 26 years as a UX consultant to Fortune 500 and 100 organizations — including a few he's learned the hard way :-) Think First serves as a roadmap to building a solid foundation for UX that’s strong enough to withstand any weather as projects move into design and coding. Here are just some of the things you’ll learn: - Simple user research methods that anyone can perform — even if you’ve never done research of any kind. - The right questions to ask stakeholders and users at the outset of any (and every) project. - The 3 crucial questions you must ask of every client, every time. - How to tell the difference between what people say they need vs. what they really need. - A better, simpler way to generate meaningful UX requirements at the outset of the project. - How to figure out what features and functions will result in great UX and deliver value to both users and the business. - How to avoid scope creep and the never-ending project scenario.

Working in Public: The Making and Maintenance of Open Source Software


Nadia Eghbal - 2020
    In the late 1990s, it provided an optimistic model for public

Design for the Real World: Human Ecology and Social Change


Victor Papanek - 1972
    Translated into twenty-three languages, it is one of the world's most widely read books on design. In this edition, Victor Papanek examines the attempts by designers to combat the tawdry, the unsafe, the frivolous, the useless product, once again providing a blueprint for sensible, responsible design in this world which is deficient in resources and energy.

Microcopy: The Complete Guide


Kinneret Yifrah - 2017
    When you finish this book, you'll know how to use every word in your website or app to:Make the users fall in love and come backHelp them perform tasks easilyTurn every boring screen to a positive experienceIncrease conversionsMicrocopy (sometimes written micro-copy) is the words on sites and apps that accompany the user's actions: text on buttons, website sign up, error messages (and preventing them), field labels, newsletter sign up, instructions, empty states, confirmation messages, and more. Microcopy: The Complete Guide gives you the knowledge and tools needed to write smart, effective and helpful microcopy for your digital interface. It includes principles, practical tips, and dozens of screenshots from actual sites and apps of corporations, start-ups and SMBs. Who will find this book useful? User experience professionals; Digital marketing managers; Website managers; Marketers and sales personnel; Small business owners; Bloggers; Product managers; UI designers Fascinated by the words that light up interfaces? You'll love this one.

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.

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.