HACKER Q&A
📣 fouc

What is your go-to project when learning a new language/framework?


When reading HN I'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.

A recent comment suggested implementing the Snake game [0]. Conway's game of life seems to be another common one. I think some people have even mentioned implementing hackernews clones.

[0] https://news.ycombinator.com/item?id=21414791


  👤 peruvian Accepted Answer ✓
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.

👤 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


👤 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.