# Suggested Books

## General Programming

### C++

- Programming: Principles and Practice Using C++ by Bjarne Stroustrup
- Effective C++: 55 Specific Ways to Improve Your Programs and Designs (3rd Edition) by Scott Meyers
- More Effective C++: 35 New Ways to Improve Your Programs and Designs by Scott Meyers
- The C++ Standard Library: A Tutorial and Reference by Nicolai M. Josuttis
- Apache C++ Standard Library Reference

### Multithreading

- Programming with POSIX(R) Threads by David R. Butenhof

### Network Programming

- Unix Network Programming, Volume 1: The Sockets Networking API (3rd Edition) by W. Richard Stevens

### WIN32 Programming

- Win32 Programming by Brent E. Rector and Joseph M. Newcomer
- Programming Windows by Charles Petzold
- MSDN Library is great

## Computer Science: Algorithms and Data Structures

- Introduction to Algorithms by Cormen, Leiserson, Rivest and Stein
- Algorithms in C++, Parts 1-4: Fundamentals, Data Structure, Sorting, Searching (3rd Edition) by Robert Sedgewick

## Lossless Data Compression

- Text Compression by Bell, Cleary, and Witten

## General Math

- Calculus: Single and Multivariable by Hughes-Hallett, Gleason, and McCallum
- Linear Algebra Done Right by Sheldon Jay Axler
- Numerical Linear Algebra by Trefethen and Bau
- Introduction to Real Analysis (third edition) by Bartle and Sherbert

## Optimization

- Practical Methods of Optimization (second edition) by R. Fletcher 1987
- Numerical Optimization by Jorge Nocedal and Stephen Wright 2006
- Introduction to Derivative-Free Optimization by Conn, Scheinberg, and Vicente

## Machine Learning

- Artificial Intelligence: A Modern Approach (3rd Edition) by Stuart Russell and Peter Norvig
- Learning with Kernels: Support Vector Machines, Regularization, Optimization, and Beyond by Bernhard Schlkopf and Alexander J. Smola
- Kernel Methods for Pattern Analysis by John Shawe-Taylor and Nello Cristianini
  asdfsdf alskd flaksjd flaskdj flskaj flaskd flkjs flk sadfl asdflkj as df aslkdfj asldkfj asldkf lkds flkajs dflkja sdflkj asdlkjf alsdkj flsakjd fasdjl f aslkdfj alskdf alsdkjf lksjadklajsd fklsadj fljkas dfklja sdlfkj asdlkfj asdlkj sadlkjf
- The Journal of Machine Learning Research and NIPS

## Image Processing

- Digital Image Processing by Rafael C. Gonzalez and Richard E. Woods