From zero to Julia!

From zero to Julia is a small 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 lessons you will become acquainted with some of the types available in Julia and you will learn how to define new types that fit your needs. We will then discuss data structures such as arrays, tuples and dictionaries, as well as DataFrames and how to efficiently store your data using hdf5 files and JLD.

You will learn how to define new functions, how to work with modules and one of the most important features of Julia: multiple dispatch.

In the last part of the course, we will focus on how to write computationally efficient code and we will also deal with multi-threading and multi-processing.

This guide, as well as this website, is a work in progress and is written by a student, 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 the Juno IDE 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

6 minute read

From zero to Julia Lesson 18. GPU computations using ArrayFire

Package Registration and Tests

12 minute read

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

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!