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!
A tutorial on how to setup Atom and Juno: the perfect free IDE to start coding in Julia
An introduction to the Julia REPL and Juno IDE usage
From zero to Julia Lesson 1. An introduction to variables and Types
From zero to Julia Lesson 2. An introduction to functions
From zero to Julia Lesson 3. Data Structures
From zero to Julia Lesson 4. Control Flow
From zero to Julia Lesson 5. Working with arrays: broadcasting
From zero to Julia Lesson 6. Variable scope
From zero to Julia Lesson 7. Using modules and code reusability
From zero to Julia Lesson 8. Types and structures
From zero to Julia Lesson 9. Working with packages
From zero to Julia Lesson 10. Introduction to plotting
From zero to Julia Lesson 11. Introduction to numerical integration
From zero to Julia Lesson 12. Units of measurement
From zero to Julia Lesson 13. Interacting with Python
From zero to Julia Lesson 14. Data storage: HDF5
From zero to Julia Lesson 15. Parallel computing
A tutorial on how to write a module in Julia which uses multiprocessing
Tips and Tricks to optimise your Julia code and achieve the maximum possible speed
From zero to Julia Lesson 18. GPU computations using ArrayFire
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
From zero to Julia Lesson 20. Interoperating with other programming languages
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!