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.

Types and Programming Languages


Benjamin C. Pierce - 2002
    The study of type systems--and of programming languages from a type-theoretic perspective--has important applications in software engineering, language design, high-performance compilers, and security.This text provides a comprehensive introduction both to type systems in computer science and to the basic theory of programming languages. The approach is pragmatic and operational; each new concept is motivated by programming examples and the more theoretical sections are driven by the needs of implementations. Each chapter is accompanied by numerous exercises and solutions, as well as a running implementation, available via the Web. Dependencies between chapters are explicitly identified, allowing readers to choose a variety of paths through the material.The core topics include the untyped lambda-calculus, simple type systems, type reconstruction, universal and existential polymorphism, subtyping, bounded quantification, recursive types, kinds, and type operators. Extended case studies develop a variety of approaches to modeling the features of object-oriented languages.

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 "

Temporary Insanity


Jay Johnstone - 1985
    Johnstone, an outfielder and pinch hitter for the Dodgers, Cubs, Padres, Yankees, Phillies, A's, and White Sox shares humorous stories about his teammates and career.

Access 2010: The Missing Manual


Matthew MacDonald - 2010
    With this book’s easy step-by-step process, you’ll quickly learn how to build and maintain a complete Access database, using Access 2013’s new, simpler user interface and templates. You also get practices and tips from the pros for good database design—ideal whether you’re using Access for school, business, or at home.The important stuff you need to know:Build a database with ease. Store information to track numbers, products, documents, and more.Customize the interface. Build your own forms to make data entry a snap.Find what you need fast. Search, sort, and summarize huge amounts of information.Put your data to use. Turn raw info into printed reports with attractive formatting.Share your data. Collaborate online with SharePoint and the Access web database.Dive into Access programming. Get tricks and techniques to automate common tasks.Create rich data connections. Build dynamic links with SQL Server, SharePoint, and other systems.

Linear Algebra and Its Applications


Gilbert Strang - 1976
    While the mathematics is there, the effort is not all concentrated on proofs. Strang's emphasis is on understanding. He explains concepts, rather than deduces. This book is written in an informal and personal style and teaches real mathematics. The gears change in Chapter 2 as students reach the introduction of vector spaces. Throughout the book, the theory is motivated and reinforced by genuine applications, allowing pure mathematicians to teach applied mathematics.

Elementary Solid State Physics: Principles and Applications


M. Ali Omar - 1975
    I also hope that it will serve as a useful reference too for the many workers engaged in one type of solid state research activity or another, who may be without formal training in the subject.

Systems Analysis and Design


Alan Dennis - 2002
    Building on their experience as professional systems analysts and award-winning teachers, authors Dennis, Wixom, and Roth capture the experience of developing and analyzing systems in a way that students can understand and apply.With Systems Analysis and Design, 4th edition , students will leave the course with experience that is a rich foundation for further work as a systems analyst.

Data Science For Dummies


Lillian Pierson - 2014
    Data Science For Dummies is the perfect starting point for IT professionals and students interested in making sense of their organization’s massive data sets and applying their findings to real-world business scenarios. From uncovering rich data sources to managing large amounts of data within hardware and software limitations, ensuring consistency in reporting, merging various data sources, and beyond, you’ll develop the know-how you need to effectively interpret data and tell a story that can be understood by anyone in your organization. Provides a background in data science fundamentals before moving on to working with relational databases and unstructured data and preparing your data for analysis Details different data visualization techniques that can be used to showcase and summarize your data Explains both supervised and unsupervised machine learning, including regression, model validation, and clustering techniques Includes coverage of big data processing tools like MapReduce, Hadoop, Dremel, Storm, and Spark It’s a big, big data world out there – let Data Science For Dummies help you harness its power and gain a competitive edge for your organization.

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.

One Last Strike


Tony La Russa - 2012
    Down ten and a half games with little more than a month to play, the Cardinals had long been ruled out as serious postseason contenders. Yet in the face of those steep odds, this team mounted one of the most dramatic and impressive comebacks in baseball history, making the playoffs on the night of the final game of the season and going on to win the World Series despite being down to their last strike—twice.Now La Russa gives the inside story behind this astonishing comeback and his remarkable career, explaining how a team with so much against it was able to succeed on baseball's biggest stage. Opening up about the devastating injuries, the bullpen struggles, the crucial games, and the players who made it all possible, he reveals how the team's character shaped its accomplishments, demonstrating how this group came together in good times and in bad to become that rarest of things: a team that actually enjoyed it when the odds were against them.But this story is much more than that of a single season. As La Russa, the third-winningest manager in baseball history, explains, their season was the culmination of a lifetime spent studying the game. Laying bare his often scrutinized and frequently misunderstood approach to managing, he explains his counterintuitive belief in process over result, present moments over statistics, and team unity over individual talent. Along the way he shares the stories from throughout his career that shaped his outlook—from his first days managing the Chicago White Sox to his championship years with the Oakland A's, to his triumphant tenure as St. Louis's longest-serving manager. Setting the record straight on his famously intense style, he explores the vital yet overlooked role that his personal relationships with his players have contributed to his victories, ultimately showing how, in a sport often governed by cold, hard numbers, the secret to his success has been surprisingly human.Speaking candidly about his decision to retire, La Russa discusses the changes that he'd observed both in the game and in himself that told him, despite his success, it was time to hang up his spikes. The end result is a passionate, insightful, and remarkable look at our national pastime that takes you behind the scenes of the comeback that no one thought possible and inside the mind of one of the game's greatest managers.

So You Think You Know Baseball?: A Fan's Guide to the Official Rules


Peter E. Meltzer - 2013
    In So You Think You Know Baseball?, lifelong baseball enthusiast Peter E. Meltzer catalogues every noteworthy baseball rule from the Major League rulebook and illustrates its application with actual plays, from the historical to the contemporary.You can read the book from start to finish or consult it while watching a game to understand the mechanics of a play or how it should be scored. Meltzer analyzes the entire Official Baseball Rules using hundreds of Major League plays involving both plays on the field situations and plays which have involved the official scorer. This is the first book ever written which analyzes the entire rulebook in this fashion and which is based on actual plays.With Meltzer’s unique and thoroughly entertaining guide in hand, which includes a foreword by baseball rules expert Rich Marazzi, you’ll never have to scratch your head over an umpire or scorekeeper’s call again.

Pro Git


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

Guesstimation: Solving the World's Problems on the Back of a Cocktail Napkin


Lawrence Weinstein - 2008
    More and more leading businesses today use estimation questions in interviews to test applicants' abilities to think on their feet. Guesstimation enables anyone with basic math and science skills to estimate virtually anything--quickly--using plausible assumptions and elementary arithmetic.Lawrence Weinstein and John Adam present an eclectic array of estimation problems that range from devilishly simple to quite sophisticated and from serious real-world concerns to downright silly ones. How long would it take a running faucet to fill the inverted dome of the Capitol? What is the total length of all the pickles consumed in the US in one year? What are the relative merits of internal-combustion and electric cars, of coal and nuclear energy? The problems are marvelously diverse, yet the skills to solve them are the same. The authors show how easy it is to derive useful ballpark estimates by breaking complex problems into simpler, more manageable ones--and how there can be many paths to the right answer. The book is written in a question-and-answer format with lots of hints along the way. It includes a handy appendix summarizing the few formulas and basic science concepts needed, and its small size and French-fold design make it conveniently portable. Illustrated with humorous pen-and-ink sketches, Guesstimation will delight popular-math enthusiasts and is ideal for the classroom.

MAKE: Electronics: Learning Through Discovery


Charles Platt - 2008
    I also love the sense of humor. It's very good at disarming the fear. And it's gorgeous. I'll be recommending this book highly." --Tom Igoe, author of Physical Computing and Making Things TalkWant to learn the fundamentals of electronics in a fun, hands-on way? With Make: Electronics, you'll start working on real projects as soon as you crack open the book. Explore all of the key components and essential principles through a series of fascinating experiments. You'll build the circuits first, then learn the theory behind them!Build working devices, from simple to complex You'll start with the basics and then move on to more complicated projects. Go from switching circuits to integrated circuits, and from simple alarms to programmable microcontrollers. Step-by-step instructions and more than 500 full-color photographs and illustrations will help you use -- and understand -- electronics concepts and techniques.Discover by breaking things: experiment with components and learn from failureSet up a tricked-out project space: make a work area at home, equipped with the tools and parts you'll needLearn about key electronic components and their functions within a circuitCreate an intrusion alarm, holiday lights, wearable electronic jewelry, audio processors, a reflex tester, and a combination lockBuild an autonomous robot cart that can sense its environment and avoid obstaclesGet clear, easy-to-understand explanations of what you're doing and why