1100 Best IT Books of All Time
We've ranked the best it books using expert recommendations, sales data, and millions of reader ratings. At Shortform, we know books. Our book guides are the best in the world. Learn why.
1
2Clean Code: A Handbook of Agile Software Craftsmanship
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.
"
This book is going to show you how to write code that is readable by yourself in the future, or by somebody else. You can sit on the couch and read it; you don’t need to code. You can actually enjoy it if you don’t know how to program at all. [source]
3The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win
The company's new IT initiative, code named Phoenix Project, is critical to the future of Parts Unlimited, but the project is massively over budget and very late. The CEO wants Bill to report directly to him and fix the mess in ninety days or else Bill's entire department will be outsourced.
With the help of a prospective board member and his mysterious philosophy of The Three Ways, Bill starts to see that IT work has more in common with manufacturing plant work than he ever imagined. With the clock ticking, Bill must organize work flow streamline interdepartmental communications, and effectively serve the other business functions at Parts Unlimited.
In a fast-paced and entertaining style, three luminaries of the DevOps movement deliver a story that anyone who works in IT will recognize. Readers will not only learn how to improve their own IT organizations, they'll never view IT the same way again.
Great thread. I know of a number of devops people that haven't read this book. Ya'll should fix that. https://t.co/Yri4JJ0jBZ [source]
I don't think I have a specific book that I can call my favourite. Some books have had a big impact on my view of how to build a product/company ("Rework"), some were very enjoyable to read ("The Phoenix Project"), some helped me improve the way I think ("The Pleasure Of Finding Things Out") and some the way I live ("Essentialism") or work ("Deep Work"). [source]
4The Pragmatic Programmer: From Journeyman to Master
This book is about the craft of software development, and thinking about how to produce good code. [source]
5The Lean Startup: How Today's Entrepreneurs Use Continuous Innovation to Create Radically Successful Businesses
Eric Ries defines a startup as an organization dedicated to creating something new under conditions of extreme uncertainty. This is just as true for one person in a garage or a group of seasoned professionals in a Fortune 500 boardroom. What they have in common is a mission to penetrate that fog of uncertainty to discover a successful path to a sustainable business.
The Lean Startup approach fosters companies that are both more capital efficient and that leverage human creativity more effectively. Inspired by lessons from lean manufacturing, it relies on "validated learning," rapid scientific experimentation, as well as a number of counter-intuitive practices that shorten product development cycles, measure actual progress without resorting to vanity metrics, and learn what customers really want. It enables a company to shift directions with agility, altering plans inch by inch, minute by minute.
Rather than wasting time creating elaborate business plans, The Lean Startup offers entrepreneurs - in companies of all sizes - a way to test their vision continuously, to adapt and adjust before it's too late. Ries provides a scientific approach to creating and managing successful startups in a age when companies need to innovate more than ever.
COO/Facebook
Provides a great inside look at how the tech industry approaches building products and businesses. [source]
Co-founder/Andreessen Horowitz
Great. [source]
Co-founder/Facebook and Asana
At Asana, we've been lucky to benefit from the author's advice firsthand; this book will enable him to help many more entrepreneurs answer the tough questions about their business. [source]
6Code Complete
Discover the timeless techniques and strategies that help you:
Design for minimum complexity and maximum creativity
Reap the benefits of collaborative development
Apply defensive programming techniques to reduce and flush out errors
Exploit opportunities to refactor--or evolve--code, and do it safely
Use construction practices that are right-weight for your project
Debug problems quickly and effectively
Resolve critical construction issues early and correctly
Build quality into the beginning, middle, and end of your project
Code Complete is for people working in industry, writing software for companies. It has little checklists at key points in the book; if you are in industry, you can make sure that your code is readable and debugged by going through these checklists and making sure you’re touching upon all aspects. [source]
If my career path is hackers turned business people, I’d say: Start with the basics and fundamentals: SICP: Structure and Interpretation of Computer Programs Code Complete 2 [source]
7The Mythical Man-Month: Essays on Software Engineering
The added chapters contain (1) a crisp condensation of all the propositions asserted in the original book, including Brooks' central argument in The Mythical Man-Month: that large programming projects suffer management problems different from small ones due to the division of labor; that the conceptual integrity of the product is therefore critical; and that it is difficult but possible to achieve this unity; (2) Brooks' view of these propositions a generation later; (3) a reprint of his classic 1986 paper "No Silver Bullet"; and (4) today's thoughts on the 1986 assertion, "There will be no silver bullet within ten years."
Founder/Amazon
From "The Everything Store", written by Brad Stone “An influential computer scientist makes the counterintuitive argument that small groups of engineers are more effective than larger ones at handling complex software projects. The book lays out the theory behind Amazon’s two pizza teams,” Stone writes. [source]
An early look and experience with timeless truths (and gotchas) from systems building with teams [source]
8Design Patterns: Elements of Reusable Object-Oriented Software
The authors begin by describing what patterns are and how they can help you design object-oriented software. They then go on to systematically name, explain, evaluate, and catalog recurring designs in object-oriented systems. With Design Patterns as your guide, you will learn how these important patterns fit into the software development process, and how you can leverage them to solve your own design problems most efficiently.
Each pattern describes the circumstances in which it is applicable, when it can be applied in view of other design constraints, and the consequences and trade-offs of using the pattern within a larger design. All patterns are compiled from real systems and are based on real-world examples. Each pattern also includes code that demonstrates how it may be implemented in object-oriented programming languages like C++ or Smalltalk.
9Steve Jobs
Based on more than forty interviews with Jobs conducted over two years—as well as interviews with more than a hundred family members, friends, adversaries, competitors, and colleagues—Walter Isaacson has written a riveting story of the roller-coaster life and searingly intense personality of a creative entrepreneur whose passion for perfection and ferocious drive revolutionized six industries: personal computers, animated movies, music, phones, tablet computing, and digital publishing.
At a time when America is seeking ways to sustain its innovative edge, and when societies around the world are trying to build digital-age economies, Jobs stands as the ultimate icon of inventiveness and applied imagination. He knew that the best way to create value in the twenty-first century was to connect creativity with technology. He built a company where leaps of the imagination were combined with remarkable feats of engineering.
Although Jobs cooperated with this book, he asked for no control over what was written nor even the right to read it before it was published. He put nothing off-limits. He encouraged the people he knew to speak honestly. And Jobs speaks candidly, sometimes brutally so, about the people he worked with and competed against. His friends, foes, and colleagues provide an unvarnished view of the passions, perfectionism, obsessions, artistry, devilry, and compulsion for control that shaped his approach to business and the innovative products that resulted.
Driven by demons, Jobs could drive those around him to fury and despair. But his personality and products were interrelated, just as Apple’s hardware and software tended to be, as if part of an integrated system. His tale is instructive and cautionary, filled with lessons about innovation, character, leadership, and values.
CEO/Microsoft
On Bill Gates's reading list in 2012. [source]
Founder/SpaceX
Quite interesting. [source]
Co-Founder & CEO/AirBnb
For Chesky, a source may come in the form of a biography of a business hero such as Steve Jobs or Walt Disney. His primary book source on management technique is Andy Grove’s High Output Management. [source]
10Structure and Interpretation of Computer Programs
Co-founder/PayPal, CEO/Affirm, Investor
Easier to read than "The Art of Computer Programming" end-to-end quickly. [source]
The most valuable thing this book gives you is confidence and knowledge to go and create your own programming language. [source]
@jesseddy The best book in classical and “hands-on example” terms is Structure and Interpretation of Computer Programs — but it requires maybe a year to get thru and for me, 10 years more to marinate over. *A* book is the one I am finishing now to come out Nov 2019. https://t.co/OODjQXgf1I [source]
11Refactoring: Improving the Design of Existing Code
--M. Fowler (1999) For more than twenty years, experienced programmers worldwide have relied on Martin Fowler's Refactoring to improve the design of existing code and to enhance software maintainability, as well as to make existing code easier to understand.
This eagerly awaited new edition has been fully updated to reflect crucial changes in the programming landscape. Refactoring, Second Edition, features an updated catalog of refactorings and includes JavaScript code examples, as well as new functional examples that demonstrate refactoring without classes.
Like the original, this edition explains what refactoring is; why you should refactor; how to recognize code that needs refactoring; and how to actually do it successfully, no matter what language you use.
Understand the process and general principles of refactoring Quickly apply useful refactorings to make a program easier to comprehend and change Recognize "bad smells" in code that signal opportunities to refactor Explore the refactorings, each with explanations, motivation, mechanics, and simple examples Build solid tests for your refactorings Recognize tradeoffs and obstacles to refactoring Includes free access to the canonical web edition, with even more refactoring resources. (See inside the book for details about how to access the web edition.)
This is next on my list of technical books to read! Refactoring is one of two programming books that I’ve read multiple times (the other is Smalltalk Best Practice Patterns), and I’m due for another reading. What perfect time then to dive into Martin Fowler’s long anticipated 2nd edition, now using JavaScript rather than Java for the code examples. Like the stoic books, I read Refactoring and that Smalltalk book again and again not because I’m going to learn something new, per se, but because I want to be reminded about what I already know. And what better time to reread than just as we’re kicking off a new major project that needs a fresh architectural foundation. Also, these two books just remind every time of how much I love the craft of programming. It’s not just having the programs, it’s not just solving problems, it’s simply using my hands and head to program that in and of itself is sublime. [source]
12The Clean Coder: A Code of Conduct for Professional Programmers
How to deal with conflict, tight schedules, and unreasonable managers
How to get into the flow of coding, and get past writer's block
How to handle unrelenting pressure and avoid burnout
How to combine enduring attitudes with new development paradigms
How to manage your time, and avoid blind alleys, marshes, bogs, and swamps
How to foster environments where programmers and teams can thrive
When to say "No"-and how to say it
When to say "Yes"-and what yes really means Great software is something to marvel at: powerful, elegant, functional, a pleasure to work with as both a developer and as a user. Great software isn't written by machines. It is written by professionals with an unshakable commitment to craftsmanship. The Clean Coder will help you become one of them-and earn the pride and fulfillment that they alone possess.
13Don't Make Me Think, Revisited: A Common Sense Approach to Web Usability
In this 3rd edition, Steve returns with fresh perspective to reexamine the principles that made Don’t Make Me Think a classic-–with updated examples and a new chapter on mobile usability. And it’s still short, profusely illustrated…and best of all–fun to read.
If you’ve read it before, you’ll rediscover what made Don’t Make Me Think so essential to Web designers and developers around the world. If you’ve never read it, you’ll see why so many people have said it should be required reading for anyone working on Web sites.
Krug was teaching usability two decades ago when UX wasn't a buzzword, and the WWW was still in its nascent stages. (The first edition of this book was published in 2000!) I cut my teeth on Don't make me think back when I first started out in the industry. It is now in its third edition and still relevant — it offers compelling insights into building great user experiences into websites and applications. [source]
I’m actually a self-taught programmer, so these books have really helped me with practical skills that I could put to use & yield results. The return on investment for these kinds of books is off the charts for me! [source]
Here are some of the books that have been very impactful for me, or taught me a new way of thinking: … Don't Make Me Think. [source]
14Head First Design Patterns
At any given moment, somewhere in the world someone struggles with the same software design problems you have. You know you don't want to reinvent the wheel (or worse, a flat tire), so you look to Design Patterns--the lessons learned by those who've faced the same problems. With Design Patterns, you get to take advantage of the best practices and experience of others, so that you can spend your time on...something else. Something more challenging. Something more complex. Something more fun.
You want to learn about the patterns that matter--why to use them, when to use them, how to use them (and when NOT to use them). But you don't just want to see how patterns look in a book, you want to know how they look "in the wild". In their native environment. In other words, in real world applications. You also want to learn how patterns are used in the Java API, and how to exploit Java's built-in pattern support in your own code.
You want to learn the real OO design principles and why everything your boss told you about inheritance might be wrong (and what to do instead). You want to learn how those principles will help the next time you're up a creek without a design pattern.
Most importantly, you want to learn the "secret language" of Design Patterns so that you can hold your own with your co-worker (and impress cocktail party guests) when he casually mentions his stunningly clever use of Command, Facade, Proxy, and Factory in between sips of a martini. You'll easily counter with your deep understanding of why Singleton isn't as simple as it sounds, how the Factory is so often misunderstood, or on the real relationship between Decorator, Facade and Adapter.
With Head First Design Patterns, you'll avoid the embarrassment of thinking Decorator is something from the "Trading Spaces" show. Best of all, in a way that won't put you to sleep! We think your time is too important (and too short) to spend it struggling with academic texts.
If you've read a Head First book, you know what to expect--a visually rich format designed for the way your brain works. Using the latest research in neurobiology, cognitive science, and learning theory, Head First Design Patterns will load patterns into your brain in a way that sticks. In a way that lets you put them to work immediately. In a way that makes you better at solving software design problems, and better at speaking the language of patterns with others on your team.
15Zero to One: Notes on Startups, or How to Build the Future
The great secret of our time is that there are still uncharted frontiers to explore and new inventions to create. In Zero to One, legendary entrepreneur and investor Peter Thiel shows how we can find singular ways to create those new things.
Thiel begins with the contrarian premise that we live in an age of technological stagnation, even if we’re too distracted by shiny mobile devices to notice. Information technology has improved rapidly, but there is no reason why progress should be limited to computers or Silicon Valley. Progress can be achieved in any industry or area of business. It comes from the most important skill that every leader must master: learning to think for yourself.
Doing what someone else already knows how to do takes the world from 1 to n, adding more of something familiar. But when you do something new, you go from 0 to 1. The next Bill Gates will not build an operating system. The next Larry Page or Sergey Brin won’t make a search engine. Tomorrow’s champions will not win by competing ruthlessly in today’s marketplace. They will escape competition altogether, because their businesses will be unique.
Zero to One presents at once an optimistic view of the future of progress in America and a new way of thinking about innovation: it starts by learning to ask the questions that lead you to find value in unexpected places.
Founder/SpaceX
Peter Thiel has built multiple breakthrough companies, and Zero to One shows how.” - Elon Mus [source]
Founder/Facebook
This book delivers completely new and refreshing ideas on how to create value in the world. [source]
Co-founder/Andreessen Horowitz
Zero To One is a great book. I learned a lot reading it. [source]
16Effective Java
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
17Domain-Driven Design: Tackling Complexity in the Heart of Software
Getting all team members to speak the same language Connecting model and implementation more deeply Sharpening key distinctions in a model Managing the lifecycle of a domain object Writing domain code that is safe to combine in elaborate ways Making complex code obvious and predictable Formulating a domain vision statement Distilling the core of a complex domain Digging out implicit concepts needed in the model Applying analysis patterns Relating design patterns to the model Maintaining model integrity in a large system Dealing with coexisting models on the same project Organizing systems with large-scale structures Recognizing and responding to modeling breakthroughs With this book in hand, object-oriented developers, system analysts, and designers will have the guidance they need to organize and focus their work, create rich and useful domain models, and leverage those models into quality, long-lasting software implementations.
18Code: The Hidden Language of Computer Hardware and Software
Using everyday objects and familiar language systems such as Braille and Morse code, author Charles Petzold weaves an illuminating narrative for anyone who’s ever wondered about the secret inner life of computers and other smart machines.
It’s a cleverly illustrated and eminently comprehensible story—and along the way, you’ll discover you’ve gained a real context for understanding today’s world of PCs, digital media, and the Internet. No matter what your level of technical savvy, CODE will charm you—and perhaps even awaken the technophile within.
It gets you to use your imagination to virtually build a computer. It’s easy to read, you can lie down on the couch and enjoy it—it’s not so much of a textbook. It demystifies the magic of a computer and what it is. [source]
19Designing Data-Intensive Applications
Proven approaches such as service-oriented and event-driven architectures are joined by newer techniques such as microservices, reactive architectures, DevOps, and stream processing. Many of these patterns are successful by themselves, but as this practical ebook demonstrates, they provide a more holistic and compelling approach when applied together.
Author Ben Stopford explains how service-based architectures and stream processing tools such as Apache Kafka® can help you build business-critical systems.
* Learn why streaming beats request-response based architectures in complex, contemporary use cases
* Understand why replayable logs such as Kafka provide a backbone for both service communication and shared datasets
* Explore how event collaboration and event sourcing patterns increase safety and recoverability with functional, event-driven approaches
* Apply patterns including Event Sourcing and CQRS, and how to build multi-team systems with microservices and SOA using patterns such as “inside out databases” and “event streams as a source of truth”
* Build service ecosystems that blend event-driven and request-driven interfaces using a replayable log and Kafka's Streams API
* Scale beyond individual teams into larger, department- and company-sized architectures, using event streams as a source of truth
20Start with Why: How Great Leaders Inspire Everyone to Take Action
Why are some people and organizations more innovative, more influential, and more profitable than others? Why do some command greater loyalty from customers and employees alike? Even among the successful, why are so few able to repeat their success over and over?
People like Martin Luther King Jr., Steve Jobs, and the Wright Brothers might have little in common, but they all started with why. It was their natural ability to start with why that enabled them to inspire those around them and to achieve remarkable things.
In studying the leaders who've had the greatest influence in the world, Simon Sinek discovered that they all think, act, and communicate in the exact same way—and it's the complete opposite of what everyone else does. Sinek calls this powerful idea The Golden Circle, and it provides a framework upon which organizations can be built, movements can be lead, and people can be inspired. And it all starts with WHY.
Any organization can explain what it does; some can explain how they do it; but very few can clearly articulate why. WHY is not money or profit—those are always results. WHY does your organization exist? WHY does it do the things it does? WHY do customers really buy from one company or another? WHY are people loyal to some leaders, but not others?
Starting with WHY works in big business and small business, in the nonprofit world and in politics. Those who start with WHY never manipulate, they inspire. And the people who follow them don't do so because they have to; they follow because they want to.
Drawing on a wide range of real-life stories, Sinek weaves together a clear vision of what it truly takes to lead and inspire. This book is for anyone who wants to inspire others or who wants to find someone to inspire them.
Founder/Virgin Group
Today is World Book Day, a wonderful opportunity to address this #ChallengeRichard sent in by Mike Gonzalez of New Jersey: Make a list of your top 65 books to read in a lifetime. [source]
Life Coach
The basis of this book is so important to anyone looking to increase their influence, profits or impact. People won't truly buy into a product, service, movement, or idea until they understand the WHY behind it. When you start with the why, everything else falls into place. This book is so impactful, I consider it required reading. [source]
CEO/Zappos.com
Over the years he’s recommended well over 20 business books — including his own, the 2010 bestseller Delivering Happiness and you can always find what he’s currently reading atop his cluttered desk. Start with Why is amogst those titles. [source]
21The C Programming Language
From the Preface:
We have tried to retain the brevity of the first edition. C is not a big language, and it is not well served by a big book. We have improved the exposition of critical features, such as pointers, that are central to C programming. We have refined the original examples, and have added new examples in several chapters. For instance, the treatment of complicated declarations is augmented by programs that convert declarations into words and vice versa. As before, all examples have been tested directly from the text, which is in machine-readable form.
As we said in the first preface to the first edition, C "wears well as one's experience with it grows." With a decade more experience, we still feel that way. We hope that this book will help you to learn C and use it well.
22Patterns of Enterprise Application Architecture
23Building Microservices: Designing Fine-Grained Systems
Microservice technologies are moving quickly. Author Sam Newman provides you with a firm grounding in the concepts while diving into current solutions for modeling, integrating, testing, deploying, and monitoring your own autonomous services. You'll follow a fictional company throughout the book to learn how building a microservice architecture affects a single domain.
Discover how microservices allow you to align your system design with your organization's goals
Learn options for integrating a service with the rest of your system
Take an incremental approach when splitting monolithic codebases
Deploy individual microservices through continuous integration
Examine the complexities of testing and monitoring distributed services
Manage security with user-to-service and service-to-service models
Understand the challenges of scaling microservice architectures
24Introduction To Algorithms
25Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation
Getting software released to users is often a painful, risky, and time-consuming process. This groundbreaking new book sets out the principles and technical practices that enable rapid, incremental delivery of high quality, valuable new functionality to users. Through automation of the build, deployment, and testing process, and improved collaboration between developers, testers, and operations, delivery teams can get changes released in a matter of hours-- sometimes even minutes-no matter what the size of a project or the complexity of its code base. Jez Humble and David Farley begin by presenting the foundations of a rapid, reliable, low-risk delivery process. Next, they introduce the "deployment pipeline," an automated process for managing all changes, from check-in to release. Finally, they discuss the "ecosystem" needed to support continuous delivery, from infrastructure, data and configuration management to governance. The authors introduce state-of-the-art techniques, including automated infrastructure management and data migration, and the use of virtualization. For each, they review key issues, identify best practices, and demonstrate how to mitigate risks. Coverage includes - Automating all facets of building, integrating, testing, and deploying software - Implementing deployment pipelines at team and organizational levels - Improving collaboration between developers, testers, and operations - Developing features incrementally on large and distributed teams - Implementing an effective configuration management strategy - Automating acceptance testing, from analysis to implementation - Testing capacity and other non-functional requirements - Implementing continuous deployment and zero-downtime releases - Managing infrastructure, data, components and dependencies - Navigating risk management, compliance, and auditing Whether you're a developer, systems administrator, tester, or manager, this book will help your organization move from idea to release faster than ever--so you can deliver value to your business rapidly and reliably.
26Working Effectively with Legacy Code
In this book, Michael Feathers offers start-to-finish strategies for working more effectively with large, untested legacy code bases. 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 structure
This book also includes a catalog of twenty-four dependency-breaking techniques that help you work with program elements in isolation and make safer changes.
27Cracking the Coding Interview: 189 Programming Questions and Solutions
Cracking the Coding Interview, 6th Edition is here to help you through this process, teaching you what you need to know and enabling you to perform at your very best. I've coached and interviewed hundreds of software engineers. The result is this book.
Learn how to uncover the hints and hidden details in a question, discover how to break down a problem into manageable chunks, develop techniques to unstick yourself when stuck, learn (or re-learn) core computer science concepts, and practice on 189 interview questions and solutions.
These interview questions are real; they are not pulled out of computer science textbooks. They reflect what's truly being asked at the top companies, so that you can be as prepared as possible. WHAT'S INSIDE?
• 189 programming interview questions, ranging from the basics to the trickiest algorithm problems.
• A walk-through of how to derive each solution, so that you can learn how to get there yourself.
• Hints on how to solve each of the 189 questions, just like what you would get in a real interview.
• Five proven strategies to tackle algorithm questions, so that you can solve questions you haven't seen.
• Extensive coverage of essential topics, such as big O time, data structures, and core algorithms.
• A behind the scenes look at how top companies like Google and Facebook hire developers.
• Techniques to prepare for and ace the soft side of the interview: behavioral questions.
• For interviewers and companies: details on what makes a good interview question and hiring process.
28Peopleware: Productive Projects and Teams
29Clean Architecture
As with his other books, Martin's Clean Architecture doesn't merely present multiple choices and options, and say "use your best judgment": it tells you what choices to make, and why those choices are critical to your success. Martin offers direct, no-nonsense answers to key architecture and design questions like:
What are the best high level structures for different kinds of applications, including web, database, thick-client, console, and embedded apps?
What are the core principles of software architecture?
What is the role of the architect, and what is he/she really trying to achieve?
What are the core principles of software design?
How do designs and architectures go wrong, and what can you do about it?
What are the disciplines and practices of professional architects and designers?
Clean Architecture is essential reading for every software architect, systems analyst, system designer, and software manager -- and for any programmer who aspires to these roles or is impacted by their work.
30JavaScript: The Good Parts
Considered the JavaScript expert by many people in the development community, author Douglas Crockford identifies the abundance of good ideas that make JavaScript an outstanding object-oriented programming language-ideas such as functions, loose typing, dynamic objects, and an expressive object literal notation. Unfortunately, these good ideas are mixed in with bad and downright awful ideas, like a programming model based on global variables.
When Java applets failed, JavaScript became the language of the Web by default, making its popularity almost completely independent of its qualities as a programming language. In JavaScript: The Good Parts, Crockford finally digs through the steaming pile of good intentions and blunders to give you a detailed look at all the genuinely elegant parts of JavaScript, including:
Syntax
Objects
Functions
Inheritance
Arrays
Regular expressions
Methods
Style
Beautiful features
The real beauty? As you move ahead with the subset of JavaScript that this book presents, you'll also sidestep the need to unlearn all the bad parts. Of course, if you want to find out more about the bad parts and how to use them badly, simply consult any other JavaScript book.
With JavaScript: The Good Parts, you'll discover a beautiful, elegant, lightweight and highly expressive language that lets you create effective code, whether you're managing object libraries or just trying to get Ajax to run fast. If you develop sites or applications for the Web, this book is an absolute must.
I’m actually a self-taught programmer, so these books have really helped me with practical skills that I could put to use & yield results. The return on investment for these kinds of books is off the charts for me! [source]
31Release It!: Design and Deploy Production-Ready Software (Pragmatic Programmers)
If you're a developer and don't want to be on call for 3AM for the rest of your life, this book will help.
In Release It!, Michael T. Nygard shows you how to design and architect your application for the harsh realities it will face. You'll learn how to design your application for maximum uptime, performance, and return on investment.
Mike explains that many problems with systems today start with the design.
32The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations
More than ever, the effective management of technology is critical for business competitiveness. For decades, technology leaders have struggled to balance agility, reliability, and security. The consequences of failure have never been greater whether it's the healthcare.gov debacle, cardholder data breaches, or missing the boat with Big Data in the cloud.
And yet, high performers using DevOps principles, such as Google, Amazon, Facebook, Etsy, and Netflix, are routinely and reliably deploying code into production hundreds, or even thousands, of times per day.
Following in the footsteps of The Phoenix Project, The DevOps Handbook shows leaders how to replicate these incredible outcomes, by showing how to integrate Product Management, Development, QA, IT Operations, and Information Security to elevate your company and win in the marketplace."
Table of contents
Preface
Spreading the Aha! Moment
Introduction
PART I: THE THREE WAYS
1. Agile, continuous delivery and the three ways
2. The First Way: The Principles of Flow
3. The Second Way: The Principle of Feedback
4. The Third Way: The Principles of Continual Learning
PART II: WHERE TO START
5. Selecting which value stream to start with
6. Understanding the work in our value stream…
7. How to design our organization and architecture
8. How to get great outcomes by integrating operations into the daily work for development
PART III: THE FIRST WAY: THE TECHNICAL PRACTICES OF FLOW
9. Create the foundations of our deployment pipeline
10. Enable fast and reliable automated testing
11. Enable and practice continuous integration
12. Automate and enable low-risk releases
13. Architect for low-risk releases
PART IV: THE SECOND WAY: THE TECHNICAL PRACTICES OF FEEDBACK
14*. Create telemetry to enable seeing abd solving problems
15. Analyze telemetry to better anticipate problems
16. Enable feedbackso development and operation can safely deploy code
17. Integrate hypothesis-driven development and A/B testing into our daily work
18. Create review and coordination processes to increase quality of our current work
PART V: THE THRID WAY: THE TECHNICAL PRACTICES OF CONTINUAL LEARNING
19. Enable and inject learning into daily work
20. Convert local discoveries into global improvements
21. Reserve time to create organizational learning
22. Information security as everyone’s job, every day
23. Protecting the deployment pipeline
PART VI: CONCLUSION
A call to action
Conclusion to the DevOps Handbook
APPENDICES
1. The convergence of Devops
2. The theory of constraints and core chronic conflicts
3. Tabular form of downward spiral
4. The dangers of handoffs and queues
5. Myths of industrial safety
6. The Toyota Andon Cord
7. COTS Software
8. Post-mortem meetings
9. The Simian Army
10. Transparent uptime
Additional Resources
Endnotes
33Test Driven Development: By Example
34Scrum: The Art of Doing Twice the Work in Half the Time
35A Child Called "It" (Dave Pelzer, #1)
ACE #1
This book chronicles the unforgettable account of one of the most severe child abuse cases in California history. It is the story of Dave Pelzer, who was brutally beaten and starved by his emotionally unstable, alcoholic mother: a mother who played tortuous, unpredictable games—games that left him nearly dead. He had to learn how to play his mother's games in order to survive because she no longer considered him a son, but a slave; and no longer a boy, but an "it." Dave's bed was an old army cot in the basement, and his clothes were torn and raunchy. When his mother allowed him the luxury of food, it was nothing more than spoiled scraps that even the dogs refused to eat. The outside world knew nothing of his living nightmare. He had nothing or no one to turn to, but his dreams kept him alive—dreams of someone taking care of him, loving him and calling him their son.
36Coders at Work: Reflections on the Craft of Programming
Hundreds of people have suggested names of programmers to interview on the Coders at Work web site: http://www.codersatwork.com. The complete list was 284 names. Having digested everyone’s feedback, we selected 16 folks who’ve been kind enough to agree to be interviewed:
- Frances Allen: Pioneer in optimizing compilers, first woman to win the Turing Award (2006) and first female IBM fellow
- Joe Armstrong: Inventor of Erlang
- Joshua Bloch: Author of the Java collections framework, now at Google
- Bernie Cosell: One of the main software guys behind the original ARPANET IMPs and a master debugger
- Douglas Crockford: JSON founder, JavaScript architect at Yahoo!
- L. Peter Deutsch: Author of Ghostscript, implementer of Smalltalk-80 at Xerox PARC and Lisp 1.5 on PDP-1
- Brendan Eich: Inventor of JavaScript, CTO of the Mozilla Corporation
- Brad Fitzpatrick: Writer of LiveJournal, OpenID, memcached, and Perlbal
- Dan Ingalls: Smalltalk implementor and designer
- Simon Peyton Jones: Coinventor of Haskell and lead designer of Glasgow Haskell Compiler
- Donald Knuth: Author of The Art of Computer Programming and creator of TeX
- Peter Norvig: Director of Research at Google and author of the standard text on AI
- Guy Steele: Coinventor of Scheme and part of the Common Lisp Gang of Five, currently working on Fortress
- Ken Thompson: Inventor of UNIX
- Jamie Zawinski: Author of XEmacs and early Netscape/Mozilla hacker
What you’ll learn:
How the best programmers in the world do their job
Who is this book for?
Programmers interested in the point of view of leaders in the field. Programmers looking for approaches that work for some of these outstanding programmers.
Founders at Work and Coders at Work are really good ones too. They’re filled with interesting and inspiring stories. [source]
It’s about how those people got into programming and how they think about it. It’s a very conversational book that really helps you to learn the culture of this industry you’re coming into, and some of its terminology. [source]
37Site Reliability Engineering: How Google Runs Production Systems
In this collection of essays and articles, key members of Google's Site Reliability Team explain how and why their commitment to the entire lifecycle has enabled the company to successfully build, deploy, monitor, and maintain some of the largest software systems in the world. You'll learn the principles and practices that enable Google engineers to make systems more scalable, reliable, and efficient--lessons directly applicable to your organization.
This book is divided into four sections: Introduction--Learn what site reliability engineering is and why it differs from conventional IT industry practicesPrinciples--Examine the patterns, behaviors, and areas of concern that influence the work of a site reliability engineer (SRE)Practices--Understand the theory and practice of an SRE's day-to-day work: building and operating large distributed computing systemsManagement--Explore Google's best practices for training, communication, and meetings that your organization can use
38The Everything Store: Jeff Bezos and the Age of Amazon
Amazon.com started off delivering books through the mail. But its visionary founder, Jeff Bezos, wasn't content with being a bookseller. He wanted Amazon to become the everything store, offering limitless selection and seductive convenience at disruptively low prices. To do so, he developed a corporate culture of relentless ambition and secrecy that's never been cracked. Until now. Brad Stone enjoyed unprecedented access to current and former Amazon employees and Bezos family members, giving readers the first in-depth, fly-on-the-wall account of life at Amazon. Compared to tech's other elite innovators--Jobs, Gates, Zuckerberg--Bezos is a private man. But he stands out for his restless pursuit of new markets, leading Amazon into risky new ventures like the Kindle and cloud computing, and transforming retail in the same way Henry Ford revolutionized manufacturing.
The Everything Store will be the revealing, definitive biography of the company that placed one of the first and largest bets on the Internet and forever changed the way we shop and read.
CEO/Walmart
I read and give this book because you need to understand what you’re up against. [source]
Amazon is going to rule the world unless governments decide to break them up. It just makes sense to understand the most powerful company on the planet. Also, there is a (small) chance that Amazon sets up HQ2 in my hometown (Pittsburgh). [source]
This was an amazing glimpse into one of the most disruptive companies in history as well as the past and future trajectory of e-commerce and retail. It is also a testament to unwavering self-belief. The thing that impressed me the most is that Jeff Bezos intentionally built an entire department dedicated to making his primary business obsolete which allowed him to take the lead in the next development, e-books. His foresight is extraordinary and he is an inspirational big thinker. [source]
39Pro Git
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.
40Programming Pearls
I very much enjoyed reading "Programming Pearls" by John Bentley. Most of the software we write is trying to solve fairly large and ill-defined problems in a way that minimises development cost, but Programming Pearls presents a lot of small, well-defined problems, and talks through their solutions in ways that minimise machine resource usage. There are lots of good "a-ha" moments when reading it, and working through ways to think about the problems that knock asymptotic orders off the computational complexity. [source]
41Grokking Algorithms An Illustrated Guide For Programmers and Other Curious People
Grokking Algorithms is a disarming take on a core computer science topic. In it, you'll learn how to apply common algorithms to the practical problems you face in day-to-day life as a programmer. You'll start with problems like sorting and searching. As you build up your skills in thinking algorithmically, you'll tackle more complex concerns such as data compression or artificial intelligence. Whether you're writing business software, video games, mobile apps, or system utilities, you'll learn algorithmic techniques for solving problems that you thought were out of your grasp. For example, you'll be able to:
Write a spell checker using graph algorithms
Understand how data compression works using Huffman coding
Identify problems that take too long to solve with naive algorithms, and attack them with algorithms that give you an approximate answer instead
Each carefully-presented example includes helpful diagrams and fully-annotated code samples in Python. By the end of this book, you will know some of the most widely applicable algorithms as well as how and when to use them.
42Java Concurrency in Practice
--Martin Buchholz
JDK Concurrency Czar, Sun Microsystems
"For the past 30 years, computer performance has been driven by Moore's Law; from now on, it will be driven by Amdahl's Law. Writing code that effectively exploits multiple processors can be very challenging. Java Concurrency in Practice provides you with the concepts and techniques needed to write safe and scalable Java programs for today's--and tomorrow's--systems."
--Doron Rajwan
Research Scientist, Intel Corp
"This is the book you need if you're writing--or designing, or debugging, or maintaining, or contemplating--multithreaded Java programs. If you've ever had to synchronize a method and you weren't sure why, you owe it to yourself and your users to read this book, cover to cover."
--Ted Neward
Author of Effective Enterprise Java
"Brian addresses the fundamental issues and complexities of concurrency with uncommon clarity. This book is a must-read for anyone who uses threads and cares about performance."
--Kirk Pepperdine
CTO, JavaPerformanceTuning.com
"This book covers a very deep and subtle topic in a very clear and concise way, making it the perfect Java Concurrency reference manual. Each page is filled with the problems (and solutions!) that programmers struggle with every day. Effectively exploiting concurrency is becoming more and more important now that Moore's Law is delivering more cores but not faster cores, and this book will show you how to do it."
--Dr. Cliff Click
Senior Software Engineer, Azul Systems
"I have a strong interest in concurrency, and have probably written more thread deadlocks and made more synchronization mistakes than most programmers. Brian's book is the most readable on the topic of threading and concurrency in Java, and deals with this difficult subject with a wonderful hands-on approach. This is a book I am recommending to all my readers of The Java Specialists' Newsletter, because it is interesting, useful, and relevant to the problems facing Java developers today."
--Dr. Heinz Kabutz
The Java Specialists' Newsletter
"I've focused a career on simplifying simple problems, but this book ambitiously and effectively works to simplify a complex but critical subject: concurrency. Java Concurrency in Practice is revolutionary in its approach, smooth and easy in style, and timely in its delivery--it's destined to be a very important book."
--Bruce Tate
Author of Beyond Java
" Java Concurrency in Practice is an invaluable compilation of threading know-how for Java developers. I found reading this book intellectually exciting, in part because it is an excellent introduction to Java's concurrency API, but mostly because it captures in a thorough and accessible way expert knowledge on threading not easily found elsewhere."
--Bill Venners
Author of Inside the Java Virtual Machine
Threads are a fundamental part of the Java platform. As multicore processors become the norm, using concurrency effectively becomes essential for building high-performance applications. Java SE 5 and 6 are a huge step forward for the development of concurrent applications, with improvements to the Java Virtual Machine to support high-performance, highly scalable concurrent classes and a rich set of new concurrency building blocks. In Java Concurrency in Practice , the creators of these new facilities explain not only how they work and how to use them, but also the motivation and design patterns behind them.
However, developing, testing, and debugging multithreaded programs can still be very difficult; it is all too easy to create concurrent programs that appear to work, but fail when it matters most: in production, under heavy load. Java Concurrency in Practice arms readers with both the theoretical underpinnings and concrete techniques for building reliable, scalable, maintainable concurrent applications. Rather than simply offering an inventory of concurrency APIs and mechanisms, it provides design rules, patterns, and mental models that make it easier to build concurrent programs that are both correct and performant.
This book covers:
Basic concepts of concurrency and thread safety Techniques for building and composing thread-safe classes Using the concurrency building blocks in java.util.concurrent Performance optimization dos and don'ts Testing concurrent programs Advanced topics such as atomic variables, nonblocking algorithms, and the Java Memory Model
43Hackers & Painters: Big Ideas from the Computer Age
We are living in the computer age, in a world increasingly designed and engineered by computer programmers and software designers, by people who call themselves hackers. Who are these people, what motivates them, and why should you care?
Consider these facts: Everything around us is turning into computers. Your typewriter is gone, replaced by a computer. Your phone has turned into a computer. So has your camera. Soon your TV will. Your car was not only designed on computers, but has more processing power in it than a room-sized mainframe did in 1970. Letters, encyclopedias, newspapers, and even your local store are being replaced by the Internet.
Hackers & Painters: Big Ideas from the Computer Age, by Paul Graham, explains this world and the motivations of the people who occupy it. In clear, thoughtful prose that draws on illuminating historical examples, Graham takes readers on an unflinching exploration into what he calls “an intellectual Wild West.”
The ideas discussed in this book will have a powerful and lasting impact on how we think, how we work, how we develop technology, and how we live. Topics include the importance of beauty in software design, how to make wealth, heresy and free speech, the programming language renaissance, the open-source movement, digital design, internet startups, and more.
Co-creator/Blogger
I want everybody I know to read "How to Make Wealth" and "Mind the Gap" (chapters 6 and 7), which brilliantly articulate the most commonly, and frustratingly, misunderstood core economic principles of everyday life. [source]
A wonderful book and required reading. Paul helps others understand why I chose the name 'Software Arts' for the company Dan Bricklin and I started. Those who don't understand the language of software cannot consider themselves literate. [source]
A delightful ping-pong around the brain of a really smart guy. The chapter that answers the key question of our age-- why are nerds unpopular?-- is worth the price of admission alone. [source]
44Algorithms to Live By: The Computer Science of Human Decisions
All our lives are constrained by limited space and time, limits that give rise to a particular set of problems. What should we do, or leave undone, in a day or a lifetime? How much messiness should we accept? What balance of new activities and familiar favorites is the most fulfilling? These may seem like uniquely human quandaries, but they are not: computers, too, face the same constraints, so computer scientists have been grappling with their version of such issues for decades. And the solutions they've found have much to teach us.
In a dazzlingly interdisciplinary work, acclaimed author Brian Christian and cognitive scientist Tom Griffiths show how the algorithms used by computers can also untangle very human questions. They explain how to have better hunches and when to leave things to chance, how to deal with overwhelming choices and how best to connect with others. From finding a spouse to finding a parking spot, from organizing one's inbox to understanding the workings of memory, Algorithms to Live By transforms the wisdom of computer science into strategies for human living.
CEO/Walmart
Here are some of my favorite reads from 2017. Lots of friends and colleagues send me book suggestions and it's impossible to squeeze them all in. I continue to be super curious about how digital and tech are enabling people to transform our lives but I try to read a good mix of books that apply to a variety of areas and stretch my thinking more broadly. [source]
This is a great book talking about how you can use computer science to help you make decisions in life. How do you know when to make a decision on the perfect house? Car? etc? It helps you apply algorithms to making those decisions optimally without getting lost. [source]
When asked what books he would recommend to young people interested in his career path, mentioned Algorithms to Live By. [source]
45The Design of Everyday Things
In this entertaining and insightful analysis, cognitive scientist Don Norman hails excellence of design as the most important key to regaining the competitive edge in influencing consumer behavior. Now fully expanded and updated, with a new introduction by the author, The Design of Everyday Things is a powerful primer on how—and why—some products satisfy customers while others only frustrate them.
I mainly read to decompress and change my state of mind, so it’s hard to point to an insight I read that helped me. Reading fiction has pulled me out of a bad mood more times than I can count, though, and always reenergises me to attack problems that had stumped me again. That said, I read and loved Norman Norman’s “The Design of Everyday Things”, and it’s helped me think through design problems ever since. [source]
For people interested in designing or building software products: The Design of Everyday Things by Don Norman and The Lean Product Playbook by Dan Olsen. Both books have informed my product sense and helped me make decisions about great UX. [source]
These three books are about how people actually use design in their lives. They helped me understand this very basic idea: There are no dumb users, only bad designers. Take the time to create based on how your design will be interacted with. Test it. Iterate. That's how you become a good designer. [source]
46Rework
Rework shows you a better, faster, easier way to succeed in business. Read it and you'll know why plans are actually harmful, why you don't need outside investors, and why you're better off ignoring the competition. The truth is, you need less than you think. You don't need to be a workaholic. You don't need to staff up. You don't need to waste time on paperwork or meetings. You don't even need an office. Those are all just excuses.
What you really need to do is stop talking and start working. This book shows you the way. You'll learn how to be more productive, how to get exposure without breaking the bank, and tons more counterintuitive ideas that will inspire and provoke you.
With its straightforward language and easy-is-better approach, Rework is the perfect playbook for anyone who’s ever dreamed of doing it on their own. Hardcore entrepreneurs, small-business owners, people stuck in day jobs they hate, victims of "downsizing," and artists who don’t want to starve anymore will all find valuable guidance in these pages.
Founder/Amazon
Unperturbed by conventional wisdom, the authors start fresh and rewrite the rules of business. Their approach turns out to be as successful as it is counter-intuitive. [source]
Entrepreneur / Shark Tank
If given a choice between investing in someone who has read Rework or has an MBA, I'm investing in Rework every time. This is a must read for every entrepreneur. [source]
CEO/Zappos.com
The wisdom in these pages is edgy yet simple, straightforward, and proven. Read this book multiple times to help give you the courage you need to get out there and make something great. [source]
47The Passionate Programmer: Creating a Remarkable Career in Software Development
As for programming, I’d recommend The Passionate Programmer. [source]
48Refactoring to Patterns
This book introduces the theory and practice of pattern-directed refactorings: sequences of low-level refactorings that allow designers to safely move designs to, towards, or away from pattern implementations. Using code from real-world projects, Kerievsky documents the thinking and steps underlying over two dozen pattern-based design transformations. Along the way he offers insights into pattern differences and how to implement patterns in the simplest possible ways.
Coverage includes: A catalog of twenty-seven pattern-directed refactorings, featuring real-world code examples Descriptions of twelve design smells that indicate the need for this book s refactorings General information and new insights about patterns and refactoringDetailed implementation mechanics: how low-level refactorings are combined to implement high-level patterns Multiple ways to implement the same pattern and when to use each Practical ways to get started even if you have little experience with patterns or refactoring
"Refactoring to Patterns" reflects three years of refinement and the insights of more than sixty software engineering thought leaders in the global patterns, refactoring, and agile development communities. Whether you re focused on legacy or greenfield development, this book will make you a better software designer by helping you learn how to make important design changes safely and effectively.
"
49Algorithm Design Manual
This book is an illustration of the power of names in the Google era. [source]
50How Google Works
The authors explain how the confluence of three seismic changes - the internet, mobile, and cloud computing - has shifted the balance of power from companies to consumers. The companies that will thrive in this ever-changing landscape will be the ones that create superior products and attract a new breed of multifaceted employees whom the authors dub 'smart creatives'. The management maxims ('Consensus requires dissension', 'Exile knaves but fight for divas', 'Think 10X, not 10%') are illustrated with previously unreported anecdotes from Google's corporate history.
'Back in 2010, Eric and I created an internal class for Google managers,' says Rosenberg. 'The class slides all read 'Google confidential' until an employee suggested we uphold the spirit of openness and share them with the world. This book codifies the recipe for our secret sauce: how Google innovates and how it empowers employees to succeed.'
After reading How Google Works I just became fascinated with Google culture and I hope to understand a bit more about what unique things they're doing right that we aren't. [source]
What happens is that we look at things Google, or Facebook, and we see these big corporate enterprises. We don’t see the fact that there are people inside running them, and there have been hurdles. [source]
How Google Works is a good insight to a large corporate in the tech world. [source]
51Extreme Programming Explained: Embrace Change (The XP Series)
--Francesco Cirillo, Chief Executive Officer, XPLabs S.R.L. "The first edition of this book told us what XP was--it changed the way many of us think about software development. This second edition takes it farther and gives us a lot more of the 'why' of XP, the motivations and the principles behind the practices. This is great stuff. Armed with the 'what' and the 'why, ' we can now all set out to confidently work on the 'how' how to run our projects better, and how to get agile techniques adopted in our organizations."
--Dave Thomas, The Pragmatic Programmers LLC "This book is dynamite! It was revolutionary when it first appeared a few years ago, and this new edition is equally profound. For those who insist on cookbook checklists, there's an excellent chapter on 'primary practices, ' but I urge you to begin by truly contemplating the meaning of the opening sentence in the first chapter of Kent Beck's book: 'XP is about social change.' You should do whatever it takes to ensure that every IT professional and every IT manager--all the way up to the CIO--has a copy of Extreme Programming Explained on his or her desk."
--Ed Yourdon, author and consultant "XP is a powerful set of concepts for simplifying the process of software design, development, and testing. It is about minimalism and incrementalism, which are especially useful principles when tackling complex problems that require a balance of creativity and discipline."
--Michael A. Cusumano, Professor, MIT Sloan School of Management, and author of The Business of Software "Extreme Programming Explained is the work of a talented and passionate craftsman. Kent Beck has brought together a compelling collection of ideas about programming and management that deserves your full attention. My only beef is that our profession has gotten to a point where such common-sense ideas are labeled 'extreme.'..."
--Lou Mazzucchelli, Fellow, Cutter Business Technology Council "If your organization is ready for a change in the way it develops software, there's the slow incremental approach, fixing things one by one, or the fast track, jumping feet first into Extreme Programming. Do not be frightened by the name, it is not that extreme at all. It is mostly good old recipes and common sense, nicely integrated together, getting rid of all the fat that has accumulated over the years."
--Philippe Kruchten, UBC, Vancouver, British Columbia "Sometimes revolutionaries get left behind as the movement they started takes on a life of its own. In this book, Kent Beck shows that he remains ahead of the curve, leading XP to its next level. Incorporating five years of feedback, this book takes a fresh look at what it takes to develop better software in less time and for less money. There are no silver bullets here, just a set of practical principles that, when used wisely, can lead to dramatic improvements in software development productivity."
--Mary Poppendieck, author of Lean Software Development: An Agile Toolkit "Kent Beck has revised his classic book based on five more years of applying and teaching XP. He shows how the path to XP is both easy and hard: It can be started with fewer practices, and yet it challenges teams to go farther than ever."
--William Wake, independent consultant "With new insights, wisdom from experience, and clearer explanations of the art of Extreme Programming, this edition of Beck's classic will help many realize the dream of outstanding software development."
--Joshua Kerievsky, author of Refactoring to Patterns and Founder, Industrial Logic, Inc. "XP has changed the way our industry thinks about software development. Its brilliant simplicity, focused execution, and insistence on fact-based planning over speculation have set a new standard for software delivery."
--David Trowbridge, Architect, Microsoft Corporation Accountability. Transparency. Responsibility. These are not words that are often applied to software development.
In this completely revised introduction to Extreme Programming (XP), Kent Beck describes how to improve your software development by integrating these highly desirable concepts into your daily development process.
The first edition of Extreme Programming Explained is a classic. It won awards for its then-radical ideas for improving small-team development, such as having developers write automated tests for their own code and having the whole team plan weekly. Much has changed in five years. This completely rewritten second edition expands the scope of XP to teams of any size by suggesting a program of continuous improvement based on:
Five core values consistent with excellence in software development
Eleven principles for putting those values into action
Thirteen primary and eleven corollary practices to help you push development past its current business and technical limitations Whether you have a small team that is already closely aligned with your customers or a large team in a gigantic or multinational organization, you will find in these pages a wealth of ideas to challenge, inspire, and encourage you and your team members to substantially improve your software development.
You will discover how to:
Involve the whole team--XP style
Increase technical collaboration through pair programming and continuous integration
Reduce defects through developer testing
Align business and technical decisions through weekly and quarterly planning
Improve teamwork by setting up an informative, shared workspace You will also find many other concrete ideas for improvement, all based on a philosophy that emphasizes simultaneously increasing the humanity and effectiveness of software development.
Every team can improve. Every team can begin improving today. Improvement is possible--beyond what we can currently imagine. Extreme Programming Explained, Second Edition, offers ideas to fuel your improvement for years to come.
52Accelerate: Building and Scaling High-Performing Technology Organizations
Fantastic accomplishment! Congratulations @nicolefv on your outstanding #DevOps book ... I love that: “The Science of Lean” ... that works also for #DataOps and Lean Analytics. https://t.co/i9gPhKL0dt https://t.co/DNJpuJtER0 [source]
53Ghost in the Wires: My Adventures as the World's Most Wanted Hacker
If they were a hall of fame or shame for computer hackers, a Kevin Mitnick plaque would be mounted the near the entrance. While other nerds were fumbling with password possibilities, this adept break-artist was penetrating the digital secrets of Sun Microsystems, Digital Equipment Corporation, Nokia, Motorola, Pacific Bell, and other mammoth enterprises. His Ghost in the Wires memoir paints an action portrait of a plucky loner motivated by a passion for trickery, not material game. (P.S. Mitnick's capers have already been the subject of two books and a movie. This first-person account is the most comprehensive to date.)
This book was recommended by Antonio when asked for titles he would recommend to young people interested in his career path. [source]
I'm going to start reading Ghost in the Wires by Kevin Mitnick this week. I used to go to 2600 meetings back when he was arrested for wire fraud and other hacking related shenanigans in the mid 1990s. I'm fascinated by things like social engineering and language in general. In the end, I just want to be entertained by his stories. For someone who is into computer programming, a book like this is pretty close to porn! [source]
In 2002 I reviewed Kevin Mitnick's first book, The Art of Deception. In 2005 I reviewed his second book, The Art of Intrusion. I gave both books four stars. Mitnick's newest book, however, with long-time co-author Bill Simon, is a cut above their previous collaborations and earns five stars. As far as I can tell (and I am no Mitnick expert, despite reading almost all previous texts mentioning him), this is the real deal. Mitnick addresses just about everything you might want to know about. For me, the factor that made the book very unique was the authors' attention to detail. This sounds like it might have been a point of contention between the co-authors, but I found the methodical explanation of the social engineering and technical attacks to be relevant and interesting. Mitnick just doesn't say he social engineered a target; rather, he walks you through every step of the event! It's amazing, audacious, and in many cases beyond the pale. … Ghost in the Wires also shares the human side of Mitnick's story. His description of solitary confinement and his anxiety of returning to those conditions seemed very real. They appear ever more relevant given recent treatment of Bradley Manning. One has to wonder about "cruel and unusual punishment" of those who are not convicted, such that they will sign plea deals just to avoid solitary confinement. Beyond prison issues, Mitnick's love for his family (especially his mother and grandmother) were clear throughout the book. I very much enjoyed reading Ghost in the Wires, and I believe the majority of the computer security community would too. [source]
54Agile Software Development, Principles, Patterns, and Practices
55Growing Object-Oriented Software, Guided by Tests
56Implementing Domain-Driven Design
Building on Eric Evans’ seminal book, Domain-Driven Design, the author presents practical DDD techniques through examples from familiar domains. Each principle is backed up by realistic Java examples–all applicable to C# developers–and all content is tied together by a single case study: the delivery of a large-scale Scrum-based SaaS system for a multitenant environment.
The author takes you far beyond “DDD-lite” approaches that embrace DDD solely as a technical toolset, and shows you how to fully leverage DDD’s “strategic design patterns” using Bounded Context, Context Maps, and the Ubiquitous Language. Using these techniques and examples, you can reduce time to market and improve quality, as you build software that is more flexible, more scalable, and more tightly aligned to business goals.
57Joel on Software
58Thinking in Java
59Sprint: How to Solve Big Problems and Test New Ideas in Just Five Days
Founder/Long-Term Stock Exchange
A fantastic, proven formula for moving from idea to prototyping to decision making within five days, based on a process he developed while working at Google and later GV. [source]
Jake Knapp, John Zeratsky & Braden Kowitz "Sprint" - the go-to guide on how to sprint. You may not follow everything to the tee, but it's simple, clean and full of great examples of how to move fast with structure. [source]
This book details the "sprint" process used at Google Ventures. We follow a similar process at Kustard to validate business ideas and to solve problems without wasting much time, money and energy. If you want to quickly validate an idea, this is a proven model and a must read. [source]
60Hackers: Heroes of the Computer Revolution
61Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions
62Soft Skills: The Software Developer's Life Manual
"Soft Skills: The software developer's life manual" is a unique guide, offering techniques and practices for a more satisfying life as a professional software developer. In it, developer and life coach John Sonmez addresses a wide range of important "soft" topics, from career and productivity to personal finance and investing, and even fitness and relationships, all from a developer-centric viewpoint.
Forewords by Robert C. Martin (Uncle Bob) and Scott Hanselman.
Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.
About the Book
For most software developers, coding is the fun part. The hard bits are dealing with clients, peers, and managers, staying productive, achieving financial security, keeping yourself in shape, and finding true love. This book is here to help.
"Soft Skills: The software developer's life manual" is a guide to a well-rounded, satisfying life as a technology professional. In it, developer and life coach John Sonmez offers advice to developers on important "soft" subjects like career and productivity, personal finance and investing, and even fitness and relationships. Arranged as a collection of 71 short chapters, this fun-to-read book invites you to dip in wherever you like. A Taking Action section at the end of each chapter shows you how to get quick results. Soft Skills will help make you a better programmer, a more valuable employee, and a happier, healthier person.
What's InsideBoost your career by building a personal brandJohn's secret ten-step process for learning quicklyFitness advice to turn your geekiness to your advantageUnique strategies for investment and early retirement
About the Author
John Sonmez is a developer, teacher, and life coach who helps technical professionals boost their careers and live a more fulfilled life.
Table of ContentsWhy this book is unlike any book you've ever readSECTION 1: CAREERGetting started with a "BANG!": Don't do what everyone else doesThinking about the future: What are your goals?People skills: You need them more than you thinkHacking the interviewEmployment options: Enumerate your choicesWhat kind of software developer are you?Not all companies are equalClimbing the corporate ladderBeing a professionalFreedom: How to quit your jobFreelancing: Going out on your ownCreating your first productDo you want to start a startup?Working remotely survival strategiesFake it till you make itResumes are BORING Let's fix thatDon't get religious about technologySECTION 2: MARKETING YOURSELFMarketing basics for code monkeysBuilding a brand that gets you noticedCreating a wildly successful blogYour primary goal: Add value to others#UsingSocialNetworksSpeaking, presenting, and training: Speak geekWriting books and articles that attract a followingDon't be afraid to look like an idiotSECTION 3: LEARNINGLearning how to learn: How to teach yourselfMy 10-step processSteps 1-6: Do these onceSteps 7-10: Repeat theseLooking for mentors: Finding your YodaTaking on an apprentice: Being YodaTeaching: Learn you want? Teach you must.Do you need a degree or can you "wing it?"Finding gaps in your knowledgeSECTION 4: PRODUCTIVITYIt all starts with focusMy personal productivity planPomodoro TechniqueMy quota system: How I get way more done than I shouldHolding yourself accountableMultitasking dos and don'tsBurnout: I've got the cure!How you're wasting your timeThe importance of having a routineDeveloping habits: Brushing your codeBreaking things down: How to eat an elephantThe value of hard work and why you keep avoiding itAny action is better than no actionSECTION 5: FINANCIALWhat are you going to do with your paycheck?How to negotiate your salaryOptions: Where all the fun isBits and bytes of real estate investingDo you really understand your retirement plan?The danger of debt: SSDs are expensiveBonus: How I retired at 33SECTION 6: FITNESSWhy you need to hack your healthSetting your fitness criteriaThermodynamics, calories, and youMotivation: Getting your butt out of the chairHow to gain muscle: Nerds can have bulging bicepsHow to get hash-table absStarting RunningProgram.exeStanding desks and other hacksTech gear for fitness: Geeking outSECTION 7: SPIRITHow the mind influences the bodyHaving the right mental attitude: RebootingBuilding a positive self-image: Programming your brainLove and relationships: Computers can't hold your handMy personal success book listFacing failure head-onParting words"
63A River Runs Through it and Other Stories
Maclean grew up in the western Rocky Mountains in the first decades of the twentieth century. As a young man he worked many summers in logging camps and for the United States Forest Service. The two novellas and short story in this collection are based on his own experiences—the experiences of a young man who found that life was only a step from art in its structures and beauty. The beauty he found was in reality, and so he leaves a careful record of what it was like to work in the woods when it was still a world of horse and hand and foot, without power saws, "cats," or four-wheel drives. Populated with drunks, loggers, card sharks, and whores, and set in the small towns and surrounding trout streams and mountains of western Montana, the stories concern themselves with the complexities of fly fishing, logging, fighting forest fires, playing cribbage, and being a husband, a son, and a father.
This book is ostensibly about fly fishing, and the author’s relationship with his brother Paul. The story is about an older brother, who is never named, who talks about his brother, also called Paul – a genius fisherman who is very troubled. Paul gets arrested, gets drunk, goes with whores and ends up being murdered. The whole book is a tribute to his troubled younger brother whom he couldn’t help but felt immensely close to. He just adored his younger brother and wanted to protect him. [source]
64Superintelligence: Paths, Dangers, Strategies
The human brain has some capabilities that the brains of other animals lack. It is to these distinctive capabilities that our species owes its dominant position. If machine brains surpassed human brains in general intelligence, then this new superintelligence could become extremely powerful--possibly beyond our control. As the fate of the gorillas now depends more on humans than on the species itself, so would the fate of humankind depend on the actions of the machine superintelligence.
But we have one advantage: we get to make the first move. Will it be possible to construct a seed Artificial Intelligence, to engineer initial conditions so as to make an intelligence explosion survivable? How could one achieve a controlled detonation?
Founder/SpaceX
Worth reading Superintelligence by Bostrom. We need to be super careful with AI. Potentially more dangerous than nukes. [source]
CEO/Barclays Africa
Ramos will take the summer to examine some of the questions weighing more heavily on humankind as we contemplate our collective future: what happens when we can write our own genetic codes, and what happens when we create technology that is meaningfully more intelligent than us. The Gene: An Intimate History—Siddhartha Mukherjee Superintelligence: Paths, Dangers, Strategies—Nick Bostrom The Ministry of Utmost Happiness—Arundhati Roy [source]
I picked this book because the possibility of us developing human-level artificial intelligence, and from there superintelligence—an artificial agent that is considerably more intelligent than we are—is at least a contender for the most important issue in the next two centuries. Bostrom’s book has been very influential in effective altruism, lots of people work on artificial intelligence in order to ensure that it is developed safely. I don’t agree with the entire contents of the book, but there are many compelling arguments in it. It would be extremely overconfident to dismiss this book as too speculative. In fact, I think there should be a lot more work that tries to understand the biggest challenges for the next two hundred years, and what we could do to try to overcome them. [source]
65Compilers: Principles, Techniques, and Tools
66Computer Networks
67The Inmates are Running the Asylum: Why High-tech Products Drive Us Crazy and How to Restore the Sanity
68The Art of Computer Programming, Volume 1: Fundamental Algorithms
69Learn You a Haskell for Great Good!
Learn You a Haskell for Great Good! is a fun, illustrated guide to learning Haskell, a functional programming language that's growing in popularity. Learn You a Haskell for Great Good! introduces programmers familiar with imperative languages (such as C++, Java, or Python) to the unique aspects of functional programming. Packed with jokes, pop culture references, and the author's own hilarious artwork, Learn You a Haskell for Great Good! eases the learning curve of this complex language, and is a perfect starting point for any programmer looking to expand his or her horizons. The well-known web tutorial on which this book is based is widely regarded as the best way for beginners to learn Haskell, and receives over 30,000 unique visitors monthly.
I love the following books, even though I don’t code in these languages in a daily basis. It’s still interesting to learn the concepts behind them Programming in Scala (Odersky) Learn You a Haskell for Great Good [source]
70Building a StoryBrand: Clarify Your Message So Customers Will Listen
Donald Miller’s StoryBrand process is a proven solution to the struggle business leaders face when talking about their businesses. This revolutionary method for connecting with customers provides readers with the ultimate competitive advantage, revealing the secret for helping their customers understand the compelling benefits of using their products, ideas, or services. Building a StoryBrand does this by teaching readers the seven universal story points all humans respond to; the real reason customers make purchases; how to simplify a brand message so people understand it; and how to create the most effective messaging for websites, brochures, and social media. Whether you are the marketing director of a multibillion dollar company, the owner of a small business, a politician running for office, or the lead singer of a rock band, Building a StoryBrand will forever transform the way you talk about who you are, what you do, and the unique value you bring to your customers.
Author
Dave Ramsey recommended this book on his website. [source]
I just finished Building a StoryBrand, and need to fill in the worksheets and re-think my homepage as a result. That's the mark of a good business book — homework! [source]
This book is all about telling the story of your business to your customers to that they know exactly what you offer and how to make them the hero in the journey. If you want to build a smart site, with a strong call to action, this book is essential. [source]
71Head First Java
The fact is your brain craves novelty. It's constantly searching, scanning, waiting for something unusual to happen. After all, that's the way it was built to help you stay alive. It takes all the routine, ordinary, dull stuff and filters it to the background so it won't interfere with your brain's real work--recording things that matter. How does your brain know what matters? It's like the creators of the Head First approach say, suppose you're out for a hike and a tiger jumps in front of you, what happens in your brain? Neurons fire. Emotions crank up. Chemicals surge.
That's how your brain knows.
And that's how your brain will learn Java. Head First Java combines puzzles, strong visuals, mysteries, and soul-searching interviews with famous Java objects to engage you in many different ways. It's fast, it's fun, and it's effective. And, despite its playful appearance, Head First Java is serious stuff: a complete introduction to object-oriented programming and Java. You'll learn everything from the fundamentals to advanced topics, including threads, network sockets, and distributed programming with RMI. And the new. second edition focuses on Java 5.0, the latest version of the Java language and development platform. Because Java 5.0 is a major update to the platform, with deep, code-level changes, even more careful study and implementation is required. So learning the Head First way is more important than ever.
If you've read a Head First book, you know what to expect--a visually rich format designed for the way your brain works. If you haven't, you're in for a treat. You'll see why people say it's unlike any other Java book you've ever read.
By exploiting how your brain works, Head First Java compresses the time it takes to learn and retain--complex information. Its unique approach not only shows you what you need to know about Java syntax, it teaches you to think like a Java programmer. If you want to be bored, buy some other book. But if you want to understand Java, this book's for you.
72The Unicorn Project: A Novel About Developers, Digital Disruption, and Thriving in the Age of Data
73Howl's Moving Castle (Howl's Moving Castle, #1)
Sophie has the great misfortune of being the eldest of three daughters, destined to fail miserably should she ever leave home to seek her fate. But when she unwittingly attracts the ire of the Witch of the Waste, Sophie finds herself under a horrid spell that transforms her into an old lady. Her only chance at breaking it lies in the ever-moving castle in the hills: the Wizard Howl's castle. To untangle the enchantment, Sophie must handle the heartless Howl, strike a bargain with a fire demon, and meet the Witch of the Waste head-on. Along the way, she discovers that there's far more to Howl—and herself—than first meets the eye.
Young adult books often cut to the heart of human relationships. Literature for young people sometimes simplifies things by making them metaphorical, by moving them into a fairy-tale world. That often means YA stories give us some of the most profound stories of human relationships. Howl’s Moving Castle is a story of this caliber. [source]
74Data Structures and Algorithms in Java
The book presents some very basic algorithms, using Java. Every algorithm you see in the book is also implemented in Java, so if you want to run it, you can copy the code and execute it yourself. [source]
75Software Estimation: Demystifying the Black Art
Discover how to:
Estimate schedule and cost--or estimate the functionality that can be delivered within a given time frame
Avoid common software estimation mistakes
Learn estimation techniques for you, your team, and your organization • Estimate specific project activities--including development, management, and defect correction
Apply estimation approaches to any type of project--small or large, agile or traditional
Navigate the shark-infested political waters that surround project estimates
When many corporate software projects are failing, McConnell shows you what works for successful software estimation.
76Modern Operating Systems, 4th Edition
77The Art of Readable Code
This book focuses on basic principles and practical techniques you can apply every time you write code. Using easy-to-digest code examples from different languages, each chapter dives into a different aspect of coding, and demonstrates how you can make your code easy to understand.
Simplify naming, commenting, and formatting with tips that apply to every line of code
Refine your program’s loops, logic, and variables to reduce complexity and confusion
Attack problems at the function level, such as reorganizing blocks of code to do one task at a time
Write effective test code that is thorough and concise—as well as readable
"Being aware of how the code you create affects those who look at it later is an important part of developing software. The authors did a great job in taking you through the different aspects of this challenge, explaining the details with instructive examples."
—Michael Hunger, passionate Software Developer
This book gives you a series of techniques to make ‘code smell’ go away. [source]
78It's OK That You're Not OK: Meeting Grief and Loss in a Culture That Doesn't Understand
In It’s OK That You’re Not OK, Devine offers a profound new approach to both the experience of grief and the way we try to help others who have endured tragedy. Having experienced grief from both sides—as both a therapist and as a woman who witnessed the accidental drowning of her beloved partner—Devine writes with deep insight about the unspoken truths of loss, love, and healing. She debunks the culturally prescribed goal of returning to a normal, “happy” life, replacing it with a far healthier middle path, one that invites us to build a life alongside grief rather than seeking to overcome it. In this compelling and heartful book, you’ll learn
• Why well-meaning advice, therapy, and spiritual wisdom so often end up making it harder for people in grief
• How challenging the myths of grief—doing away with stages, timetables, and unrealistic ideals about how grief should unfold—allows us to accept grief as a mystery to be honored instead of a problem to solve
• Practical guidance for managing stress, improving sleep, and decreasing anxiety without trying to “fix” your pain
• How to help the people you love—with essays to teach us the best skills, checklists, and suggestions for supporting and comforting others through the grieving process
Many people who have suffered a loss feel judged, dismissed, and misunderstood by a culture that wants to “solve” grief. Devine writes, “Grief no more needs a solution than love needs a solution.” Through stories, research, life tips, and creative and mindfulness-based practices, she offers a unique guide through an experience we all must face—in our personal lives, in the lives of those we love, and in the wider world.
It’s OK That You’re Not OK is a book for grieving people, those who love them, and all those seeking to love themselves—and each other—better.
@noahssmomma I'm so sorry for your loss. I'm sending you so much love. I have this book, and It's a great reminder to start reading it finally💜 [source]
79The Art of Deception: Controlling the Human Element of Security
Kevin Mitnick's exploits as a cyber-desperado and fugitive form one of the most exhaustive FBI manhunts in history and have spawned dozens of articles, books, films, and documentaries. Since his release from federal prison, in 1998, Mitnick has turned his life around and established himself as one of the most sought-after computer security experts worldwide. Now, in The Art of Deception, the world's most notorious hacker gives new meaning to the old adage, "It takes a thief to catch a thief."
Focusing on the human factors involved with information security, Mitnick explains why all the firewalls and encryption protocols in the world will never be enough to stop a savvy grifter intent on rifling a corporate database or an irate employee determined to crash a system. With the help of many fascinating true stories of successful attacks on business and government, he illustrates just how susceptible even the most locked-down information systems are to a slick con artist impersonating an IRS agent. Narrating from the points of view of both the attacker and the victims, he explains why each attack was so successful and how it could have been prevented in an engaging and highly readable style reminiscent of a true-crime novel. And, perhaps most importantly, Mitnick offers advice for preventing these types of social engineering hacks through security protocols, training programs, and manuals that address the human element of security.
80The Linux Command Line, 2nd Edition: A Complete Introduction
The Linux Command Line takes you from your very first terminal keystrokes to writing full programs in Bash, the most popular Linux shell (or command line). Along the way you'll learn the timeless skills handed down by generations of experienced, mouse-shunning gurus: file navigation, environment configuration, command chaining, pattern matching with regular expressions, and more.
In addition to that practical knowledge, author William Shotts reveals the philosophy behind these tools and the rich heritage that your desktop Linux machine has inherited from Unix supercomputers of yore.
As you make your way through the book's short, easily-digestible chapters, you'll learn how to:
* Create and delete files, directories, and symlinks
* Administer your system, including networking, package installation, and process management
* Use standard input and output, redirection, and pipelines
* Edit files with Vi, the world's most popular text editor
* Write shell scripts to automate common or boring tasks
* Slice and dice text files with cut, paste, grep, patch, and sed
Once you overcome your initial "shell shock," you'll find that the command line is a natural and expressive way to communicate with your computer. Just don't be surprised if your mouse starts to gather dust.
81Agile Principles, Patterns, and Practices in C#
This book presents a series of case studies illustrating the fundamentals of Agile development and Agile design, and moves quickly from UML models to real C# code. The introductory chapters lay out the basics of the agile movement, while the later chapters show proven techniques in action. The book includes many source code examples that are also available for download from the authors' Web site.
Readers will come away from this book understanding
Agile principles, and the fourteen practices of Extreme Programming Spiking, splitting, velocity, and planning iterations and releases Test-driven development, test-first design, and acceptance testing Refactoring with unit testing Pair programming Agile design and design smells The five types of UML diagrams and how to use them effectively Object-oriented package design and design patterns How to put all of it together for a real-world project Whether you are a C# programmer or a Visual Basic or Java programmer learning C#, a software development manager, or a business analyst, Agile Principles, Patterns, and Practices in C# is the first book you should read to understand agile software and how it applies to programming in the .NET Framework.
82HTML and CSS: Design and Build Websites
• Introduces HTML and CSS in a way that makes them accessible to everyone—hobbyists, students, and professionals—and it’s full-color throughout
• Utilizes information graphics and lifestyle photography to explain the topics in a simple way that is engaging
• Boasts a unique structure that allows you to progress through the chapters from beginning to end or just dip into topics of particular interest at your leisure
This educational book is one that you will enjoy picking up, reading, then referring back to. It will make you wish other technical topics were presented in such a simple, attractive and engaging way!
83Masters of Doom: How Two Guys Created an Empire and Transformed Pop Culture
Co-founder/Reddit
Made my co-founder and I think, 'Well, if these guys could do it, why can’t we?' [source]
Masters of Doom. Many of us started our careers in programming because we wanted to make games. This book covers the story of John Romero and John Carmack as they created ID software making Doom, Quake, and many other games we grew up playing as kids. It's truly inspiring for any software developer. [source]
@dannyodwyer I cant wait to see this. The book is fascinating, and I remember watching with bulging fan-boy eyes during those halcyon days! [source]
84It Ends with Us
Lily hasn’t always had it easy, but that’s never stopped her from working hard for the life she wants. She’s come a long way from the small town in Maine where she grew up
— she graduated from college, moved to Boston, and started her own business. So when she feels a spark with a gorgeous neurosurgeon named Ryle Kincaid, everything in Lily’s life suddenly seems almost too good to be true.
Ryle is assertive, stubborn, maybe even a little arrogant. He’s also sensitive, brilliant, and has a total soft spot for Lily. And the way he looks in scrubs certainly doesn’t hurt. Lily can’t get him out of her head. But Ryle’s complete aversion to relationships is disturbing. Even as Lily finds herself becoming the exception to his “no dating” rule, she can’t help but wonder what made him that way in the first place.
As questions about her new relationship overwhelm her, so do thoughts of Atlas Corrigan — her first love and a link to the past she left behind. He was her kindred spirit, her protector. When Atlas suddenly reappears, everything Lily has built with Ryle is threatened.
85Unix and Linux System Administration Handbook
86Just for Fun: The Story of an Accidental Revolutionary
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.
87Agile Estimating and Planning
--Doug DeCarlo, author of eXtreme Project Management: Using Leadership, Principles and Tools to Deliver Value in the Face of Volatility (Jossey-Bass, 2004)
"We know how to build predictive plans and manage them. But building plans that only estimate the future and then embrace change, challenge most of our training and skills. In Agile Estimating and Planning , Mike Cohn once again fills a hole in the Agile practices, this time by showing us a workable approach to Agile estimating and planning. Mike delves into the nooks and crannies of the subject and anticipates many of the questions and nuances of this topic. Students of Agile processes will recognize that this book is truly about agility, bridging many of the practices between Scrum and ExtremeProgramming."
--Ken Schwaber, Scrum evangelist, Agile Alliance cofounder, and signatory to the Agile Manifesto
"In Agile Estimating and Planning , Mike Cohn has, for the first time, brought together most everything that the Agile community has learned about the subject. The book is clear, well organized, and a pleasant and valuable read. It goes into all the necessary detail, and at the same time keeps the reader's burden low. We can dig in as deeply as we need to, without too much detail before we need it. The book really brings together everything we have learned about Agile estimation and planning over the past decade. It will serve its readers well."
--Ron Jeffries, www.XProgramming.com, author of Extreme Programming Installed (Addison-Wesley, 2001) and Extreme Programming Adventures in C# (Microsoft Press, 2004)
" Agile Estimating and Planning provides a view of planning that's balanced between theory and practice, and it is supported by enough concrete experiences to lend it credibility. I particularly like the quote 'planning is a quest for value.' It points to a new, more positive attitude toward planning that goes beyond the 'necessary evil' view that I sometimes hold."
--Kent Beck, author of Extreme Programming Explained, Second Edition (Addison-Wesley, 2005)
"Up-front planning is still the most critical part of software development. Agile software development requires Agile planning techniques. This book shows you how to employ Agile planning in a succinct, practical, and easy-to-follow manner."
--Adam Rogers, Ultimate Software
"Mike does a great follow-up to User Stories Applied by continuing to provide Agile teams with the practical approaches and techniques to increase agility. In this book, Mike provides time-proven and well-tested methods for being successful with the multiple levels of planning and estimating required by Agile. This book is the first to detail the disciplines of Agile estimating and planning, in ways that rival my 1980 civil engineering texts on CPM Planning and Estimating."
--Ryan Martens, President and Founder, Rally Software Development Corporation
"With insight and clarity, Mike Cohn shows how to effectively produce software of high business value. With Agile estimation and planning, you focus effort where it really counts, and continue to do so as circumstances change."
--Rick Mugridge, Rimu Research Ltd., and lead author, Fit for Developing Software (Prentice Hall, 2005)
"Finally! The groundbreaking book my clients have been clamoring for! Agile Estimating and Planning demystifies the process of defining, driving, and delivering great software that matters to the business. Mike's clarity, insight, and experience leap out through every page of this book, offering an approach that is relevant and immediately useful to all members of an Agile project."
--Kert D. Peterson, President, Enterprise Agile Group, LLC
"This isn't yet another generic book on Agile software development. Agile Estimating and Planning fills a gap left by most of the other books and gives you important, practical, down-to-earth techniques needed to be successful on Agile development projects."
--Steve Tockey, Principal Consultant, Construx Software
"Estimation, planning, and tracking is a trinity. If you don't do one of them, you don't need the other two. This book provides very practical knowledge for estimation, planning, prioritizing, and tracking. It should be compulsory subject matter for project managers and their teams, even if they hesitate to call themselves Agile."
--Niels Malotaux, Project Coach
"Effective planning is an important, but often misunderstood, part of any successful Agile project. With Agile Estimating and Planning , Mike Cohn has given us a definitive guide to a wide range of Agile estimating and planning practices. With his clear and practical style, Mike not only explains how to successfully get started planning an Agile project, but also provides a wealth of tips and advice for improving any team's Agile planning process. This book is a must-read for managers, coaches, and members of Agile teams."
--Paul Hodgetts, Agile coach and CEO, Agile Logic
"Mike's writing style captures the essence of agility-just the right amount of information to bring clarity to the reader. This book provides an excellent guide for all Agile practitioners, both seasoned and novice."
--Robert Holler, President and CEO, VersionOne, LLC
"It is as if Mike took the distilled knowledge regarding planning and estimation of a great Agile developer (which he is) and laid out all he knows in an easily understandable manner. More importantly, he has a great mix of concepts with real-world examples finished off with a case study so the reader can relate the information to their own situation. Unless you are already an expert Agile planner and estimator, this book is for you."
--Alan Shalloway, CEO, Senior Consultant, Net Objectives, and coauthor of Design Patterns Explained, Second Edition (Addison-Wesley, 2005)
"Although I had plenty of XP experience before trying out Mike Cohn's Agile planning practices, the effectiveness of the practical and proven techniques in this book blew me away! The book recognizes that people, not tools or processes, produce great software, and that teams benefit most by learning about their project and their product as they go. The examples in the book are concrete, easily grasped, and simply reek of common sense. This book will help teams (whether Agile or not) deliver more value, more often, and have fun doing it! Whether you're a manager or a programmer, a tester or a CEO, part of an Agile team, or just looking for a way to stamp out chaos and death marches, this book will guide you."
--Lisa Crispin, coauthor of Testing Extreme Programming (Addison-Wesley, 2003)
"Mike Cohn does an excellent job demonstrating how an Agile approach can address issues of risk and uncertainty in order to provide more meaningful estimates and plans for software projects."
--Todd Little, Senior Development Manager, Landmark Graphics
"Mike Cohn explains his approach to Agile planning, and shows how 'critical chain' thinking can be used to effectively buffer both schedule and features. As with User Stories Applied, this book is easy to read and grounded in real-world experience."
--Bill Wake, author of Refactoring Workbook (Addison-Wesley, 2003)
"Mike brings this book to life with real-world examples that help reveal how and why an Agile approach works for planning software development projects. This book has great breadth, ranging from the fundamentals of release planning to advanced topics such as financial aspects of prioritization. I can see this book becoming an invaluable aid to Agile project managers, as it provides a wealth of practical tips such as how to set iteration length and boot-strap velocity, and communicate progress."
--Rachel Davies, Independent Consultant
"There has been a need for a solid, pragmatic book on the long-term vision of an Agile Project for project managers. Agile Estimating and Planning addresses this need. It's not theory--this book contains project-tested practices that have been used on Agile projects. As Mike's test subjects, we applied these practices to the development of video games (one of the most unpredictable project environments you can imagine) with success."
--Clinton Keith, Chief Technical Officer, High Moon Studios
"When I first heard Mike Cohn speak, I was impressed by a rare combination of qualities: deep experience and understanding in modern iterative and Agile methods; a drive to find and validate easy, high-impact solutions beyond the status quo of traditional (usually ineffective) methods; and the passion and clarity of a natural coach. These qualities are evident in this wonderful, practical guide. I estimate you won't be disappointed in studying and applying his advice."
--Craig Larman, Chief Scientist, Valtech, and author of Applying UML and Patterns, Third Edition (Prentice Hall, 2005) and Agile and Iterative Development (Addison-Wesley, 2004)
" Agile Estimating and Planning is a critical guide on how to successfully provide value to customers of IT services. This book is filled with clear examples that are essential--from project team members to the executive level."
--Lou Thomas, Director, Applications Development, Farm Credit Services of America
"This work is deeply significant in that it articulates and details structured techniques to realize a simple, but profound insight--planning is an iterative quest for value, rather than a perfunctory scheduling of activities. Mike presents processes to converge on this value while reducing risk and uncertainty, supporting decision making, establishing trust, and conveying information. Agile methodologies have shifted the emphasis from plans to planning, but have glossed over many of the finer details of Agile planning. Now, very simply and accessibly, Mike demonstrates how it can be done."
--Sanjiv Augustine, Practice Director, Lean-Agile Consulting at CC Pace, and author of Managing Agile Projects (Prentice Hall, 2005)
"The techniques described in Agile Estimating and Planning have helped us tremendously with planning and managing our projects. It provides all you have ever wanted to know about Agile project management."
--Roman Pichler, Engineering Manager, Siemens Communications
"Mike Cohn presents a highly pragmatic and logical approach to making projects successful in a world beset by uncertainty and change. With his trademark clarity and directness, Mike cuts through the management mumbo jumbo to present practical techniques that can be put into use immediately. Put the odds squarely in your favor by making Mike Cohn the planning guru on your next big project."
--Pete Deemer, Vice President, Product Development, Yahoo!
"This book distills the fundamental ideas behind Agile estimating and planning, presenting them in a thoughtful and approachable manner. This is a 'must-have' book that presents clear, unambiguous, and practical advice for anyone who wants to successfully manage modern software development projects."
--Scott W. Ambler, President, Ambysoft Inc.
"How do your projects go? Frustrating changes? Uncertainty? Product missing both the mark and the deadline? With insight and clarity, Mike Cohn shows how to effectively produce software that is of high business value. With agile estimation and planning, you focus effort where it really counts, and continue to do so as circumstances change."
--Rick Mugridge, Rimu Research Ltd., and lead author of Fit for Developing Software
"We are true believers in the agile methods described in this book, and have experienced a substantially positive impact from their implementation and continued use. I would highly recommend this book to anyone who is interested in making their software development more practical and effective."
--Mark M. Gutrich, President and CEO, Fast 401k, Inc.
Detailed, Proven Techniques for Estimating and Planning Any Agile Project Agile Estimating and Planning is the definitive, practical guide to estimating and planning agile projects. In this book, Agile Alliance cofounder Mike Cohn discusses the philosophy of agile estimating and planning and shows you exactly how to get the job done, with real-world examples and case studies.
Concepts are clearly illustrated and readers are guided, step by step, toward how to answer the following questions: What will we build? How big will it be? When must it be done? How much can I really complete by then? You will first learn what makes a good plan-and then what makes it agile.
Using the techniques in Agile Estimating and Planning , you can stay agile from start to finish, saving time, conserving resources, and accomplishing more. Highlights include:
Why conventional prescriptive planning fails and why agile planning works How to estimate feature size using story points and ideal days--and when to use each How and when to re-estimate How to prioritize features using both financial and nonfinancial approaches How to split large features into smaller, more manageable ones How to plan iterations and predict your team's initial rate of progress How to schedule projects that have unusually high uncertainty or schedule-related risk How to estimate projects that will be worked on by multiple teams Agile Estimating and Planning supports any agile, semiagile, or iterative process, including Scrum, XP, Feature-Driven Development, Crystal, Adaptive Software Development, DSDM, Unified Process, and many more. It will be an indispensable resource for every development manager, team leader, and team member.
88Artificial Intelligence: A Modern Approach
89Stephen King Collection 4 Books Set (Pet Sematary, The Shining, It, Doctor Sleep)
90It's Kind of a Funny Story
Craig's suicidal episode gets him checked into a mental hospital, where his new neighbors include a transsexual sex addict, a girl who has scarred her own face with scissors, and the self-elected President Armelio. There, Craig is finally able to confront the sources of his anxiety.
Ned Vizzini, who himself spent time in a psychiatric hospital, has created a remarkably moving tale about the sometimes unexpected road to happiness.
It covers something the other books don’t cover which is relapse [source]
91Weapons of Math Destruction: How Big Data Increases Inequality and Threatens Democracy
New York Times Bestseller
A former Wall Street quant sounds an alarm on the mathematical models that pervade modern life -- and threaten to rip apart our social fabric
We live in the age of the algorithm. Increasingly, the decisions that affect our lives--where we go to school, whether we get a car loan, how much we pay for health insurance--are being made not by humans, but by mathematical models. In theory, this should lead to greater fairness: Everyone is judged according to the same rules, and bias is eliminated.
But as Cathy O'Neil reveals in this urgent and necessary book, the opposite is true. The models being used today are opaque, unregulated, and uncontestable, even when they're wrong. Most troubling, they reinforce discrimination: If a poor student can't get a loan because a lending model deems him too risky (by virtue of his zip code), he's then cut off from the kind of education that could pull him out of poverty, and a vicious spiral ensues. Models are propping up the lucky and punishing the downtrodden, creating a "toxic cocktail for democracy." Welcome to the dark side of Big Data.
Tracing the arc of a person's life, O'Neil exposes the black box models that shape our future, both as individuals and as a society. These "weapons of math destruction" score teachers and students, sort resumes, grant (or deny) loans, evaluate workers, target voters, set parole, and monitor our health.
O'Neil calls on modelers to take more responsibility for their algorithms and on policy makers to regulate their use. But in the end, it's up to us to become more savvy about the models that govern our lives. This important book empowers us to ask the tough questions, uncover the truth, and demand change.
-- Longlist for National Book Award (Non-Fiction)
-- Goodreads, semi-finalist for the 2016 Goodreads Choice Awards (Science and Technology)
-- Kirkus, Best Books of 2016
-- New York Times, 100 Notable Books of 2016 (Non-Fiction)
-- The Guardian, Best Books of 2016
-- WBUR's "On Point," Best Books of 2016: Staff Picks
-- Boston Globe, Best Books of 2016, Non-Fiction
How the use of algorithms has affected people’s lives and occasionally ruined them. [source]
This book is a really fantastic analysis of how quantification, the collection of data, the modelling around data, the predictions made by using data, the algorithmic and quantifiable ways of predicting behaviour based on data, are all built by elites for elites and end up, quite frankly, screwing over everybody else. [source]
92Ask and It Is Given: Learning to Manifest Your Desires
As you read, you'll come to understand how your relationships, health issues, finances, career concerns, and more are influenced by the Universal laws that govern your time-space-reality—and you'll discover powerful processes that will help you go with the positive flow of life.
It's your birthright to live a life filled with everything that is good—and this book will show you how to make it so in every way!
Foreword by Dr. Wayne W. Dyer.
93The Code Book: The Science of Secrecy from Ancient Egypt to Quantum Cryptography
Throughout the text are clear technical and mathematical explanations, and portraits of the remarkable personalities who wrote and broke the world's most difficult codes. Accessible, compelling, and remarkably far-reaching, this book will forever alter your view of history and what drives it. It will also make yo wonder how private that e-mail you just sent really is.
@gavreilly @SLSingh Love that book [source]
94The Legend of Zelda: Breath of the Wild – The Complete Official Guide – Expanded Edition
INCLUDES: Expansion Pass concept art gallery; dedicated chapters covering both Expansion Passes; Reference and Analysis chapter; Maps chapter; all-new hardcover and an extensive 4-page Index.
GUIDE DETAILS
Maps Chapter: a dedicated 36-page atlas of Hyrule showing the exact location of all Korok seeds and treasure chests.
Reference & Analysis Chapter: contains a farming manual showing how to acquire all items of prime interest efficiently; the best weapons and armor upgrades; the most effective recipes; the most lucrative gemstone mining spots; amiibo; merchants and much more.
Expansion Pass Chapters: 34 pages dedicated to “The Master Trials” and “The Champions’ Ballad”.
100% AUTHORITATIVE: all side quests, all shrines of Trials and all information about collectible items fully mapped out; also includes optional challenges, mini-games, unlockables, Easter eggs, and more.
At-a-glance Walkthroughs: annotated maps and screenshots show the optimal way through every quest and dungeon.
Large map poster: two-sided and fully-annotated – covering the immense game area.
Concept art: direct from the development team and beautifully laid out across two sections: 16 pages of concept art from “The Master Trials” and “The Champions’ Ballad” as well as a 16-page art tour of the main game.
Puzzle Master: every single puzzle and riddle unraveled with refined, visual solutions.
Expert Combat Strategy: practical, reproducible tactics to crush all enemies and bosses.
Comprehensive references: exhaustive appraisals of all items and monsters – including key parameters that are hidden in the game.
Premium hardcover: with guide pages printed on superior-quality art paper.
EASE OF USE: Instant searches, print navigation systems, extensive 4-page index and detailed map poster give you immediate access to the information you need.
95The Manager's Path: A Guide for Tech Leaders Navigating Growth and Change
In this book, author Camille Fournier takes you through the stages of technical management, from mentoring interns to working with the senior staff. You ll get actionable advice for approaching various obstacles in your path, whether you re a new manager, a mentor, or a more experienced leader looking for fresh advice. Pick up this book and learn how to become a better manager and leader in your organization.
• Discover how to manage small teams and large/multi-level teams
• Understand how to build and bootstrap a unifying culture in teams
• Deal with people problems and learn how to mentor other managers and new leaders
• Learn how to manage yourself: avoid common pitfalls that challenge many leaders
• Obtain several practices that you can incorporate and practice along the way
96This Is How It Always Is
This is how a family lives happily ever after…until happily ever after becomes complicated.
This is how children change…and then change the world.
This is Claude. He’s five years old, the youngest of five brothers, and loves peanut butter sandwiches. He also loves wearing a dress, and dreams of being a princess.
When he grows up, Claude says, he wants to be a girl.
Rosie and Penn want Claude to be whoever Claude wants to be. They’re just not sure they’re ready to share that with the world. Soon the entire family is keeping Claude’s secret. Until one day it explodes.
This Is How It Always Is is a novel about revelations, transformations, fairy tales, and family. And it’s about the ways this is how it always is: Change is always hard and miraculous and hard again, parenting is always a leap into the unknown with crossed fingers and full hearts, children grow but not always according to plan. And families with secrets don’t get to keep them forever.
"This is a novel everyone should read. It’s brilliant. It’s bold. And it’s time.”
―Elizabeth George, #1 New York Times bestselling author of A Banquet of Consequences
97You Can't Do It Alone: A Widow's Journey Through Loss, Grief and Life After
When FOX11's weather anchor Maria Quiban Whitesell's husband Sean was diagnosed with Glioblastoma (GBM), a deadly form of brain cancer, she was completely unprepared. How would she possibly explain what was happening to their young son, Gus? How should she respond when people ask inappropriate questions? What about just dealing with the details of the day-to-day?
In You Can't Do It Alone, Whitesell tells her story and teams up with licensed therapist Lauren Schneider to provide readers with a roadmap for walking through illness, death and grief. Whitesell and Schneider explore:
Discussing a serious diagnosis in an honest, clear manner
Navigating control over life when you feel no control
Finding your support group
Dealing with memories, family and friends
Helping balance work, caregiving, parenting and much, much more
98The Web Application Hacker's Handbook: Finding and Exploiting Security Flaws
Reveals how to overcome the new technologies and techniques aimed at defending web applications against attacks that have appeared since the previous edition Discusses new remoting frameworks, HTML5, cross-domain integration techniques, UI redress, framebusting, HTTP parameter pollution, hybrid file attacks, and more Features a companion web site hosted by the authors that allows readers to try out the attacks described, gives answers to the questions that are posed at the end of each chapter, and provides a summarized methodology and checklist of tasks Focusing on the areas of web application security where things have changed in recent years, this book is the most current resource on the critical topic of discovering, exploiting, and preventing web application security flaws.
Also available as a set with, CEHv8: Certified Hacker Version 8 Study Guide, Ethical Hacking and Web Hacking Set, 9781119072171.
99NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence
100How Linux Works: What Every Superuser Should Know
With this essential guide, you'll learn everything you need to know to customize your system, solve problems, and make your computer work for you.