2021 Recommended self-teaching Julia material depending on computing skills

Well, I beg to differ about the George Root book. [Edit:] I don’t love it. The front cover gives it away as it shows the author has just picked up the language coming from a Python background. The book just explains the syntax of Julia but not as well as the official and excellent on-line manual, which is always up to date. A book like Root’s will be out of date in the blink of an eye as Julia is maturing rapidly.

It depends on the level of the student to some extent but learning Julia at the level taught in Root’s book is trivial anyway – it’s just syntax plus dataframes and plotting using PyPlot. If that’s all you want to do your students to learn, you may as well use Python or MATLAB.

At the other end of the spectrum is Hands on Design Patterns and Best Practices with Julia by Tom Kwon. This teaches you how to write Julia programs sensiblly. Starting with the correct structural basics is much more important than throwing syntax at people. Anyone can learn syntax but IMHO the whole point of Julia is its elegance and the way it inherently forces you to adopt good practice but only if you have some understanding of good practice.

I speak from some 30 years’ experience having taught FORTRAN, Pascal, Java and even a little Erlang to university students. But I learned from my mistakes such as teaching students how to program well by focusing on good practice and making fun of bad practice seemed to lead to more engagement and much better outcomes. Rant, rant, rant somebody stop me.


Seconding Tom Kwong’s book for people in categories 2 or 3. It’s a well-written, extremely approachable overview. No one will use everything in it, but almost everyone will learn something.


Eish, I am blushing. The real reason is that i am just not as productive as the youngsters!

1 Like

@Henri_Laurie, we all learn from mistakes and people are afraid to make them, so the title of your beginners course is spot on.

To get back one’s youth one has merely to repeat one’s follies (Oscar Wilde)