The Julia community is creating new books across various disciplines at an ever-accelerating rate. If you aren't familiar, Julia is a high-level, high-performance dynamic programming language for technical computing, with syntax that is familiar to users of other high-level programming languages. It provides a sophisticated compiler, distributed parallel execution, numerical accuracy, an extensive mathematical function library, and so much more! In this post, we will highlight some of the best Julia books you can pick up today.
Exciting Announcement: My Co-author and I are thrilled to share that pre-orders our new book, Julia Crash Course, are now live:
Stay tuned until the end for a sneak peek at some of the most anticipated Julia books yet to be released.
Before we dive in, if you prefer online courses over books, check out this post where I highlighted 5 of my favorite free online courses:
Think Julia is one of the most popular Julia books out there. It gives a high-level introduction to the language in a very polished way. The book is structured to teach you the following:
- The basics, including language syntax and semantics
- Get a clear definition of each programming concept
- Learn about values, variables, statements, functions, and data structures in a logical progression
- Discover how to work with files and databases
- Understand types, methods, and multiple dispatch
- Use debugging techniques to fix syntax, runtime, and semantic errors
- Explore interface design and data structures through case studies
A few quick notes from my own experience owning 2 copies of this, there is still only 1 version available of this book which means the code examples and such have not been updated since the initial publication. The language has continued to develop a great deal since it was originally published so if you are looking for the latest info, this might not be for you.
Also, take this next comment with a grain of salt, but I have seen feedback from folks saying that Think Julia is more about how to type Julia code and less about how to be a Julia developer. There are subtle things that miss the mark if you want to really understand how to write great Julia code.
All of that being said, it is likely the most popular Julia book out there so it's worth picking up a copy if you want to take a learning path that has been blazed many times:
Data Science is an ever evolving field and leveraging the latest and greatest tools are paramount to success. This book covers:
- What is data science?
- Why Julia?
- Julia Basics
- Data Visualization and Makie.jl
I think one of the unique parts of this book is that it not only covers the basics of Julia in the data science space but also goes into Makie.jl, one of the most popular visualization frameworks for Julia. I also appreciate that this isn't a 500-page book so it makes getting up to speed on the topic something you can tackle in a couple of days instead of a few months.
Julia Data Science is one of my favorite books because they make a free web version of the book available to the world at: https://juliadatascience.io/
With that being said, if you have the means, it would be awesome to support the authors who have taken the time to share their knowledge with the world.
The little book of Julia algorithms is one of the first Julia books I picked up. It is a simple hands-on introduction to learning Julia through the use of 50 small challenges. If you are just starting to learn the language, you should likely pick up this book and another one since this book does not actually walk you through all the different concepts but instead gives you things to practice as you learn the language.
This book covers:
- Loops and conditionals
- Structuring code with functions
- Reading and writing files
- Installing and using packages
- Sorting and searching
- Simple statistics and plotting
The craziest part of this book is that Ahan Sengupta started using Julia when he was only 11 years old and wrote this book early in high school. It is very well done and a fun way to practical experience with Julia!
Tom Kwong is the author of this book and someone I consider to be a great contributor to the Julia ecosystem. We work together on helping run the annual JuliaCon and it just so happens that he is also the author of this book! When I read this book, I was surprised at how different it was from many of the other Julia books out there.
Tom does a great job of diving deep into design patterns and best practices. If you are a somewhat experienced Julia developer and interested in taking your skills to the next level, this is exactly the book you need.
Here is what you will learn in this book:
- Understand the Julia language features that are key to developing large-scale software applications
- Learn about design patterns to improve overall application architecture and design (this is something I had never been exposed to before this book)
- Create reusable programs that are modular, extendable, performant, and easy to maintain
- Be able to weigh up the pros and cons of using different design patterns for use cases
- Find and explore methods for transitioning from object-oriented programming to using equivalent or more advanced Julia techniques (like structs and macros)
Overall, Tom does an incredible job with this book and there's a tremendous amount to learn here even just beyond the Julia concepts.
Plotting and visualization in Julia are two of the most important concepts to understand if you want to use the language to its full potential. The author of this book, Diego, is a long-time Julia community contributor and one of the core folks helping maintain and build the plotting ecosystem. In my experience, visualizations can be a bit of a challenge in Julia so having resources like this is critical to the success of the ecosystem.
I got my copy of this book a few weeks ago and it has been a great experience so far! After reading this book, you will walk away learning how to:
- Create interactive plots with Makie, Plots, Jupyter, and Pluto
- Create standard statistical plots and visualize clustering results
- Plot geographically distributed and biological data
- Visualize graphs and networks using GraphRecipes and GraphPlots
- Find out how to draw and animate objects with Javis, Plots, and Makie
- Define plot themes to reuse plot visual aspect customizations
- Arrange plots using Plots, Makie, and Gadfly layout systems
- Define new plot types and determine how Plots and Makie show objects
Tanmay Bakshi is an amazing technical educator and an early adopter of the Julia ecosystem. He does a great job of writing a book that is both practically relevant but also extremely accessible to most people. I also really enjoyed that the book is set up to prepare you to begin your machine learning journey and while it does not cover ML in depth, it still helps you get closer to starting down that journey.
This book was published in 2019 and like Think Julia, it is still in its first version so it might be a little out of date but still a great resource. This book covers how to:
• Set up and configure your Julia environment
• Get up and running writing your own Julia apps
• Define variables and use them in your programs
• Use conditions, iterations, for-loops, and while-loops
• Create, go through, and modify arrays
• Build an app to manage things you lend and get back from your friends
• Create and utilize dictionaries
• Simplify maintenance of your code using functions
• Apply functions on arrays and use functions recursively and generically
• Understand and program basic machine learning apps
Statistics with Julia: Fundamentals for Data Science, Machine Learning and Artificial Intelligence 🧑💻
Statistics with Julia is a deep dive into the math behind the concepts of Data Science and ML written by Yoni Nazarathy. Yoni has given a bunch of awesome workshops (including one in Hebrew) over the years at JuliaCon. If you want to get a sense of what Yoni talks about in this book, check out his talk:
You can also find the code for the book online for free here: https://github.com/h-Klok/StatsWithJuliaBook
My honest experience reading this book is that it goes heavily into the math which for me was quite difficult but if that is the angle you are looking for as you learn Data Science and ML then this is the perfect book for you. It also includes over 200 code examples that help you bridge from math to practical applications.
More books to consider 📚
So far, the books I have talked about are ones that I have personally picked up a copy of. The next few books are either upcoming or I have heard good things about them via word of mouth in the community.
Julia as a second Language is a practical guide for folks, you guessed it, learning Julia as their second language. I have seen great things about this book but have yet to pick up a copy. The author, Erik Engheim, is well-regarded in the Julia ecosystem and I have read some of his articles before.
Practical Julia is a book I am very excited about! The author, Lee Phillips, is also someone who is reputable in the ecosystem and I have seen his writing before. This book is available for pre-order and I suggest you get your copy soon!
Julia for Data Analysis is an upcoming book but prolific Julia contributor Bogumil Kaminski. Bogumil is the real deal, whether it be the top contributor to Julia on Stack Overflow or being the lead developer of DataFrames.jl, he is someone that you will want to learn from.
Web Development with Julia and Genie is another upcoming book co-authored by Adrian Salceanu, the creator of Genie.jl. Julia has a huge potential in the web ecosystem and Adrian is working hard to make sure the potential is realized there.
Web Development with Julia and Genie:
If you're looking to get started with Julia programming in 2022 and beyond, these books are a great place to start! Get started on your development journey today and please do share other books you have found valuable as you are learning Julia.