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.
Join the Julia Track
Track mentors

10 Mentors

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

4,653 Students

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

52 Exercises

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

About Julia

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

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. Code can be represented as a data structure in Julia itself, so a program can transform and generate its own code, similarly to 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 the Julia Blog Aggregator, case studies from commercial use on juliacomputing.com, and a list of publications about the language and its applications in research here.

Join the Julia track

A tremendous learning opportunity to explore the depth of your own knowledge

Exercism is fantastic in learning new languages but that is not the extent of it. If you are a "more experienced" programmer you may have encountered impostor syndrome: the idea you don't really know what you think you know. Exercism lets you solve problems and put them in the space of open feedback which is a tremendous learning opportunity to explore the depth of your own knowledge. Even if you have been programming in a language for awhile it is worth checking into Exercism to see where you stand with current implementation practices.

Relaxed. Encouraging. Supportive.

Meet the Julia Track mentors

Once you join the Julia language track, you will receive support and feedback from our team of mentors. Here are the bios of a few of the mentors of this track.

Avatar of Logan Kilpatrick

Logan Kilpatrick https://twitter.com/OfficialLoganK

I started using Julia when I began as a Software Engineering Intern at NASA. Since then, I have gone on to Intern with Julia Computing on the PumasAI project, win a new Julia Language contributor award for 2019, and authored a few small packages. The Julia programming language and community are incredible. I am looking forward to helping more in the future.
Avatar of Seth Chapman

Seth Chapman LinkedIn

I found Julia's community through Exercism in November 2019 and have working in Julia personally and professionally since.
Avatar of Jeffrey Sarnoff

Jeffrey Sarnoff https://github.com/JeffreySarnoff

I contribute packages to The Julia Community, and, perhaps, help to you.
Avatar of Ole Kröger

Ole Kröger https://github.com/Wikunia

I'm a master student in computer science in Germany and love to work on small and increasingly big personal open source projects in Julia.
Avatar of Colin Caine

Colin Caine https://github.com/cmcaine

I write code for scientific papers and commercial projects in Julia. It's my favourite language and I'm happy to help a few more people learn it!
Avatar of Scott Paul Jones

Scott Paul Jones LinkedIn

I've been programming for 47 years, always focusing on performance. I love learning both computer and human languages, my favorites are Scheme, CLU, and now Julia. I respect C as a great tool over the years, now I want to learn Rust to complement Julia, which I've been using 100% of the time (professionally & developing open source packages) for over 5 years, since version 0.3. I am the creator of the JuliaString.org GitHub organization
Fun. Challenging. Interesting

Community-sourced Julia exercises

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

Rational Numbers
hard
math
multiple dispatch
structs
Anagram
easy
arrays
filtering
sorting
strings
loops
Pangram
easy
arrays
filtering
strings
Allergies
easy
loops
conditionals
integers
lists
booleans
enumerations
arrays
bitwise operations
Phone Number
easy
conditionals
pattern matching
regular expressions
strings
Robot Simulator
medium
structs
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 Colin Caine

Colin Caine My Github

I write code for scientific papers (computer science and social science) and commercial projects in Julia. It's my favourite language and I'm happy to help a few more people learn it!
Avatar of Sascha Mann

Sascha Mann 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 involved in its community.
Avatar of Logan Kilpatrick

Logan Kilpatrick My Github

I began using Julia when I was getting started as a Software Engineering Intern at NASA. Since then, I have gone on to Intern with Julia Computing on the PumasAI project, win a new Julia Language contributor award for 2019, and authored a few small packages. The Julia programming language and community are incredible. I am looking forward to helping more in the future.

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

Join the Julia Track