Αφού υλοποιήσεις την άσκηση hello-world, η επόμενη δουλειά είναι να υλοποιήσεις άλλες 20+ ασκήσεις.
Μπορείς να υλοποιήσεις δύο τύπους ασκήσεων:
Γενικά, προτείνουμε τα νέα tracks να ξεκινούν υλοποιώντας Ασκήσεις Εξάσκησης, καθώς είναι πιο εύκολες στην υλοποίηση και απαιτούν λιγότερη προκαταρκτική σκέψη. Οι Ασκήσεις Εννοιών μπορούν πάντα να προστεθούν αργότερα, μόλις το track σου λειτουργεί σωστά.
Για να βοηθήσουμε τα tracks να υλοποιήσουν Ασκήσεις Εξάσκησης, φτιάξαμε το αποθετήριο exercism/problem-specifications. Αυτό το αποθετήριο περιέχει μεταδεδομένα για πάνω από 100 Ασκήσεις Εξάσκησης, τα οποία διαφορετικά tracks μπορούν να χρησιμοποιήσουν για να υλοποιήσουν τη δική τους εκδοχή αυτών των ασκήσεων. Γι' αυτόν τον λόγο, θα δεις τις ίδιες ασκήσεις υλοποιημένες σε πολλά διαφορετικά tracks.
Πώς όμως διαλέγεις τις 20+ από αυτή τη λίστα με τις 100+ ασκήσεις; Ορίστε μερικές κατευθυντήριες γραμμές.
Υπάρχει μεγάλη ποικιλία στις έννοιες που χρησιμοποιούνται στις 100+ ασκήσεις. Στόχευσε να υλοποιήσεις ασκήσεις που κάνουν τους μαθητές να εξασκούν μια μεγάλη ποικιλία εννοιών. Έτσι, αντί να υλοποιήσεις 20 ασκήσεις που επικεντρώνονται στις συμβολοσειρές, δοκίμασε να υλοποιήσεις ασκήσεις που επικεντρώνονται σε διαφορετικές έννοιες.
Ορίστε μερικές έννοιες με ενδεικτικές ασκήσεις:
| Έννοιες | Ασκήσεις |
|---|---|
| Χειρισμός bit | allergies, secret-handshake |
| Boolean | leap |
| Κλάσεις | circular-buffer, robot-name |
| Ταυτοχρονισμός | bank-account |
| Συνθήκες | raindrops |
| Ημερομηνίες και ώρα | gigasecond, meetup |
| Ισότητα | clock |
| Αριθμοί κινητής υποδιαστολής | darts, space-age |
| Οκνηρία | alphametics, zebra-puzzle |
| Λίστες | resistor-color, spiral-matrix |
| Βρόχοι | collatz-conjecture, protein-translation |
| Χάρτες | nucleotide-count |
| Αριθμοί | leap, grains |
| Τυχαιότητα | dnd-character, robot-name |
| Συμβολοσειρές | bob, isogram, |
| Δέντρα | binary-search-tree, pov |
Κάποιες ασκήσεις θα είναι πιο δύσκολο να υλοποιηθούν από άλλες. Στόχευσε να υλοποιήσεις ασκήσεις με διαφορετικούς βαθμούς δυσκολίας: μερικές εύκολες, μερικές μέτριες και μερικές δύσκολες.
Το πόσο δύσκολη είναι μια άσκηση εξαρτάται από αρκετούς παράγοντες, όπως οι έννοιες που εμπλέκονται και η γλώσσα του track. Μπορεί να βοηθήσει να δεις πώς μοιάζει η άσκηση σε άλλα tracks που την έχουν υλοποιήσει, ώστε να πάρεις μια καλύτερη αίσθηση του πώς θα μπορούσε να μοιάζει η υλοποίηση.
Ορίστε μερικοί βαθμοί δυσκολίας με ασκήσεις:
| Δυσκολία | Ασκήσεις |
|---|---|
| Εύκολη | darts, gigasecond, isogram, leap, resistor-color, space-age |
| Μέτρια | allergies, bob, meetup, protein-translation, raindrops, secret-handshake |
| Δύσκολη | alphametics, forth, react, pov, zebra-puzzle, zipper |
Δεν ταιριάζουν όλες οι ασκήσεις στο track σου. Καλό είναι να διαλέγεις μόνο τις ασκήσεις που ταιριάζουν στο track σου: καλύτερα να μην υλοποιήσεις μια άσκηση παρά να υλοποιήσεις κάποια που δεν έχει νόημα. Για παράδειγμα, η άσκηση lens-person βάζει τον μαθητή να δουλέψει με φακούς, τους οποίους δεν υποστηρίζουν πολλές γλώσσες.
Αν βρεις μια άσκηση που δεν ταιριάζει στο track σου, μπορείς να προσθέσεις το slug της στον πίνακα exercises.foregone στο αρχείο config.json του track.
Έτσι, τα εργαλεία θα αγνοούν αυτή την άσκηση.
Για να γίνουν όλα λίγο πιο συγκεκριμένα, κάπως έτσι θα μπορούσε να μοιάζει μια ενδεικτική επιλογή αρχικών ασκήσεων:
| Άσκηση | Δυσκολία | Έννοιες |
|---|---|---|
| hello-world | Εύκολη | Καμία (αρχική άσκηση) |
| leap | Εύκολη | Αριθμοί, Boolean |
| gigasecond | Εύκολη | Ημερομηνίες και ώρα |
| isogram | Εύκολη | Συμβολοσειρές |
| resistor-color | Εύκολη | Λίστες |
| nucleotide-count | Εύκολη | Χάρτες |
| collatz-conjecture | Εύκολη | Βρόχοι |
| darts | Εύκολη | Αριθμοί κινητής υποδιαστολής |
| two-fer | Εύκολη | Μορφοποίηση συμβολοσειρών, Προαιρετικά ορίσματα |
| high-scores | Εύκολη | Επεξεργασία συλλογών |
| raindrops | Μέτρια | Συνθήκες |
| bob | Μέτρια | Συμβολοσειρές |
| allergies | Μέτρια | Χειρισμός bit |
| series | Μέτρια | Εξαιρέσεις |
| circular-buffer | Μέτρια | Κλάσεις |
| meetup | Μέτρια | Ημερομηνίες και ώρα |
| yacht | Μέτρια | Λίστες |
| dominoes | Δύσκολη | Πλειάδες, Οκνηρία |
| diamond | Δύσκολη | Μορφοποίηση συμβολοσειρών |
| alphametics | Δύσκολη | Οκνηρία |
| forth | Δύσκολη | Συντακτική ανάλυση |
Αφού διάλεξες τις ασκήσεις που θέλεις να συμπεριλάβεις στο track σου, το επόμενο βήμα είναι να τις υλοποιήσεις. Η τεκμηρίωση για την προσθήκη Άσκησης Εξάσκησης περιέχει λεπτομερείς οδηγίες για το πώς να προσθέσεις μια Άσκηση Εξάσκησης.