The Julia programming language is becoming increasingly popular, with over 3 million downloads, as of January 2019. The programming language is designed to have it all–the speed of C, the dynamism of Ruby, true macros like Lisp, mathematically powerful like MATLAB, the usability of Python, easy for statistical use like R, and can perform string processing like Perl. (Note: This article about learning Julia is also available as a free PDF download.)
The general-purpose language is designed for speed, efficiency, and high performance. It is dynamically and optionally-typed, has a rich language of descriptive datatypes, is open source with all source code available for public view on GitHub, and uses high-level syntax, making it ideal for programmers from any background or experience level.
Additionally, Julia can easily express many object-oriented and functional programming patterns and its standard library provides asynchronous I/O, process control, logging profiling, and a package manager, among other things.
SEE: How to build a successful career as a DevOps engineer (free PDF) (TechRepublic)
If you’re interested in learning more about Julia, the following list of resources can help you get started.
Note: This list is also available as a free PDF.
Data Science with Julia: This book is useful as an introduction to data science using Julia and for data scientists seeking to expand their skill set. It discusses core concepts, how to optimize the language for performance, and important topics in data science like supervised and unsupervised learning. It’s intended for graduate students and practicing data scientists who want to learn Julia. Though no previous programming experience is required, this book provides a smooth transition for those who are already familiar with R.
Learning Julia: Build high-performance applications for scientific computing: A comprehensive overview of Julia, from syntax basics to writing effective functions, reducing code redundancies, learning built-in object types, and much more. Utilizing a step-by-step approach, the authors explain concepts and illustrate how to use the programming language through examples.
Julia 1.0 Programming – Second Edition: Quick start to your Data Science projects: This book provides a “crash course” into Julia and is recommended for statisticians and data scientists. It begins with an introduction to the basics and then delves into how to set up the Julia environment for high productivity, visualize data with plotting packages, explore built-in macros for testing and debugging, integrate Julia with other programming languages (e.g., C, Python, and MATLAB), and more.
Julia Programming Projects: Learn Julia 1.x by building apps for data analysis, visualization, machine learning, and the web: This book offers an introduction to Julia before covering more in-depth concepts like: How to analyze and manipulate datasets, build a recommender system using supervised machine learning, perform time series data analysis, visualization, and forecasting, perform exploratory data analysis, and more. It’s ideal for data scientists, statisticians, business analysts, developers, and anyone who knows programming basics.
Julia 1.0 Programming Cookbook: Over 100 numerical and distributed computing recipes for your daily data science workflow: Each “recipe” in the book focuses on a specific problem and provides solutions with explanations. It’s recommended for developers who already have a basic knowledge of Julia and would like to enhance their programming skills as well as discover quick solutions to common programming problems.
Hands-On Computer Vision with Julia: Build complex applications with advanced Julia packages for image processing, neural networks, and Artificial Intelligence: This is a thorough guide for developers who have a working knowledge of Julia and want to learn how to perform image processing and explore the field of computer vision.
Courses and tutorials
Learn and Master Julia Programming Language from Scratch: This introductory course from Udemy offers a comprehensive and hands-on approach to learning the fundamentals of Julia. No prior experience with programming/Julia is required.
Hello Julia: Learn the New Julia Programming Language: This beginner course from Udemy starts with the basics of Julia (variables, strings, logical operators, arrays, etc.) before delving into more complex concepts like: Meta programming, directories, error handling, and so on. By the end of the course, users should be able to understand the fundamentals, write in Julia at an intermediate level, and perform File I/O operations.
Learn Julia for Android: This app download, available from sister site Download.com, explains how to get started with Julia and offers a general overview of the programming language. It also includes a quick reference guide, simplified documentation, cheatsheets, news feeds, as well as other additional resources.
Getting Started With Julia: Offered by Packt, this video tutorial teaches the fundamentals of Julia and is intended for developers with basic programming knowledge. The video uses a hands-on approach, provides a tour of the Julia ecosystem, and includes examples for users to try.
Julia Solutions: Taught by Jalem Raj Rohit, author of the Julia Cookbook, this video tutorial from Packt uses a recipe-based approach to explain concepts such as: Identifying and classifying data science problems, data modeling, analysis, and manipulation, multidimensional arrays, and more.
Julia for Data Scientists First Look: This 33-minute intermediate course from LinkedIn Learning provides an overview of Julia’s functionality, power, and limitations. Formatting data with different data types, performing math and vectorized operations, creating expressions, and running macros are also covered.
Why Should I Learn Julia Programming: This six-minute video by CodeBasics goes over some of the reasons programmers should try Julia. There is an introduction to the language, fundamental principles behind its design, and an explanation of how Julia compares to Python.
Intro to Julia: From the official Julialang.org site, this tutorial is a basic introduction to the programming language. The almost two-hour video goes over the features of Julia, including the package ecosystem, linear algebra, and multiple dispatch. No prior knowledge of Julia is required.
Julia Tutorial: This tutorial by Derek Banas condenses a 300-page book about Julia into a one-hour video. Banas covers variables, data types, looping, anonymous functions, enums, abstract types, and more. A transcript of the video and all of the code used are also available.
Intro to Julia for Data Science: In this two-hour video tutorial, Huda Nassar, PhD candidate at Purdue University and author of “MatrixNetworks.jl,” discusses how to work with data in Julia. Also discussed are data processing, algorithms, and visualizations.
Intro to dynamical systems in Julia: This two-hour video with George Datseris from the Max Planck Institute for Dynamics and Self-Organization provides an introduction to DynamicalSystems.jl, a Julia package for modeling chaos and nonlinear dynamics.
Intro to solving differential equations in Julia: Mathematician Chris Rackauckas discusses how to use the DifferentialEquations.jl package in Julia. This two-hour video is intended for users who are new to the programming language.
Intro to the Queryverse, a Julia data science stack: Professor David Anthoff of UC Berkeley goes over Queryverse.jl, a Julia meta package with data science tools. Also discussed in the video are Query.jl, Tabular File IO, and DataVoyager.jl.
Showcasing Julia on the Web: In this 15-minute video from JuliaCon 2018, Alex Mellnik explains how developers can create an interactive, web-based demo so users can interact with newly created packages built with Julia. Additional videos from the conference are also available.
Fast Track to Julia 1.0: This “cheat sheet” is a quick reference guide for Julia. It has sections on Julia basics, collection functions, operators, standard libraries, exceptions, modules, arrays, expressions, macros, and much more. It also includes links to additional resources and videos.
GitHub: Julia is an open source programming language–all of its source code is available via GitHub. Users can find tutorials, indexed tables, a parallel analytical database, Intel MKL linear algebra backend, and more on the site.
Julia.jl: A curated index of Julia resources and packages on GitHub.
Julia Observer: Users can browse Julia packages.
Learn more about Julia
For a more comprehensive list of resources, including video and text tutorials, books, websites, university courses, and more, check out the learning section on the official Julia site.