Dopo aver implementato l'esercizio hello-world, il prossimo compito è implementare altri 20 esercizi o più.
Puoi implementare due tipi di esercizi:
In generale, consigliamo ai nuovi track di iniziare implementando gli esercizi di pratica: sono più facili da implementare e richiedono meno riflessione in anticipo. Gli esercizi di concetto si possono sempre aggiungere più avanti, quando il track funziona bene.
Per aiutare i track a implementare gli esercizi di pratica, abbiamo creato il repository exercism/problem-specifications. Questo repository contiene i metadati di oltre 100 esercizi di pratica, che i vari track possono usare per implementare la propria versione di questi esercizi. Per questo motivo, vedrai gli stessi esercizi implementati in molti track diversi.
Ma come si scelgono i 20 e più esercizi da questa lista di oltre 100? Ecco alcune linee guida.
Nei 100 e più esercizi c'è molta varietà nei concetti usati. Punta a implementare esercizi che facciano esercitare gli studenti su una grande varietà di concetti. Quindi, invece di implementare 20 esercizi incentrati sulle stringhe, prova a implementare esercizi che trattano concetti diversi.
Ecco alcuni concetti con esercizi di esempio:
| Concetti | Esercizi |
|---|---|
| Manipolazione dei bit | Allergie, Stretta di mano segreta |
| Booleani | Anno bisestile |
| Classi | Buffer circolare, Nome del robot |
| Concorrenza | Conto bancario |
| Condizionali | Gocce di pioggia |
| Date e orari | Gigasecondo, Incontro |
| Uguaglianza | Orologio |
| Numeri in virgola mobile | Freccette, Età spaziale |
| Valutazione pigra | Alfametica, Puzzle della zebra |
| Array | Colore della resistenza, Matrice a spirale |
| Cicli | Congettura di Collatz, Traduzione delle proteine |
| Mappe | Conteggio dei nucleotidi |
| Numeri | Anno bisestile, Chicchi |
| Casualità | Personaggio D&D, Nome del robot |
| Stringhe | Bob, Isogramma, |
| Alberi | Albero binario di ricerca, Punto di vista |
Alcuni esercizi saranno più difficili da implementare di altri. Punta a implementare esercizi con gradi di difficoltà diversi: alcuni facili, altri intermedi, altri difficili.
Quanto è difficile un esercizio dipende da diversi fattori, come i concetti coinvolti e il linguaggio del track. Può essere utile vedere come appare l'esercizio in altri track che lo hanno già implementato, per avere un'idea più chiara di come potrebbe essere l'implementazione.
Ecco alcuni livelli di difficoltà con i relativi esercizi:
| Difficoltà | Esercizi |
|---|---|
| Facile | Freccette, Gigasecondo, Isogramma, Anno bisestile, Colore della resistenza, Età spaziale |
| Intermedio | Allergie, Bob, Incontro, Traduzione delle proteine, Gocce di pioggia, Stretta di mano segreta |
| Difficile | Alfametica, Forth, React, Punto di vista, Puzzle della zebra, Zipper |
Non tutti gli esercizi sono adatti al tuo track. Seleziona solo gli esercizi che si adattano al tuo track: meglio non implementare un esercizio che implementarne uno che non ha senso. Per esempio, l'esercizio lens-person fa lavorare lo studente con le lenti, che molti linguaggi non supportano.
Se trovi un esercizio che non è adatto al tuo track, puoi aggiungere il suo slug all'array exercises.foregone nel file config.json del track.
In questo modo gli strumenti ignoreranno quell'esercizio.
Per rendere il tutto un po' più concreto, ecco come potrebbe apparire una possibile selezione di esercizi iniziali:
| Esercizio | Difficoltà | Concetti |
|---|---|---|
| Hello World | Facile | Nessuno (esercizio iniziale) |
| Anno bisestile | Facile | Numeri, Booleani |
| Gigasecondo | Facile | Date e orari |
| Isogramma | Facile | Stringhe |
| Colore della resistenza | Facile | Array |
| Conteggio dei nucleotidi | Facile | Mappe |
| Congettura di Collatz | Facile | Cicli |
| Freccette | Facile | Numeri in virgola mobile |
| Due per te | Facile | Formattazione delle stringhe, Argomenti opzionali |
| Punteggi migliori | Facile | Elaborazione delle collezioni |
| Gocce di pioggia | Intermedio | Condizionali |
| Bob | Intermedio | Stringhe |
| Allergie | Intermedio | Manipolazione dei bit |
| Serie | Intermedio | Eccezioni |
| Buffer circolare | Intermedio | Classi |
| Incontro | Intermedio | Date e orari |
| Yacht | Intermedio | Array |
| Domino | Difficile | Tuple, Valutazione pigra |
| Diamante | Difficile | Formattazione delle stringhe |
| Alfametica | Difficile | Valutazione pigra |
| Forth | Difficile | Parsing |
Dopo aver scelto gli esercizi da includere nel tuo track, il passo successivo è implementarli. La pagina Aggiungi un esercizio di pratica contiene istruzioni dettagliate su come aggiungere un esercizio di pratica.