What Julia's things (and packages) do you suggest to learn first?


#1

What topics and libraries would you suggest to learn first?

For example:
Basic Julia, Dataframes, Plots, CSVFiles, JuliaDB, whatever you use at work (for example GLM, survival analysis, ML…), Algorithms and tricks, more difficult Julia Internals…
How? With exercises, following a book, as you need it, videotutorials…?
In Julia many important things are spread on different packages, with different syntax.

For me videotutorials are slow and boring because you can’t scroll/rewind easily to interesting topics.


#2

Most people learn about the packages they need to accomplish a particular task. Decide on a task first (eg a hobby project, a small research topic you want to explore, etc) and then your needs will be more concrete.

Same here, but many major packages are well-documented, have interactive workbooks, etc. Reading and understanding source code is also a valuable learning tool.


#3

As Tamas Papp has explained also, I agree that the answer to your question will probably not be based on something which already exists. Since you intend on becoming a user of Julia, your needs will arise out of pursuing problems which have not already been solved efficiently previously. When we decide to do some programming with a language, we typically wish to achieve something that has not already been done before, and in trying to achieve that goal you will have various changing requirements for what you need to import from previously existing code.

In many cases, I have been able to achieve my goals by only using the Base julia language, since I try to use as few dependencies as possible to achieve my goals. However, as a mathematician, I find several basic packages useful such as SpecialFunctions, Primes, Combinatorics, LightGraphs, LaTeXStrings, Reduce, SyntaxTree, Nemo, PyPlot, ImageView, BenchmarkTools, Grassmann, etc.

Typically, the packages I like to use the most often are the ones I’m currently developing and building up.

However, I think often times the base Julia language itself often provides most of what is needed. Also, my list is probably not that relevant to everyone. So I would focus on finding a feasible unsolved problem first when trying to create something from scratch, and then searching online for special purpose methods to fill in the gaps provided by other packages.

Julia is considered a general purpose programming language, so a set of standard packages considered useful to one person might be completely different from the needs of other people.

For example, many people talk about DataFrames, but I don’t care about them at all.

Just go on github and click on what interests you or solves your problem, I always open tons of github pages.


#4

I learned the language by reading the complete documentation first to see if it could be useful for me. Back then it was available in .epub so I could put it on my kindle and read it easily on my holiday. Don’t know if that’s still the case.

After that I translated a project I’ve coded earlier in Matlab to experience the language first hand. Also I learned a lot by browsing the code of packages I use.

These days I do a lot of my work in python because it’s the de facto language for machine learning. Occasional some statistics in R, but I try to code in Julia as much as I can. An (integrated) debugger is the main thing that keeps me from using it every day.