Eric Wastl, sviluppatore a cui si devono progetti come Vanilla JS e PHP Sadness, ha creato un particolare Calendario dell'Avvento dedicato al coding. L'iniziativa prende il nome di Advent of Code e propone una serie di enigmi risolvibili in qualsiasi linguaggio di programmazione.
Come partecipare all'Advent of Code
I quesiti proposti riguardano vari gradi di abilità e livelli di competenza, per questo possono essere utilizzati in corsi universitari, attività di training aziendale, speed contest e nella preparazione di colloqui di lavoro per posizioni che coinvolgono la scrittura del codice.
Per partecipare non è necessaria una laurea in Informatica, gli enigmi sono stati pensati infatti per coloro che possiedono conoscenze basilari in tema di programmazione e, naturalmente, una certa propensione al Problem Solving.
Nello stesso modo non è richiesto di possedere un computer particolarmente performante, tutti i quesiti proposti sono risolvibili grazie a soluzioni completabili in non più di 15 secondi in terminali vecchi di 10 anni.
Mentre si cerca di progredire nell'Advent of Code può capitare di rimanere bloccati, sono però disponibili degli esempi che aiutano a testare e migliorare le proprie risposte.
Si possono inoltre richiedere dei consigli attraverso il subreddit dedicato e, quando serve, contare sull'aiuto di un amico.
Advent of Code e requisiti tecnici
La risoluzione degli enigmi richiede di utilizzare un browser Web con JavaScript abilitato, in questo modo sarà possibile selezionare facilmente i blocchi di codice.
Advent of Code utilizza OAuth per confermare l'identità dei partecipanti su servizi esterni. Le credenziali per l'accesso vengono comunicate unicamente a quest'ultimo e non alla piattaforma del calendario.
Chiaramente, dato lo spirito dell'iniziativa, è richiesto di non mettere a disposizione le proprie soluzioni mentre la competizione è ancora in atto. Per questioni legate al copyright l'autore richiede inoltre di non inviare delle idee per la pubblicazione di nuovi enigmi, anche per evitare che porzioni di codice create da altri finiscano online senza riconoscere i dovuti credit.