Learning materials and outreach to the programming beginners

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.

5 Likes

Let’s start with this. Julia has been pretty stable since Julia 1.0 was released in 2018. There are a few special circumstances, but this is not one of them as far as I know. I think it was more likely that a line was omitted.

using Libdl
open(`gcc -fPIC -O3 -msse3 -xc -shared -o $(Clib * "." * Libdl.dlext)`, "w")

Looking at the notebook in Github I see that line in the Jupyter cell.

As the course points you to this forum, I think the discussions here should not be discounted. Between this and the other community resources, this may the most efficient manner to be resolve such problems at the moment. I somewhat prefer answering questions on Discourse because they are indexable.

My advice is to keep posting. Keep asking questions. Keep pointing out the problems.

To be honest, this may be more challenging for you than your students. You are used to certain culture of programming. At the moment Julia’s programming culture is quite social.

5 Likes

Thank you for pointing this out. I quickly check out the video and I didn’t see the line using Libdl there. Maybe I missed it, maybe it was run in the Jupyter in part didn’t show on video.

I’m quite certain that any contribution you are willing and able to make will be greatly appreciated. Teaching Julia to beginners comes up in discussions here fairly regularly, and the people who are most qualified to suggest changes are the beginners themselves since they know exactly where the problems are.

If you think language could be a barrier (though your English is just fine and 10000% better than my Polish), then instead of creating videos, just checking for bugs, updating materials to use newer Julia versions, and writing short examples for documentation would be some examples of other really impactful work. Just find something that you’re inspired to change, and give it a go!

I am a huge weirdo as well, so you are in good company. :smiley:

1 Like

Thank you for words of encouragement. At this moment I lack a sense of direction to go and lack of any idea how to make any sensible choice. Maybe noting my problems with materials from Julia Academy as GitHub issue would be a good start?

I quite afraid to do something more that posting humble issue, since I can dig myself into “ProGit” book (still 250 pages to read) and not doing anything in Julia for a long time.

2 Likes

At this moment I want to engage again in project of timestamping Julia videos on YT, since the fact that I left so many things open is still bugging me. Automatic generated timestamps are quite good, but still not as good as good one made during watching video.

There is over 70 open issues that need to be closed at GitHub. I already wrote message with my proposition. Do you know what is a status of this repository now? Is any one senior looking after it at this moment?

I can do a lot of work, it is easy, but someone need to go to YT and post or correct timestamps, which is what I CAN’T do. Outside of that, I can do, I believe, pretty much everything.

It does not look like it is actively maintained. Maybe you could ask @logankilpatrick for commit rights so you could merge PRs if you want to put work into reviving this project. (In the Julia community, it is common practice to do this, but of course the repo owners decide).

2 Likes

I send mail to him and waiting for it response.

Personally, I enjoy rewatching more technical Julia videos and making timestamps to them. Today I probably rewatch What’s the deal with Julia binary sizes?.

2 Likes

Despite being not strictly courses about progamming, I like the fundamentals of numerical Fundamentals of numerical computation by Driscoll and Braun and Julia Data Science by Storopoli et al.

You can find other books on the dedicated page of the julia documentation.

3 Likes

Currently there are 72 opened issues at YouTubeVideoTimestamps. Today I check around 1/3 of them and tweaked some timestamps to be more copy-pastable on YT channel.

3 Likes

Thank you. I have raised the issue with the JuliaCon organizers.

Logan stepped down from his role as Julia Community Manager. There are still some gaps we have to fill from that.

2 Likes

This language is very much worth learning and though its REPL and syntax are beginner-friendly, even a quick skim of the forum topics reveals the immense scope of its scientific applications and those who are using it at that level. It’s a strength of the language for sure, but can be overwhelming to beginners. Sometimes you need a real person to explain something to you - and what you need to know may be at an elementary level, but still deserves an answer. I think this forum will continue to be invaluable for that reason.

2 Likes

I was guessing that this is a true. I even write in the message to him something along the lines “I don’t know if you are still involved, but you are the most natural choice to contact right now.”.

For the second day I work my way thorough issues on timestamps repository. Maybe I’m to proud of myself, but I think I can do, in reasonably time, all the work outside putting in on YT.

I would need an access to this channel, since I will probably mess few things and correct it few times more and without access to it, is all null and void. At the same time, normal Julia user like me SHOULDN’T have access to such privileges.

1 Like

This was a mild annoyance of mine over the recent JuliaCon. I started compiling timestamps for a couple of videos but quickly realized that the repo wasn’t being actively maintained, so I just cut my losses and moved on.

1 Like

There is probably dozen of my issues opened there, so I have some incentives to go back to it. I will try to do what normal user like me can to improve this situation.

1 Like

It take me two days to work through all 71 issues on GitHub repository for timestamps. I deficiently not very fast person. There are 72 in all, but one missing was done by me and it is about correcting already posted timestamps.

At this moment I did almost anything that I can in this matter. Until someone with bigger access right won’t take a step, there is very little that I can do, outside remanding people about this project.

4 Likes

@rayegun is working on it.

3 Likes

I just added timestamps to Pluto.jl presentation from JuliaCon 2022. This presentation is too good, to left it with “Help us add time stamps or captions to this video! See the description for details.”.

I hope that we will put them with all others on YT soon.

1 Like

@conradwiebe7919 created timestamps for Jeff Bezanson’s talk What’s the deal with Julia binary sizes?. I posted it in the issue on GitHub.

2 Likes