Getting Started With Julia

Getting into a new programming language is always a bit overwhelming, because there are so many places to start! Here is a short list of things I like to send to people new to Julia, aimed at varying skill levels:

  • Learn X in Y Minutes - Julia edition, a good quick tour if you already know other languages like python pretty well
  • Towards Julia 1.0, by David Sanders, is a great tutorial for the latest versions of Julia. Because the language went through so many changes before 1.0, not all older tutorials will still be usable!
  • Getting Started with 1.0's Package Manager, for those you (probably everyone) who will want to start using libraries in the “package ecosystem” and maybe write your own!
  • How to use the new iteration interface, since many people need to write for-loops!
  • Celeste.jl – amazing example of what mixed (shared and distributed memory) parallelism is capable of in Julia
  • StaticArrays.jl, high performance small arrays which show off some of the features of julia's type parameterization
  • JuliaGPU, which has a collection of packages for writing native Julia code for GPUs and using existing GPU libraries from Julia
  • The JuliaLang learning page, which has lots of good links for learning the language and some best practices
Katharine Hyatt
Postdoctoral Scholar

My research focuses on developing new numerical methods to understand 2D correlated electronic systems, and finding interesting applications in condensed matter physics for these methods. I also moonlight as a sometime Julia language and package developer.