Software Engineering at Google: Lessons Learned from Programming Over Time


Titus Winters - 2020
    With this book, you'll get a candid and insightful look at how software is constructed and maintained by some of the world's leading practitioners.Titus Winters, Tom Manshreck, and Hyrum K. Wright, software engineers and a technical writer at Google, reframe how software engineering is practiced and taught: from an emphasis on programming to an emphasis on software engineering, which roughly translates to programming over time.You'll learn:Fundamental differences between software engineering and programmingHow an organization effectively manages a living codebase and efficiently responds to inevitable changeWhy culture (and recognizing it) is important, and how processes, practices, and tools come into play

But How Do It Know? - The Basic Principles of Computers for Everyone


J. Clark Scott - 2009
    Its humorous title begins with the punch line of a classic joke about someone who is baffled by technology. It was written by a 40-year computer veteran who wants to take the mystery out of computers and allow everyone to gain a true understanding of exactly what computers are, and also what they are not. Years of writing, diagramming, piloting and editing have culminated in one easy to read volume that contains all of the basic principles of computers written so that everyone can understand them. There used to be only two types of book that delved into the insides of computers. The simple ones point out the major parts and describe their functions in broad general terms. Computer Science textbooks eventually tell the whole story, but along the way, they include every detail that an engineer could conceivably ever need to know. Like Momma Bear's porridge, But How Do It Know? is just right, but it is much more than just a happy medium. For the first time, this book thoroughly demonstrates each of the basic principles that have been used in every computer ever built, while at the same time showing the integral role that codes play in everything that computers are able to do. It cuts through all of the electronics and mathematics, and gets right to practical matters. Here is a simple part, see what it does. Connect a few of these together and you get a new part that does another simple thing. After just a few iterations of connecting up simple parts - voilà! - it's a computer. And it is much simpler than anyone ever imagined. But How Do It Know? really explains how computers work. They are far simpler than anyone has ever permitted you to believe. It contains everything you need to know, and nothing you don't need to know. No technical background of any kind is required. The basic principles of computers have not changed one iota since they were invented in the mid 20th century. "Since the day I learned how computers work, it always felt like I knew a giant secret, but couldn't tell anyone," says the author. Now he's taken the time to explain it in such a manner that anyone can have that same moment of enlightenment and thereafter see computers in an entirely new light.

A History of Modern Computing


Paul E. Ceruzzi - 1998
    The author concentrates on five key moments of transition: the transformation of the computer in the late 1940s from a specialized scientific instrument to a commercial product; the emergence of small systems in the late 1960s; the beginning of personal computing in the 1970s; the spread of networking after 1985; and, in a chapter written for this edition, the period 1995-2001.The new material focuses on the Microsoft antitrust suit, the rise and fall of the dot-coms, and the advent of open source software, particularly Linux. Within the chronological narrative, the book traces several overlapping threads: the evolution of the computer's internal design; the effect of economic trends and the Cold War; the long-term role of IBM as a player and as a target for upstart entrepreneurs; the growth of software from a hidden element to a major character in the story of computing; and the recurring issue of the place of information and computing in a democratic society.The focus is on the United States (though Europe and Japan enter the story at crucial points), on computing per se rather than on applications such as artificial intelligence, and on systems that were sold commercially and installed in quantities.

Brotopia: Breaking Up the Boys' Club of Silicon Valley


Emily Chang - 2018
    It's a "Brotopia," where men hold all the cards and make all the rules. Vastly outnumbered, women face toxic workplaces rife with discrimination and sexual harassment, where investors take meetings in hot tubs and network at sex parties.In this powerful exposé, Bloomberg TV journalist Emily Chang reveals how Silicon Valley got so sexist despite its utopian ideals, why bro culture endures despite decades of companies claiming the moral high ground (Don't Be Evil! Connect the World!)--and how women are finally starting to speak out and fight back.Drawing on her deep network of Silicon Valley insiders, Chang opens the boardroom doors of male-dominated venture capital firms like Kleiner Perkins, the subject of Ellen Pao's high-profile gender discrimination lawsuit, and Sequoia, where a partner once famously said they "won't lower their standards" just to hire women. Interviews with Facebook COO Sheryl Sandberg, YouTube CEO Susan Wojcicki, and former Yahoo! CEO Marissa Mayer--who got their start at Google, where just one in five engineers is a woman--reveal just how hard it is to crack the Silicon Ceiling. And Chang shows how women such as former Uber engineer Susan Fowler, entrepreneur Niniane Wang, and game developer Brianna Wu, have risked their careers and sometimes their lives to pave a way for other women.Silicon Valley's aggressive, misogynistic, work-at-all costs culture has shut women out of the greatest wealth creation in the history of the world. It's time to break up the boys' club. Emily Chang shows us how to fix this toxic culture--to bring down Brotopia, once and for all.

The Man Who Knew Too Much: Alan Turing and the Invention of the Computer


David Leavitt - 2006
    Then, attempting to break a Nazi code during World War II, he successfully designed and built one, thus ensuring the Allied victory. Turing became a champion of artificial intelligence, but his work was cut short. As an openly gay man at a time when homosexuality was illegal in England, he was convicted and forced to undergo a humiliating "treatment" that may have led to his suicide.With a novelist's sensitivity, David Leavitt portrays Turing in all his humanity—his eccentricities, his brilliance, his fatal candor—and elegantly explains his work and its implications.

Clean Code: A Handbook of Agile Software Craftsmanship


Robert C. Martin - 2007
    But if code isn't clean, it can bring a development organization to its knees. Every year, countless hours and significant resources are lost because of poorly written code. But it doesn't have to be that way. Noted software expert Robert C. Martin presents a revolutionary paradigm with Clean Code: A Handbook of Agile Software Craftsmanship . Martin has teamed up with his colleagues from Object Mentor to distill their best agile practice of cleaning code on the fly into a book that will instill within you the values of a software craftsman and make you a better programmer but only if you work at it. What kind of work will you be doing? You'll be reading code - lots of code. And you will be challenged to think about what's right about that code, and what's wrong with it. More importantly, you will be challenged to reassess your professional values and your commitment to your craft. Clean Code is divided into three parts. The first describes the principles, patterns, and practices of writing clean code. The second part consists of several case studies of increasing complexity. Each case study is an exercise in cleaning up code - of transforming a code base that has some problems into one that is sound and efficient. The third part is the payoff: a single chapter containing a list of heuristics and "smells" gathered while creating the case studies. The result is a knowledge base that describes the way we think when we write, read, and clean code. Readers will come away from this book understanding ‣ How to tell the difference between good and bad code‣ How to write good code and how to transform bad code into good code‣ How to create good names, good functions, good objects, and good classes‣ How to format code for maximum readability ‣ How to implement complete error handling without obscuring code logic ‣ How to unit test and practice test-driven development This book is a must for any developer, software engineer, project manager, team lead, or systems analyst with an interest in producing better code.

We Are The Nerds: The Birth and Tumultuous Life of Reddit, the Internet's Culture Laboratory


Christine Lagorio-Chafkin - 2018
    We Are the Nerds is a riveting look deep inside this captivating, maddening enterprise–whose army of highly engaged (obsessed?) users have been credited with everything from solving cold case crimes to seeding alt-right fury and helping to land Donald Trump in the White House. We Are the Nerds is a gripping start-up business narrative: the story of how Reddit’s founders, Steve Huffman and Alexis Ohanian, rose up from their suburban childhoods to become millionaires and create an icon of the digital age–before seeing the site engulfed in controversies and nearly losing control of it for good. Based on Christine Lagorio’s exclusive access to founders Alexis Ohanian and Steve Huffman, We Are the Nerds is also a compelling exploration of the way we all communicate today–and how we got here. Reddit and its users have become a mirror of the Internet: it has dingy corners, shiny memes, malicious trolls, and a sometimes heart-melting ability to connect people across cultures, oceans, and ideological divides.

Mars Rover Curiosity: An Inside Account from Curiosity's Chief Engineer


Rob Manning - 2014
    Manning and his team at NASA's Jet Propulsion Laboratory, tasked with designing a lander many times larger and more complex than any before, faced technical setbacks, fights over inadequate resources, and the challenges of leading an army of brilliant, passionate, and often frustrated experts.Manning's fascinating personal account--which includes information from his exclusive interviews with leading Curiosity scientists--is packed with tales of revolutionary feats of science, technology, and engineering. Readers experience firsthand the disappointment at encountering persistent technical problems, the agony of near defeat, the sense of victory at finding innovative solutions to these problems, the sheer terror of staking careers and reputations on a lander that couldn't be tested on Earth, and the rush of triumph at its successful touchdown on Mars on August 5, 2012. This is the story of persistence, dedication, and unrelenting curiosity.

Pro Git


Scott Chacon - 2009
    It took the open source world by storm since its inception in 2005, and is used by small development shops and giants like Google, Red Hat, and IBM, and of course many open source projects.A book by Git experts to turn you into a Git expert. Introduces the world of distributed version control Shows how to build a Git development workflow.

Deep Learning with Python


François Chollet - 2017
    It is the technology behind photo tagging systems at Facebook and Google, self-driving cars, speech recognition systems on your smartphone, and much more.In particular, Deep learning excels at solving machine perception problems: understanding the content of image data, video data, or sound data. Here's a simple example: say you have a large collection of images, and that you want tags associated with each image, for example, "dog," "cat," etc. Deep learning can allow you to create a system that understands how to map such tags to images, learning only from examples. This system can then be applied to new images, automating the task of photo tagging. A deep learning model only has to be fed examples of a task to start generating useful results on new data.

Blood, Sweat, and Pixels: The Triumphant, Turbulent Stories Behind How Video Games Are Made


Jason Schreier - 2017
    In Blood, Sweat, and Pixels, Jason Schreier takes readers on a fascinating odyssey behind the scenes of video game development, where the creator may be a team of 600 overworked underdogs or a solitary geek genius. Exploring the artistic challenges, technical impossibilities, marketplace demands, and Donkey Kong-sized monkey wrenches thrown into the works by corporate, Blood, Sweat, and Pixels reveals how bringing any game to completion is more than Sisyphean—it's nothing short of miraculous.Taking some of the most popular, bestselling recent games, Schreier immerses readers in the hellfire of the development process, whether it's RPG studio Bioware's challenge to beat an impossible schedule and overcome countless technical nightmares to build Dragon Age: Inquisition; indie developer Eric Barone's single-handed efforts to grow country-life RPG Stardew Valley from one man's vision into a multi-million-dollar franchise; or Bungie spinning out from their corporate overlords at Microsoft to create Destiny, a brand new universe that they hoped would become as iconic as Star Wars and Lord of the Rings—even as it nearly ripped their studio apart. Documenting the round-the-clock crunches, buggy-eyed burnout, and last-minute saves, Blood, Sweat, and Pixels is a journey through development hell—and ultimately a tribute to the dedicated diehards and unsung heroes who scale mountains of obstacles in their quests to create the best games imaginable.

Dogfight: How Apple and Google Went to War and Started a Revolution


Fred Vogelstein - 2013
    At the center of this change are Apple and Google, two companies whose philosophies, leaders, and commercial acumen have steamrolled the competition. In the age of the Android and the iPad, these corporations are locked in a feud that will play out not just in the marketplace but in the courts and on screens around the world.     Fred Vogelstein has reported on this rivalry for more than a decade and has rare access to its major players. In Dogfight, he takes us into the offices and board rooms where company dogma translates into ruthless business; behind outsize personalities like Steve Jobs, Apple’s now-lionized CEO, and Eric Schmidt, Google’s executive chairman; and inside the deals, lawsuits, and allegations that mold the way we communicate. Apple and Google are poaching each other’s employees. They bid up the price of each other’s acquisitions for spite, and they forge alliances with major players like Facebook and Microsoft in pursuit of market dominance.     Dogfight reads like a novel: vivid nonfiction with never-before-heard details. This is more than a story about what devices will replace our phones and laptops. It’s about who will control the content on those devices and where that content will come from—about the future of media in Silicon Valley, New York, and Hollywood.

The Art of Doing Science and Engineering: Learning to Learn


Richard Hamming - 1996
    By presenting actual experiences and analyzing them as they are described, the author conveys the developmental thought processes employed and shows a style of thinking that leads to successful results is something that can be learned. Along with spectacular successes, the author also conveys how failures contributed to shaping the thought processes. Provides the reader with a style of thinking that will enhance a person's ability to function as a problem-solver of complex technical issues. Consists of a collection of stories about the author's participation in significant discoveries, relating how those discoveries came about and, most importantly, provides analysis about the thought processes and reasoning that took place as the author and his associates progressed through engineering problems.

Programmers at Work: Interviews With 19 Programmers Who Shaped the Computer Industry (Tempus)


Susan Lammers - 1986
    A classic title on the PC revolution originally published in 1986. Featuring Bill Gates, Andy Hertzfeld, Charles Simonyi, Ray Ozzie, Michael Hawley and many more.

Cracking the Coding Interview: 150 Programming Questions and Solutions


Gayle Laakmann McDowell - 2008
    This is a deeply technical book and focuses on the software engineering skills to ace your interview. The book is over 500 pages and includes 150 programming interview questions and answers, as well as other advice.The full list of topics are as follows:The Interview ProcessThis section offers an overview on questions are selected and how you will be evaluated. What happens when you get a question wrong? When should you start preparing, and how? What language should you use? All these questions and more are answered.Behind the ScenesLearn what happens behind the scenes during your interview, how decisions really get made, who you interview with, and what they ask you. Companies covered include Google, Amazon, Yahoo, Microsoft, Apple and Facebook.Special SituationsThis section explains the process for experience candidates, Program Managers, Dev Managers, Testers / SDETs, and more. Learn what your interviewers are looking for and how much code you need to know.Before the InterviewIn order to ace the interview, you first need to get an interview. This section describes what a software engineer's resume should look like and what you should be doing well before your interview.Behavioral PreparationAlthough most of a software engineering interview will be technical, behavioral questions matter too. This section covers how to prepare for behavioral questions and how to give strong, structured responses.Technical Questions (+ 5 Algorithm Approaches)This section covers how to prepare for technical questions (without wasting your time) and teaches actionable ways to solve the trickiest algorithm problems. It also teaches you what exactly "good coding" is when it comes to an interview.150 Programming Questions and AnswersThis section forms the bulk of the book. Each section opens with a discussion of the core knowledge and strategies to tackle this type of question, diving into exactly how you break down and solve it. Topics covered include• Arrays and Strings• Linked Lists• Stacks and Queues• Trees and Graphs• Bit Manipulation• Brain Teasers• Mathematics and Probability• Object-Oriented Design• Recursion and Dynamic Programming• Sorting and Searching• Scalability and Memory Limits• Testing• C and C++• Java• Databases• Threads and LocksFor the widest degree of readability, the solutions are almost entirely written with Java (with the exception of C / C++ questions). A link is provided with the book so that you can download, compile, and play with the solutions yourself.Changes from the Fourth Edition: The fifth edition includes over 200 pages of new content, bringing the book from 300 pages to over 500 pages. Major revisions were done to almost every solution, including a number of alternate solutions added. The introductory chapters were massively expanded, as were the opening of each of the chapters under Technical Questions. In addition, 24 new questions were added.Cracking the Coding Interview, Fifth Edition is the most expansive, detailed guide on how to ace your software development / programming interviews.