Best all-purpose text or website for learning Julia?

Hi, I’m new to the Julia language but I have some very modest background in Python and R. I’ve been learning what I can of Julia from Exercism.org and from taking some old R projects and “translating” them to Julia. Both have been useful and have helped me realize I want to learn more.

What’s your favorite all-purpose resource for learning Julia, whether it’s a print text, website, etc? I’m thinking of something like Hadley Wickham’s R for Data Science but for Julia. I’m aware there is a Julia for Data Science website which is helpful however there are no exercises in it, which limits its usefulness in my case. And I’ve just found ThinkJulia, and I’m a fan of Allan Downey’s stuff, so that seems promising. But I’m wondering what else might be out there.

A little more context: I’m a mathematician but my use case is primarily for doing data science, and I am relatively new to data science. (Did a couple of online DataCamp style courses but didn’t feel like I learned much there.) However I’m also interested in Julia’s applications to applied math (although my background is in pure math). The ideal resource would be fairly general, but not extremely technical, and include exercises where I could test what I am learning. And like I said, I have some background in Python and R but I would not consider myself an expert in either.

Thanks!

9 Likes

I’m a statistician who’s been an advanced user of R and an intermediate user of Python. I’m almost finished with Think Julia, which has been useful, but it feels a little too indebted to being a port of Think Python. Once I finish the last couple chapters of Think Julia, I intend to try Julia for Data Analysis, which seems well-suited to your use case, which is much the same as mine.

4 Likes

Some shameless self-promotion here, but I have a Julia tutorial series that I try to keep up to date.

and also several posts about performance, or doing some numerical computing / FFTs with Julia:

I hope it can be a good place to get started with general Julia programming, and I also don’t think it’s too technical (i.e. it is not targeted at CS professional, but rather to scientists and engineers).

If you try to follow my tutorial and encounter any troubles, please let me know.

It’s not specific about data science, and it doesn’t contain exercises, but maybe it helps for your use case.

6 Likes

Also see Julia Academy:

3 Likes

Welcome to Julia!

I learned a lot from Hands-On Design Patterns and Best Practices with Julia [Book] (oreilly.com) by Tom Kwong (on the discourse I think), but it doesn’t cover specifically data science topics, just general software design in Julia.

I also came from R, and learned a lot by just re-implementing things I did in R in Julia. For example, here’s an example of using S3 “inheritance” in R S3 inheritance mocking dispatch on inherited types (github.com) and in Julia using proper subtypes the same example as s3inheritance.R in julia (github.com) I did to learn dispatch (albeit just on the type of single argument).

6 Likes

Slightly off topic, cause this is not about learning Julia per se. Instead, this is about making your Julia journey easier with good coding practices and useful development tools:
https://modernjuliaworkflows.github.io/

12 Likes

The julialang homepage has a great list of resources. I like the JuliaAcademy ones, but there are also a lot of tutorials on the YouTube channel (use link above). If you want to get straight into “doing stuff” I really like MIT’s computational thinking course. It’s very science focused, but still teaches the basics well through Pluto notebooks.

3 Likes

All of this looks very useful! Thanks, and please keep recommending.

It’s nice to see that the Julia community is just as welcoming as I’d heard it was. :grinning:

4 Likes

This is a short workshop from Doug Bates which I found useful. If you’re familiar with arrow, quarto, and duckdb they can easily be used the same way in Julia as in R.

https://crsl4.github.io/julia-workshop/

4 Likes

I don’t hear it much at all here, but in many languages I’m used to hearing hate for the documentation - but Julia’s documentation is pretty great, IMO. I’d say I spent most of my time reading and re-reading it.

When I was really new, I found this lecture by Stefan Karpinski really motivating:
JuliaCon 2019 | The Unreasonable Effectiveness of Multiple Dispatch | Stefan Karpinski - YouTube

Packages, confused me. There isn’t anything wrong with them - but there very well may be something wrong with me. This helped.

Some of the bullet points from our company “new-to-Julia” list:

5 Likes

Since you mentioned data science, check our recent book:

1 Like

Mine, with sone quizzes (for the first part) and exercises (second part):
Introduction to Scientific Programming and Machine Learning with Julia

Also coming from R. I bounced around between a few of those already listed. I don’t entirely know why, but I found Julia as a Second Language to be the particularly helpful.

5 Likes

I don’t know if you like learning from videos but Doggo dot jl is what got me started in Julia. Their intro to Julia series helped me feel much more comfortable with types, multiple dispatch, and other things that are special about Julia. They also have series of dives into different domains where Julia is big. Each video is accompanied by a Pluto notebook so you can follow along.

4 Likes

I feel that I can recommend Practical Julia based on your background description, a recent release aimed at working scientists and mathematicians:

(Disclaimer: I did technical review for the book, but do not receive any share of sales.)

6 Likes

Any of these include tutorials on using the debugger? I find myself using println too much :frowning: .

1 Like

I second the “Julia for Data Analysis” and “Design Patterns and Best Practices with Julia” mentioned above.

2 Likes

use Infiltrator

4 Likes

This is a really nice book

2 Likes

Search the JuliaLang youtube channel. IIRC, there are videos about the entire Julia VS Code workflow including Revise and Debugger.

1 Like