Pete's Log: Learning in Public

Entry #1862, (Coding, Hacking, & CS stuff)
(posted when I was 42 years old.)

I don't exactly have a whole lot of time to dedicate to this, but it's a project I've been pondering for a while now — Learning in Public, Pete-style.

I wish I could remember where I came across the term Learning in Public, but I'm pretty sure it was on Hacker News or Lobsters. I do like the idea, and given that my current professional situation isn't prone to exposing me to much beyond JavaScript, TypeScript, .NET and PowerShell, it feels like potentially a good way (assuming I find the time) to learn some new stuff.

In no particular order, here are the languages I most want to learn:

  • Erlang
  • Haskell
  • Rust
  • Go

And here's one tool that so far looks useful for the "in public" part: asciinema. Assuming I want to avoid just doing it on youtube.

What I really want to figure out is a sort of learning framework - here is a set of tasks I want to implement in each of those languages. Like maybe some of the following, but probably lots more.

  • Hello World
  • Maybe something off Project Euler
  • A REPL shell or other interpreter of sorts
  • A basic web server or something distributed
  • ...

I think it'd be really fun to be able to compare the languages based on performing such a collection of tasks in each of them.

And also, before I tackle the list above, do I want to go back and revisit some of the basics via my framework? Like if I'm going to go functional, should I go back and revisit car and cdr? Because I have distinct memories of being frustrated that car and cdr made a lot of sense in theory, yet I often found myself having to use (car (cdr ...)) or maybe cadr when really it felt like my intuition said it should just be cdr (or maybe vice versa)? And do car and cdr really matter anyway? They do have their own wikipedia page, but on the other hand I haven't come across them in the more functionally bits of JS either. I should probably know the answer to that question before diving into the other languages above. Too bad I took functional programming before I started Pete's Log.

Anyway, feedback welcome. What other languages should be on my list? What other tasks? When did you last car or cdr?