small medium large xlarge

Programming Machine Learning, in beta

March 20, 2019

On this date in 1915, Albert Einstein published his theory of general relativity. Following up on his theory of special relativity from a few years prior, this new theory upended the world of physics by changing the concepts of gravity, the way light moves in space, and the passage of time. Classical Newtonian physicists found themselves having to change their ways of thinking, which can be difficult if you thought that the way gravity works was settled a few hundred years earlier.

Machine learning is having a similar effect on software development today. It has grown exponentially in recent years, and the concepts can be intimidating and obscure. The breadth of the topic can make it difficult to know where to start, and the array of frameworks and libraries around machine learning obscures how it works, preventing real understanding. Take control with Programming Machine Learning, which starts at the beginning and teaches you through writing code and experimentation.

Learn how it all works by building it yourself.

Programming Machine Learning: From Zero to Deep Learning

Peel away the obscurities of machine learning, starting from scratch and going all the way to deep learning. Machine learning can be intimidating, with its reliance on math and algorithms that most programmers don't encounter in their regular work. Take a hands-on approach, writing the Python code yourself, without any libraries to obscure what's really going on. Iterate on your design, and add layers of complexity as you go.

Build an image recognition application from scratch with supervised learning. Predict the future with linear regression. Dive into gradient descent, a fundamental algorithm that drives most of machine learning. Create perceptrons to classify data. Build neural networks to tackle more complex and sophisticated data sets. Train and refine those networks with backpropagation and batching. Layer the neural networks, eliminate overfitting, and add convolution to transform your neural network into a true deep learning system.

Start from the beginning and code your way to machine learning mastery.

Now available in beta from

Upcoming Author Appearances

  • 2019-03-22 Ethan Garofolo, WrocLove.rb
  • 2019-03-28 Kevin Hoffman, Rust LATAM 2019
  • 2019-04-09 Frances Buontempo, ACCU, Bristol UK
  • 2019-04-09 Fred Hebert, Web à Québec
  • 2019-04-10 Ethan Garofolo, OpenWest 2019
  • 2019-04-11 Frances Buontempo, ACCU, Bristol UK
  • 2019-04-18 Paolo Perrotta, RubyKaigi, Fukuoka, Japan
  • 2019-04-24 Johanna Rothman, Influential Agile Leader, Toronto
  • 2019-04-30 Colin Jones, RailsConf, Minneapolis
  • Audio Books!

    Did you know we have audio books for your listening pleasure?

    Don't Get Left Out

    Are your friends jealous that you get these spiffy email newsletters and they don't? Clue them in that all they need to do is create an account on (email address and password is all it takes) and select the checkbox to receive newsletters.

    Are you following us on Twitter and/or Facebook? Here's where you can find us and keep up with the latest news and commentary, and occasional discounts:

    Tell your friends! Tweet this

    Follow us on Twitter: @pragprog, @pragpub, Andy Hunt @PragmaticAndy.

    Coming Soon:

    • Programming WebAssembly with Rust: Unified Development for Web, Mobile, and Embedded Applications, in print
    • Web Development with ReasonML: Type-Safe, Functional Programming for JavaScript Developers, in print
    • A Scrum Book: The Spirit of the Game, in beta

    Recently Released:

    Thanks for your continued support,

    Andy Hunt Publisher, Pragmatic Bookshelf

    Books • eBooks • PragPub Magazine • Audiobooks and Screencasts