Book picks similar to
Pragmatic Thinking and Learning: Refactor Your Wetware by Andy Hunt
programming
non-fiction
psychology
self-help
Ultralearning: Master Hard Skills, Outsmart the Competition, and Accelerate Your Career
Scott H. Young - 2019
Ultralearning offers nine principles to master hard skills quickly. This is the essential guide to future-proof your career and maximize your competitive advantage through self-education.
In these tumultuous times of economic and technological change, staying ahead depends on continual self-education—a lifelong mastery of fresh ideas, subjects, and skills. If you want to accomplish more and stand apart from everyone else, you need to become an ultralearner. The challenge of learning new skills is that you think you already know how best to learn, as you did as a student, so you rerun old routines and old ways of solving problems. To counter that, Ultralearning offers powerful strategies to break you out of those mental ruts and introduces new training methods to help you push through to higher levels of retention. Scott H. Young incorporates the latest research about the most effective learning methods and the stories of other ultralearners like himself—among them Benjamin Franklin, chess grandmaster Judit Polgár, and Nobel laureate physicist Richard Feynman, as well as a host of others, such as little-known modern polymath Nigel Richards, who won the French World Scrabble Championship—without knowing French. Young documents the methods he and others have used to acquire knowledge and shows that, far from being an obscure skill limited to aggressive autodidacts, ultralearning is a powerful tool anyone can use to improve their career, studies, and life. Ultralearning explores this fascinating subculture, shares a proven framework for a successful ultralearning project, and offers insights into how you can organize and exe - cute a plan to learn anything deeply and quickly, without teachers or budget-busting tuition costs.Whether the goal is to be fluent in a language (or ten languages), earn the equivalent of a college degree in a fraction of the time, or master multiple tools to build a product or business from the ground up, the principles in Ultralearning will guide you to success.
The First 20 Hours: How to Learn Anything...Fast
Josh Kaufman - 2013
What’s on your list? What’s holding you back from getting started? Are you worried about the time and effort it takes to acquire new skills—time you don’t have and effort you can’t spare? Research suggests it takes 10,000 hours to develop a new skill. In this nonstop world when will you ever find that much time and energy? To make matters worse, the early hours of practicing something new are always the most frustrating. That’s why it’s difficult to learn how to speak a new language, play an instrument, hit a golf ball, or shoot great photos. It’s so much easier to watch TV or surf the web . . . In The First 20 Hours, Josh Kaufman offers a systematic approach to rapid skill acquisition— how to learn any new skill as quickly as possible. His method shows you how to deconstruct complex skills, maximize productive practice, and remove common learning barriers. By completing just 20 hours of focused, deliberate practice you’ll go from knowing absolutely nothing to performing noticeably well. Kaufman personally field-tested the methods in this book. You’ll have a front row seat as he develops a personal yoga practice, writes his own web-based computer programs, teaches himself to touch type on a nonstandard keyboard, explores the oldest and most complex board game in history, picks up the ukulele, and learns how to windsurf. Here are a few of the simple techniques he teaches:Define your target performance level: Figure out what your desired level of skill looks like, what you’re trying to achieve, and what you’ll be able to do when you’re done. The more specific, the better.Deconstruct the skill: Most of the things we think of as skills are actually bundles of smaller subskills. If you break down the subcomponents, it’s easier to figure out which ones are most important and practice those first.Eliminate barriers to practice: Removing common distractions and unnecessary effort makes it much easier to sit down and focus on deliberate practice.Create fast feedback loops: Getting accurate, real-time information about how well you’re performing during practice makes it much easier to improve.Whether you want to paint a portrait, launch a start-up, fly an airplane, or juggle flaming chainsaws, The First 20 Hours will help you pick up the basics of any skill in record time . . . and have more fun along the way.
Refactoring: Improving the Design of Existing Code
Martin Fowler - 1999
Significant numbers of poorly designed programs have been created by less-experienced developers, resulting in applications that are inefficient and hard to maintain and extend. Increasingly, software system professionals are discovering just how difficult it is to work with these inherited, non-optimal applications. For several years, expert-level object programmers have employed a growing collection of techniques to improve the structural integrity and performance of such existing software programs. Referred to as refactoring, these practices have remained in the domain of experts because no attempt has been made to transcribe the lore into a form that all developers could use... until now. In Refactoring: Improving the Design of Existing Software, renowned object technology mentor Martin Fowler breaks new ground, demystifying these master practices and demonstrating how software practitioners can realize the significant benefits of this new process.
Range: Why Generalists Triumph in a Specialized World
David Epstein - 2019
Plenty of experts argue that anyone who wants to develop a skill, play an instrument, or lead their field should start early, focus intensely, and rack up as many hours of deliberate practice as possible. If you dabble or delay, you'll never catch up to the people who got a head start. But a closer look at research on the world's top performers, from professional athletes to Nobel laureates, shows that early specialization is the exception, not the rule.David Epstein examined the world's most successful athletes, artists, musicians, inventors, forecasters and scientists. He discovered that in most fields--especially those that are complex and unpredictable--generalists, not specialists, are primed to excel. Generalists often find their path late, and they juggle many interests rather than focusing on one. They're also more creative, more agile, and able to make connections their more specialized peers can't see.Provocative, rigorous, and engrossing, Range makes a compelling case for actively cultivating inefficiency. Failing a test is the best way to learn. Frequent quitters end up with the most fulfilling careers. The most impactful inventors cross domains rather than deepening their knowledge in a single area. As experts silo themselves further while computers master more of the skills once reserved for highly focused humans, people who think broadly and embrace diverse experiences and perspectives will increasingly thrive.
Designing Your Life: Build a Life that Works for You
Bill Burnett - 2016
Now in book form for the first time, their simple method will teach you how to use basic design tools to create a life that will work for you.Using real-life stories and proven techniques like reframing, prototyping and mind-mapping, you will learn how to build your way forwards, step-by-positive-step, to a life that’s better by a design of your own making.Because a well-designed life means a life well-lived.
Site Reliability Engineering: How Google Runs Production Systems
Betsy Beyer - 2016
So, why does conventional wisdom insist that software engineers focus primarily on the design and development of large-scale computing 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
The 5 Elements of Effective Thinking
Edward B. Burger - 2012
Burger teaches at Wiliams College; Starbird at The University of Texas at Austin. Here, they “reveal the hidden powers of deep understanding (earth), failure (fire), questions (air), the flow of ideas (water), and the quintessential element of change that brings all four elements together. By mastering and applying these practical and proven strategies, readers develop better thinking habits and learn how to create their own successes.”Brilliant people aren't a special breed--they just use their minds differently. By using the straightforward and thought-provoking techniques in "The 5 Elements of Effective Thinking," you will regularly find imaginative solutions to difficult challenges, and you will discover new ways of looking at your world and yourself--revealing previously hidden opportunities.The book offers real-life stories, explicit action items, and concrete methods that allow you to attain a deeper understanding of any issue, exploit the power of failure as a step toward success, develop a habit of creating probing questions, see the world of ideas as an ever-flowing stream of thought, and embrace the uplifting reality that we are all capable of change. No matter who you are, the practical mind-sets introduced in the book will empower you to realize any goal in a more creative, intelligent, and effective manner. Filled with engaging examples that unlock truths about thinking in every walk of life, "The 5 Elements of Effective Thinking" is written for all who want to reach their fullest potential--including students, parents, teachers, businesspeople, professionals, athletes, artists, leaders, and lifelong learners.Whenever you are stuck, need a new idea, or want to learn and grow, "The 5 Elements of Effective Thinking" will inspire and guide you on your way.
Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation
Jez Humble - 2010
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.
Effective Java
Joshua Bloch - 2001
The principal enhancement in Java 8 was the addition of functional programming constructs to Java's object-oriented roots. Java 7, 8, and 9 also introduced language features, such as the try-with-resources statement, the diamond operator for generic types, default and static methods in interfaces, the @SafeVarargs annotation, and modules. New library features include pervasive use of functional interfaces and streams, the java.time package for manipulating dates and times, and numerous minor enhancements such as convenience factory methods for collections. In this new edition of Effective Java, Bloch updates the work to take advantage of these new language and library features, and provides specific best practices for their use. Java's increased support for multiple paradigms increases the need for best-practices advice, and this book delivers. As in previous editions, each chapter consists of several "items," each presented in the form of a short, standalone essay that provides specific advice, insight into Java platform subtleties, and updated code examples. The comprehensive descriptions and explanations for each item illuminate what to do, what not to do, and why. Coverage includes:Updated techniques and best practices on classic topics, including objects, classes, methods, libraries, and generics How to avoid the traps and pitfalls of commonly misunderstood subtleties of the platform Focus on the language and its most fundamental libraries, such as java.lang and java.util
Structure and Interpretation of Computer Programs
Harold Abelson - 1984
This long-awaited revision contains changes throughout the text. There are new implementations of most of the major programming systems in the book, including the interpreters and compilers, and the authors have incorporated many small changes that reflect their experience teaching the course at MIT since the first edition was published. A new theme has been introduced that emphasizes the central role played by different approaches to dealing with time in computational models: objects with state, concurrent programming, functional programming and lazy evaluation, and nondeterministic programming. There are new example sections on higher-order procedures in graphics and on applications of stream processing in numerical programming, and many new exercises. In addition, all the programs have been reworked to run in any Scheme implementation that adheres to the IEEE standard.
Practical Object Oriented Design in Ruby
Sandi Metz - 2012
The Web is awash in Ruby code that is now virtually impossible to change or extend. This text helps you solve that problem by using powerful real-world object-oriented design techniques, which it thoroughly explains using simple and practical Ruby examples. Sandi Metz has distilled a lifetime of conversations and presentations about object-oriented design into a set of Ruby-focused practices for crafting manageable, extensible, and pleasing code. She shows you how to build new applications that can survive success and repair existing applications that have become impossible to change. Each technique is illustrated with extended examples, all downloadable from the companion Web site, poodr.info. The first title to focus squarely on object-oriented Ruby application design,
Practical Object-Oriented Design in Ruby
will guide you to superior outcomes, whatever your previous Ruby experience. Novice Ruby programmers will find specific rules to live by; intermediate Ruby programmers will find valuable principles they can flexibly interpret and apply; and advanced Ruby programmers will find a common language they can use to lead development and guide their colleagues. This guide will help you Understand how object-oriented programming can help you craft Ruby code that is easier to maintain and upgrade Decide what belongs in a single Ruby class Avoid entangling objects that should be kept separate Define flexible interfaces among objects Reduce programming overhead costs with duck typing Successfully apply inheritance Build objects via composition Design cost-effective tests Solve common problems associated with poorly designed Ruby code
Working Effectively with Legacy Code
Michael C. Feathers - 2004
This book draws on material Michael created for his renowned Object Mentor seminars, techniques Michael has used in mentoring to help hundreds of developers, technical managers, and testers bring their legacy systems under control. The topics covered include: Understanding the mechanics of software change, adding features, fixing bugs, improving design, optimizing performance Getting legacy code into a test harness Writing tests that protect you against introducing new problems Techniques that can be used with any language or platform, with examples in Java, C++, C, and C# Accurately identifying where code changes need to be made Coping with legacy systems that aren't object-oriented Handling applications that don't seem to have any structureThis book also includes a catalog of twenty-four dependency-breaking techniques that help you work with program elements in isolation and make safer changes.
The Inner Game of Tennis: The Classic Guide to the Mental Side of Peak Performance
W. Timothy Gallwey - 1974
Now available in a revised paperback edition, this classic bestseller can change the way the game of tennis is played.
Automate the Boring Stuff with Python: Practical Programming for Total Beginners
Al Sweigart - 2014
But what if you could have your computer do them for you?In "Automate the Boring Stuff with Python," you'll learn how to use Python to write programs that do in minutes what would take you hours to do by hand no prior programming experience required. Once you've mastered the basics of programming, you'll create Python programs that effortlessly perform useful and impressive feats of automation to: Search for text in a file or across multiple filesCreate, update, move, and rename files and foldersSearch the Web and download online contentUpdate and format data in Excel spreadsheets of any sizeSplit, merge, watermark, and encrypt PDFsSend reminder emails and text notificationsFill out online formsStep-by-step instructions walk you through each program, and practice projects at the end of each chapter challenge you to improve those programs and use your newfound skills to automate similar tasks.Don't spend your time doing work a well-trained monkey could do. Even if you've never written a line of code, you can make your computer do the grunt work. Learn how in "Automate the Boring Stuff with Python.""
The Shallows: What the Internet Is Doing to Our Brains
Nicholas Carr - 2010
He also crystallized one of the most important debates of our time: As we enjoy the Net’s bounties, are we sacrificing our ability to read and think deeply?Now, Carr expands his argument into the most compelling exploration of the Internet’s intellectual and cultural consequences yet published. As he describes how human thought has been shaped through the centuries by “tools of the mind”—from the alphabet to maps, to the printing press, the clock, and the computer—Carr interweaves a fascinating account of recent discoveries in neuroscience by such pioneers as Michael Merzenich and Eric Kandel. Our brains, the historical and scientific evidence reveals, change in response to our experiences. The technologies we use to find, store, and share information can literally reroute our neural pathways.Building on the insights of thinkers from Plato to McLuhan, Carr makes a convincing case that every information technology carries an intellectual ethic—a set of assumptions about the nature of knowledge and intelligence. He explains how the printed book served to focus our attention, promoting deep and creative thought. In stark contrast, the Internet encourages the rapid, distracted sampling of small bits of information from many sources. Its ethic is that of the industrialist, an ethic of speed and efficiency, of optimized production and consumption—and now the Net is remaking us in its own image. We are becoming ever more adept at scanning and skimming, but what we are losing is our capacity for concentration, contemplation, and reflection.Part intellectual history, part popular science, and part cultural criticism, The Shallows sparkles with memorable vignettes—Friedrich Nietzsche wrestling with a typewriter, Sigmund Freud dissecting the brains of sea creatures, Nathaniel Hawthorne contemplating the thunderous approach of a steam locomotive—even as it plumbs profound questions about the state of our modern psyche. This is a book that will forever alter the way we think about media and our minds.