Learn Julia
Structured lessons from the basics up — follow the path below in order, at your own pace.
-
1
Level 1 — Beginner Beginner 26 lessons
Start here if you have never written a line of Julia before. No programming experience is required — work through these lessons in order, si...
Lessons in this module
What Is Julia? Why Learn Julia? What Can You Do With Julia? Installing Julia Setting Up Your Environment Your First Program Exploring the REPL Variables Numbers and Arithmetic Types and Conversion Booleans and Comparisons Strings String Functions if Statements while Loops for Loops and Ranges Arrays Working with Arrays Tuples and Named Tuples Dictionaries and Sets Functions Anonymous Functions and do Blocks Dot Syntax: Element-wise Operations Scope Input and Command-Line Arguments Comments and Style -
2
Beginner Projects Beginner 1 lesson
Build these on your own using what you learned in Level 1. Each one uses variables, strings, arrays, dictionaries, loops, and functions. 1....
-
3
Level 2 — Intermediate Intermediate 20 lessons
These lessons cover the type system and type hierarchy, multiple dispatch, structs and constructors, parametric types, interfaces, matrices...
Lessons in this module
The Type System and Type Hierarchy Multiple Dispatch Structs Constructors Parametric Types Interfaces: Making Your Types Feel Built-in Matrices and Multidimensional Arrays Broadcasting in Depth Linear Algebra Statistics and Random Numbers Error Handling Files and I/O Modules Packages and Environments Iterators and Generators Dates and Times Missing Values and nothing Functional Patterns Data Analysis with DataFrames Plotting with Plots.jl and Makie -
4
Intermediate Projects Intermediate 1 lesson
Build these using types, multiple dispatch, matrices, linear algebra, files, modules, and packages from Level 2. 1. Shapes and Dispatch Defi...
-
5
Level 3 — Advanced Advanced 15 lessons
These lessons cover type stability, benchmarking and profiling, memory and allocation, generic programming and traits, custom array types, m...
Lessons in this module
Type Stability Benchmarking and Profiling Memory, Allocation, and Globals Generic Programming, Traits, and Custom Arrays Metaprogramming: Code as Data Macros Multithreading and Tasks Distributed Computing Calling C and Python Differential Equations and Simulation Optimization Machine Learning with Flux Testing Package Development and Deployment Best Practices for Production Julia -
6
Advanced Projects Advanced 1 lesson
Build these using performance techniques, metaprogramming, parallelism, and the scientific ecosystem from Level 3. 1. N Body Simulation Simu...
-
7
What You Should Know Now — and What's Next 1 lesson
What You Should Know Now The REPL and its modes, variables, numbers, strings, and control flow Arrays, tuples, dictionaries, comprehensions,...