Books

Quantum Computing Explained

David McMahon

This book takes quantum computing out of the realm of theoretical physics and teaches the fundamentals of the field to computer scientists, programmers, electrical engineers, mathematicians and chemists. Many of these individuals have not had the training in quantum theory. This self-contained text teaches the necessary tools and presents the topic in a conversational for the non-physicist. This is NOT a “for dummies” book. The book has a large number of solved examples and gives the reader similar problems to work on to reinforce the material.

Practical Statistics for Data Scientists

Peter Bruce and Andrew Bruce

Statistical methods are a key part of of data science, yet very few data scientists have any formal statistics training. Courses and books on basic statistics rarely cover the topic from a data science perspective. This practical guide explains how to apply various statistical methods to data science, tells you how to avoid their misuse and gives you advice on what’s important and what’s not. 
Many data science resources incorporate statistical methods but lack a deeper statistical perspective. If youíre familiar with the R programming language and have some exposure to statistics, this quick reference bridges the gap in an accessible, readable format. 
With this book, youíll learn: 

Why exploratory data analysis is a key preliminary step in data science 
How random sampling can reduce bias and yield a higher quality dataset, even with big data 
How the principles of experimental design yield definitive answers to questions 
How to use regression to estimate outcomes and detect anomalies 
Key classification techniques for predicting which categories a record belongs to 
Statistical machine learning methods that ìlearnî from data 
Unsupervised learning methods for extracting meaning from unlabeled data 

R for Data Science

Wickham and Grolemund

Learn how to use R to turn raw data into insight, knowledge and understanding. This book introduces you to R, RStudio and the tidyverse, a collection of R packages designed to work together to make data science fast, fluent and fun. Suitable for readers with no previous programming experience, R for Data Science is designed to get you doing data science as quickly as possible. 
Authors Hadley Wickham and Garrett Grolemund guide you through the steps of importing, wrangling, exploring and modeling your data and communicating the results. Youíll get a complete, big-picture understanding of the data science cycle, along with basic tools you need to manage the details. Each section of the book is paired with exercises to help you practice what youíve learned along the way. 
Youíll learn how to: 

Wrangle – transform your datasets into a form convenient for analysis 
Program – learn powerful R tools for solving data problems with greater clarity and ease 
Explore – examine your data, generate hypotheses and quickly test them 
Model – provide a low-dimensional summary that captures true “signals” in your dataset 
Communicate – learn R Markdown for integrating prose, code and results

Professional C# 7 and .NET Core 2.0

Christian Nagel

This essential classic title provides a comprehensive foundation in the C# programming language and the frameworks it lives in. Now in its 8th edition, you’ll find all the very latest C# 7.1 and .NET 4.7 features here, along with four brand new chapters on Microsoft’s lightweight, cross-platform framework, .NET Core, up to and including .NET Core 2.0. Coverage of ASP.NET Core, Entity Framework (EF) Core, and more sits alongside the latest updates to .NET, including Windows Presentation Foundation (WPF), Windows Communication Foundation (WCF), and ASP.NET MVC.

Programming Pearls

Jon Bentley

In this revision, the first in 14 years, Bentley has substantially updated his essay to reflect current programming methods and environments. In addition, there are three new essays on (1) testing, debugging and timing (2) set representations and (3) string problems. All he original programs have been rewritten and an equal amount of new code has been generated. Implementations of all the programs, in C or C++, are now available on the Web. What remains the same in this new edition is Bentley’s focus on the hard core of programming and his delivery of workable solutions to those problems. ‘Whether you are new to Bentley’s classic or are revisiting his work for some fresh insight, the book is sure to make your own list of favorites.

Fluent Python

Luciano Ramalho

Fluent Python: Clear, Concise, and Effective Programming by [Ramalho, Luciano]

Python’s simplicity lets you become productive quickly, but this often means you aren’t using everything it has to offer. With this hands-on guide, you’ll learn how to write effective, idiomatic Python code by leveraging its best—and possibly most neglected—features. Author Luciano Ramalho takes you through Python’s core language features and libraries, and shows you how to make your code shorter, faster, and more readable at the same time.

Many experienced programmers try to bend Python to fit patterns they learned from other languages, and never discover Python features outside of their experience. With this book, those Python programmers will thoroughly learn how to become proficient in Python 3.

Clean Code

Robert Martin

Even bad code can function. 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.

The Algorithm Design Manual

steven skiena

This newly expanded and updated second edition of the best-selling classic continues to take the “mystery” out of designing algorithms, and analyzing their efficacy and efficiency. Expanding on the first edition, the book now serves as the primary textbook of choice for algorithm design courses while maintaining its status as the premier practical reference guide to algorithms for programmers, researchers, and students.

The reader-friendly Algorithm Design Manual provides straightforward access to combinatorial algorithms technology, stressing design over analysis. The first part, Techniques, provides accessible instruction on methods for designing and analyzing computer algorithms. The second part, Resources, is intended for browsing and reference, and comprises the catalog of algorithmic resources, implementations and an extensive bibliography.

The Passionate Programmer

chad fowler

The Passionate Programmer: Creating a Remarkable Career in Software Development (Pragmatic Life) by [Fowler, Chad]

Success in today’s IT environment requires you to view your career as a business endeavor. In this book, you’ll learn how to become an entrepreneur, driving your career in the direction of your choosing. You’ll learn how to build your software development career step by step, following the same path that you would follow if you were building, marketing, and selling a product. After all, your skills themselves are a product.

The choices you make about which technologies to focus on and which business domains to master have at least as much impact on your success as your technical knowledge itself–don’t let those choices be accidental. We’ll walk through all aspects of the decision-making process, so you can ensure that you’re investing your time and energy in the right areas.

The Pragmatic Programmer

andy hunt, dave thomas

Straight from the programming trenches, The Pragmatic Programmer cuts through the increasing specialization and technicalities of modern software development to examine the core process–taking a requirement and producing working, maintainable code that delights its users. It covers topics ranging from personal responsibility and career development to architectural techniques for keeping your code flexible and easy to adapt and reuse. Read this book, and youll learn how to *Fight software rot; *Avoid the trap of duplicating knowledge; *Write flexible, dynamic, and adaptable code; *Avoid programming by coincidence; *Bullet-proof your code with contracts, assertions, and exceptions; *Capture real requirements; *Test ruthlessly and effectively; *Delight your users; *Build teams of pragmatic programmers; and *Make your developments more precise with automation. Written as a series of self-contained sections and filled with entertaining anecdotes, thoughtful examples, and interesting analogies, The Pragmatic Programmer illustrates the best practices and major pitfalls of many different aspects of software development.