Julia language: a concise tutorial
  • Introduction
  • Language core
    • 1 - Getting started
    • 2 - Data types
    • 3 - Control flow
    • 4 - Functions
    • 5 - Custom structures
    • 6 - Input - Output
    • 7 - Managing run-time errors (exceptions)
    • 8 - Interfacing Julia with other languages
    • 9 - Metaprogramming
    • 10 - Performance (parallelisation, debugging, profiling..)
    • 11 - Developing Julia packages
  • Useful packages
    • Plotting
    • DataFrames
    • JuMP
    • SymPy
    • Weave
    • LAJuliaUtils
    • IndexedTables
    • Pipe
Powered by GitBook
On this page
  • News:
  • Latest version
  • Citations
  • Acknowledgements

Introduction

Next1 - Getting started

Last updated 2 years ago

News:

Update May 2022: This tutorial (and the ) has evolved into a MOOC course thanks to the flexibility of packages the likes of , and

  • There is no registration required. Just read the pages, clone the repository (each page is a working Julia file), watch the videos (15h), answer the online quizzes (15) or practice with the 7 guided exercises.

Update November 2019: This tutorial (largely updated, expanded and revised) has evolved into a book thanks to Apress :-)

  • Antonello Lobianco (2019), "Julia Quick Syntax Refererence", Apress

  • [https://julia-book.com(https://julia-book.com/) (includes community forum and link to code repository)

  • This tutorial itself is still updated and may include new stuff that will be the base of further editions of the book.


Compatibilities table of this tutorial with Julia versions:

  • Julia 1.2/1.3 From 24 November 2019. More than Julia itself (quite stable now), this version accounts for mayor API changes of the various packages, DataFrames, JuMP, PyCall..

  • Julia 1.0: From 5 September 2018

  • Julia 0.6: 19 July 2017 - 15 August 2018 versions

  • Julia 0.5: Versions before 19 July 2017


The focus is on Julia as a generic programming language rather than on domain-specific issues (but some domain-specific topics are covered in the "Useful packages" section). The format is in the middle between a classical tutorial and a cheatsheet: the tutorial describes the elements of the language following the typical sections of a programming language tutorial (data types, control flows, functions..), but the information is given in a pretty concise way, suitable for people that already have some knowledge in other programming languages (e.g. what a for loop does is not explained, but how it is implemented in Julia is).

English is not my primary language, so please be understanding and report me of any errors, both in the language and in the content.

Happy coding with Julia !

Antonello Lobianco

Latest version

I am considering migrating to other documentation systems, as the new GitBook is pretty limited. If so, I will nevertheless update the link here.

Citations

Please cite this tutorial as:

Acknowledgements

Development of this tutorial was supported by:

The purposes of this tutorial are (a) to store things I learn myself about Julia and (b) to help those who want to start coding in Julia before reading the 982 pages of the (outstanding) .

This document started as a compendium of several tutorials (plus the official documentation), in particular Chris Rackauckas's , the , the and , from which I did borrow several examples.

The latest version of this tutorial can be found online on GitBook, at

(if it works)

(if it works)

Corresponding

A. Lobianco, (2018), “Julia language: a concise tutorial", GitBook, , retrieved xx/xx/xxxx

the French National Research Agency through the , a part of the “Investissements d'Avenir” Program (ANR 11 – LABX-0002-01).

SPMLJ - Introduction to Scientific Programming and Machine Learning with Julia
official documentation
A Deep Introduction to Julia
Quantecon tutorial
WikiBook on Julia
Learn X in Y minutes
https://syl1.gitbook.io/julia-language-a-concise-tutorial
PDF version
A legacy interface
GIT repository
https://syl1.gitbook.io/julia-language-a-concise-tutorial
Laboratory of Excellence ARBRE
derived book
Documenter.jl
Literate.jl
QuizQuestions.jl