The Julia Programming Language book#
A Comprehensive Guide to the Julia programming language with real-world use cases, written to transform beginners into confident, professional Julia developers.
Note
This book is updated frequently to track the Julia language. The code and syntax here follow the current stable release line (1.12.x), with notes wherever the 1.10.x LTS behaves differently. If you spot something that has drifted from the latest official docs, please open an issue on GitHub.
To support this work, please give this repository a ⭐ star, follow me on X, and subscribe to my YouTube channel for the latest updates.
How this book is organized#
We start with why Julia exists and the problem it was built to solve, get your machine set up, and then build the language up one idea at a time — data types, control flow, functions, collections, and the array syntax that makes Julia feel like mathematics on a page. From there we move into the ideas that make Julia genuinely different: its type system, multiple dispatch, packages and environments, and metaprogramming. We finish with the practical muscle: talking to Python and C, understanding mutation and memory, writing code that’s actually fast, running it on many cores, and a tour of the standard library.
Each chapter assumes only what came before it. If you read straight through, every new idea will rest on something you have already seen.
- Why Julia
- Getting started
- Data Types, Variables and Operators
- Loops & Control Flow
- Functions
- Data Structures
- Comprehensions & Broadcasting
- The Type System
- Multiple Dispatch
- Modules, Packages & Environments
- Metaprogramming
- Using Python from Julia
- Calling C, and Working with Pointers
- Mutation, Copies & Memory
- Writing Fast Julia
- Parallelism & Concurrency
- Under the Hood: How Julia Compiles
- Thinking in Julia
- The Standard Library
Where this series is heading#
This book teaches you the language itself. Once you are comfortable here, the next parts of this series put Julia to work on the kind of problems I deal with every day as an AI research engineer:
Data Analysis & Data Mining
Data Visualization
Data Transformation and preparing your data
Machine Learning models — training, testing, and evaluation
Deployment and hardware testing
Julia was built for exactly this path — a language where the prototype and the production code are the same code — and that is the journey we are on together.