What do you build to learn a new language or style?

lukewestby profile image Luke Westby ・1 min read

I like to reimplement Elm's Json Decoders in whatever language or framework I'm trying to learn. I did this when I was getting up to speed on fantasyland in JS, and when I needed to brush up on Python, and now this week with PureScript. How about you?


markdown guide

I definitely do not have such a disciplined approach to building, but I think this is a great approach and I'd try it in the future.


i'm actually a little skeptical of this approach. there's a lot of variance in how a community's culture informs open source contribution, in how a particular maintainer or core team approaches contribution, and in the experience of the person taking this advice. i worry that someone who is new to open source or to programming in general might try to apply it to a project where pull requests aren't the primary way to contribute and then end up feeling discouraged by the results of that interaction.

that is to say, contributing to an open source project is more than just writing and reviewing code and treating it that way can be a net negative.


I like the idea of contributing to open source as a way to get into a language, with the caveat of trying to contribute to projects you actively use. That can really help with motivation!


Awesome, just read the article and I feel pretty keen to start this approach!


I love this approach to learning a new language, but I've always had a hard time finding a project simple enough to build on. Any advice on how to go about that?


When I was doing Language of the Month, I made sure I had a project picked out that I felt was a good fit for my target language's stengths. I did some stats stuff with R, a multi-process text-based adventure in Elixir, and a provably correct implementation of Connect 4 in Idris. I think the most important thing (for me, anyway) is making sure you stay motivated - having a project in mind (especially one you'll use) can really help!


I think that Conway's Game of Life and/or a Brainfuck interpreter are good, simple projects for learning a new language or paradigm.


Not really "building things" but I find myself trying to solve the first 5 questions of Project Eulers whenever I'm trying to learn a new language.


I like doing something like a text editor because a basic text editor is really simple to make but you can add a lot of features that can help you learn lots of different parts of a language.


i really like this! the predictability of starting with the basic functionality of the text editor seems like a nice way to get through the learning curve, and then the freedom to add features and be creative seems like a great way to get to know the strengths and weaknesses of the new language. really cool.


Mini games ofc, what else?

Except for Go, I wanted to learn new algorithms and techniques


Just anything i want to make anyway. OCaml was a command line journaling app, Elm was a budgeting app.