Sharing my Julia learning journey

I have been interested in learning Julia for the past few years. It is

  • fast

  • dynamic

  • reproducible

  • composable

  • general purpose

and the Open Source community is growing and doing all the things I love: processing data, building scientific models, and sharing great resources.

Background in Scientific Computing

I started scientific computing in MATLAB as a grad student in 2008. I was building 1D beam mechanics models for our research group. Then, I needed to run scientific calculations in between finite element analyses (in Abaqus) and use the results. Python was a natural migration from MATLAB because it is such a great all-purpose glue language. Almost every engineering software I use has some SDK with Python as the interface.

Current tools = Python

Now, I have been teaching scientific computing in engineering courses for over 5 years and taught over 90 credits worth of courses for undergrads and grads. I push Python as a general purpose tool that does everything

  • symbolic math (SymPy)

  • linear algebra (NumPy)

  • Integrating, ODEs, PDEs, and more (SciPy)

  • Plotting and visualization (Matplotlib)

  • Data processing and exploration (Pandas)

I love these libraries, the communities, the possibilities.

Ready for Julia!

Then, I read Why We Use Julia, 10 Years Later. It is a wonderful a collection of people descibing the same interests and backgrounds that I love all joining together to share their journeys. Now, I have to find out what the draw to Julia is. Some initial guesses, based upon my work with Python:

  • the Julia community: the posts and interactions I’ve seen are positive, welcoming, and helpful. Its so new and exciting to everyone involved

  • the syntax: looking at code examples (just a few so far), it looks like the language is meant to reflect math ideas directly and succintly. I’m looking forward to diving into this language

  • the documentation: One quick thing I learned was that docs are written in Markdown. Markdown has been my preferred website/doc/notetaking format. I still get confused with Sphinx and \(\LaTeX\) feels like its built just for writing theses.

Getting started

I decided I will take 20-30 min per day to experiment with Julia and all its possibilities. I’m looking forwar to taking some of my Python work and porting it over to Julia and even trying some new work with existing examples and tutorials from the Julia community. I hope you enjoy these posts as I find my way through this new language.