# Ensure Julia is used to its full power

**URL:** <https://discourse.julialang.org/t/ensure-julia-is-used-to-its-full-power/51155>\
**Category:** New to Julia\
**Tags:** question, first-steps\
**Created:** [December 3, 2020, 12:02am UTC](https://discourse.julialang.org/t/ensure-julia-is-used-to-its-full-power/51155 "2020-12-03T00:02:23Z")\
**Posts on this page:** 1\
**Showing post:** 80

<div class="post-metadata">

**Author:** ![tamasgal](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamasgal/32/27946_2.png) [@tamasgal](https://discourse.julialang.org/u/tamasgal)\
**Post date:** [December 10, 2020, 8:15am UTC](https://discourse.julialang.org/t/ensure-julia-is-used-to-its-full-power/51155/80 "2020-12-10T08:15:01Z")

</div>

> [@Undercover](#):
>
> Out of curiosity, considering you’re a physicist, did you learn Julia outside of university or was it something that it was being taught there?

I started programming almost 3 decades ago so for me it was kind of normal to learn that by myself, so did I with Julia and other languages. In our university, the coding courses for physicists were basically non-existent when I started studying in 2006. There was a “computational physics” course but it was extremely basic (reading CSV files with C and doing some low level calculations) so I skipped that completely but luckily the computer science department in Erlangen is at the same location so I was able to visit some advanced courses on hardware architecture and algorithmics etc. But those were only theoretical courses with examples in Java.

In 2018 we started to introduce a Python course for physics students which is now mandatory. It’s a mix of Numpy/SciPy and Matplotlib. I already see the impact in e.g. the electronics lab course which I supervise every year: students are working with Jupyter notebooks instead of Excel `;)`  
For next year I will try to squeeze in a Julia course.

> [@Undercover](#):
>
> If you’re using Julia in such an advanced way, is there any go-to books or guides on it?

Well, since I (and I feel that the majority of the Julia community) know multiple languages and already spent a lot of time in studying computer science, the learning path for Julia is different.  
I think you should grab a book about some computer science fundamentals and then just work through a few Julia tutorials while studying the docs and reading a lot of code from others (like packages you use). I highly recommend the `@edit` macro in the Julia REPL (cf. `@edit atan(2)`) to check how a specific method is implemented. It brings you right to the source code and you can look around.

What I found really interesting is “Algorithms for Optimization” from Mykel J. Kochenfelder. It’s not a cheap book but it’s a very nice collection of algorithms written in Julia. Other than that, David P. Sanders hands-on courses are also really neat, for example [Introduction to Julia - Part 1 | SciPy 2014 | David Sanders](https://www.youtube.com/watch?v=vWkgEddb4-A&t=2319s) which is a bit outdated but is still a well structured introduction in my opinion. The [https://www.youtube.com/user/JuliaLanguage](https://www.youtube.com/user/JuliaLanguage) YouTube channel is a great source if you like watching videos and recently Grant Sanderson (3Blue1Braun on YouTube, very high-quality content!) started to post videos where he uses Julia and Pluto to teach mathematical and computer science concepts, like here, about the Discrete Fourier Transform: [https://www.youtube.com/watch?v=g8RkArhtCc4](https://www.youtube.com/watch?v=g8RkArhtCc4)

I hope this helps; you have to find your own path, so get inspired `;)`

---

_[View the full topic](https://discourse.julialang.org/t/ensure-julia-is-used-to-its-full-power/51155)._
