Math for Programmers
3D graphics, machine learning, and simulations with Python
Paul Orland
  • MEAP began December 2018
  • Publication in May 2019 (estimated)
  • ISBN 9781617295355
  • 550 pages (estimated)
  • printed in black & white

It feels like you're learning exactly what you need to know to get stuff done.

Jens Christian Bredahl Madsen
To score a job in data science, machine learning, computer graphics, and cryptography, you need to bring strong math skills to the party. Math for Programmers teaches the math you need for these hot careers, concentrating on what you need to know as a developer. Filled with lots of helpful graphics and more than 200 exercises and mini-projects, this book unlocks the door to interesting–and lucrative!–careers in some of today’s hottest programming fields.
Table of Contents detailed table of contents

1 Learning Math in Code

1.1 Solving lucrative problems with math and software

1.1.1 Predicting financial market movements

1.1.2 Finding a good deal

1.1.3 Building 3D graphics and animations

1.1.4 Modeling the physical world

1.2 How not to learn math

1.2.1 Jane wants to learn some math

1.2.2 Slogging through math textbooks

1.3 Using your well-trained left brain

1.3.1 Using a formal language

1.3.2 Build your own calculator

1.3.3 Building abstractions with functions

1.4 Summary

Part I: Vectors and Graphics

2 Drawing with 2D Vectors

2.1 Drawing with 2D Vectors

2.1.1 Representing 2D vectors

2.1.2 2D Drawing in Python

2.1.3 Exercises

2.2 Plane vector arithmetic

2.2.1 Vector components and lengths

2.2.2 Multiplying Vectors by Numbers

2.2.3 Subtraction, displacement, and distance

2.2.4 Exercises

2.3 Angles and Trigonometry in the Plane

2.3.1 From angles to components

2.3.2 Radians and trigonometry in Python

2.3.3 From components back to angles

2.3.4 Exercises

2.4 Transforming collections of vectors

2.4.1 Combining vector transformations

2.5 Drawing with Matplotlib

2.5.1 Exercises

2.6 Summary

3 Ascending to the 3D World

3.1 Picturing vectors in three-dimensional space

3.1.1 Representing 3D vectors with coordinates

3.1.2 3D Drawing in Python

3.1.3 Exercises

3.2 Vector arithmetic in 3D

3.2.1 Adding 3D vectors

3.2.2 Scalar Multiplication in 3D

3.2.3 Subtracting 3D vectors

3.2.4 Computing lengths and distances

3.2.5 Computing angles and directions

3.2.6 Exercises

3.3 The dot product: measuring alignment of vectors

3.3.1 Picturing the dot product

3.3.2 Computing the dot product

3.3.3 Dot products by example

3.3.4 Measuring angles with the dot product

3.3.5 Exercises

3.4 The cross product: measuring oriented area

3.4.1 Orienting ourselves in 3D

3.4.2 Finding the direction of the cross product

3.4.3 Finding the length of the cross product

3.4.4 Computing the cross product of 3D vectors

3.4.5 Exercises

3.5 Rendering a 3D object in 2D

3.5.1 Defining a 3D object with vectors

3.5.2 Projecting to 2D

3.5.3 Orienting faces and shading

3.5.4 Exercises

3.6 Summary

4 Transforming Vectors and Graphics

4.1 Transforming 3D objects

4.1.1 Drawing a transformed object

4.1.2 Composing vector transformations

4.1.3 Rotating an object about an axis

4.1.4 Inventing your own geometric transformations

4.1.5 Exercises

4.2 Linear transformations

4.2.1 Preserving vector arithmetic

4.2.2 Picturing linear transformations

4.2.3 Why linear transformations?

4.2.4 Computing linear transformations

4.2.5 Exercises

4.3 Summary

5 Computing Transformations with Matrices

6 Generalizing to Higher Dimensions

7 Solving Systems of Linear Equations

Part 2: Calculus and Physical Simulation

8 Measuring motion with calculus

9 Working with symbolic expressions

10 Approximating functions

11 Modeling motion in 2D and 3D

12 Doing calculus with multi-dimensional functions

13 Solving differential equations

14 Building physical simulations

Part 3: Machine Learning Applications

15 Quantifying uncertainty

16 Exploring and optimizing functions

17 Fitting functions to data

18 Classifying data

19 Training neural networks

20 Reducing dimensionality

About the Technology

Most businesses realize they need to apply data science and effective machine learning to gain and maintain a competitive edge. To build these applications, they need developers comfortable writing code and using tools steeped in statistics, linear algebra, and calculus. Math also plays an integral role in other modern applications like game development, computer graphics and animation, image and signal processing, pricing engines, and stock market analysis. Whether you’re a self-taught programmer without a core university math foundation or you just need to rekindle the glowing math embers, this book is a great way to fire up your skills.

About the book

Math for Programmers teaches you to solve mathematical problems in code. Thanks to the author’s fun and engaging style, you’ll enjoy thinking about math like a programmer. With accessible examples, scenarios, and exercises perfect for the working developer, you’ll start by exploring functions and geometry in 2D and 3D. With those basic building blocks behind you, you’ll move into the bread and butter math for machine learning and game programming, including matrices and linear transformations, derivatives and integrals, differential equations, probability, classification algorithms, and more. Don’t worry if it sounds intimidating or, worse yet, boring! Coder and mathematician Paul Orland makes learning these vital concepts painless, relevant, and fun!

Real-world examples in this practical tutorial include building and rendering 3D models, animations with matrix transformations, manipulating images and sound waves, and building a physics engine for a video game. Along the way, you’ll test yourself with lots of exercises to ensure you’ve got a firm grasp of the concepts. Hands-on mini-projects throughout lock in all you’ve learned. When you’re done, you’ll have a solid foundation of the math skills essential in today’s most popular tech trends.

What's inside

  • 2D and 3D vector math
  • Matrices and linear transformations
  • Core concepts from linear algebra
  • Calculus with one or more variables
  • Algorithms for regression, classification, and clustering
  • Interesting real-world examples
  • More than 200 exercises and mini-projects

About the reader

Written for programmers with solid algebra skills (even if they need some dusting off). No formal coursework in linear algebra or calculus is required.

About the author

Paul Orland is CEO of Tachyus, a Silicon Valley startup building predictive analytics software to optimize energy production in the oil and gas industry. As founding CTO, he led the engineering team to productize hybrid machine learning and physics models, distributed optimization algorithms, and custom web-based data visualizations. He has a B.S. in mathematics from Yale University and a M.S. in physics from the University of Washington.

Manning Early Access Program (MEAP) Read chapters as they are written, get the finished eBook as soon as it’s ready, and receive the pBook long before it's in bookstores.
MEAP combo $49.99 pBook + eBook + liveBook
MEAP eBook $39.99 pdf + ePub + kindle + liveBook

placing your order...

Don't refresh or navigate away from the page.

FREE domestic shipping on three or more pBooks

Great step by step introduction/refresher to applied mathematics, with common software engineering problems in mind.

Sébastien Portebois

A great resource to quickly get a grasp of mathematical concepts and how they're applied to different problems.

Adhir Ramjiawan

The book contains a number of great examples that makes the subjects relatable and elevates it above some boring textbook.

Jens Christian Bredahl Madsen