Want to learn and master Julia?

Join Exercism’s Julia Track for access to 82 exercises with automatic analysis of your code and personal mentoring, all 100% free.

Explore exercises

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. 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.

Key Features of Julia


Julia

Fast

Julia is designed for high performance and compiles efficient native code for multiple platforms

Interactive

Julia is dynamically typed, feels like a scripting language and has good support for interactive use

Scientific

Julia is designed with reproducibility, distributed computing and frictionless collaboration in mind

Composable

Julia uses multiple dispatch as a paradigm, making it unreasonably effective for composing programs

Expressive

Multiple dispatch, generator expressions and metaprogramming features lead to highly expressive code

Natural Syntax

Use operator overloading plus unicode operators and identifiers to write code that looks like math

Get mentored the Julia way

Every language has its own way of doing things. Julia is no different. Our mentors will help you learn to think like a Julia developer and how to write idiomatic code in Julia. Once you've solved an exercise, submit it to our volunteer team, and they'll give you hints, ideas, and feedback on how to make it feel more like what you'd normally see in Julia - they'll help you discover the things you don't know that you don't know.

Learn more about mentoring

Community-sourced Julia exercises

The Julia track on Exercism has 82 exercises to help you write better code. Discover new exercises as you progress and get engrossed in learning new concepts and improving the way you currently write.

See all Julia exercises
Julia

Get started with the Julia track

The best part, it’s 100% free for everyone.