LogoDevelopment Books Available Online

Dan Carroll Homepage My Portfolio My Github Projects

Collection of Development Books Available to Read Online

This is a simple list of online development books that are available to read online. Also, some books are more of the handbook size. Plus, I have included some tutorials written by book authors. This repository was kicked off by utilizing the Simple Progressive Web App (PWA) template by nikkifurls.

book stack image
Image by Freepik

Python Books | Not Just Kid Stuff | Creating the Web | Web Apps and Frameworks | JavaScript (Ecma Script) | Node.js Books | Java Books | ASP.NET | C and C++ | Databases | Computer Science and the Business of Software Development | Data Science | Toolbox Books | Unix and Linux


Python Book List

Possibly the Best Way to Learn to Code

Back to the Top

The Python Handbook – Learn Python for Beginners

by Flavio Copes, MARCH 10, 2021

The Python Handbook follows the 80/20 rule: learn 80% of the topic in 20% of the time. This book does not try to cover everything under the sun related to Python. It focuses on the core of the language, trying to simplify the more complex topics.

Python for Everybody

Exploring Data Using Python 3
©2016 by Dr. Charles R. Severance

Interactive Textbook: A great place to start in learning the Python programming language, or just to learn to program. More details on the Python programming language than the web2py reference manual.

Python for Everybody - the Book

Details about the book, along with many translations.

Python Succinctly

by Jason Cannon
Published on: January 27, 2016

Python Succintly? Yes! Just the basics. Ideal for a quick brush up or to answer specific questions on Variables and Strings; Numbers, Math, and Comments; Booleans and Conditionals; Functions; Lists; Dictionaries; Tuples; File I/O; and Modules. Great if you need a refresher on one of these topics.

Automate it! - Recipes to upskill your business

©2017 by Chetan Giridhar

Automate it! gives you a great selection of recipes to automate your business processes with Python, and provides a platform for you to understand how Python is useful to make time-consuming and repetitive business tasks more efficient.

Automate the Boring Stuff with Python

©2015 by Al Sweigart

Have fun (Really), learning what you can do with Python,

The Big Book of Small Python Projects

©2021 by Al Sweigart

81 games, puzzles, art, simulations, and other programs designed to be simple enough for beginners to read through their code and get inspiration.

Python Programming Exercises, Gently Explained

©2022 by Al Sweigart

42 programming exercises in this book let you practice what you’ve learned.

The Recursive Book of Recursion

Recursion, Understandable by Humans
©2022 by Al Sweigart

This book teaches the basics of recursion, exposes the ways it’s often poorly taught, and clarifies the fundamental principles behind all recursive algorithms.

Beyond the Basic Stuff with Python

©2020 by Al Sweigart

Bridge the Gap Between Novice and Professional

Cracking Codes with Python

©2018 by Al Sweigart

Teaches complete beginners how to program in the Python programming language.

Invent Your Own Computer Games with Python, 4th Edition

©2016 by Al Sweigart

Teaches programming concepts with example games.

Making Games with Python & Pygame

©2012 by Al Sweigart

Expand your abilities using the Pygame library to make games with graphics, animation, and sound.

Python Game Programming By Example

©2015 by Alejandro Rodas de Paz, Joseph Howse

If you have ever wanted to create casual games in Python and you would like to explore various GUI technologies that this language offers, this is the book for you. This title is intended for beginners to Python with little or no knowledge of game development, and it covers step by step how to build seven different games, from the well-known Space Invaders to a classical 3D platformer.

Rapid GUI Programming with Python and Qt: The Definitive Guide to PyQt Programming

©2015 by Mark Summerfield

With Rapid GUI Programming with Python and Qt you’ll learn how to build efficient GUI applications that run on all major operating systems, including Windows, Mac OS X, Linux, and many versions of Unix, using the same source code for all of them.

Think Python: How to Think Like a Computer Scientist, 2nd Edition

©2016 by Allen B. Downey

If you want to learn how to program, working with Python is an excellent way to start. This hands-on guide takes you through the language a step at a time, beginning with basic programming concepts before moving on to functions, recursion, data structures, and object-oriented design. This second edition and its supporting code have been updated for Python 3.

Data Structures and Information Retrieval in Python

©2022 by Allen B. Downey

An introduction to data structures organized around a motivating example: building a search engine.

Modeling and Simulation in Python

©2023 by Allen B. Downey

An introduction to physical modeling using a computational approach.

Beginning Programming with Python for Dummies

©2014 by John Paul Mueller

Learn Python—the fun and easy way—and get in the programming game today!

Learning to Program with Python

©2011 by Richard L. Halterman

The focus here is on introducing programming techniques and developing good habits. To that end, our approach avoids some of the more esoteric features of Python and concentrates on the programming basics that transfer directly to other imperative programming languages.

Web Scraping with Python: Collecting Data from the Modern Web

©2015 by Ryan Mitchell

Learn web scraping and crawling techniques to access unlimited data from any web source in any format. With this practical guide, you’ll learn how to use Python scripts and web APIs to gather and process data from thousands—or even millions—of web pages at once.

Learning Robotics Using Python

©2015 by Lentin Joseph

Learning Robotics Using Python is an essential guide for creating an autonomous mobile robot using popular robotic software frameworks such as ROS using Python. It also discusses various robot software frameworks and how to go about coding the robot using Python and its framework. It concludes with creating a GUI-based application to control the robot using buttons and slides.

Mastering Django: Core: The Complete Guide to Django 1.8 LT

©2016 by Nigel George

Mastering Django: Core is a completely revised and updated version of the original Django Book, written by Adrian Holovaty and Jacob Kaplan-Moss - the creators of Django. The main goal of this book is to make you a Django expert. By reading this book, you’ll learn the skills needed to develop powerful websites quickly, with code that is clean and easy to maintain. This book is also a programmer’s manual that provides complete coverage of the current Long Term Support (LTS) version of Django. For developers creating applications for commercial and business critical deployments, Mastering Django: Core provides a complete, up-to-date resource for Django 1.8LTS with a stable code-base, security fixes and support out to 2018.

Python Web Development with Django

©2008 by Jeff Forcier

The authors teach Django through in-depth explanations, plus provide extensive sample code supported with images and line-by-line explanations. You’ll discover how Django leverages Python’s development speed and flexibility to help you solve a wide spectrum of Web development problems and learn Django best practices covered nowhere else. You’ll build your first Django application in just minutes and deepen your real-world skills through start-to-finish application projects.

Python and Tkinter Programming

©2000 by John Grayson

Graphical user interfaces for Python programs.


Not Just Kid Stuff

Game Play, and Coding, Is Not Just Kid Stuff

Back to the Top

Coding with Minecraft

by Al Sweigart

Learn to Code by Programming Robots in Minecraft! You’ve mined for diamonds, crafted dozens of tools, and built all sorts of structures—but what if you could program robots to do all of that for you in a fraction of the time?

Scratch 3 Programming Playground

by Al Sweigart

Teaches you how to program in Scratch, the graphical programming language from MIT for ages 8 to 16. Actually, that should be from 8 to 108.

Creating the Web

Maybe everyone should start coding by creating their own web page(s)

Back to the Top

The HTML Handbook – Learn HTML for Beginners

by Flavio Copes, JULY 23, 2019

HTML, a shorthand for Hyper Text Markup Language, is one of the most fundamental building blocks of the Web. This book will help you quickly learn HTML and get familiar with the advanced HTML topics.

Dive into HTML5

by Mark Pilgrim and the HTML5 Doctor web community

Five Things You Should Know About HTML5

The PHP Handbook – Learn PHP for Beginners

by Flavio Copes, JULY 7, 2022

PHP is an incredibly popular programming language. This book is a perfect introduction if you’re new to the language. It’s also perfect if you’ve done “some PHP” in the past and you want to get back to it.

Learning PHP, MySQL, JavaScript, CSS & HTML5, 3rd Edition

©2014 by Robin Nixon

Learn how to build interactive, data-driven websites–even if you don’t have any previous programming experience. If you know how to build static sites with HTML, this popular guide will help you tackle dynamic web programming. You’ll get a thorough grounding in today’s core open source technologies: PHP, MySQL, JavaScript, CSS, and now HTML5.

How to Start a Blog

by Flavio Copes, OCTOBER 11, 2021

What follows is a full-length book on how to create a successful blog. The hard part of blogging is doing it sustainably. How do you blog in such a way that you can publish consistently? How do you become a household name in your field? How do you hold your audience’s attention over time?

How to Create Your First Hugo Blog: a Practical Guide

by Flavio Copes, JANUARY 8, 2020

Hugo is a great tool to use if you want to start a blog.

jQuery Succinctly

by Cody Lindley
Published on: July 7, 2014

jQuery Succinctly was written to express, in short-order, the concepts essential to intermediate and advanced jQuery development. Its purpose is to instill in you, the reader, practices that jQuery developers take as common knowledge. Each chapter contains concepts essential to becoming a seasoned jQuery developer.

jQuery Fundamentals

by Bocoup

jQuery Fundamentals is designed to get you comfortable working through common problems you’ll be called upon to solve using jQuery. To get the most out of this site, you’ll want to read the content and try the various interactive examples. Each chapter will cover a concept and give you a chance to try example code related to the concept.

Is it a book? It has chapters! It operates as a series of interactive tutorials. So have some fun.

Or go read the original book.

jQuery Fundamentals, legacy

by Rebecca Murphey
Copyright © 2012
http://github.com/rmurphey/jqfundamentals

jQuery is fast becoming a must-have skill for front-end developers. The purpose of this book is to provide an overview of the jQuery JavaScript library; when you’re done with the book, you should be able to complete basic tasks using jQuery, and have a solid basis from which to continue your learning. This book was designed as material to be used in a classroom setting, but you may find it useful for individual study.

The CSS Handbook: A Handy Guide to CSS for Developers

by Flavio Copes, APRIL 24, 2019

This article is to help you quickly learn CSS and get familiar with advanced CSS topics.

Learn CSS Layout

the pedantic way
by Mikito Takada

CSS is a system based on rules. I wrote this set of chapters to describe those rules. It’s long-form writing, but not book-length. I don’t think I’d want to write a full book about CSS, but writing about CSS layout has been useful. My approach is pedantic.

DOM Enlightenment

by Cody Lindley

With DOM Enlightenment, you’ll learn how to manipulate HTML more efficiently by scripting the Document Object Model (DOM) without a DOM library.

A quick but complete guide to IndexedDB and storing data in browsers

by Flavio Copes, JUNE 1, 2019

Introduction (Tutorial) to IndexedDB: IndexedDB is one of the storage capabilities introduced into browsers over the years. It’s a key/value store (a noSQL database) considered to be the definitive solution for storing data in browsers.


Web Apps and Frameworks

Back to the Top

Building Front-End Web Apps with Plain JavaScript

by Gerd Wagner
Published on: 2021-06-02

An incremental in-depth tutorial about building front-end web applications with plain JavaScript, not using any third-party library or framework, for theory-underpinned and example-based learning by doing it yourself.

A beginner’s introduction to Webpack

by Flavio Copes, JUNE 13, 2018

Tutorial: Webpack is a tool that lets you compile JavaScript modules. It’s also known as a module bundler. Given a large number of files, it generates a single file (or a few files) that run your app.

web2py Complete Reference Manual, 6th Edition (pre-release).

by Massimo Di Pierro (in English)

I have utilized the web2py framework in numerous projects over the years. It is a great way to learn to create fully functional web applications of any complexity while also learning Python. I totally consumed the fifth edition of this book and am currently delving into the latest (sixth) edition while getting up to speed on a new project. There are differences (updates) to the book and framework, so here I go again.

py4web: the reference Manual py4web Documentation, pdf

by Massimo Di Pierro

PY4WEB is a web framework for rapid development of efficient database driven web applications. It is an evolution of the popular web2py framework, but much faster and slicker. Its internal design has been much simplified compared to web2py.

PY4WEB can be seen as a competitor of other frameworks like Django or Flask, and it can indeed serve the same purpose. Yet PY4WEB aims to provide a larger feature set out of the box and to reduce the development time of new apps.

Single page apps in depth

a.k.a Mixu’s single page app book
by Mikito Takada

This free book is what I wanted when I started working with single page apps. It’s not an API reference on a particular framework, rather, the focus is on discussing patterns, implementation choices and decent practices. (comment by the author)

The Vue Handbook: a thorough introduction to Vue.js

by Flavio Copes, JULY 5, 2018

Vue is a very popular JavaScript front-end framework, one that’s experiencing a huge amount of growth. It is simple, tiny (~24KB), and very performant. It feels different from all the other JavaScript front-end frameworks and view libraries. Let’s find out why.

The React Handbook – Learn React for Beginners

by Flavio Copes, JANUARY 8, 2019

React is a JavaScript library that aims to simplify development of visual interfaces. The contents of this book will help you learn the basics of React.

React for Beginners – A React.js Handbook for Front End Developers

by Flavio Copes, NOVEMBER 13, 2020

React is one of the most popular JavaScript frameworks ever created, and I believe that it’s one of the best tools out there. The goal of this handbook is to provide a starter guide to learning React.

The Next.js Handbook – Learn Next.js for Beginners

by Flavio Copes, NOVEMBER 19, 2019

“I wrote this tutorial to help you quickly learn Next.js and get familiar with how it works. It’s ideal for you if you have zero to little knowledge of Next.js, you have used React in the past, and you are looking forward to diving more into the React ecosystem, in particular server-side rendering. I find Next.js is an awesome tool to create Web Applications, and at the end of this post I hope you’ll be as excited about it as I am. And I hope it will help you learn Next.js!” - Flavio Copes

The Svelte Handbook – Learn Svelte for Beginners

by Flavio Copes, OCTOBER 22, 2019

I wrote this book to help you quickly learn Svelte and get familiar with how it works. The ideal reader of the book has zero knowledge of Svelte, has maybe used Vue or React, but is looking for something more, or a new approach to things. Svelte is very much worth looking into, because it provides a refreshing point of view and several unique features to the Web.


JavaScript (Ecma Script)

Back to the Top

The JavaScript Beginner’s Handbook (2020 Edition)

by Flavio Copes, MARCH 1, 2020

JavaScript is one of the most popular programming languages in the world.

Speaking JavaScript: An In-Depth Guide for Programmers

by Dr. Axel Rauschmayer

This book covers JavaScript up to and including ECMAScript 5. For material on later ECMAScript versions, check out Axel’s other books.

Exploring ES6

by Dr. Axel Rauschmayer

Upgrade to the next version of JavaScript. This book not only tells you how ES6 works, it also tells you why it works the way it does. The most comprehensive book on ECMAScript 6 (ECMAScript 2015).

JavaScript for Impatient Programmers (ES2022 edition)

by Dr. Axel Rauschmayer

This book makes JavaScript less challenging to learn for newcomers, by offering a modern view that is as consistent as possible. Covers all essential features of JavaScript, up to and including ES2022.

ES5 to ESNext — here’s every feature added to JavaScript since 2015

by Flavio Copes, FEBRUARY 13, 2019

This article is meant to help you move from pre-ES6 knowledge of JavaScript and get you quickly up to speed with the most recent advancements of the language. JavaScript today is in the privileged position to be the only language that can run natively in the browser, and is highly integrated and optimized for that.

JavaScript (ES2015+) Enlightenment

by Cody Lindley

The contents of this book are for developers who are working in a codebase using modern React, Vue, or Angular code and find recent JavaScript language updates/proposals to be causing too much indirection. And or, developers who want to drill into memory the latest and most commonly used JavaScript updates.

Eloquent JavaScript, 3rd edition

by Marijn Haverbeke

This is a book about JavaScript, programming, and the wonders of the digital world.

The Modern JavaScript Tutorial

How it’s done now. From the basics to advanced topics with simple, but detailed explanations.

It’s a tutorial! It’s an ebook. Maybe, it’s a comprehensive reference volume on Javascript. Works for me.

The JavaScript Way

by Baptiste Pesquet

Master the language that powers the digital world.

Human JavaScript

by Henrik Joreteg

Build powerfully simple browser apps.

Deep JavaScript: Theory and Techniques

by Dr. Axel Rauschmayer

This book dives deeply into JavaScript:


Node.js Book List

Node.js is an amazing tool for building networking services and applications.

Back to the Top

The definitive Node.js handbook – Learn Node for Beginners

by Flavio Copes, SEPTEMBER 6, 2018

This handbook is a getting started guide to Node.js, the server-side JavaScript runtime environment.

The Express + Node.js Handbook – Learn the Express JavaScript Framework for Beginners (2022 Edition)

by Flavio Copes, NOVEMBER 18, 2022

Express is a Web Framework built upon Node.js. Node.js is an amazing tool for building networking services and applications. Express builds on top of its features to provide easy to use functionality that satisfies the needs of the Web Server use-case. It’s Open Source, free, easy to extend, and very performant.

Shell scripting with Node.js

by Dr. Axel Rauschmayer

This book is about shell scripting with Node.js. You will learn:

Tackling TypeScript

by Dr. Axel Rauschmayer

Part 1 is a quick start for TypeScript that teaches you the essentials quickly. Part 2 digs deeper into the language and covers many important topics in detail. This book is not a reference, it is meant to complement the official TypeScript handbook.

The Deno Handbook: A TypeScript Runtime Tutorial with Code Examples

by Flavio Copes, MAY 12, 2020

In this post I want to get you up to speed with Deno quickly. We’ll compare it with Node.js, and build your first REST API with it. If you are familiar with Node.js, the popular server-side JavaScript ecosystem, then Deno is just like Node. Except deeply improved in many ways. After you use Deno and learn to appreciate its features, Node.js will look like something old.


Java Book List

Java powers a large share of today’s digital world.

Back to the Top

©2019 by Gazihan Alankus, Rogério Theodoro de Brito, Basheer Ahamed Fazal, Vinicius Isola, Miles Obare

Java Fundamentals is designed for tech enthusiasts who are familiar with some programming languages and want a quick introduction to the most important principles of Java.

Java For Dummies, 7th Edition

©2017 by Barry A. Burd

Java is everywhere, runs on almost any computer, and is the engine that drives the coolest applications. Written for anyone who’s ever wanted to tackle programming with Java but never knew quite where to begin, this bestselling guide is your ticket to success! Featuring updates on everything you’ll encounter in Java 9—and brimming with tons of step-by-step instruction—it’s the perfect resource to get you up and running with Java in a jiffy!

Core Java: Volume I—Fundamentals, Tenth Edition

©2016 by Cay S. Horstmann

Foundational coverage of Java 8 language concepts, UI programming, objects, generics, collections, lambda expressions, concurrency, functional programming, and more.

Core Java: Volume II—Advanced Features 10th Edition

©2017 by Cay S. Horstmann

Coverage of Java 8 streams, input and output, XML, databases, annotations, and other advanced topics.

Think Java: How to Think Like a Computer Scientist

©2020 Second Edition by Allen B. Downey & Chris Mayfield
GitHub OctoCat image ThinkJava2 repository on GitHub

Interactive Textbook: An introduction to Java that covers input/output, control structures, object-oriented programming, and other essential topics. Trinket has made many of the examples and exercises in this open-licensed book interactive in collaboration with the authors.

Think Data Structures: Algorithms and Information Retrieval in Java

©2017 by Allen B. Downey

Build your own Web search engine — including a crawler, indexer, and search interface — while learning about data structures and algorithms in Java.

An Introduction to Object-Oriented Programming with Java, 5th Edition

©2009 by C. Thomas Wu

An Introduction to Object-Oriented Programming with Java takes a full-immersion approach to object-oriented programming. Proper object-oriented design practices are emphasized throughout the book. Students learn how to use the standard classes first, then learn to design their own classes.

Thinking in Java, 4th Edition

©2006 by Bruce Eckel

Thinking in Java has earned raves from programmers worldwide for its extraordinary clarity, careful organization, and small, direct programming examples. From the fundamentals of Java syntax to its most advanced features.

Head First Java, 2nd Edition

©2005 by Kathy Sierra, Bert Bates

Head First Java combines puzzles, strong visuals, mysteries, and soul-searching interviews with famous Java objects to engage you in many different ways. It’s fast, it’s fun, and it’s effective. And, despite its playful appearance, Head First Java is serious stuff: a complete introduction to object-oriented programming and Java.

Open Data Structures (in Java)

Interactive web version by Pat Morin

The goal of this project is to free undergraduate computer science students from having to pay for an introductory data structures book. I have decided to implement this goal by treating this book like an Open Source software project. The LATEX source, Java source, and build scripts for the book are available to download from the author’s website and also, more importantly, on a reliable source code management site.

Scala For The Impatient

©2011 by Cay Horstmann

Scala for the Impatient concisely shows developers what Scala can do and how to do it. In this book, Cay Horstmann, the principal author of the international best-selling Core Java™, offers a rapid, code-based introduction that’s completely practical. Horstmann introduces Scala concepts and techniques in “blog-sized” chunks that you can quickly master and apply. Hands-on activities guide you through well-defined stages of competency, from basic to expert.


ASP.NET

Back to the Top

Pro C# 10 with .NET 6, Eleventh Edition

Foundational Principles and Practices in Programming
©2022 by Andrew Troelsen, Phil Japikse

Dive in and discover why this essential classic is a favorite of C# developers worldwide. Gain a solid foundation in object-oriented development techniques, attributes and reflection, generics and collections, and numerous advanced topics not found in other texts (such as CIL opcodes and emitting dynamic assemblies). Pro C# 10 with .NET 6 will build your coding confidence putting C# into practice, and exploring the .NET universe and its vast potential on your own terms.

Pro ASP.NET Core 6, Ninth Edition

Develop Cloud-Ready Web Applications Using MVC, Blazor, and Razor Pages
©2022 by Adam Freeman

Professional developers will produce leaner applications for the ASP.NET Core platform using the guidance in this best-selling book, now in its 9th edition and updated for ASP.NET Core for .NET 6. It contains detailed explanations of the ASP.NET Core platform and the application frameworks it supports. This cornerstone guide puts ASP.NET Core for .NET 6 into context and dives deep into the tools and techniques required to build modern, extensible web applications. New features and capabilities such as MVC, Razor Pages, Blazor Server, and Blazor WebAssembly are covered, along with demonstrations of how they are applied.

Pro ASP.NET Core MVC, Sixth Edition

©2016 by Adam Freeman

Now in its 6th edition, the best selling book on MVC is now updated for ASP.NET Core MVC. It contains detailed explanations of the new Core MVC functionality which enables developers to produce leaner, cloud optimized and mobile-ready applications for the .NET platform. This book puts ASP.NET Core MVC into context and dives deep into the tools and techniques required to build modern, cloud optimized extensible web applications. All the new MVC features are described in detail and the author explains how best to apply them to both new and existing projects.

Beginning ASP.neT 4.5.1 in C# and VB

©2014 by Imar Spaanjaars

In this comprehensive guide to getting started with ASP.NET 4.5.1, best-selling author Imar Spaanjaars provides a firm foundation for coders new to ASP.NET and key insights for those not yet familiar with the important updates in the 4.5.1 release. Readers learn how to build full-featured ASP.NET websites using Visual Studio Express 2013 for Web, Microsoft’s free development tool for ASP.NET web applications. Beginning ASP.NET 4.5.1 guides you through the process of creating a fully functional, database-driven website, from creation of the most basic site structure all the way down to the successful deployment of the website to a production environment.


C and C++

Back to the Top

The C Beginner’s Handbook: Learn C Programming Language basics in just a few hours

by Flavio Copes, MARCH 9, 2020

This handbook does not try to cover everything under the sun related to C. It focuses on the core of the language, trying to simplify the more complex topics. C is probably the most widely known programming language. It is used as the reference language for computer science courses all over the world, and it’s probably the language that people learn the most in school along with Python and Java.

Beginning C, 5th Edition

©2013 by Ivor Horton

Beginning C, 5th Edition teaches you how to program using the widely-available C language. You’ll begin from first-principles and progress through step-by-step examples to become a competent, C-language programmer. All you need are this book and any of the widely available free or commercial C or C++ compilers, and you’ll soon be writing real C programs. C is a foundational language that every programmer ought to know.

C Programming for the Absolute Beginner, 2nd Edition

©2008 by Michael Vine

If you are new to programming with C and are looking for a solid introduction, this is the book for you. Developed by computer science instructors, books in the for the absolute beginner series teach the principles of programming through simple game creation. C is not an easy language to learn, but fortunately the clear explanations, examples, and pictures in this book make learning C easy and fun

C: A Reference Manual, 5th Edition

©2002 by Samuel Harbison, Guy Steele Jr.

This authoritative reference manual provides a complete description of the C language, the run-time libraries, and a style of C programming that emphasizes correctness, portability, and maintainability. The authors describe the C language more clearly and in more detail than in any other book.

C Programming Language, 2nd Edition

©1988 by Brian W. Kernighan, Dennis M. Ritchie

The authors present the complete guide to ANSI standard C language programming. Written by the developers of C, this new version helps readers keep up with the finalized ANSI standard for C while showing how to take advantage of C’s rich set of operators, economy of expression, improved control flow, and data structures. The 2/E has been completely rewritten with additional examples and problem sets to clarify the implementation of difficult language constructs.

A Tour of C++ (2nd Edition)

©2018 by Bjarne Stroustrup

Stroustrup presents the C++ features in the context of the programming styles they support, such as object-oriented and generic programming. His tour is remarkably comprehensive. Coverage begins with the basics, then ranges widely through more advanced topics, including many that are new in C++17, such as move semantics, uniform initialization, lambda expressions, improved containers, random numbers, and concurrency. The tour even covers some extensions being made for C++20, such as concepts and modules, and ends with a discussion of the design and evolution of C++.

Beginning C++ Programming

©2017 by Richard Grimes

The main mission of this book is to make you familiar and comfortable with C++. You will finish the book not only being able to write your own code, but more importantly, you will be able to read other projects. It is only by being able to read others’ code that you will progress from a beginner to an advanced programmer. This book is the first step in that progression.

A Tour of C++

©2014 by Bjarne Stroustrup

In this concise, self-contained guide, Stroustrup covers most major language features and the major standard-library components–not, of course, in great depth, but to a level that gives programmers a meaningful overview of the language, some key examples, and practical help in getting started.

Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C++14

©2015 by Scott Meyers

Coming to grips with C++11 and C++14 is more than a matter of familiarizing yourself with the features they introduce (e.g., auto type declarations, move semantics, lambda expressions, and concurrency support). The challenge is learning to use those features effectively—so that your software is correct, efficient, maintainable, and portable. That’s where this practical book comes in.

Ivor Horton’s Beginning Visual C++ 2013

©2014 by Ivor Horton

Horton’s unique tutorial approach and step-by-step guidance have helped over 100,000 novice programmers learn C++. In Ivor Horton’s Beginning Visual C++ 2013, Horton not only guides you through the fundamentals of the standard C++ language, but also teaches you how C++ is used in the latest Visual Studio 2013 environment. Visual Studio 2013 includes major changes to the IDE and expanded options for C++ coding. Ivor Horton’s Beginning Visual C++ 2013 will teach you the latest techniques to take your Visual C++ coding to an all-new level.

The C++ Programming Language(Fourth Edition)

©2013 by Bjarne Stroustrup

The new C++11 standard allows programmers to express ideas more clearly, simply, and directly, and to write faster, more efficient code. Bjarne Stroustrup, the designer and original implementer of C++, has reorganized, extended, and completely rewritten his definitive reference and tutorial for programmers who want to use C++ most effectively.

Effective C++: 55 Specific Ways to Improve Your Programs and Designs, 3rd Edition

©2008 by Scott Meyers

The book is organized around 55 specific guidelines, each of which describes a way to write better C++. Each is backed by concrete examples. For this third edition, more than half the content is new, including added chapters on managing resources and using templates.

Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library

©2001 by Scott Meyers

Other books describe what’s in the STL. Effective STL shows you how to use it. Each of the book’s 50 guidelines is backed by Meyers’ legendary analysis and incisive examples, so you’ll learn not only what to do, but also when to do it – and why.

Think C/C++

©1999 by Allen B. Downey

An introduction to programming using the C++ programming language.

F# Succinctly

by Robert Pickering

Starting with the classic “Hello World” program and the basics of identifiers, recursion, and operators, and working through to graphics, simulations, and interactive forms, this book is the ideal first step to becoming a fluent F# programmer. F#’s integration with Visual Studio—featuring IntelliSense expression completion and an interactive version of the language for dynamic code evaluation—makes it the go-to functional language of the .NET platform.

Learning Image Processing with OpenCV

©2015 by Gloria Bueno Garcia, Oscar Deniz Suarez, Jose Luis Espinosa Aranda, Jesus Salido Tercero, Ismael Serrano Gracia

If you are a competent C++ programmer and want to learn the tricks of image processing with OpenCV, then this book is for you. A basic understanding of image processing is required.

Think OS: A Brief Introduction to Operating Systems

by Allen B. Downey

An introduction to Operating Systems for programmers using the C programming language.

The Swift Handbook – Learn Swift for Beginners

by Flavio Copes, OCTOBER 24, 2022

The goal of this book is to get you up and running with Swift, starting from zero. It also contains a series of awesome examples and tutorials to expand your Swift and iOS knowledge.

The Go Handbook – Learn Golang for Beginners

by Flavio Copes, OCTOBER 18, 2022

Golang is an awesome, simple, modern, and fast programming language. It’s compiled, open source, and strongly typed. Go was meant to be a replacement for C and C++ codebases. It aims to make some things simpler like concurrency and memory management, with garbage collection.


Databases

Back to the Top

17 ways to speed your SQL queries

by Sean McCown, JAN 15, 2018
InfoWorld : Deep Dive series : SQL unleashed: 17 ways to speed your SQL queries

It’s easy to create database code that slows down query results or ties up the database unnecessarily—unless you follow these tips.

Building Microservices: Designing Fine-Grained Systems

©2015 by Sam Newman

Microservice technologies are moving quickly. Author Sam Newman provides you with a firm grounding in the concepts while diving into current solutions for modeling, integrating, testing, deploying, and monitoring your own autonomous services. You’ll follow a fictional company throughout the book to learn how building a microservice architecture affects a single domain.


Computer Science and the Business of Software Development

Back to the Top

How to Become a Programmer

Everything (Non-Technical) You Need to Know to Start Making Money Writing Code
by Rob Walling

Thank you for supporting this effort to provide battle-tested answers on how to become a programmer. I’ve wanted to write this book for at least three years, and the backlog of questions I received during this time makes this book more valuable than it would have been when I originally envisioned it.

Start Marketing The Day You Start Coding

How to market your startup, live the entrepreneurial mindset, manage your company, retain developers, and become a Micropreneur.
by Rob Walling

The goal of this collection is to breathe new life into articles that have fallen into the archives, and to provide you with a portable, well-formatted, and easy-to-read version of the best content from the first five years of Software by Rob.

My hope is that have the same impact today as the day they were published. And trust me… there’s a lot more where this came from.

Think Like a Programmer: An Introduction to Creative Problem Solving

©2012 by V. Anton Spraul

The real challenge of programming isn’t learning a language’s syntax—it’s learning to creatively solve problems so you can build something great. In this one-of-a-kind text, author V. Anton Spraul breaks down the ways that programmers solve problems and teaches you what other introductory books often ignore: how to Think Like a Programmer.

97 Things Every Programmer Should Know: Collective Wisdom From The Experts

Online at ‘97 Things Every Programmer Should Know’ project

With the 97 short and extremely useful tips for programmers in this book, you’ll expand your skills by adopting new approaches to old problems, learning appropriate best practices, and honing your craft through sound advice.

Object-Oriented vs. Functional Programming: Bridging the Divide Between Opposing Paradigms

©2016 by Richard Warburton

This is a 35 pages monograph discussing the bridging the divide between opposing paradigms.

Foundations of Programming: Building Better Software

by Karl Seguin (2007)

Free e-book on foundations of programming and building better software. Topics covered: Domain Driven Design, Persistence, Dependency Injection, Unit Testing, Object Relational Mappers, Memory and Exceptions.

The Effective Engineer: How to Leverage Your Efforts In Software Engineering to Make a Disproportionate and Meaningful Impact

©2015 by Edmond Lau

The only book designed specifically for today’s software engineers, based on extensive interviews with engineering leaders at top tech companies, and packed with hundreds of techniques to accelerate your career.

The Pragmatic Programmer: Your Journey To Mastery, 20th Anniversary Edition (2nd Edition)

©2020 by David Thomas, Andrew Hunt

The Pragmatic Programmer is one of those rare tech books you’ll read, re-read, and read again over the years. Whether you’re new to the field or an experienced practitioner, you’ll come away with fresh insights each and every time.

The Passionate Programmer: Creating a Remarkable Career in Software Development

©2009 by Chad Fowler

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 Art of Assembly Language, 2nd Edition

©2010 by Randall Hyde

Since 1996, Randall Hyde’s The Art of Assembly Language has provided a comprehensive, plain-English, and patient introduction to assembly for non-assembly programmers. Hyde’s primary teaching tool, High Level Assembler (or HLA), incorporates many of the features found in high-level languages (like C, C++, and Java) to help you quickly grasp basic assembly concepts. HLA lets you write true low-level code while enjoying the benefits of high-level language programming.

Programming from the Ground Up

©2003 by Jonathan Bartlett

This book is not a reference book, it is an introductory book. It is therefore not suitable by itself to learn how to professionally program in x86 assembly language, as some details have been left out to make the learning process smoother. The point of the book is to help the student understand how assembly language and computer programming works, not to be a reference to the subject. Reference information about a particular processor can be obtained by contacting the company which makes it.

Back To Basics: Hype-free Principles for Software Developers

©2016 by Jason Gorman

Software development’s not quite the lawless and anarchic wild frontier people make it out to be. Developers today have seven decades of practical experience of writing software under commercial pressures to draw on, and there are many insights that have been built up over that time that an aspiring young programmer needs to know.

Software Requirements, Third Edition

©2013 by Karl Wiegers and Joy Beatty

Now in its third edition, this classic guide to software requirements engineering has been fully updated with new topics, examples, and guidance. Two leaders in the requirements community have teamed up to deliver a contemporary set of practices covering the full range of requirements development and management activities on software projects.

Software Estimation: Demystifying the Black Art

©2006 by Steve McConnell

A practical guide for software developers and development teams, this book features effective and understandable formulas, procedures, and heuristics to help organizations improve their project cost estimates.

Clean Code: A Handbook of Agile Software Craftsmanship

©2009 by Robert C. 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.

Code Complete: A Practical Handbook of Software Construction, Second Edition

©2004 by Steve McConnell

Widely considered one of the best practical guides to programming, Steve McConnell’s original code complete has been helping developers write better software for more than a decade. Now this classic book has been fully updated and revised with leading-edge practices—and hundreds of new code samples—illustrating the art and science of software construction.

Domain-Driven Design: Tackling Complexity in the Heart of Software

by Eric Evans, August 20, 2003

This is not a book about specific technologies. It offers readers a systematic approach to domain-driven design, presenting an extensive set of design best practices, experience-based techniques, and fundamental principles that facilitate the development of software projects facing complex domains.

Design Patterns: Elements of Reusable Object-Oriented Software

©1995 by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides

Capturing a wealth of experience about the design of object-oriented software, four top-notch designers present a catalog of simple and succinct solutions to commonly occurring design problems.

Patterns of Enterprise Application Architecture

©2003 by Martin Fowler

While architecture is important to all application development, it is particularly critical to the success of an enterprise project, where issues such as performance and concurrent multi-user access are paramount.

Test Driven Development: By Example

©2002 by Kent Beck

Quite simply, test-driven development is meant to eliminate fear in application development. When programming teams buy into TDD, they immediately see positive results. They eliminate the fear involved in their jobs, and are better equipped to tackle the difficult challenges that face them.

Refactoring: Improving the Design of Existing Code (2nd Edition)

©2019 by Martin Fowler

Refactoring, Second Edition, features an updated catalog of refactoring’s and includes JavaScript code examples, as well as new functional examples that demonstrate refactoring without classes.

The Basics of User Experience Design: A UX Design Book by the Interaction Design Foundation

©2018 by Mads Soegaard

If you’re looking to gain an introduction into the world of user experience (UX) design—or maybe even freshen up your knowledge of the field—then this UX design book is the ideal place to start.

A Theory of Fun for Game Design

©2005 by Raph Koster

A Theory of Fun for Game Design is not your typical how-to book. It features a novel way of teaching interactive designers how to create and improve their designs to incorporate the highest degree of fun. As the book shows, designing for fun is all about making interactive products like games highly entertaining, engaging, and addictive. The book’s unique approach of providing a highly visual storyboard approach combined with a narrative on the art and practice of designing for fun is sure to be a hit with game and interactive designers.

Agile Software Development: Principles, Patterns, and Practices

©2003 by Robert Martin

Written by a software developer for software developers, this book is a unique collection of the latest software development methods. The author includes OOD, UML, Design Patterns, Agile and XP methods with a detailed description of a complete software design for reusable programs in C++ and Java. Using a practical, problem-solving approach, it shows how to develop an object-oriented application―from the early stages of analysis, through the low-level design and into the implementation.

Agile Testing: A Practical Guide for Testers and Agile Teams

©2009 by Lisa Crispin, Janet Gregory

In Agile Testing, Crispin and Gregory define agile testing and illustrate the tester’s role with examples from real agile teams. They teach you how to use the agile testing quadrants to identify what testing is needed, who should do it, and what tools might help.

An Introduction to Scenario Testing

Cem Kaner, Florida Tech, June 2003

A scenario test is a test based on a scenario. Scenario testing works best for complex transactions or events, for studying end-to-end delivery of the benefits of the program, for exploring how the program will work in the hands of an experienced user, and for developing more persuasive variations of bugs found using other approaches.

Introduction to Algorithms, 3rd Edition

©2009 by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein

The book covers a broad range of algorithms in depth, yet makes their design and analysis accessible to all levels of readers.

Algorithms

©2019 by Jeff Erickson

Algorithms are the lifeblood of computer science. They are the machines that proofs build and the music that programs play. Their history is as old as mathematics itself. This textbook is a wide-ranging, idiosyncratic treatise on the design and analysis of algorithms, covering several fundamental techniques, with an emphasis on intuition and the problem-solving process. The book includes important classical examples, hundreds of battle-tested exercises, far too many historical digressions, and exaclty four typos.

Algorithm Design

©2006 by Jon Kleinberg, Eva Tardos

Algorithm Design introduces algorithms by looking at the real-world problems that motivate them. The book teaches students a range of design and analysis techniques for problems that arise in computing applications. The text encourages an understanding of the algorithm design process and an appreciation of the role of algorithms in the broader field of computer science.

An Introduction to the Analysis of Algorithms, 2nd Edition

©2009 by Robert Sedgewick, Philippe Flajolet

Despite growing interest, basic information on methods and models for mathematically analyzing algorithms has rarely been directly accessible to practitioners, researchers, or students. An Introduction to the Analysis of Algorithms, Second Edition, organizes and presents that knowledge, fully introducing primary techniques and results in the field.

The Little Book of Semaphores

©2016 by Allen B. Downey

Learn about software synchronization by solving a series of puzzles.

DevOps Bootcamp: The fastest way to learn DevOps

©2017 by Mitesh Soni

Improve your organization’s performance to ensure smooth production of software and services. Learn how Continuous Integration and Continuous Delivery practices can be utilized to cultivate the DevOps culture. A fast-paced guide filled with illustrations and best practices to help you consistently ship quality software.

Practical DevOps: Harness the power of DevOps to boost your skill set and make your IT organization perform better

©2016 by Joakim Verona

After a quick refresher to DevOps and continuous delivery, we quickly move on to looking at how DevOps affects architecture. You’ll create a sample enterprise Java application that you’ll continue to work with through the remaining chapters.

DevOps for Web Development

©2016 by Mitesh Soni

The DevOps culture is growing at a massive rate, as many organizations are adopting it. However, implementing it for web applications is one of the biggest challenges experienced by many developers and admins, which this book will help you overcome using various tools, such as Chef, Docker, and Jenkins.

DevOps for Networking

©2016 by Steven Armstrong

This book aims to show readers network automation processes they could implement in their organizations. It will teach you the fundamentals of DevOps in networking and how to improve DevOps processes and workflows by providing automation in your network. You will be exposed to various networking strategies that are stopping your organization from scaling new projects quickly.

DevOps, DBAs, and DBaaS: Managing Data Platforms to Support Continuous Integration

©2016 by Michael S. Cuppett

Learn how DBAs in a DevOps environment manage data platforms and change requests to support and optimize continuous integration, delivery, testing, and deployment in the application development life cycle.

Learning DevOps - Continuously Deliver Better Software

©2016 by Joakim Verona, Michael Duffy, Paul Swartout

Learn to use some of the most exciting and powerful tools to deliver world-class quality software with continuous delivery and DevOps.

DevOps on the Microsoft Stack

©2016 by Wouter de Kort

This book tells you everything you need to know to help your organization implement DevOps on the Microsoft platform. You will learn how to use Visual Studio, Visual Studio Team Services, and Azure to implement a complete DevOps process in your company. You will learn about Agile Project Management, Continuous Integration, Continuous Delivery, Technical Debt Management, Automatic Testing and Monitoring, and see how all these areas fit together.

DevOps Automation Cookbook

©2015 by Michael Duffy

Over 120 recipes covering key automation techniques through code management and virtualization offered by modern Infrastructure as a Service solutions.

Learning Continuous Integration with Jenkins: A beginner’s guide to implementing Continuous Integration and Continuous Delivery using Jenkins

©2016 by Nikhil Pathania

This book starts off by explaining the concepts of CI and its significance in the Agile world with a whole chapter dedicated to it. Next, you’ll learn to configure and set up Jenkins. You’ll gain a foothold in implementing CI and continuous delivery methods. We dive into the various features offered by Jenkins one by one exploiting them for CI.

Jenkins Essentials

©2015 by Mitesh Soni

If you are a Jenkins novice or beginner with a basic understanding of continuous integration, then this is the book for you. Beginners in Jenkins will get quick hands-on experience and gain the confidence to go ahead and explore the use of Jenkins further.

Continuous Delivery and DevOps: A Quickstart guide

©2012 by Paul Swartout

A practical and engaging guide to help map out, plan and navigate through the journey to successful CD and DevOps adoption.

Don’t Just Roll The Dice: A usefully short guide to software pricing

©2009 by Neil Davidson

This short handbook will provide you with the theory, practical advice and case studies you need to stop yourself from reaching for the dice.

Assembly Language for X86 Processors, 6th Edition

©2010 by Kip R. Irvine

Assembly Language for x86 Processors, 6/e is ideal for undergraduate courses in assembly language programming and introductory courses in computer systems and computer architecture. Written specifically for the Intel/Windows/DOS platform, this complete and fully updated study of assembly language teaches students to write and debug programs at the machine level.

Working Effectively with Legacy Code

©2005 by Michael Feathers

This book provides programmers with the ability to cost effectively handl ecommon legacy code problems without having to go through the hugely expensive task of rewriting all existing code.

Structure and Interpretation of Computer Programs, Second Edition

©1996 by The Massachuses Institute of Technology
by Harold Abelson and Gerald Jay Sussman with Julie Sussman

Structure and Interpretation of Computer Programs has had a dramatic impact on computer science curricula. This 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.

Computer Systems: A Programmer’s Perspective, 3rd Edition

©2016 by Randal Bryant, David O’Hallaron

Computer systems: A Programmer’s Perspective explains the underlying elements common among all computer systems and how they affect general application performance. Written from the programmer’s perspective, this book strives to teach readers how understanding basic elements of computer systems and executing real practice can lead them to create better programs.

Computer Architecture: A Quantitative Approach, 5th Edition

©2012 by John L. Hennessy, David A. Patterson

Computer Architecture: A Quantitative Approach, Fifth Edition, explores the ways that software and technology in the cloud are accessed by digital media, such as cell phones, computers, tablets, and other mobile devices. The book, which became a part of Intel’s 2012 recommended reading list for developers, covers the revolution of mobile computing. It also highlights the two most important factors in architecture today: parallelism and memory hierarchy.

Compilers Principles Techniques and Tools (2nd Edition)

©2007 by Alfred Aho, Jeffrey Ullman, Ravi Sethi, Monica Lam

Compilers: Principles, Techniques and Tools, known to professors, students, and developers worldwide as the “Dragon Book,” is available in a new edition. Every chapter has been completely revised to reflect developments in software engineering, programming languages, and computer architecture that have occurred since 1986, when the last edition published. The authors, recognizing that few readers will ever go on to construct a compiler, retain their focus on the broader set of problems faced in software design and software development.

Operating System Design: The Xinu Approach, Second Edition

©2015 by Douglas Comer

Continuing to follow a logical pattern for system design, Operating System Design: The Xinu Approach, Second Edition removes the mystery from operating system design and consolidates the body of material into a systematic discipline. It presents a hierarchical design paradigm that organizes major operating system components in an orderly, understandable manner.

A Course in Machine Learning

©2017 by Hal Daumé III

CIML is a set of introductory materials that covers most major aspects of modern machine learning (supervised learning, unsupervised learning, large margin methods, probabilistic modeling, learning theory, etc.). It’s focus is on broad applications with a rigorous backbone.

Artificial Intelligence: A Modern Approach, 3rd Edition

©2009 by Stuart Russell, Peter Norvig

Artificial Intelligence: A Modern Approach, 3e offers the most comprehensive, up-to-date introduction to the theory and practice of artificial intelligence. Number one in its field, this textbook is ideal for one or two-semester, undergraduate or graduate-level courses in Artificial Intelligence.

The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition

©1995 by Frederick Brooks Jr.

Few books on software project management have been as influential and timeless as The Mythical Man-Month. With a blend of software engineering facts and thought-provoking opinions, Fred Brooks offers insight for anyone managing complex projects. These essays draw from his experience as project manager for the IBM System/360 computer family and then for OS/360, its massive software system. Now, 20 years after the initial publication of his book, Brooks has revisited his original ideas and added new thoughts and advice, both for readers already familiar with his work and for readers discovering it for the first time.

Introduction to Real Analysis, 4th Edition

©2011 by Robert G. Bartle, Donald R. Sherbert

This text provides the fundamental concepts and techniques of real analysis for students in all of these areas. It helps one develop the ability to think deductively, analyze mathematical situations, and extend ideas to a new context. Like the first three editions, this edition maintains the same spirit and user-friendly approach with additional examples and expansion on Logical Operations and Set Theory.

Elementary Differential Equations, 11th Edition

©2017 by William E. Boyce, Richard C. DiPrima, Douglas B. Meade

Elementary Differential Equations, 11th Edition is written from the viewpoint of the applied mathematician, whose interest in differential equations may sometimes be quite theoretical, sometimes intensely practical, and often somewhere in between. The authors have sought to combine a sound and accurate (but not abstract) exposition of the elementary theory of differential equations with considerable material on methods of solution, analysis, and approximation that have proved useful in a wide variety of applications. While the general structure of the book remains unchanged, some notable changes have been made to improve the clarity and readability of basic material about differential equations and their applications.

Linear Algebra, 4th Edition

©2004 by Stephen H. Friedberg, Arnold J. Insel, Lawrence E. Spence

This top-selling, theorem-proof text presents a careful treatment of the principal topics of linear algebra, and illustrates the power of the subject through a variety of applications. It emphasizes the symbiotic relationship between linear transformations and matrices, but states theorems in the more general infinite-dimensional case where appropriate.

A First Course in Probability, 9th Edition

©2014 by Sheldon Ross

A First Course in Probability, Ninth Edition, features clear and intuitive explanations of the mathematics of probability theory, outstanding problem sets, and a variety of diverse examples and applications. This book is ideal for an upper-level undergraduate or graduate level introduction to probability for math, science, engineering and business students. It assumes a background in elementary calculus.

The Mythical Man Month

©1975 by Addison-Wesley Publishing Company, Inc.
©1972 by Frederick P. Brooks, Jr.

The Mythical Man-Month: Essays on Software Engineering is a book on software engineering and project management by Fred Brooks first published in 1975, with subsequent editions in 1982 and 1995. Its central theme is that adding manpower to a software project that is behind schedule delays it even longer.

Reversing: Secrets of Reverse Engineering

©2005 by Eldad Eilam

Beginning with a basic primer on reverse engineering-including computer internals, operating systems, and assembly language-and then discussing the various applications of reverse engineering, this book provides readers with practical, in-depth techniques for software reverse engineering.


Data Science

The study of data to extract meaningful insights for business.
Or, an interdisciplinary academic field that uses statistics, scientific computing, scientific methods, processes, algorithms and systems to extract or extrapolate knowledge and insights from noisy, structured, and unstructured data.

Back to the Top

Elements of Data Science

Data Science in Python
by Allen B. Downey

An introduction to data science for people with no programming experience.

Think Bayes 2e: Bayesian Statistics in Python

Bayesian Statistics Made Simple by Allen B. Downey

An introduction to Bayesian statistics using computational methods.

Think Stats, 2e: Exploratory Data Analysis

by Allen B. Downey

An introduction to exploratory data analysis.

Astronomical Data in Python

by Allen B. Downey

An introduction to tools and practices for working with astronomical data.

Think DSP: Digital Signal Processing in Python

by Allen B. Downey

An introduction to digital signal processing with applications to sound and image processing.

Think Complexity 2e: Exploring Complexity Science with Python

by Allen B. Downey

An introduction to complexity science, which includes small-world graphs, scale-free networks, cellular automata, fractals and pink noise, self-organized criticality, and agent-based models.


Toolbox Books

Every programmer (developer) needs a toolbox.

Back to the Top

Getting Started with Open Source Development

A book for the community by the community
©2010 by Rachna Kapur, Mario Briggs, Tapas Saha, Ulisses Costa, Pedro Carvalho, Raul F. Chong, Peter Kohlmann

This book is a good starting point for beginners to the open source world. It is specially written to equip students, and open source enthusiasts with the norms and best practices of open source.

A developer’s introduction to GitHub

by Flavio Copes, FEBRUARY 28, 2018

This article is an Intro to GitHub

GitHub is a website that hosts billions of lines of code, and it’s where millions of developers gather every day to collaborate on and report issues with open source software. In short, it’s a platform for software developers, and it’s built around Git.

The complete Git guide

by Flavio Copes, Updated Oct 09 2019

A successful Git branching model

By Vincent Driessen, January 05, 2010

If you are building software that is explicitly versioned, or if you need to support multiple versions of your software in the wild, then git-flow may still be as good of a fit to your team as it has been to people in the last 10 years.

If your team is doing continuous delivery of software, I would suggest to adopt a much simpler workflow (like GitHub flow) instead of trying to shoehorn git-flow into your team.

GitHub flow

Follow GitHub flow to collaborate on projects.

GitHub flow is a lightweight, branch-based workflow. The GitHub flow is useful for everyone, not just developers. For example, here at GitHub, we use GitHub flow for our site policy, documentation, and roadmap.

And Git can be used to track all sorts of organizational, as well as personal, documents including presentations, spreadsheets, etc.

Pro Git, 2nd edition (2014), updated

by Scott Chacon and Ben Straub

Practically everything you need to know about Git for version control. In English, but with many translations.

Learn Version Control with Git

from the makers of Tower

A different take on Git. All online.

How to make your first Pull Request on GitHub

by Flavio Copes, JULY 11, 2019

Many tutorials exist about this topic but they make things overly complicated by assuming one has to contribute code to a project. What if they just need to edit a file, maybe the project README to fix a typo?

GitHub Succinctly

by Joseph D. Booth
Published on: July 13, 2016

GitHub offers unparalleled access for developers to work on projects together, bridging geographical divides to bring teams together. Whether you are an individual developer looking to explore new projects, post your own, or provide your company with a safe place to work, Joseph D. Booth’s GitHub Succinctly will help you get started.

Gulp Succinctly

by Kris van der Mast
Published on: June 22, 2016

Gulp is an easy-to learn, easy-to-use JavaScript task runner that has become an industry standard. This book offers an entry to Gulp for experienced developers. Author Kris van der Mast offers practical examples and clear descriptions, making Gulp Succinctly the perfect entry point for developers interested in Gulp.

R Markdown Cookbook

Yihui Xie, Christophe Dervieux, Emily Riederer
Published on: 2022-11-07

R Markdown is a powerful tool for combining analysis and reporting into the same document. R Markdown has grown substantially from a package that supports a few output formats, to an extensive and diverse ecosystem that supports the creation of books, blogs, scientific articles, websites, and even resumes.

R Markdown: The Definitive Guide

Yihui Xie, J. J. Allaire, Garrett Grolemund
Published on: 2023-05-15

The rmarkdown package (Allaire et al. 2023) was first created in early 2014. During the past four years, it has steadily evolved into a relatively complete ecosystem for authoring documents, so it is a good time for us to provide a definitive guide to this ecosystem now.


Unix and Linux

Back to the Top

The Linux Command Handbook – Learn Linux Commands for Beginners

by Flavio Copes, NOVEMBER 3, 2020

This Linux Command Handbook will cover 60 core Bash commands you will need as a developer. Each command includes example code and tips for when to use it.

Linux Networking Cookbook

©2016 by Gregory Boyce

Over 40 recipes to help you set up and configure Linux networks.

Mastering Wireshark

©2016 by Charit Mishra

Understand Wireshark and its numerous features with the aid of this fast-paced book packed with numerous screenshots, and become a pro at resolving network anomalies.

Nmap Essentials

©2015 by David Shaw

Secure and troubleshoot large scale networks using the powerful features of NMAP with this easy-to-follow guide.

Learning Linux Shell Scripting

©2015 by Ganesh Sanjiv Naik

Unleash the power of shell scripts to solve real-world problems by breaking through the practice of writing tedious code.

Linux Command Line and Shell Scripting Bible, 3rd Edition

©2015 by Richard Blum, Christine Bresnahan

Talk directly to your system for a faster workflow with automation capability.

Learning Shell Scripting with Zsh

©2014 by Gaston Festari

Your one-stop guide to reading, writing, and debugging simple and complex Z shell scripts.

The Unix Workbench

©2019 by Sean Kross

An introduction to Unix-like operating systems, such as macOS and Linux, and programming on them.

Advanced Bash-Scripting Guide

HTML version

Mendel Cooper, 10 Mar 2014

An in-depth exploration of the art of shell scripting.

The Bash Guide

by Maarten Billemont

This guide is an introduction to basic and advanced concepts of the bash shell.