Julia

Join the Julia Track
Julia is an open-source high-level, dynamic programming language whose sweet spot is technical and scientific computing. It is convenient for day-to-day work and fast enough for high performance computing.
Track mentors

0 Mentors

Our mentors are friendly, experienced Julia developers who will help teach you new techniques and tricks.
Track students

175 Students

Join hundreds of students who have enjoyed learning and improving their skills by taking this track.
Track exercises

35 Exercises

Hundreds of hours have gone into making these exercises fun, useful, and challenging to help you enjoy learning.

About Julia

The creators of Julia want to eat their cake and have it too. As they describe in their blog post "Why We Created Julia" they want the speed of C, the dynamism of Ruby, the familiar mathematical notation of Matlab. They want it to be their favourite things from their favourite languages. String processing like Perl. Glue like the shell. Powerful but not impenetrably complex.

Julia has a powerful, yet clear and intuitive, dynamic type system. It allows writing dynamic code and specifying types if additional expressiveness is needed for simplification or performance increases. The language features multiple dispatch, meaning it chooses which method is called based on the types of each argument. This lets you write specific methods for certain types while providing generic fallbacks and is particularly useful for mathematical code, where it is not clear why an operation should belong to a specific argument.

Metaprogramming is easy in Julia due to its homoiconicity, i.e. Julia code can be represented in Julia itself, just like in Lisp. Large parts of Julia's base and standard library are also written in Julia. Understanding and changing it does not require knowledge of another language. If a library you need to use is written in another language, such as C, Fortran or Python, you can use simple interfaces to call them directly from your code.

Despite its young age, Julia is already being used in the real world in a variety of fields, such as but not limited to Finance, Data Science and Scientific Computing. You can find many showcase applications on juliabloggers.com and a list of publications about the language and its applications here.

Join the Julia track
function julia_set(z, c)
    n = 0
    while abs2(z) < 4
        z = z^2 + c
        n += 1
    end
    n
end

Exercism is a great website

What I like about it is that I am able to solve the challenges in a TDD way working in a environment that I am familiar (my own PC not a browser IDE) and the cherry on the top of the cake is that I have access to code reviews.

Fun. Challenging. Interesting

Community-sourced Julia exercises

These are a few of the 35 exercises on the Julia track. You can see all the exercises here.

Leap
easy
arithmetics
control flow conditionals
integers
Atbash Cipher
easy
control flow conditionals
control flow loops
strings
Difference Of Squares
easy
generators
math
Pascals Triangle
easy
control flow conditionals
exceptions
integers
math
Anagram
easy
arrays
control flow loops
filtering
sorting
strings
Run Length Encoding
easy
algorithms
strings
text formatting
Passionate. Knowledgeable. Creative.

Meet the Julia Track maintainers

The Julia Maintainers are the brains behind the Julia Track. They spend their spare time creating interesting and challenging exercises that we can all learn from. We are incredibly grateful for their hard work. Here are the bios of a few of the maintainers of this track.

Avatar of Sascha

Sascha My website

Physics student. Learned about Julia in a class and decided to dig more into it. Very promising language and I wanted to get more involved in its community.

Get started with the Julia track. As with everything on Exercism, it's 100% free!

Join the Julia Track