Intro

Intro

Note

This version is extremely preliminary and very much work-in-progress. Your comments are more than welcome.

The purpose of this notebook is to capture, organize, and categorize a knowledge repository of my Julia workflow. I wrote it mainly for my students attending my PhD course on quantitative macroeconomics at the University of Mannheim but also for myself to be able to get back to Julia after short breaks.

The Julia community offers many great resources where readers can start their journey with Julia absolutely from scratch, like Julia Express by Bogumił Kamiński or Think Julia: How to Think Like a Computer Scientist by Ben Lauwens and Allen Downey. In my tutorial, the target audience are people that have been exposed to solving quantitative models before. In particular, I try to emphasize the differences between Julia and other popular languages used by economists such as Matlab, R, or Python.

I heard many times that you can start coding in Julia by writing a Matlab code and then replacing normal brackets with square brackets for all arrays (actually that was my first time with Julia in 2014 during my PhD studies. To my surprise a barely changed code written for Matlab was 40 times faster in Julia!). While there are some similarities in both languages, there are also some critical differences that at first glance are not visible. In the best case scenario, those differences may lead to unexpected code interruptions. In the worst case, the code will be executed properly but the results will be completely wrong. This might give rise to many unnecessary frustrations and will make the learning curve steeper than it needs to be. My intention is to flatten the curve as much as possible.

A great and impressive intro by Jesse Perla, Thomas Sargent, and John Stachurski to Julia, which can be found here, shares the goal of my tutorial. That being said, in my opinion the authors give equal weights to both programming and models themselves. On the other hand, I try to focus on daily workflow instead and I intentionally do not discuss the models thoroughly.