Μια συλλογή από συχνές ερωτήσεις σχετικά με την καθοδήγηση
Τι προσόντα χρειάζεται κάποιος για να γίνει καθοδηγητής;
Μπορώ να καθοδηγήσω σε μια γλώσσα ενώ ακόμα τη μαθαίνω;
Μπορώ να καθοδηγήσω σε περισσότερες από μία γλώσσες;
Να προσπαθήσω να καθοδηγήσω κάθε λύση στην ουρά;
Τι γίνεται αν μια λύση κάθεται στην ουρά για μέρες, ακόμα και εβδομάδες;
Τι γίνεται αν δεν έχω τίποτα να προτείνω για μια λύση;
Να καθοδηγήσω σε μια άσκηση που δεν έχω λύσει ποτέ;
Να καθοδηγήσω σε μια άσκηση που την έχω λύσει, αλλά σε άλλη γλώσσα;
Είμαι υποχρεωμένος να καθοδηγήσω μια λύση μόλις τη δω;
Τι γίνεται αν ο μαθητής δεν καταλαβαίνει αφού του εξηγήσω κάτι πολλές φορές;
Πώς απαντώ αν ο μαθητής αντιδράσει αμυντικά στην πρότασή μου (στις προτάσεις μου);
Πρέπει ο μαθητής να έχει τον τελευταίο λόγο, ακόμα κι αν πιστεύω ότι κάνει λάθος;
Πώς διατυπώνω καλύτερα μια πρόταση;
Πρέπει να επιβάλλω συμβάσεις μορφοποίησης, σχολιασμού και ονοματοδοσίας;
Δε χρειάζεται να είσαι ειδικός σε μια γλώσσα για να καθοδηγήσεις σε αυτήν. Αρκεί να είσαι λίγο λιγότερο αρχάριος από το άτομο που καθοδηγείς. Αν υπάρχει κάτι σε μια λύση που πιστεύεις ότι θα μπορούσε να γίνει με διαφορετικό τρόπο, μπορείς να το προτείνεις. Δεν χρειάζεται απαραίτητα να είναι καλύτερος τρόπος, αρκεί να είναι μια ιδιωματική εναλλακτική. Έτσι, η επιλογή του αν θα χρησιμοποιήσει την πρόταση ή όχι μένει στον μαθητή, αλλά τουλάχιστον ο μαθητής έχει περισσότερες επιλογές να διαλέξει.
Ιδανικά, δε σταματάς ποτέ να μαθαίνεις μια γλώσσα, ακόμα και μια που την ξέρεις ήδη. Κάποιες γλώσσες βγάζουν ενημερωμένη έκδοση κάθε λίγες εβδομάδες ή μήνες. Δεν είναι μόνο ότι μπορεί να υπάρχουν νέες δυνατότητες της γλώσσας για να μάθεις, αλλά μπορεί να υπάρχουν και υπάρχουσες δυνατότητες που δεν τις γνωρίζεις. Μερικές φορές ένας μαθητής μπορεί να χρησιμοποιήσει μια δυνατότητα και αυτή θα είναι η πρώτη φορά που τη βλέπεις. Έτσι, η καθοδήγηση μπορεί να είναι ένας καλός τρόπος να μάθεις περισσότερα για μια γλώσσα.
Μπορείς να καθοδηγήσεις σε όσες γλώσσες νιώθεις άνετα. Δεν πειράζει να καθοδηγείς σε πολλές γλώσσες στις οποίες είσαι δυνατός, καθώς και σε μια γλώσσα που ακόμα μαθαίνεις.
Αν εκείνη τη στιγμή δεν μπορείς να σκεφτείς κάτι ουσιαστικό ή εποικοδομητικό να πεις για μια λύση, μπορεί να είναι καλύτερο για τον μαθητή να αφήσεις το αίτημα καθοδήγησης για κάποιον άλλο καθοδηγητή, ακόμα κι αν αυτός ο μαθητής χρειαστεί να περιμένει περισσότερο για μια απάντηση.
Αν ο μαθητής έκανε μια συγκεκριμένη ερώτηση που δεν μπορείς να απαντήσεις, μπορεί παρ' όλα αυτά να θέλεις να την αφήσεις σε κάποιον που μπορεί να απαντήσει στην ερώτησή του.
Διαφορετικά, η λύση μπορεί να είναι για μια άσκηση που ήταν δύσκολη για σένα, την οποία ίσως να μην έχεις λύσει, ή να την έχεις λύσει αλλά να ένιωσες ότι δεν την έλυσες πολύ καλά. Σε αυτή την περίπτωση, μπορείς να ρίξεις μια ματιά στη λύση για να δεις αν υπάρχει κάτι που μπορείς να μάθεις από αυτήν. Αν ναι, μπορείς να ευχαριστήσεις τον μαθητή για αυτό που έμαθες συγκεκριμένα από τη λύση του.
Ή μπορεί να θέλεις ο μαθητής να σου εξηγήσει τη λύση του. Αυτό είναι κάτι σαν "αντίστροφη καθοδήγηση", αλλά κάποιοι μαθητές μπορεί να χαρούν να εξηγήσουν τη λύση τους όταν τους ζητηθεί ευγενικά και με σεβασμό. Θα μπορούσες τότε να ρωτήσεις αν σκέφτηκαν κάποια άλλη προσέγγιση και γιατί επέλεξαν την προσέγγιση που επέλεξαν.
Ή μπορεί ακόμα να μην καταλαβαίνεις τη λύση συνολικά, αλλά να βλέπεις κάποια πράγματα που μπορείς να σχολιάσεις.
Για παράδειγμα, θα μπορούσες να επισημάνεις να σκεφτούν το ενδεχόμενο να χρησιμοποιήσουν ονόματα με νόημα για τις παραμέτρους της συνάρτησης,
αν χρησιμοποίησαν απλώς n ή m.
Αν δεν νιώθεις άνετα να κάνεις κάποιο από αυτά, δεν πειράζει να αφήσεις το αίτημα αναπάντητο. Η καθοδήγηση είναι εθελοντική. Το γεγονός ότι καθοδηγείς σε μια γλώσσα δε σημαίνει ότι πρέπει να καθοδηγήσεις σε κάθε άσκηση αυτής της γλώσσας.
Δεν πειράζει να πεις τι σου αρέσει σε μια λύση. Μάλιστα, το να πεις τι σου αρέσει συγκεκριμένα σε μια λύση είναι ένας καλός τρόπος να ξεκινήσεις οποιαδήποτε συνάντηση καθοδήγησης. Αφού το κάνεις αυτό, αν δεν έχεις προτάσεις για εναλλακτικούς τρόπους προσέγγισης της άσκησης, μια χαρά είναι να πεις απλώς στον μαθητή: "Μπράβο!" Αν ο μαθητής υπέβαλε περισσότερες από μία επαναλήψεις, μπορεί να μπορείς να επισημάνεις με ποιους τρόπους η πιο πρόσφατη επανάληψη αποτελεί βελτίωση.
Μερικές φορές, το να κοιτάξεις τη λύση ενός μαθητή θα σε εμπνεύσει να λύσεις την άσκηση μόνος σου, ειδικά αν η προσέγγιση που χρησιμοποιείται στη λύση κάνει την άσκηση να φαίνεται απλούστερη από προσεγγίσεις που μπορεί να έχεις ήδη σκεφτεί. Αφού λύσεις την άσκηση, αν το αίτημα καθοδήγησης που σε ενέπνευσε δεν είναι πια διαθέσιμο, τουλάχιστον θα είσαι έτοιμος για την επόμενη φορά.
Δεδομένου ότι αυτό που είναι ιδιωματικό σε μια γλώσσα μπορεί να μην είναι ιδιωματικό σε μια άλλη γλώσσα, το καλύτερο είναι μάλλον να έχεις λύσει την άσκηση στη γλώσσα στην οποία καθοδηγείς. Αν οι λύσεις μεταξύ δύο γλωσσών είναι πολύ παρόμοιες και ξέρεις και τις δύο γλώσσες αρκετά καλά ώστε να ξέρεις τι είναι ιδιωματικό σε καθεμία, τότε δε θα σου πάρει πολύ χρόνο να μεταφέρεις μια λύση από τη μια γλώσσα στην άλλη. Αν το αίτημα καθοδήγησης δεν είναι πια διαθέσιμο αφού μεταφέρεις τη λύση, τουλάχιστον θα είσαι έτοιμος για την επόμενη φορά.
Μπορεί να κοιτάξεις μια λύση και να συνειδητοποιήσεις ότι δεν θέλεις να καθοδηγήσεις σε αυτήν για αρκετούς λόγους, όπως:
Τίποτα δεν σε υποχρεώνει να πατήσεις το κουμπί "Ξεκίνα την καθοδήγηση" αν πιστεύεις ότι το συγκεκριμένο αίτημα καθοδήγησης δεν είναι για σένα.
Μπορεί να υπάρξουν φορές που ένας μαθητής φαίνεται σχεδόν πεισματικά απρόθυμος να καταλάβει τις εξηγήσεις σου. Αν νιώθεις ότι έχεις εξαντλήσει όλους τους τρόπους που ξέρεις για να εξηγήσεις κάτι, μπορείς να αποφασίσεις να ολοκληρώσεις τη συζήτηση με μια πρόταση να υποβάλει ο μαθητής ξανά το αίτημα καθοδήγησής του, ώστε να το χειριστεί κάποιος άλλος καθοδηγητής που μπορεί να τα καταφέρει καλύτερα στο να εξηγήσει τα δύσκολα σημεία.
Μερικές φορές ένας μαθητής θα πει ότι χρησιμοποίησε μια πιο επίπονη προσέγγιση από όσο χρειαζόταν για να μάθει περισσότερα για μια δυνατότητα της γλώσσας, ακόμα κι αν αυτή η δυνατότητα δεν είναι η καταλληλότερη για την άσκηση. Επειδή το Exercism είναι πλατφόρμα μάθησης και όχι ανταγωνιστικός ιστότοπος προγραμματισμού, αυτός είναι ένας δικαιολογημένος λόγος για να μη χρησιμοποιήσει κανείς την πιο κομψή ή αποδοτική προσέγγιση. Μπορείς να κάνεις κάποιες προτάσεις για το πώς χρησιμοποίησαν την προσέγγισή τους, αν δεις ότι θα μπορούσαν να την έχουν υλοποιήσει πιο ιδιωματικά. Σε κάθε περίπτωση, μπορείς να προτείνεις να υποβάλουν άλλη μια επανάληψη βασισμένη στα σχόλια, ή να τερματίσουν τη συζήτηση για να ελευθερώσουν μια θέση καθοδήγησης.
Ένας μαθητής μπορεί να ακολουθεί ένα προγραμματιστικό παράδειγμα που μπορεί να μην ταιριάζει καλύτερα στη γλώσσα ή στην άσκηση. Για παράδειγμα, μπορεί να θέλει πάντα να χρησιμοποιεί το αντικειμενοστρεφές παράδειγμα και να κατακερματίζει μια σχετικά απλή και ξεκάθαρη λύση σε μια μικρή έκρηξη κλάσεων με λαβυρινθώδη ροή ελέγχου μέσα από πολλές μεθόδους. Στο βαθμό που ο μαθητής είναι δογματικός οπαδός του παραδείγματος, συνήθως είναι άκαρπο να προσπαθήσεις να τον πείσεις για μια διαφορετική προσέγγιση. Μπορείς να δοκιμάσεις, και μπορεί να ανταποκριθεί στην πρότασή σου, αλλά αν ο μαθητής εμμείνει, το καλύτερο είναι μάλλον να προχωρήσεις.
Ο μαθητής μπορεί να απορρίψει εντελώς μια πρόταση.
Για παράδειγμα, μπορεί να προτείνεις να χρησιμοποιήσει reduce αντί για map και join,
αφού το reduce είναι μόνο μία επανάληψη αντί για μια επανάληψη για το map και άλλη μία για το join.
Αλλά ο μαθητής μπορεί να το απορρίψει, επειδή βρίσκει τα map και join πιο ευανάγνωστα.
Δεν πειράζει να συμφωνήσεις με τον μαθητή ότι τα map και join μπορεί να είναι πιο ευανάγνωστα από το reduce.
Μπορείς να προτείνεις ότι μπορεί να νιώσει πιο άνετα με το reduce αφού του δώσεις περισσότερο χρόνο να το συνηθίσει,
και ότι δεν υπάρχει τίποτα λάθος στη χρήση των map και join.
Δεν πειράζει να συμφωνήσεις με έναν μαθητή στο βαθμό που έχει δίκιο, και δεν πειράζει να κάνεις μια προσπάθεια να διορθώσεις οποιαδήποτε παρανόηση ή υπερβολή μπορεί να έχει εκφράσει ο μαθητής.
Για παράδειγμα, μπορεί να προτείνεις σε έναν μαθητή να μη χρησιμοποιεί μαγικούς αριθμούς όπως το 60 και το 24
όταν λύνει την άσκηση Clock, αλλά να τους ορίσει ως σταθερές με ονόματα που έχουν νόημα.
Ο μαθητής μπορεί να απαντήσει ότι, δεδομένου του πλαισίου, είναι προφανές τι σημαίνουν το 60 και το 24.
Έκανες την πρότασή σου και ο μαθητής την απέρριψε.
Μπορεί να μην υπάρχει τίποτα να κερδίσεις, και ίσως να χάσεις την καλή θέληση, αν μαλώσεις γι' αυτό.
Για να προτείνεις κάτι ως εναλλακτική που ίσως να μην είναι απαραίτητα καλύτερη, μπορείς να ξεκινήσεις με "Μια άλλη προσέγγιση θα ήταν...".
Για παράδειγμα: "Μια άλλη προσέγγιση θα ήταν να χρησιμοποιήσεις το every με το includes."
Αν παρουσιάζεις μια δυνατότητα της γλώσσας που ο μαθητής δεν έχει χρησιμοποιήσει στη λύση (όπως το every ή το includes),
θα ήταν καλό να παραθέσεις έναν σύνδεσμο προς τεκμηρίωση που την εξηγεί.
Ένας άλλος τρόπος να ξεκινήσεις μια πρόταση μπορεί να είναι "Ίσως σκέψου...". Για παράδειγμα: "Ίσως σκέψου να χρησιμοποιήσεις σύνταξη spread αντί για split()." Αν νιώθεις έντονα ότι ο μαθητής πρέπει να χρησιμοποιήσει μια εναλλακτική, μπορείς να αφαιρέσεις το "Ίσως" και να ξεκινήσεις με "Σκέψου...". Για παράδειγμα: "Σκέψου να χρησιμοποιήσεις ένα προεπιλεγμένο όρισμα."
Για μια σειρά από προτάσεις, μπορεί να θέλεις να ποικίλλεις τον τρόπο με τον οποίο εισάγεται καθεμία.
Οι κουκκίδες είναι ένας αποτελεσματικός τρόπος να απαριθμήσεις τι σου αρέσει σε μια λύση. Μπορεί όμως να φαίνονται λιγότερο φιλικές όταν απαριθμούν προτάσεις. Το να προσφέρεις προτάσεις με χαλαρό, συνομιλητικό τρόπο μπορεί να τις κάνει λιγότερο δύσκολες για τον μαθητή να τις σκεφτεί και να τις αποδεχτεί.
Μια λέξη που μάλλον είναι καλύτερα να μη χρησιμοποιείς όταν κάνεις μια πρόταση είναι το "πρέπει". Για παράδειγμα: "Πρέπει να χρησιμοποιήσεις ένα προεπιλεγμένο όρισμα." Η χρήση λέξεων όπως το "πρέπει" ή το "οφείλεις" μπορεί να ακουστεί αυταρχική.
Οι καθοδηγητές είναι πιθανό να διαφωνήσουν για το πότε και πόσο έντονα να θίξουν θέματα όπως η μορφοποίηση κώδικα, ο σχολιασμός και οι συμβάσεις ονοματοδοσίας. Από τη μια πλευρά, μπορεί να θέλεις να βάλεις τον μαθητή να σκεφτεί τέτοια πράγματα από νωρίς, με ασκήσεις όπως το Two Fer, πριν αρχίσει να αναπτύσσει κακές συνήθειες. Ή μπορεί να μη θέλεις να τρομάξεις έναν αρχάριο με κάθε είδους ζήτημα καταλληλότητας. Από την άλλη πλευρά, οι μαθητές που κάνουν τις πιο προχωρημένες ασκήσεις μπορεί να γνωρίζουν ήδη τις συμβάσεις αλλά να επιλέγουν να τις αγνοούν ενώ επικεντρώνονται στο έργο που έχουν μπροστά τους. Μπορεί να δυσαρεστηθούν με τη συνεχή εστίαση στις συμβάσεις ως σχολαστικότητα. Αν μια γλώσσα έχει έναν ή περισσότερους μορφοποιητές ή linters, μπορεί να είναι καλό να επιλέξεις μια άσκηση όπου θα τους παρουσιάσεις. Διαφορετικά, αν η παραβίαση μιας συγκεκριμένης σύμβασης είναι πραγματικά σοβαρή, μπορεί να θέλεις να το επισημάνεις όπου κι αν συμβεί. Εκεί που οι καθοδηγητές μπορεί να διαφέρουν είναι στο τι μπορεί να θεωρηθεί "πραγματικά σοβαρό".