# Advanced Book Recommendation to Learn Julia

**URL:** https://discourse.julialang.org/t/advanced-book-recommendation-to-learn-julia/100177
**Category:** Community
**Tags:** question, books, compiler
**Created:** [June 11, 2023, 10:27am UTC](https://discourse.julialang.org/t/advanced-book-recommendation-to-learn-julia/100177 "2023-06-11T10:27:29Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![josemanuel22](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/josemanuel22/32/20668_2.png) [@josemanuel22](https://discourse.julialang.org/u/josemanuel22)
#### Post date: [June 11, 2023, 10:27am UTC](https://discourse.julialang.org/t/advanced-book-recommendation-to-learn-julia/100177/1 "2023-06-11T10:27:30Z")

</div>

I am looking for a technical book about Julia that, if possible, also explains all the intricacies of why Julia is designed the way it is, aspects of high performance, technical tricks, etc. I am a mathematician, but I have many years of experience working as a developer and have theoretical and practical knowledge in compiler and programming language aspects.

---

<div class="post-metadata">

### Author: ![jacobusmmsmit](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jacobusmmsmit/32/217669_2.png) [@jacobusmmsmit](https://discourse.julialang.org/u/jacobusmmsmit)
#### Post date: [June 11, 2023, 10:46am UTC](https://discourse.julialang.org/t/advanced-book-recommendation-to-learn-julia/100177/2 "2023-06-11T10:46:22Z")

</div>

You should check out [_Julia: Dynamism and Performance Reconciled by Design_](https://dl.acm.org/doi/pdf/10.1145/3276490). It sounds like what you’re looking for with respect to why it was designed the way that it is.

Another commonly recommended book which is more intermediate is _Hands-On Design Patterns and Best Practices with Julia_ which goes over the basics, and then common design patterns for performance and robustness.

---

<div class="post-metadata">

### Author: ![Thiago-Simoes](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/thiago-simoes/32/50660_2.png) [@Thiago-Simoes](https://discourse.julialang.org/u/Thiago-Simoes)
#### Post date: [June 12, 2023, 2:20am UTC](https://discourse.julialang.org/t/advanced-book-recommendation-to-learn-julia/100177/3 "2023-06-12T02:20:40Z")

</div>

To learn Julia and many other technologies, I recommend checking out Packt. It was one of the few places where I found a lot of content about Julia. It’s great and with the free trial you can read an eBook or two and cancel if you prefer.

---

<div class="post-metadata">

### Author: ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)
#### Post date: [June 12, 2023, 7:36am UTC](https://discourse.julialang.org/t/advanced-book-recommendation-to-learn-julia/100177/4 "2023-06-12T07:36:09Z")

</div>

> [@josemanuel22](#):
>
> all the intricacies of why Julia is designed the way it is, aspects of high performance, technical tricks

Asking for _all_ the details of Julia’s design may be a lot. Julia has been around for 14 years now, and quite a few design details were accidental, motivated by a constraint that is no longer binding, or are left in place because changing them would be breaking. Also, a lot of those details, especially the internals which can change without breaking compatibility are not necessarily final, and are just waiting for someone to come up with a better solution.

It would be better to focus on something, eg how Julia is lowered and compiled (still a huge topic), how the GC works, current perfomance gotchas and future developments, etc. Even digging into one of these will take a lot of time for most people. A lot of it is not compiled in a book form, but you may find the following breadcrumbs helpful:

1. issue and PR labels on Github,
2. git blame for tracking down history and discussion related to a change,
3. Juleps, which are mostly no longer in the Juleps repo but you can find them with issue labels.

Even PRs/Juleps which are not merged/implemented in the end frequently contain a lot of enlightening dicussion.

---

<div class="post-metadata">

### Author: ![gdalle](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gdalle/32/27854_2.png) [@gdalle](https://discourse.julialang.org/u/gdalle)
#### Post date: [June 12, 2023, 11:18am UTC](https://discourse.julialang.org/t/advanced-book-recommendation-to-learn-julia/100177/5 "2023-06-12T11:18:44Z")

</div>

As far as performance is concerned, @jakobnissen’s blog is by far my favorite resource, and it also goes deep into the lore and history of Julia: [https://viralinstruction.com/](https://viralinstruction.com/)

---

<div class="post-metadata">

### Author: ![lmiq](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lmiq/32/18314_2.png) [@lmiq](https://discourse.julialang.org/u/lmiq)
#### Post date: [June 12, 2023, 12:08pm UTC](https://discourse.julialang.org/t/advanced-book-recommendation-to-learn-julia/100177/6 "2023-06-12T12:08:11Z")

</div>

The PhD thesis of Jeff Bezanson is a nice read, particularly the introduction: [phdthesis/main.pdf at master · JeffBezanson/phdthesis · GitHub](https://github.com/JeffBezanson/phdthesis/blob/master/main.pdf)
