From zero to Julia!

From zero to Julia is a growing series of introductory lessons to the Julia language. The aim of this course is to give you the basics to be able to start coding in Julia on your own.

During this series of lesson we will review some of the basic elements of this programming language, such as functions, variables and control flow. We will then explore the rich type system of julia and multiple dispatch (which is one of the most important Julia features). We will then learn how to work with more complex data structures, such as arrays and types. Once we have studied the basics of the Julia language, we will study how to better organise our code through packages and we will study how to optimise it for numerical efficiency.

We will finally deal with a series of advanced topics which I find of particular interest for physicists and data scientists.

This guide, as well as this website, is a work in progress: any feedback or correction is welcome! In order to make better and free content for everybody, please write your thoughts and suggestions in the discussion thread which is available under each post!

Although no prior programming background in Julia is necessary to follow this guide, basic familiarity with programming may be useful. For any clarification, don’t hesitate to contact me!

If you are ready to start, I encourage you to read the first guide on how to install Julia and VSCode and then move on to the first lesson!

Variables and Types

3 minute read

From zero to Julia Lesson 1. An introduction to variables and Types

Functions

6 minute read

From zero to Julia Lesson 2. An introduction to functions

Control Flow

5 minute read

From zero to Julia Lesson 4. Control Flow

Modules

9 minute read

From zero to Julia Lesson 7. Using modules and code reusability

GPU computations

7 minute read

From zero to Julia Lesson 19. GPU computations using ArrayFire

Package Registration and Tests

12 minute read

From zero to Julia Lesson 20. Learn how to write tests for a package using Travis and how to publish a finished package to the Julia Registry

Julia and Docker integration

19 minute read

A tutorial for the installation of Docker and Julia and the setup of the Juno IDE using a dockerized Julia container

Messaging with Telegram

5 minute read

From zero to Julia. Learn how to send messages and files to your phone using Telegram.jl

Acknowledgements

I want to thank Elena Pinetti for all the help she has given me in proofreading these lessons and all the effort she has put in identifying which parts were not clear enough or should be rewritten.

I also want the thank the wonderful Julia community on reddit for the feedback and all the kind persons who have pointed out typos and given suggestions on how to improve this series of lessons!