Hacker News new | past | comments | ask | show | jobs | submit login
Exercism – learn programming languages for free (exercism.org)
289 points by alexzeitler on April 15, 2023 | hide | past | favorite | 45 comments



I've tried out Exercism for a few languages. The tracks that have Learning Mode are the most worthwhile. Raku just straight up doesn't work. The exercises themselves are ok to great but the REAL killer feature imo is the amazing community and the ability to see and compare your solutions. You can request code reviews from volunteer experts for any of your solutions and the volunteers are always really thoughtful and helpful. All for free!


Definitely varies by community. Elixir had the fastest responses in my experience. Often I would get a response within a day or two. F# and Haskell were quite a bit slower, on the order of multiple weeks.


Sounds like it depends on language popularity, although Elixir isn’t all that “popular”. “Loved” perhaps, but not “popular” like C# or JavaScript or Python.


Actually, I've found the Raku community to be most helpful when it comes to understanding the basic concepts of the language. We'd be interested in hearing your thoughts about how Raku doesn't work. Please stop by #raku on Libera.Chat if you are interested in sharing your thoughts.


No I mean like the very first exercise, Hello World, literally won't let me submit a solution. It just literally doesn't work and seems unmaintained

I've tried the websites, I've tried the CLI, etc. It just won't let me try. I've never had the issue with any other language tracks


I've pushed a fix up to github.

Sorry about the issue. I'm split between both the Raku and Perl tracks, and don't currently have much time for keeping up on maintenance for either unfortunately.

Please post issues on the Exercism forum if you encounter anything else. I only learned of this issue because someone else spotted this post and reported it there.


I signed up and took a look, and you are indeed correct. _Excorcism's_ lesson plan is broken. Raku is not. I have no idea why they are doing things the way they are, but what they have is not setup correctly. It's a shame. That might have been a decent teaching environment.

I have found better luck using repl.it to test code, and working through the Raku Course at https://course.raku.org/

Hope that helps


What do ya think it compares with a Discord channel?


Side question: are there any Discord channels in this area (learning new programming languages) worth attention?


The rust beginners channel is excellent.


Has anybody tried learning a programming language from GPT-4?

I’m not a programmer myself, but I have made quite a few static web pages over the years for my own use. I code the HTML and CSS by hand, and I think I have a basic understanding of how they work. But JavaScript has always been a mystery to me.

So the other day I asked GPT-4 to teach me the basics of JavaScript. It responded with an understandable outline of the language and a few code samples. Nothing special there. But then I tried asking it questions, and that is where it really shone.

When, for example, I asked “In expressions like console.log("x is greater") or window.onload = function(), what is the role of the period (.) between console and log and between window and onload?,” it replied “The period (.) in JavaScript is used to access properties or methods of an object” and continued with a multiparagraph explanation, including examples. I then followed up with “How many properties or methods does the 'window' object have?,” and it gave me a list of common properties and methods. I continued asking questions and asking for feedback on some code I wrote until I hit my prompt limit. I felt like I was learning very quickly.

The next day, I tried a similar thing with Python, which I also knew nothing about, and once again the lesson went very smoothly.

I have no idea how good it would be for more advanced learners, but for a beginner like me GPT-4 seems like a great programming teacher. Being able to ask questions and get full answers and feedback immediately was particularly exciting.


I’ve been asking questions about F# after a while of using OCaml. I’ve found GPT-4 to hallucinate syntax that doesn’t exist, such as being able to do open <modulename> in a function. It’s actually something I assumed too, because you can do this in OCaml with "let open <modulename> in", but you cannot do this in F#.

Despite this, it’s still been a lot more helpful than searching, is mostly correct, and is my go-to resource.


ChatGPT works well until it doesn't. When ChatGPT fails and generates some garbage it will do so in very convincingly sounding manner, and the learner may not have the right tools yet to recognize that.


You’re right. But for some types of learning it’s not necessary to have a teacher that’s always right. If GPT-4 feeds me hallucinations occasionally about JavaScript or Python, I will find out soon enough when my programs fail to run or when web searches fail to confirm what it says. Being able to ask it questions and get right answers almost all the time more than makes up for the occasional error.

Another example where GPT-4 can be used productively for learning despite its fallibility is with human languages. It doesn’t always explain grammar correctly, and it can spout out hallucinated facts. But its ability to interact almost as if it were a real person, as well as its ability to explain the meanings of words and sentences quite accurately (in the case of major languages, at least), is of enormous value for people learning other languages. Few human language teachers are as knowledgeable and accurate as it is.


I’m working on this concept with https://codeamigo.dev

AI is such a wonderful tutor/assistant/teacher. I feel like we’re just scratching the surface so far with what skills we can develop with it.


Why not just search “best book to learn X reddit”, take a look at a few threads and get the book mentioned, and read it? It was written by an actual expert on the topic, did not hallucinate bullshit and is actually correct, and if it is a good book then it has a proper structure, making you learn in a proper order.


GPT-4 is generally superior to reading a book or following a tutorial, in my experience.

You can't ask a book questions about parts you don't understand. Books will also talk about things that are not directly related to the problem you are trying to solve, which can be frustrating.

The biggest issue with GPT is when you are working with new or rapidly changing tech. For example it might suggest Godot 3 syntax when you are working with Godot 4. But working with OpenGL for example, I find questioning GPT-4 to be more useful than reading a book. The book was probably in it's training data, anyway.


That is a good method, too, of course. But I don’t always learn best by proceeding through material step-by-step. Often wandering around a subject as my curiosity takes me and using a lot of trial and error have enabled to me to assimilate knowledge better in the end. Even if GPT-4’s answers are sometimes wrong, being able to ask it questions is extremely useful.


yes, it even more useful in some unfortunate condition you need to decipher a script which wrote by an unfamiliar language


Exercism also has a YouTube channel which include introductions to numerous programming languages: https://www.youtube.com/@exercism_org/videos

Here are some interviews with programming languages creators or contributors: Bjarne Stroustrup (C++), Jose Valim (Elixir)...Go, Gleam, Rust and upcoming with Haskell

https://www.youtube.com/@exercism_org/streams


Thank you for sharing this! The intros look like a good follow up to the videos in fireship.io’s “X in 100 seconds series”.


I’m using it to learn C and I absolutely love the mentoring feature. I get answers within a few hours, the mentors are very kind and helpful. Highly recommended.

They’re struggling for money so if you’ve enjoyed using it consider donating something to keep the show going.


"Taiyab is a seasoned UI/UX designer responsible for designing Exercism v3. If you think Exercism looks and feels awesome, he’s the man to thank."

Thank you Taiyab!


It's a great concept, but it's really difficult for me to get into because I like to learn quickly and then make things. With Exercism, I found I was spending too much time trying to solve the problems. This would then exhaust my undiagnosed ADHD brain.


If you already know any other language, then just Google the solution to that exercise and read it until you grok it. If you don't already know the basics, I found mimo to be great for a quick but not really deep dive in python. Great first step. Exercism is fantastic to learn the differences between languages. The mentoring is free, but it's one of the few online learning resources I would pay for.


A lot of good stuff here, but bothering me to share my progress after every exercise is pretty annoying.


Highly recommend Exercism. Great way to explore and learn various languages.

They also have a Vlang track too (https://exercism.org/tracks/vlang).


I like the service, although I would recommend them a more positive connotated name for future growth... I get the association with Exorcism, when I read their name...


> I get the association with Exorcism, when I read their name...

why it is called Exorcism?


The FAQ explains it as nothing to do with exorcism despite being "one vowel away", and instead references "exercises". But then goes on to make a reference to the "devil" being in the details of constructing the exercises.

https://exercism.org/docs/using/faqs

Honestly it baffles me and turns me off the project. I wouldn't want to think about that concept every time I was engaged in learning. It may also be an issue for various cultures for whom exorcism is a common sacred tradition.

For example in parts of Africa - exactly the type of market a good-will project such as this would ostensibly be targeting.


They’ve been around for years, I want to say over a decade. It’s pretty clear nobody is hung up on the name.


Another comment says they're struggling for funds. Whether directly related or not, a name with a hugely dark connotation, that springs to mind so immediately they mention it second in the FAQ can't be helping.


I recommend.

Have recommended to folks at work in lieu of leetcode and topcoder SRMs.

Also, the CLI is useful. I wished it gave pass/fail feedback prior to and with submission.


This is not called learn. And they are not teaching. Without any real learning materials presented for example like what Khan Academy is doing, you are just doing Monte Carlo coding.



they need to add channels to golang concepts track: https://exercism.org/tracks/go/concepts


Wow! Exercism has come such a long way over the years. It used to be just the mentoring arm and a simple CLI and web UI. This looks fantastic these days and makes me want to give it another go!


I was searching for exercices to learn c pointers, do you find any?


42 first piscine is basically C goota be something there about pointers

https://github.com/evgenkarlson/ALL_SCHOOL_42/


That link isn't in English. Is it supposed to be understandable by general HN readers?


You can select between Russian and English below the logo.


You can also find the exercises in Github looking for 42 piscine, lots of students upload them in different formats etc.


There's a linked list exercise, that's a classic.


What’s the difference with codewars ?


[flagged]


I think its more boilerplate than anything else.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: