To make my post understandable, I need to first write few boring things about my background. I’m daily C++ programmer, with some Rust on the horizon and teacher in one polish college, when I teach first year students how to write code in C. My students are truly beginners having problem with writing “Hello World!” in C (studio.h is not the same as stdio.h show displayed code). I also have some background knowledge of Lisp language family.
In last few month I want to go back to Julia and learn it better. I know it basic, surface syntax, but we know you can open the hood and go down rabbit hole very deep. Also, I don’t know how to write code with good conformance. And I just like do everything I do as best as I can. My main limitations is that my daily job requires from me C, C++ and I also should learn some Rust and it leaves not many time for Julia.
So, I was going through the learning materials that I find and unfortunately time wasn’t kind to most of them. Even core Julia code written few years ago can produces errors now. Like code from JuliaAcademy course used to compilation of C code
open(gcc -fPIC -O3 -msse3 -xc -shared -o $(Clib * "." * Libdl.dlext) -, "w")
It doesn’t work in my Julia 1.9.3 and after some time I figured out that Libdl.dlext
should be replaced by Base.Libc.Libdl.dlext' and it run. In the same lecture we have code
apy_list = PyCall.array2py(a, 1, 1)`
I didn’t figure out how to run it, but it is PyCall.jl issue, not base Julia. Of course I didn’t check all learning materials, but work my way through few of them.
Ad rem. I don’t know what is the main direction of Julia community outreach right now, I’m not involved enough at this moment to know such things. What I sadly see, it is that learning materials are quite ill suited for beginners, teaching first year students programming in C make this even more painfully obvious. People like me can figure out how to tweak a code or check great Julia manual to find solution, but most beginners will probably stuck and just abandoning learning Julia, due to poor teaching materials. On the bright side of things, when times allows I work my way through materials on doggo dot jl and at this moment I very satisfied by them.
I quite passionate about Julia, only my daily life often doesn’t allow me to follow this passion. And I’m also very interested in making programming languages accessible to beginners and scientist outside CS. From this perspective I must sadly say, that judging Julia learning materials, outreach to the beginners is quite poor. Maybe Julia is not a language for beginners (???), but I think many outstanding members of community show how much potential is in reaching outside CS, which to me signals that being open to people starting their adventure with programming. If beginners have a problems with learning materials, he or she will probably find answer here, but good tutorials shouldn’t force people to ask community for help again and again.
I need to stress one thing. Since even introductions to Julia used many packages outside core Julia and standards library, so it is quite unavoidable that they will broke over time. At the same time problem with Libdl.dlext
moved to Base.Libc.Libdl.dlext
seems to be braking change in Julia itself, that shouldn’t happened in Julia 1.x from what I understand. It is not true problem for me, outside being unsettling.
Can I offer my free time for creating or improving learning materials? Yes, I can make that offer, but there are few problems with me. As I said, I’m not advanced Julia programmer, my English is not good (you probably see it here) and I will need at least person to be working with me. Left alone I’m too easily distracted for things that are not my daily job. Things like learning Git more in depth (I still didn’t finished ProGit book), can easily take may attention away from one problem for a long time. When I want to go back to timestamps for Julia YT videos, but Git constantly distract me from that. I acknowledge, I’m weird to some extent. Experience show, that another person is needed, to keep me in check. Outside of that I will be happy to make small contribution to Julia community.