
Ask HN: What is your go-to project when learning a new language/framework? - fouc
When reading HN I&#x27;ve seen people saying that they will often re-implement the same small-but-not-too-trivial project in multiple programming languages.  This also helps them pick up a new language fast, and compare the different approaches to solving the same problems.<p>A recent comment suggested implementing the Snake game [0].  Conway&#x27;s game of life seems to be another common one.  I think some people have even mentioned implementing hackernews clones.<p>[0] https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=21414791
======
peruvian
I mostly learn web frameworks, backend.

I mostly go with a file uploader - sort of like Imgur but for anything. Solves
the following "issues":

* MVC architecture * Relationships (files belong to user) * Authorization (user can only see files they uploaded) * Talking to third parties (store files in AWS?) * General UI/UX like displaying the files in a nice way, providing direct links or embedding, etc

Lastly, you can turn this into a API-only backend and then go crazy with any
frontend framework you want!

------
kick
An RDBMS! Very simple once you get the hang of them, and it's a very easy way
to benchmark your effectiveness in a language because they have quantifiable
and (very) perceivable performance differences between implementations.

~~~
fouc
Oh that's a nice idea. I bet the parsing and handling of the relational
algebra could vary quite a bit depending if it's a functional programming
language or C-like.

------
samuraiseoul
A early facebook clone can work well. If you're learning a new frontend tech,
reuse the backend from one you did before, or if it's new backend, reuse the
frontend from a different one.

I say early facebook cause I feel that doing a login, and feed page, and
allowing status updates, friends search and confirmation, and a profile page
with photo uploads to be a pretty good intro stack.

That said for a new language I ALWAYS look for a modern koans exercise to do.
Some langs have them, some don't.

------
LarryMade2
I do calendars, where it displays a month grid with days of the week at top,
calculates the start day of the month, changes box colors for non-month days,
month days, current day, etc. I add more bits if the language is more robust
like filling in sample events, add in a month pager for control testing, etc.

This provides me enough math, control logic, looping and display logic to see
what's what.

------
jjjbokma
I have a static site generator, already written in Perl and Python [0]. I am
considering a Go version and maybe, maybe, a Haskell version.

[0] [https://github.com/john-bokma/tumblelog](https://github.com/john-
bokma/tumblelog)

------
wkjagt
Sudoku solvers are nice to rewrite in several languages.

------
maxencecornet
For back-end tech, it's almost always a job board

------
unlinked_dll
JSON serializer, helps me get familiar with most of the syntax.

