Getting Started with Julia

Hello!
I just came across Julia language while surfing through GSoC orgs and the purpose behind the language’s creation has been really intriguing for me. So, I really want to get started with this language.
I have installed Julia , and since I come from a C++ background I have also gone through the documentation of the same. Any suggestions for video resources for learning Julia? Or on how to get started if I want to contribute to the org in GSoC would be deeply appreciated.

1 Like

Did you find this?

or this

2 Likes

Thank you so much for your reply.I have already gone through the first link and installed Julia using the same.The second link I am going through right now. Any resources on how to learn Julia? Like in order to reach a decent level in the language.

As a majority part of Julia is written in Julia, you could take stdlib as an example about how to develop a package and then base to reach a decent level.

https://github.com/JuliaLang/julia/tree/master/stdlib

https://github.com/JuliaLang/julia/tree/master/base

2 Likes

Ohkay! Thank you so much. I will look up to these resources now.

1 Like

I have gathered a few learning resources at https://gdalle.github.io/IntroJulia/

2 Likes

Hello @BabyElias and welcome! There is a friendly community here.
You willhave problems at some stage - please ask here for help. Stick with it!
There are lots of resources for learning Julia available.
I suggest searching for JuliaCon videos on youtube and picking some you like.
Also the MIT Computational Thinking course might be a great place to start.

https://computationalthinking.mit.edu/Spring21/

3 Likes

Thank you so much @gdalle & @johnh for the resources!!

1 Like

Welcome!
I switched from C++ to Julia about four years ago. In the beginning I was a bit disappointed about the performance, until I realized that I did not spend enough attention to the performance tips. I also did not spend enough attention to the package managment and always “globally” installed packages. Now I am a big fan of using project-specific package environments. This is very helpful if you work on the same project on different machines, or if you need to revise an old project. Note that many Julia packages are in active development so that the syntax used in a package may change over time. If you use project-specific environments you can ensure that old code works (with the package versions you used therein).

5 Likes

Okkayy @mike_k .I will definitely keep this in mind when I begin.

@mike_k A simple tutorial on project management would be very welcome. Something aimed at beginners.

1 Like

It is nicely explained here, but I can briefly summarize how i do it (probably not the best practice, but it works fine for me).

Create new project folder (e.g., MyProject) , and set it as working directory:

cd(/pathToMyProject/MyProject/)

Activate your project-specific environment the first time:

pkg"activate ."

By pressing ] you can verify the project environment is active (and empty)

(MyProject) pkg> 

Add some packages to your project environment (e.g., DataFrames)

(MyProject) pkg>  add DataFrames

You can verify the status of your project environment by st

(MyProject) pkg> st
      Status `/pathToMyProject//MyProject/Project.toml`
  [a93c6f00] DataFrames v1.3.2

and see that DataFrames is now installed. Now assume that you have worked on a different project (using different packages), and you like to continue working on MyProject. Then simply again set the working directory, activate your project environment, and instantiate it.

cd(/pathToMyProject/MyProject/)
pkg"activate ."
pkg"instantiate"

Essentially all of my projects start with these three lines of code. Note, however, that activating and instantiating only needs to be done the first time you resume to a project. If you execute your code on a different machine the first time it will install all needed packages automatically.

Note that once I have a set of packages that work for a project installed, I never update them unless there is a good reason.

1 Like

Thanks for this beginner-friendly stepwise guide @mike_k !

Don’t forget to use Revise and the workflow associated with it.

2 Likes

Sheep, I missed it.
Is there a way to get notified when the next run starts?

Not video, but in addition to the great resources given above, I also found these courses from the Czech Technical University incredibly helpful:

And of course this one with associated video on YT from @ChrisRackauckas: (Book) Parallel Computing and Scientific Machine Learning (SciML): Methods and Applications - Community - JuliaLang

I also subscribe to the following YT channels:

Tutorials can also be found on The Julia Programming Language YT channel:
The Julia Programming Language - YouTube. Note that some may be (considerably) more recent than others on this channel. Same goes for the Julia Computing YT channel: Julia Computing - YouTube.

6 Likes

This thread now seems like the perfect go-to-beginner’s guide ! Thanks a lot.

2 Likes