Clean Code: A Handbook of Agile Software Craftsmanship


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

The Instant Physicist: An Illustrated Guide


Richard A. Muller - 2010
    Muller demonstrated in his recent bestseller, Physics for Future Presidents, that he has a unique talent for delivering the “aha” moment—making difficult topics accessible. In The Instant Physicist he shows his ability to entertain, too, by presenting the best of the scientific curiosities he has assembled over his distinguished career. Assisted by award-winning cartoonist Joey Manfre, who has created an original color cartoon for each “physics bite,” Muller will have readers chuckling while they’re absorbing more science than they ever thought possible. From the surprising (chocolate has more energy in it than TNT) to the scary (even kids can make a bomb), this book contains a revelation on every page. Once finished with this page-turner, readers will be the stars of their next cocktail party.The book consists of a color cartoon on each right-hand page and explanatory text on the left.

NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence


Pramod J. Sadalage - 2012
    Advocates of NoSQL databases claim they can be used to build systems that are more performant, scale better, and are easier to program." ""NoSQL Distilled" is a concise but thorough introduction to this rapidly emerging technology. Pramod J. Sadalage and Martin Fowler explain how NoSQL databases work and the ways that they may be a superior alternative to a traditional RDBMS. The authors provide a fast-paced guide to the concepts you need to know in order to evaluate whether NoSQL databases are right for your needs and, if so, which technologies you should explore further. The first part of the book concentrates on core concepts, including schemaless data models, aggregates, new distribution models, the CAP theorem, and map-reduce. In the second part, the authors explore architectural and design issues associated with implementing NoSQL. They also present realistic use cases that demonstrate NoSQL databases at work and feature representative examples using Riak, MongoDB, Cassandra, and Neo4j. In addition, by drawing on Pramod Sadalage's pioneering work, "NoSQL Distilled" shows how to implement evolutionary design with schema migration: an essential technique for applying NoSQL databases. The book concludes by describing how NoSQL is ushering in a new age of Polyglot Persistence, where multiple data-storage worlds coexist, and architects can choose the technology best optimized for each type of data access.

Click Here to Kill Everybody: Security and Survival in a Hyper-connected World


Bruce Schneier - 2019
    Although this computerized future, often called the Internet of Things, carries enormous potential, best- selling author Bruce Schneier argues that catastrophe awaits in its new vulnerabilities and dangers. Forget data theft; cutting- edge digital attackers can now literally crash your car, pacemaker, and home security system, as well as everyone else’s.In Click Here to Kill Everybody, Schneier “sets out detailed solutions that should be required reading for politicians across the world” (Financial Times). From principles for a more resilient Internet of Things to a recipe for sane government oversight, Schneier’s vision is required reading for anyone invested in human flourishing.“Sober, lucid and often wise in diagnosing how the security challenges posed by the expanding Internet came about, and in proposing what should (but probably won’t) be done about them.” — Nature

The Secret Project


Jonah Winter - 2017
    They work hard, surrounded by top security and sworn to secrecy, until finally they take their creation far out into the desert to test it, and afterward the world will never be the same.

Learn You a Haskell for Great Good!


Miran Lipovača - 2011
    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.

Pinpoint: How GPS is Changing Technology, Culture, and Our Minds


Greg Milner - 2016
    Even as it guides us across town, GPS helps land planes, route mobile calls, anticipate earthquakes, predict weather, locate oil deposits, measure neutrinos, grow our food, and regulate global finance. It is as ubiquitous and essential as another Cold War technology, the Internet. In Pinpoint, Greg Milner takes us on a fascinating tour of a hidden system that touches almost every aspect of our modern life.While GPS has brought us breathtakingly accurate information about our planetary environment and physical space, it has also created new forms of human behavior. We have let it saturate the world’s systems so completely and so quickly that we are just beginning to confront the possible consequences. A single GPS timing flaw, whether accidental or malicious, could bring down the electrical grid, hijack drones, or halt the world financial system. The use, and potential misuse, of GPS data by government and corporations raise disturbing questions about ethics and privacy. GPS may be altering the nature of human cognition—possibly even rearranging the gray matter in our heads.Pinpoint tells the sweeping story of GPS from its conceptual origins as a bomb guidance system to its presence in almost everything we do. Milner examines the different ways humans have understood physical space, delves into the neuroscience of cognitive maps, and questions GPS’s double-edged effect on our culture. A fascinating and original story of the scientific urge toward precision, Pinpoint offers startling insight into how humans understand their place in the world.

Effective Python: 59 Specific Ways to Write Better Python


Brett Slatkin - 2015
    This makes the book random-access: Items are easy to browse and study in whatever order the reader needs. I will be recommending "Effective Python" to students as an admirably compact source of mainstream advice on a very broad range of topics for the intermediate Python programmer. " Brandon Rhodes, software engineer at Dropbox and chair of PyCon 2016-2017" It s easy to start coding with Python, which is why the language is so popular. However, Python s unique strengths, charms, and expressiveness can be hard to grasp, and there are hidden pitfalls that can easily trip you up. " Effective Python " will help you master a truly Pythonic approach to programming, harnessing Python s full power to write exceptionally robust and well-performing code. Using the concise, scenario-driven style pioneered in Scott Meyers best-selling "Effective C++, " Brett Slatkin brings together 59 Python best practices, tips, and shortcuts, and explains them with realistic code examples. Drawing on years of experience building Python infrastructure at Google, Slatkin uncovers little-known quirks and idioms that powerfully impact code behavior and performance. You ll learn the best way to accomplish key tasks, so you can write code that s easier to understand, maintain, and improve. Key features includeActionable guidelines for all major areas of Python 3.x and 2.x development, with detailed explanations and examples Best practices for writing functions that clarify intention, promote reuse, and avoid bugs Coverage of how to accurately express behaviors with classes and objects Guidance on how to avoid pitfalls with metaclasses and dynamic attributes More efficient approaches to concurrency and parallelism Better techniques and idioms for using Python s built-in modules Tools and best practices for collaborative development Solutions for debugging, testing, and optimization in order to improve quality and performance "

HTML and CSS: Design and Build Websites


Jon Duckett - 2011
    Joining the professional web designers and programmers are new audiences who need to know a little bit of code at work (update a content management system or e-commerce store) and those who want to make their personal blogs more attractive. Many books teaching HTML and CSS are dry and only written for those who want to become programmers, which is why this book takes an entirely new approach. • 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 leisureThis 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!

Hacker's Delight


Henry S. Warren Jr. - 2002
    Aiming to tell the dark secrets of computer arithmetic, this title is suitable for library developers, compiler writers, and lovers of elegant hacks.

Introduction to VLSI Circuits and Systems


John P. Uyemura - 2001
    * Chapter on Verilog HDL allows for rapid start-up. * Illustrates the top-down design procedure used in modern VLSI chip design with an emphasis on variations in the HDL, logic, circuits and layout.

Introduction to Mathematical Thinking


Keith Devlin - 2012
    This is not the same as “doing math.” The latter usually involves the application of formulas, procedures, and symbolic manipulations; mathematical thinking is a powerful way of thinking about things in the world -- logically, analytically, quantitatively, and with precision. It is not a natural way of thinking, but it can be learned. Mathematicians, scientists, and engineers need to “do math,” and it takes many years of college-level education to learn all that is required. Mathematical thinking is valuable to everyone, and can be mastered in about six weeks by anyone who has completed high school mathematics. Mathematical thinking does not have to be about mathematics at all, but parts of mathematics provide the ideal target domain to learn how to think that way, and that is the approach taken by this short but valuable book. The book is written primarily for first and second year students of science, technology, engineering, and mathematics (STEM) at colleges and universities, and for high school students intending to study a STEM subject at university. Many students encounter difficulty going from high school math to college-level mathematics. Even if they did well at math in school, most are knocked off course for a while by the shift in emphasis, from the K-12 focus on mastering procedures to the “mathematical thinking” characteristic of much university mathematics. Though the majority survive the transition, many do not. To help them make the shift, colleges and universities often have a “transition course.” This book could serve as a textbook or a supplementary source for such a course. Because of the widespread applicability of mathematical thinking, however, the book has been kept short and written in an engaging style, to make it accessible to anyone who seeks to extend and improve their analytic thinking skills. Going beyond a basic grasp of analytic thinking that everyone can benefit from, the STEM student who truly masters mathematical thinking will find that college-level mathematics goes from being confusing, frustrating, and at times seemingly impossible, to making sense and being hard but doable. Dr. Keith Devlin is a professional mathematician at Stanford University and the author of 31 previous books and over 80 research papers. His books have earned him many awards, including the Pythagoras Prize, the Carl Sagan Award, and the Joint Policy Board for Mathematics Communications Award. He is known to millions of NPR listeners as “the Math Guy” on Weekend Edition with Scott Simon. He writes a popular monthly blog “Devlin’s Angle” for the Mathematical Association of America, another blog under the name “profkeithdevlin”, and also blogs on various topics for the Huffington Post.

How to read and do proofs


Daniel Solow - 1982
    Shows how any proof can be understood as a sequence of techniques. Covers the full range of techniques used in proofs, such as the contrapositive, induction, and proof by contradiction. Explains how to identify which techniques are used and how they are applied in the specific problem. Illustrates how to read written proofs with many step-by-step examples. Includes new, expanded appendices related to discrete mathematics, linear algebra, modern algebra and real analysis.

The Telephone Gambit: Chasing Alexander Graham Bell's Secret


Seth Shulman - 2008
    Delving further, Shulman unearthed the surprising story behind the invention of the telephone: a tale of romance, corruption, and unchecked ambition. Bell furtively—and illegally—copied part of Elisha Gray’s invention in the race to secure what would become the most valuable U.S. patent ever issued. And afterward, as Bell’s device led to the world’s largest monopoly, the American Telephone and Telegraph Company, he hid his invention’s illicit beginnings. In The Telephone Gambit, Shulman challenges the reputation of an icon of invention, rocks the foundation of a corporate behemoth, and offers a probing meditation on how little we know about our own history.

Explaining Physics: GCSE Edition


Stephen Pople - 1987
    "Explaining Physics" emphasizes the applications and social effects of physics, and extends its treatment of energy and electronics. The features are: introductory page to each unit to bring out the relevance of the material to everyday life; simple questions at the end of each unit to consolidate learning; and helpful revision summary.