How Google Tests Software


James A. Whittaker - 2012
    Legendary testing expert James Whittaker, until recently a Google testing leader, and two top Google experts reveal exactly how Google tests software, offering brand-new best practices you can use even if you're not quite Google's size...yet! Breakthrough Techniques You Can Actually Use Discover 100% practical, amazingly scalable techniques for analyzing risk and planning tests...thinking like real users...implementing exploratory, black box, white box, and acceptance testing...getting usable feedback...tracking issues...choosing and creating tools...testing "Docs & Mocks," interfaces, classes, modules, libraries, binaries, services, and infrastructure...reviewing code and refactoring...using test hooks, presubmit scripts, queues, continuous builds, and more. With these techniques, you can transform testing from a bottleneck into an accelerator-and make your whole organization more productive!

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

Shipping Greatness: Practical lessons on building and launching outstanding software, learned on the job at Google and Amazon


Chris Vander Mey - 2012
    In this guide, Chris Vander Mey provides a simplified, no-BS approach to the entire software lifecycle, distilled from lessons he learned as a manager at Amazon and Google.In the first part of the book, you’ll learn a step-by-step shipping process used by many of the best teams at Google and Amazon. Part II shows you the techniques, best practices, and skills you need to face an array of challenges in product, program, project, and engineering management.Clearly define your product and develop your mission and strategyAssemble your team and understand enough about systems to communicate with themCreate a beautiful, intuitive, and simple user experienceTrack your team’s deliverables and closely manage the testing processCommunicate clearly to gracefully handle requests, senior-management interactions, and feedback from various sourcesBuild metrics to track progress, spot problems, and celebrate successStick to your launch checklist and plan for marketing and PR

Practices of an Agile Developer: Working in the Real World


Venkat Subramaniam - 2006
    You'll learn pragmatic ways of approaching the development process and your personal coding techniques. You'll learn about your own attitudes, issues with working on a team, and how to best manage your learning, all in an iterative, incremental, agile style. You'll see how to apply each practice, and what benefits you can expect. Bottom line: This book will make you a better developer.

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

Code Simplicity: The Fundamentals of Software


Max Kanat-Alexander - 2012
    This book contains the fundamental laws of software development, the primary pieces of understanding that make the difference between a mid-level/junior programmer and the high-level senior software engineer. The book exists to help all programmers understand the process of writing software, on a very fundamental level that can be applied to any programming language or project, from here into eternity. Code Simplicity is also written in such a way that even non-technical managers of software teams can gain an understanding of what the “right way” and the “wrong way” is (and why they are right and wrong) when it comes to software design. The focus of the book is primarily on “software design,” the process of creating a plan for a software project and making technical decisions about the pattern and structure of a system.

New Programmer's Survival Manual


Joshua Carter - 2011
    You've got the programming chops, you're up on the latest tech, you're sitting at your workstation... now what? New Programmer's Survival Manual gives your career the jolt it needs to get going: essential industry skills to help you apply your raw programming talent and make a name for yourself. It's a no-holds-barred look at what really goes on in the office--and how to not only survive, but thrive in your first job and beyond. Programming at industry level requires new skills - you'll build programs that dwarf anything you've done on your own. This book introduces you to practices for working on large-scale, long-lived programs at a professional level of quality. You'll find out how to work efficiently with your current tools, and discover essential new tools. But the tools are only part of the story; you've got to get street-smart too. Succeeding in the corporate working environment requires its own savvy. You'll learn how to navigate the office, work with your teammates, and how to deal with other people outside of your department. You'll understand where you fit into the big picture and how you contribute to the company's success. You'll also get a candid look at the tougher aspects of the job: stress, conflict, and office politics. Finally, programming is a job you can do for the long haul. This book helps you look ahead to the years to come, and your future opportunities--either as a programmer or in another role you grow into. There's nothing quite like the satisfaction of shipping a product and knowing, "I built that." Whether you work on embedded systems or web-based applications, in trendy technologies or legacy systems, this book helps you get from raw skill to an accomplished professional.

Project to Product: How to Survive and Thrive in the Age of Digital Disruption with the Flow Framework


Mik Kersten - 2018
    Mastering large-scale software delivery will define the economic landscape of the 21st century, just as mass production defined the landscape in the 20th. Unfortunately, business and technology leaders outside of the tech giants are woefully ill-equipped to solve the problems posed by digital transformation. A new approach is needed.In Project to Product, value stream network pioneer and technology leader Dr. Mik Kersten introduces the Flow Framework. This new way of building an infrastructure for innovation will change the way enterprises think about software delivery, enabling every organization the opportunity to win a portion of the $18.5 trillion (IDC) that will be created annually through better software delivery.Project to Product provides leaders the missing framework needed to create the technology equivalent of an advanced manufacturing line, across thousands of IT professionals, and enables optimizing value creation across the entire organization. This book is ideal for C-suite leadership and IT management at every level.

Lean UX: Applying Lean Principles to Improve User Experience


Jeff Gothelf - 2012
    In this insightful book, leading advocate Jeff Gothelf teaches you valuable Lean UX principles, tactics, and techniques from the ground up—how to rapidly experiment with design ideas, validate them with real users, and continually adjust your design based on what you learn.Inspired by Lean and Agile development theories, Lean UX lets you focus on the actual experience being designed, rather than deliverables. This book shows you how to collaborate closely with other members of the product team, and gather feedback early and often. You’ll learn how to drive the design in short, iterative cycles to assess what works best for the business and the user. Lean UX shows you how to make this change—for the better.Frame a vision of the problem you’re solving and focus your team on the right outcomesBring the designers’ toolkit to the rest of your product teamShare your insights with your team much earlier in the processCreate Minimum Viable Products to determine which ideas are validIncorporate the voice of the customer throughout the project cycleMake your team more productive: combine Lean UX with Agile’s Scrum frameworkUnderstand the organizational shifts necessary to integrate Lean UXLean UX received the 2013 Jolt Award from Dr. Dobb's Journal as the best book of the year. The publication's panel of judges chose five notable books, published during a 12-month period ending June 30, that every serious programmer should read.

Professional JavaScript for Web Developers


Nicholas C. Zakas - 2005
    This 4-book set includes:Professional JavaScript for Web Developers (ISBN: 0764579088) Professional Ajax 2nd edition (ISBN: 0470109491) Professional Web 2.0 Programming (ISBN: 0470087889) Professional Rich Internet Applications: Ajax and Beyond (ISBN: 0470082801)

Game Engine Architecture


Jason Gregory - 2009
    The concepts and techniques described are the actual ones used by real game studios like Electronic Arts and Naughty Dog. The examples are often grounded in specific technologies, but the discussion extends way beyond any particular engine or API. The references and citations make it a great jumping off point for those who wish to dig deeper into any particular aspect of the game development process.Intended as the text for a college level series in game programming, this book can also be used by amateur software engineers, hobbyists, self-taught game programmers, and existing members of the game industry. Junior game engineers can use it to solidify their understanding of game technology and engine architecture. Even senior engineers who specialize in one particular field of game development can benefit from the bigger picture presented in these pages.

Just for Fun: The Story of an Accidental Revolutionary


Linus Torvalds - 2001
    Then he wrote a groundbreaking operating system and distributed it via the Internet -- for free. Today Torvalds is an international folk hero. And his creation LINUX is used by over 12 million people as well as by companies such as IBM.Now, in a narrative that zips along with the speed of e-mail, Torvalds gives a history of his renegade software while candidly revealing the quirky mind of a genius. The result is an engrossing portrayal of a man with a revolutionary vision, who challenges our values and may change our world.

Agile IT Organization Design: For Digital Transformation and Continuous Delivery


Sriram Narayan - 2015
    Now, pioneering ThoughtWorks software engineering expert Sriram Narayan shows how to do just that. Drawing on 15+ years working with leaders in telecommunications, finance, energy, retail, and beyond, he introduces a comprehensive agile approach to "Business-IT Effectiveness" that is as practical as it is valuable. Narayan demonstrates how to integrate agility throughout sales, marketing, product development, engineering, and operations, helping each function deliver more value individually and through its linkages with the rest of the business. Addressing people, process, and technology, he guides you in improving both the dynamic and static aspects of organization design, addressing team structure, accountability structures, organizational norms and culture, knowledge management, and more. Using real examples, Narayan helps you evaluate and improve organization designs to enhance autonomy, mastery, and purpose. You'll learn how to eliminate the specific organizational silos that cause the most problems... improve communication in organizations that claim to be (but aren't really) non-hierarchical... optimize the way you build teams, design office space, and even choose tools. Simply put, Agile IT Organization Design will help you improve improving the performance of any software organization by propagating agile wherever it makes sense and offers value.

The Design of Everyday Things


Donald A. Norman - 1988
    It could forever change how you experience and interact with your physical surroundings, open your eyes to the perversity of bad design and the desirability of good design, and raise your expectations about how things should be designed.B & W photographs and illustrations throughout.

Software Engineering: A Practitioner's Approach


Roger S. Pressman - 1982
    This book provides information on software tools, specific work flow for specific kinds of projects, and information on various topics. It includes resources for both instructors and students such as checklists, 700 categorized web references, and more.