Julia Programming For Biologists
Welcome! I developed this website for the purpose of teaching tutorials about the Julia programming language, in the context of biology.
Julia is a relatively new programming language (started around 2012; first official release in 2018) that is both highly readable (by humans) and fast. This is intended to solve the “2-language” problem, a common workflow in which development of a new program is done first in a highly readable language (e.g., R or Python) and then converted by an expert programmer into a fast but less readable language (e.g., C), resulting in code than can be difficult to interpret by non-experts. Hence Julia provides easy entry for new programmers while also having the power and efficiency to appeal to experts. It is used by NASA, Moderna, Pfizer, and many other organizations, and is used widely by scientists doing climate modelling of Earth and imaging black holes in distant galaxies.
If you are in doubt that you need a faster or more readable language than the one you are using, ask yourself this: Have you ever heard other scientists mention how long their bioinformatic processing or evolutionary simulations can take? It is often on the scale of days, weeks, months. What if that were instead minutes, hours, days? How might that accelerate your research, and allow you to expand the scope of your science? Have you ever heard someone say “I can’t program”? Did they decide that because they are fundamentally unable to learn the logic of programming, or because many the languages used in programming can be difficult to learn?
I have used Julia in my own work for about four years now, after having much experience with Matlab and then R, and dabbling a bit in Python, C, C++, and Java. The developers of Julia have praise for aspects of all of these languages, and their goal was to combine all the good aspects into one efficient and readable language. I think they have succeeded marvelously. (I am not the only one—see this paper in Nature Methods for a discussion of the merits of using Julia in biology.)
My intended audience with these tutorials is biologists with no or little previous programming experience, who are interested in building their data science, bioinformatic, and statistics skills, or who even want to design their own mathematical models and simulations. In particular, I used these to teach a new graduate-level course “Computer Programming for Biologists” at UBC in November of 2024, which after enthusiastic feedback is being taught again in November of 2025. My goal is to get students programming quickly, giving just enough underlying explanation of computer science principles to enable fast progress.
These tutorials are a work in progress, and there will be additions and revisions from time to time . . .
For more details on the features of Julia, see here.
To advance through pages of the tutorial, click on the right arrow below.
