Start here to prepare for the Getting Started With the Julia Programming Language workshop.
Resources used by the author for a short Introduction to Julia workshop, and a longer Getting started with Julia and machine learning workshop. There is between 2 and 5 hours of material, depending on choice of material.
Users are not assumed to have any familiarity with Julia but should be know some basic linear algebra and statistics (especially for the later sections).
To run demos and tutorials presented in the workshop:
Here are static views of the demos and tutorial notebooks:
Notebook |
---|
Mandelbrot set demo |
Julia's secret sauce |
Package composability |
01 - First_steps |
02 - DataFrames |
03 - Machine learning |
99 - Solutions to exercises |
Some random resources for Julia newcomers:
-
Julia language home page - Good for a quick rundown of features and introduction to the broader ecosystem
-
Why Julia? - Motivation and comparison to other languages. Slides from a talk by Oliver Schulz, Max Planck Institute for Physics. Alternative link
-
Package search at JuliaHub - Good for scouting out existing julia software (and communities) in your area of interest (alternative search engine).
-
For experienced programmers: Julia is object-oriented but not in the way languages like python or C++. Rather it uses multiple dispatch. This talk makes the case for this alternative paradigm.
Many people use R, python or MATLAB packages with a minimum of actual programming knowledge and the same applies to Julia. However, to start deepening your Julia programming knowledge, you could try some of the resources at this Julia org page (e.g., juliaAcademy). I have also heard that the book Think Julia is a pretty good ab initio introduction to programming.
If you are already python proficient, check out this Colab notebook.
My strong recommendation would be to read Aaron Christinson's tutorial Dispatching Design Patterns which is nicely compressed in his half-hour video presentation.
These points of difference between Julia and other popular languages may also be useful.
Serious Julia developers will want a copy of Hands-On Design Patterns and Best Julia Practices with Julia by Tom Kwong. This is the book I wished existed when I started. I learned Julia from the manual which is, however, excellent.
Once you are familiar with basic interaction using the REPL, you will want to:
-
Hook your Julia installation up with an editor or integrated development environment (IDE) so you can efficiently edit, run and debug longer julia scripts. See these options (scroll down to "Editors and IDEs" and "Essential Tools"). If you don't have an existing preference I recommend VS Code. I prefer emacs, but it is much older and has a steeper learning curve.
-
Or, interact with Julia using a notebook. Here you have two options:
- Juptyer notebooks (used also for R and python) - follow these instructions.
- Pluto "reactive" notebooks (specific to Julia) These formats are also provided by the HelloJulia.jl tutorials.
Popular forums for asking your julia questions are Julia Discourse and the Julia Slack channel. Also useful:
-
Get help on a command with
juia> ?some_command
at the REPL or@doc ?some_command
in a notebook. -
apropos("invert")
seaches for objects with "invert" in the doc string.
Acknowledgements. Some slides used in the presentation for this workshop, and included here, are based on material contributed by Oliver Schultz and Sam Urmy, which is gratefully acknowledged. Oscar Smith, Ian Butterworth, and Carsten Bauer helped with the just-in-time compilation demonstration. The live tutorial deployment is based on PrecompilePlutoCourse.jl.