Ensure Julia is used to its full power

I started programming almost 3 decades ago so for me it was kind of normal to learn that by myself, so did I with Julia and other languages. In our university, the coding courses for physicists were basically non-existent when I started studying in 2006. There was a “computational physics” course but it was extremely basic (reading CSV files with C and doing some low level calculations) so I skipped that completely but luckily the computer science department in Erlangen is at the same location so I was able to visit some advanced courses on hardware architecture and algorithmics etc. But those were only theoretical courses with examples in Java.

In 2018 we started to introduce a Python course for physics students which is now mandatory. It’s a mix of Numpy/SciPy and Matplotlib. I already see the impact in e.g. the electronics lab course which I supervise every year: students are working with Jupyter notebooks instead of Excel ;)
For next year I will try to squeeze in a Julia course.

Well, since I (and I feel that the majority of the Julia community) know multiple languages and already spent a lot of time in studying computer science, the learning path for Julia is different.
I think you should grab a book about some computer science fundamentals and then just work through a few Julia tutorials while studying the docs and reading a lot of code from others (like packages you use). I highly recommend the @edit macro in the Julia REPL (cf. @edit atan(2)) to check how a specific method is implemented. It brings you right to the source code and you can look around.

What I found really interesting is “Algorithms for Optimization” from Mykel J. Kochenfelder. It’s not a cheap book but it’s a very nice collection of algorithms written in Julia. Other than that, David P. Sanders hands-on courses are also really neat, for example Introduction to Julia - Part 1 | SciPy 2014 | David Sanders which is a bit outdated but is still a well structured introduction in my opinion. The https://www.youtube.com/user/JuliaLanguage YouTube channel is a great source if you like watching videos and recently Grant Sanderson (3Blue1Braun on YouTube, very high-quality content!) started to post videos where he uses Julia and Pluto to teach mathematical and computer science concepts, like here, about the Discrete Fourier Transform: https://www.youtube.com/watch?v=g8RkArhtCc4

I hope this helps; you have to find your own path, so get inspired ;)

15 Likes