Book picks similar to
The Joy of Search: A Google Insider's Guide to Going Beyond the Basics by Daniel M. Russell
non-fiction
nonfiction
technology
reference
Coders: The Making of a New Tribe and the Remaking of the World
Clive Thompson - 2019
And this may sound weirdly obvious, but every single one of those pieces of software was written by a programmer. Programmers are thus among the most quietly influential people on the planet. As we live in a world made of software, they're the architects. The decisions they make guide our behavior. When they make something newly easy to do, we do a lot more of it. If they make it hard or impossible to do something, we do less of it.If we want to understand how today's world works, we ought to understand something about coders. Who exactly are the people that are building today's world? What makes them tick? What type of personality is drawn to writing software? And perhaps most interestingly -- what does it do to them?One of the first pieces of coding a newbie learns is the program to make the computer say "Hello, world!" Like that piece of code, Clive Thompson's book is a delightful place to begin to understand this vocation, which is both a profession and a way of life, and which essentially didn't exist little more than a generation ago, but now is considered just about the only safe bet we can make about what the future holds. Thompson takes us close to some of the great coders of our time, and unpacks the surprising history of the field, beginning with the first great coders, who were women. Ironically, if we're going to traffic in stereotypes, women are arguably "naturally" better at coding than men, but they were written out of the history, and shoved out of the seats, for reasons that are illuminating. Now programming is indeed, if not a pure brotopia, at least an awfully homogenous community, which attracts people from a very narrow band of backgrounds and personality types. As Thompson learns, the consequences of that are significant - not least being a fetish for disruption at scale that doesn't leave much time for pondering larger moral issues of collateral damage. At the same time, coding is a marvelous new art form that has improved the world in innumerable ways, and Thompson reckons deeply, as no one before him has, with what great coding in fact looks like, who creates it, and where they come from. To get as close to his subject has he can, he picks up the thread of his own long-abandoned coding practice, and tries his mightiest to up his game, with some surprising results.More and more, any serious engagement with the world demands an engagement with code and its consequences, and to understand code, we must understand coders. In that regard, Clive Thompson's Hello, World! is a marvelous and delightful master class.
Exercises in Programming Style
Cristina Videira Lopes - 2014
It is designed to be used in conjunction with code provided on an online repository. The book complements and explains the raw code in a way that is accessible to anyone who regularly practices the art of programming. The book can also be used in advanced programming courses in computer science and software engineering programs.The book contains 33 different styles for writing the term frequency task. The styles are grouped into nine categories: historical, basic, function composition, objects and object interactions, reflection and metaprogramming, adversity, data-centric, concurrency, and interactivity. The author verbalizes the constraints in each style and explains the example programs. Each chapter first presents the constraints of the style, next shows an example program, and then gives a detailed explanation of the code. Most chapters also have sections focusing on the use of the style in systems design as well as sections describing the historical context in which the programming style emerged.
The Children's Machine: Rethinking School In The Age Of The Computer
Seymour Papert - 1993
In The Children's Machine he now looks back over a decade during which American schools acquired more than three million computers and assesses progress and resistance to progress.
Black Box Thinking: Why Some People Never Learn from Their Mistakes - But Some Do
Matthew Syed - 2015
Every aircraft is equipped with an almost indestructible black box. When there is an accident, the box is opened, the data is analyzed, and the reason for the accident excavated. This ensures that procedures are adapted so that the same mistake doesn’t happen again. With this method, the industry has created an astonishing safety record.For pilots working in a safety-critical industry, getting it wrong can have deadly consequences. But most of us have a relationship with failure that impedes progress, halts innovation, and damages our lives. We don’t acknowledge it or learn from it —though we often think we do.Moving from anthropology to psychology and from history to complexity theory, Matthew Syed explains why even when we think we have 20/20 hindsight, our vision’s still fuzzy. He offers a radical new idea: that the most important determinant of success in any field, whether sports, business, or life, is an acknowledgment of failure and a willingness to engage with it. This is how we learn, progress and excel. This approach explains everything from biological evolution and the efficiency of markets to the success of the Mercedes F1 team and the mindset of David Beckham.Using a cornucopia of interviews, gripping stories, and sharp-edged science, Syed explores the intimate relationship between failure and success, and shows why we need to transport black box thinking into our own lives. If we wish to unleash our potential, we must diagnose and break free of our failures. Part manifesto for change, part intellectual adventure, this groundbreaking book reveals how to do both.
AWS Lambda: A Guide to Serverless Microservices
Matthew Fuller - 2016
Lambda enables users to develop code that executes in response to events - API calls, file uploads, schedules, etc - and upload it without worrying about managing traditional server metrics such as disk space, memory, or CPU usage. With its "per execution" cost model, Lambda can enable organizations to save hundreds or thousands of dollars on computing costs. With in-depth walkthroughs, large screenshots, and complete code samples, the reader is guided through the step-by-step process of creating new functions, responding to infrastructure events, developing API backends, executing code at specified intervals, and much more. Introduction to AWS Computing Evolution of the Computing Workload Lambda Background The Internals The Basics Functions Languages Resource Allocation Getting Set Up Hello World Uploading the Function Working with Events AWS Events Custom Events The Context Object Properties Methods Roles and Permissions Policies Trust Relationships Console Popups Cross Account Access Dependencies and Resources Node Modules OS Dependencies OS Resources OS Commands Logging Searching Logs Testing Your Function Lambda Console Tests Third-Party Testing Libraries Simulating Context Hello S3 Object The Bucket The Role The Code The Event The Trigger Testing When Lambda Isn’t the Answer Host Access Fine-Tuned Configuration Security Long-Running Tasks Where Lambda Excels AWS Event-Driven Tasks Scheduled Events (Cron) Offloading Heavy Processing API Endpoints Infrequently Used Services Real-World Use Cases S3 Image Processing Shutting Down Untagged Instances Triggering CodeDeploy with New S3 Uploads Processing Inbound Email Enforcing Security Policies Detecting Expiring Certificates Utilizing the AWS API Execution Environment The Code Pipeline Cold vs. Hot Execution What is Saved in Memory Scaling and Container Reuse From Development to Deployment Application Design Development Patterns Testing Deployment Monitoring Versioning and Aliasing Costs Short Executions Long-Running Processes High-Memory Applications Free Tier Calculating Pricing CloudFormation Reusable Template with Minimum Permissions Cross Account Access CloudWatch Alerts AWS API Gateway API Gateway Event Creating the Lambda Function Creating a New API, Resource, and Method Initial Configuration Mapping Templates Adding a Query String Using HTTP Request Information Within Lambda Deploying the API Additional Use Cases Lambda Competitors Iron.io StackHut WebTask.io Existing Cloud Providers The Future of Lambda More Resources Conclusion
The Clean Coder: A Code of Conduct for Professional Programmers
Robert C. Martin - 2011
They treat it as a craft. They are professionals. In
The Clean Coder: A Code of Conduct for Professional Programmers,
legendary software expert Robert C. Martin introduces the disciplines, techniques, tools, and practices of true software craftsmanship. This book is packed with practical advice-about everything from estimating and coding to refactoring and testing. It covers much more than technique: It is about attitude. Martin shows how to approach software development with honor, self-respect, and pride; work well and work clean; communicate and estimate faithfully; face difficult decisions with clarity and honesty; and understand that deep knowledge comes with a responsibility to act. Readers will learn What it means to behave as a true software craftsman 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.
The Art of Software Testing
Glenford J. Myers - 1979
You'll find the latest methodologies for the design of effective test cases, including information on psychological and economic principles, managerial aspects, test tools, high-order testing, code inspections, and debugging. Accessible, comprehensive, and always practical, this edition provides the key information you need to test successfully, whether a novice or a working programmer. Buy your copy today and end up with fewer bugs tomorrow.
Sketching User Experiences: Getting the Design Right and the Right Design
Bill Buxton - 2007
So while the focus is on design, the approach is holistic. Hence, the book speaks to designers, usability specialists, the HCI community, product managers, and business executives. There is an emphasis on balancing the back-end concern with usability and engineering excellence (getting the design right) with an up-front investment in sketching and ideation (getting the right design). Overall, the objective is to build the notion of informed design: molding emerging technology into a form that serves our society and reflects its values.Grounded in both practice and scientific research, Bill Buxton s engaging work aims to spark the imagination while encouraging the use of new techniques, breathing new life into user experience design. Covers sketching and early prototyping design methods suitable for dynamic product capabilities: cell phones that communicate with each other and other embedded systems, "smart" appliances, and things you only imagine in your dreamsThorough coverage of the design sketching method which helps easily build experience prototypes-without the effort of engineering prototypes which are difficult to abandonReaches out to a range of designers, including user interface designers, industrial designers, software engineers, usability engineers, product managers, and othersFull of case studies, examples, exercises, and projects, and access to video clips that demonstrate the principles and methods"
UNIX and Linux System Administration Handbook
Evi Nemeth - 2010
This is one of those cases. The UNIX System Administration Handbook is one of the few books we ever measured ourselves against." -From the Foreword by Tim O'Reilly, founder of O'Reilly Media "This book is fun and functional as a desktop reference. If you use UNIX and Linux systems, you need this book in your short-reach library. It covers a bit of the systems' history but doesn't bloviate. It's just straightfoward information delivered in colorful and memorable fashion." -Jason A. Nunnelley"This is a comprehensive guide to the care and feeding of UNIX and Linux systems. The authors present the facts along with seasoned advice and real-world examples. Their perspective on the variations among systems is valuable for anyone who runs a heterogeneous computing facility." -Pat Parseghian The twentieth anniversary edition of the world's best-selling UNIX system administration book has been made even better by adding coverage of the leading Linux distributions: Ubuntu, openSUSE, and RHEL. This book approaches system administration in a practical way and is an invaluable reference for both new administrators and experienced professionals. It details best practices for every facet of system administration, including storage management, network design and administration, email, web hosting, scripting, software configuration management, performance analysis, Windows interoperability, virtualization, DNS, security, management of IT service organizations, and much more. UNIX(R) and Linux(R) System Administration Handbook, Fourth Edition, reflects the current versions of these operating systems: Ubuntu(R) LinuxopenSUSE(R) LinuxRed Hat(R) Enterprise Linux(R)Oracle America(R) Solaris(TM) (formerly Sun Solaris)HP HP-UX(R)IBM AIX(R)
The Art of Computer Programming, Volume 1: Fundamental Algorithms
Donald Ervin Knuth - 1973
-Byte, September 1995 I can't begin to tell you how many pleasurable hours of study and recreation they have afforded me! I have pored over them in cars, restaurants, at work, at home... and even at a Little League game when my son wasn't in the line-up. -Charles Long If you think you're a really good programmer... read [Knuth's] Art of Computer Programming... You should definitely send me a resume if you can read the whole thing. -Bill Gates It's always a pleasure when a problem is hard enough that you have to get the Knuths off the shelf. I find that merely opening one has a very useful terrorizing effect on computers. -Jonathan Laventhol This first volume in the series begins with basic programming concepts and techniques, then focuses more particularly on information structures-the representation of information inside a computer, the structural relationships between data elements and how to deal with them efficiently. Elementary applications are given to simulation, numerical methods, symbolic computing, software and system design. Dozens of simple and important algorithms and techniques have been added to those of the previous edition. The section on mathematical preliminaries has been extensively revised to match present trends in research. Ebook (PDF version) produced by Mathematical Sciences Publishers (MSP), http: //msp.org
Smarter Faster Better: The Secrets of Being Productive in Life and Business
Charles Duhigg - 2016
A new book that explores the science of productivity, and why, in today’s world, managing how you think—rather than what you think—can transform your life.
Gray Hat Python: Python Programming for Hackers and Reverse Engineers
Justin Seitz - 2008
But until now, there has been no real manual on how to use Python for a variety of hacking tasks. You had to dig through forum posts and man pages, endlessly tweaking your own code to get everything working. Not anymore.Gray Hat Python explains the concepts behind hacking tools and techniques like debuggers, trojans, fuzzers, and emulators. But author Justin Seitz goes beyond theory, showing you how to harness existing Python-based security tools - and how to build your own when the pre-built ones won't cut it.You'll learn how to:Automate tedious reversing and security tasks Design and program your own debugger Learn how to fuzz Windows drivers and create powerful fuzzers from scratch Have fun with code and library injection, soft and hard hooking techniques, and other software trickery Sniff secure traffic out of an encrypted web browser session Use PyDBG, Immunity Debugger, Sulley, IDAPython, PyEMU, and more The world's best hackers are using Python to do their handiwork. Shouldn't you?
The First 90 Days: Critical Success Strategies for New Leaders at All Levels
Michael D. Watkins - 2003
In this updated and expanded 10th anniversary edition, internationally known leadership transition expert Michael D. Watkins gives you the keys to successfully negotiating your next move—whether you’re onboarding into a new company, being promoted internally, or embarking on an international assignment.In The First 90 Days, Watkins outlines proven strategies that will dramatically shorten the time it takes to reach what he calls the "breakeven point" when your organization needs you as much as you need the job. This new edition includes a substantial new preface by the author on the new definition of a career as a series of transitions; and notes the growing need for effective and repeatable skills for moving through these changes. As well, updated statistics and new tools make this book more reader-friendly and useful than ever.As hundreds of thousands of readers already know, The First 90 Days is a road map for taking charge quickly and effectively during critical career transition periods—whether you are a first-time manager, a mid-career professional on your way up, or a newly minted CEO.
How Successful People Think: Change Your Thinking, Change Your Life
John C. Maxwell - 2003
America's leadership expert John C. Maxwell will teach you how to be more creative and when to question popular thinking. You'll learn how to capture the big picture while focusing your thinking. You'll find out how to tap into your creative potential, develop shared ideas, and derive lessons from the past to better understand the future. With these eleven keys to more effective thinking, you'll clearly see the path to personal success.The 11 keys to successful thinking include:Big-Picture Thinking - seeing the world beyond your own needs and how that leads to great ideasFocused Thinking - removing mental clutter and distractions to realize your full potentialCreative Thinking - thinking in unique ways and making breakthroughsShared Thinking - working with others to compound resultsReflective Thinking - looking at the past to gain a better understanding of the future.