Discover what you don't know, and attack your weaknesses!

Compiled Languages

Strongly Recommended Prerequisites

Recommended Prerequisites

None

The main practical difference between a compiled language and a scripting language is that a compiled language must go through the process of compilation prior to being run. Compiled languages tend to be closer to the machine than scripting languages, so you are more likely to have to think about how a computer actually works to use a compiled language compared to a scripting language. This proximity can be advantageous in that it allows you to ensure a computation is performed in way that is fast for a specific device. However, this computational advantage often comes at the price of increased development time.

Although two scripting languages dominate data science, there are a variety of compiled languages used, such as: C, C++, Java, Fortran, etc. It's hard to give good advice about which ones to learn, as they all have their pros and cons. If you don't know a compiled language, you should investigate the compiled languages used in areas and companies you're most interested in. We're only familiar with the books on C/C++, so we can only recommend book related to those languages.

Recommended Books: C++

C++ Primer Plus

Stephen Prata

(Image takes you to Amazon.)

In-text exercises

Answers to some exercises

Code examples

This is a great book for learning C++. It does not require you to have a programming background, it has lots of good exercises, and the author has a good sense of humor so this is about as engaging of a programming language textbook as you can expect. Some people feel that it does not teach the best practices according to the modern C++ standard, but we think it's still a good introduction.

C++ Primer

Stanley B. Lippman, Josée Lajoie, and Barbare E. Moo

(Image takes you to Amazon.)

In-text exercises

Code examples

This book is perhaps a bit more up-to-date than Prata's, and it has some nice organizational touches, such as frequent sidebars and lists of defined terms. We think it's too dry for most people to use for self-study, but if you decide you don't like Prata's sense of humor you may prefer this book. It's also a good refresher if you've been programming in C++ for a while but have forgotten about certain features of the language.

The C++ Programming Language

Bjarne Stroustrup

(Image takes you to Amazon.)

Code examples

We don't recommend trying to learn C++ from this book by its creator unless you are both a very experienced programmer and a badass. Once you've been using C++ for a while, you'll want to pick up a copy as it's as definitive and exhaustive as anything but the standard itself can be (it's infinitely more readable). Stroustrup is a pragmatic guy, and has a lot of good advice to offer for C++ programmers of all walks.

Recommended Books: C

C Primer Plus

Stephen Prata

(Image takes you to Amazon.)

In-text exercises

Answers to some exercises

Code examples

This is book is very similar to C++ Primer Plus, but there's less room for criticism about being modern since C has changed less than C++.