As the popularity of the Julia programming language continues to increase, more and more people are seeking courses to learn the language. In this post, we will highlight 5 courses which you can take online for free. Given my role in the Julia community, I am always looking for the best resources to refer new users to and these are some of the best I have found in the last three years.
Before we dive in, I want to make a quick note of some great resources:
- Check out https://julialang.org/learning to see all of our learning resources.
- Head to https://julialang.org/learning/classes/ to see where Julia is being taught in classrooms all over the world!
- Lastly, JuliaAcademy is our platform for courses about Julia. Find out more at https://juliaacademy.com.
Now onto the courses! 🚀
Introduction to Computational Thinking (at MIT) 🧠
MIT’s intro to computational thinking taught by professor Alan Edelman is proabaly the most widely viewed Julia course ever (in large part thanks to collaborations with YouTubers Grant Sanderson (3b1b) and James Schloss (LeiosOS)). The course also features an amazing cutting edge homepage designed by Fons van der Plas who is the creator of Pluto.jl and has made the course website a testing ground for many of the coveted new Pluto features.
Side note, if you aren’t familiar with Pluto, I suggestion you check out:
One of the best parts about this course is that the lectures are of such high quality. If you want to see an example, check out this one from Grant:
So what does the course cover? Well, let’s take a look:
- Module 1: Images, Transformations, Abstractions
- Module 2: Social Science & Data Science
- Module 3: Climate Science
These are the high-level topics / motivating examples but the core of what is being taught is how to use Julia for things like differential equations, mathematical modeling, and more.
There is also a community around this class which is active on Discord. You can find the link to join on the course website: https://computationalthinking.mit.edu
Advanced Scientific Computing 🧪 in Julia (by Tim Holy)
Tim Holy is a core pillar of the Julia ecosystem. His contributions are wide ranging, all while remaining an active professor at WashU in St Louis. When I saw Tim was working on a course to cover the basics of Julia along with how to be a good open source contributor, I knew this was something I wanted to highlight.
Tim begins the course with some motivation as to why Julia is so well suited for todays computational problems. If you have not seen this lecture, I highly encourage it as it’s a resource I look back to frequently.
GitHub: https://github.com/timholy/AdvancedScientificComputing
At a high level, the course covers:
- Introduction to the course: “why Julia?” and a brief tour
- Julia packages, Git, and GitHub
- Testing & principles of design
- Continuous integration, documentation, package versioning, and releases
- High performance computing on your laptop I: understanding and measuring performance
- High performance computing on your laptop II: algorithms, compilers, and inference
This course is without a doubt one of the best things you can invest your time into if you are new to Julia and the open source ecosystem. Next time you see Tim (online or in-person at a Julia event), make sure to tell him how great this course is!
Julia Machine Learning for Beginners 🤖 (by Doggo dot jl — formerly Julia for Talented Amateurs)
Julia for Talented Amateurs (now Doggo.jl) is one of my favorite channels and resources in the Julia ecosystem. Their content is consistently high quality and well made. I would highly encourage you to check out all of the series they have made if you have not already. For the sake of this article, I am going to just highlight one of the courses I found helpful: Julia Machine Learning for beginners.
If you are already ready to dive in and don’t need to hear more, head to the YouTube series:
Series 05 | Julia Machine Learning for Beginners
Otherwise, let’s dive into what Doggo.jl covers in this series and how it can be helpful for you!
- What is Machine Learning?
- Linear Regression in Julia
- Logistic Regression in Julia
- Naive Bays Classifier in Julia
- Support Vector Machines using LIBSVM.jl
- DecisionTrees.jl, Trees and Random Forests
- NearestNeighbor.jl
- Artificial Neural Networks with Flux.jl
- And more!
Machine Learning in Julia is one of the most under utilized areas of the ecosystem, mostly because there is still scarcity with respect to resources to learn the topic. This course from Doggo.jl goes beyond the basics and walks you through all different kinds of Machine Learning.
My favorite video’s were the ones on Deep Learning (because DL is the coolest field of ML 😄). Check them out for yourself:
Julia for Data Science 📊 (by Huda Nassar)
I would be remiss to not mention the Julia Academy course that Huda build for the community in this article. Her course takes you from zero knowledge of Julia’s Data Science capabilities to training models and performing all types of common analysis: https://juliaacademy.com/p/julia-for-data-science
Huda has been a long-time contributor to the ecosystem and someone I look up too immensely so it’s worth checking out these videos and the associated code.
This course covers:
- Handling data with Julia
- The basics of Linear Algebra in Julia
- Statistics in Julia
- Clustering and classification
- Graphs (Huda’s expertise) in Julia
- And much more!
Here’s a sneak peak at Huda going over graphs in Julia:
You might also want to check out a recent post by Huda on using Pagerank for the Julia Package Dependency Graph: https://forem.julialang.org/nassarhuda/pagerank-on-the-julia-package-dependency-graph-2gbo
Overall, Huda’s an excellent instructor and this course is one of the most popular we have offered on JuliaAcademy with over 10,000 students enrolling. Make sure to sign up today!
Julia Programming for Nervous Beginners 😬
The Julia for Nervous beginners course on Julia Academy is one of my favorites: https://juliaacademy.com/p/julia-programming-for-nervous-beginners.
Taught by Dr Henri Laurie, this course helps expand the scope of the Julia ecosystem by not assuming that you have a deep background in programming prior to learning Julia. Dr Laurie takes you from the ground up, walking through concepts like loops, conditionals, and functions.
The course is broken down into 4 weeks worth of content starting with Logic + Strings and then ending with manipulating files with data using Julia. I have watched all of the lectures for this course and I am continually impressed with Dr Laurie’s ability to make the course content approachable.
If you aren’t sure whether this course if for you, check out this intro video:
If you know anyone who has wanted to learn to program but wasn’t sure how, this is the course for them! After they finish it, taking one of the other aforementioned courses will help reinforce these ideas.
Wrapping up + Resources 🔚
There are so many different places to learn Julia today. If you made it this far but weren’t struck by any of these courses, I encourage you to check out the Julia track on Exercism: https://exercism.io/tracks/julia
There are expert mentors and interactive exercises that you can do in order to hone your Julia skills, even if you are a total beginner (or expert).
If you have a favorite course that I didn’t mention here, drop it in the comments so I can make sure to share it with the community. Happy learning!