Πίσω στην κοινότητα

Λύνοντας προβλήματα για να γίνεις Tech Lead

Ο Gabriel Nelle ζει στη νότια Γερμανία, κοντά στο Baden-Baden. Μοιράζεται το διαμέρισμα με τη φίλη του και δύο γάτες. Σπούδασε για να γίνει καθηγητής μαθηματικών και γερμανικών στο πανεπιστήμιο του Siegen, όπου αποφοίτησε το 2008

Δες το στο Youtube
ΔΙΑΡΚΕΙΑ 52ΛΕΠΤΑ

Jonathan: Λοιπόν, γεια σε όλους. Με λένε Jonathan. Είναι μεγάλη μου χαρά που κάνω τον οικοδεσπότη απόψε. Έχω έναν καλεσμένο που νιώθω μεγάλη τιμή που τον φιλοξενώ στη σημερινή εκπομπή. Θα ήθελα να σου γνωρίσω τον Gabriel Nelle. Ο Gabriel είναι ένας από τους βασικούς συντελεστές μας στο Exercism. Έχει ασχοληθεί πολύ, ειδικά με το Go track, αλλά θα τον αφήσω να συστηθεί ο ίδιος πιο αναλυτικά σε λίγο. Αλλά να πω απλώς, Gabriel, είναι υπέροχο που είσαι εδώ. Ευχαριστούμε που ήρθες και ελπίζουμε να το διασκεδάσεις όσο και όλοι οι ακροατές της σημερινής εκπομπής. Λοιπόν, Gabriel, γιατί δεν ξεκινάς εσύ; Πες μου λίγο από πού κατάγεσαι και πώς βρέθηκες εκεί που είσαι σήμερα;

Gabriel: Ναι. Γεια. Είμαι ο Gabriel. Ευχαριστώ που με φιλοξενείς. Λοιπόν, είμαι από τη νότια Γερμανία, εκεί μεγάλωσα, και εκεί είμαι και τώρα, όχι στο ίδιο μέρος, αλλά πάλι στη νότια Γερμανία. Ναι, μεγάλωσα σε... Ας ξεκινήσω: είμαι παιδί των αρχών της δεκαετίας του '80, γεννήθηκε το '81. Και νομίζω ότι οι ρίζες μου βρίσκονται γύρω στα τέλη της δεκαετίας του '80, όταν ο πατέρας μου έφερε στο σπίτι τον πρώτο του υπολογιστή. Οπότε νομίζω εκεί ξεκινά η ιστορία. Τουλάχιστον η ιστορία της τεχνολογίας.

Jonathan: Ναι.

Gabriel: Είχε MS-DOS πάνω, δεν είμαι σίγουρος ακριβώς ποια έκδοση ήταν. Νομίζω ήταν και παλιότερη έκδοση, γιατί, αν θυμάμαι καλά, ο πατέρας μου το έφερε στο σπίτι επειδή βασικά το είχαν πετάξει σε αυτή την εταιρεία και πήραν καινούργιους υπολογιστές, οπότε κατάφερε να το πάρει στο σπίτι, και ναι, αυτή ήταν η πρώτη μου εικόνα για τους υπολογιστές. MS-DOS. Είναι ενδιαφέρον και παράξενο.

Jonathan: Οι γραμμές, οι χρωματιστές γραμμές στη μαύρη οθόνη; Ήταν ωραίο αυτό;

Gabriel: Ναι, ήταν απλώς λευκό σε μαύρο φόντο. Ναι, βασικά. Και βασικά, κυρίως ήταν απλώς η γραμμή εντολών, που την έμαθα πρώτη. Και μετά, αργότερα με τον πατέρα μου, βασικά το '90, γύρω στο 1991, ο πατέρας μου μας έμαθε τους πρώτους μας βρόχους for σε QBasic. Ήμουν περίπου 10 τότε, και υπήρχε και μάθηση λεξιλογίου. Ο πατέρας μου αγόρασε ένα πρόγραμμα για εκμάθηση λεξιλογίου και ήταν βασισμένο σε DOS, και νομίζω είχε και ποντίκι για να κλικάρεις, αλλά δεν είμαι 100% σίγουρος. Ίσως ήταν αργότερα. Οπότε σίγουρα ήταν εκείνα τα χρόνια που άρχισα να ασχολούμαι με υπολογιστές, και το χάλασα μερικές φορές. Ο πατέρας μου έπρεπε να το φτιάξει μερικές φορές. Οπότε σίγουρα με ενδιέφερε να μάθω γι' αυτό. Όχι ακριβώς με τον τρόπο που κάθισα κάτω και είπα στον εαυτό μου «πρέπει να μάθω γι' αυτό». Με ενδιέφερε πραγματικά να καταλάβω τι μπορούσες να κάνεις με αυτό. Με γοήτευε.

Jonathan: Και, και ήταν ο, ο πατέρας σου, δούλευε συγκεκριμένα με υπολογιστές ή ήταν απλώς στο, στο επάγγελμα και έτυχε να φέρει έναν υπολογιστή στο σπίτι, ή υπήρχε κάποιος συγκεκριμένος λόγος που τον έφερε στο σπίτι; Λόγοι υπολογιστών ή τεχνικοί λόγοι.

Gabriel: Ναι, βασικά, είναι ηλεκτρολόγος στο επάγγελμα, αυτό έμαθε. Αλλά τότε δούλευε στη Bosch και δούλευε στο τμήμα ηλεκτρονικών, όπου γινόταν η ανάπτυξη νέων τσιπ ή νέων πραγμάτων για αυτοκίνητα. Και εκεί υπήρχαν, φυσικά, και υπολογιστές, και βασικά αυτός ήταν υπεύθυνος από πολύ νωρίς για ό,τι είχε να κάνει με υπολογιστές, δικτυακούς εκτυπωτές και όλα τα σχετικά. Οπότε βασικά έτσι μπήκε στο χώρο. Ήταν βασικά αυτός που έκανε τα πάντα γύρω από αυτά για να δουλεύουν τα πράγματα εκεί. Και επειδή δεν είχε διδακτορικό όπως οι περισσότεροι άλλοι στο τμήμα του. Οπότε βασικά αναλάμβανε αυτού του είδους τα πράγματα και έμαθε, έμαθε πολλά γι' αυτά, για τους υπολογιστές. Ναι.

Jonathan: Ναι. Εντάξει, ωραία. Συγγνώμη, πετάχτηκα λίγο. Έλεγες λοιπόν ότι έπαιζες, το χάλασες μερικές φορές, αυτή ήταν η εισαγωγή σου στους υπολογιστές και στο hardware και σε όλα τα σχετικά. Και μετά; Τι έγινε από εκείνο το σημείο και μετά; Πώς εξελίχθηκε;

Gabriel: Νομίζω ότι το επόμενο μεγάλο βήμα ήταν ότι απέκτησα τον δικό μου υπολογιστή. Αυτό έγινε, θα έλεγα, πέντε ή έξι χρόνια αργότερα, όταν ήμουν νέος ενήλικος. Και με ενδιέφεραν περισσότερο οι υπολογιστές, και είχα και κάποια μαθήματα στο σχολείο. Άρχισα να γράφω τις εργασίες μου στον υπολογιστή και όλα τα σχετικά. Και ήταν ήδη εκείνα τα χρόνια, το Word και το MS Word και τέτοια, και θα έλεγα ότι ξεκίνησε μια μέρα... Ο πατέρας μου πάντα έκανε κάποια δουλειά με βιβλιογραφία για την εκκλησία μας. Μεγαλώσαμε σε μια πολύ μικρή εκκλησία και είχαμε αυτή τη βιβλιογραφία που βασικά χρησιμοποιούσαμε, και ο πατέρας μου την ψηφιοποιούσε ή βοηθούσε να ψηφιοποιηθεί. Στην αρχή ήταν ένα παράλληλο project, με τα δεδομένα του, και έγινε βασικά η πρώτη μου δουλειά πλήρους απασχόλησης, δουλεύοντας για... Για τον... άσε με, μπορείς να κοιτάξεις αυτό; Δουλεύοντας για τον εκδότη στις ΗΠΑ που ήταν υπεύθυνος για αυτή τη βιβλιογραφία.

Jonathan: Χμ.

Gabriel: Βασικά ο πατέρας μου με ρώτησε: "Ναι, έχω όλες αυτές τις μακροεντολές. Τις έχω γράψει σε ένα Euroscript που βασικά ήταν βασισμένο σε μια έκδοση του Word, θα έλεγες. Προ-Word, και τώρα θέλω να περάσω στο Word και χρειάζομαι όλες τις μακροεντολές μου στο Word". Και εγώ είπα κάπως: "Εντάξει. Εντάξει". Κι έτσι ξεκίνησα να προγραμματίζω στο Word. Δηλαδή Visual Basic for Applications. Μπορούσες πρώτα να ηχογραφήσεις τις μακροεντολές. Μπορούσες να δεις τον κώδικα και να δεις τι κάνει, και να τον βελτιώσεις, και βασικά να βελτιώσεις τη μακροεντολή τόσο πολύ, ώστε βασικά... Πριν ήταν κάπως έτσι: βάζεις τον κέρσορα εδώ, πατάς ένα πλήκτρο και μετά κάνει κάτι στις επόμενες γραμμές. Και στο τέλος ήταν σαν να επεξεργάζεται ολόκληρο το έγγραφο του Word από πάνω προς τα κάτω, εντελώς αυτοματοποιημένα. Και βασικά αυτή ήταν η είσοδός μου σε ένα σωρό μακροεντολές που έγραψα γι' αυτό, για την υπόθεση. Δημιούργησε μεγάλη αίσθηση και οι άνθρωποι που έδωσαν στον πατέρα μου αυτού του είδους την εργασία για τον ελεύθερό του χρόνο είπαν: "Ουάου, αυτό είναι υπέροχο. Ας κάνουμε περισσότερα και ας το αυτοματοποιήσουμε όλο και περισσότερο". Ναι. Έτσι μπήκα...

Jonathan: Αυτόν... του γλίτωσες πολύ χρόνο του πατέρα σου

Gabriel: Ναι.

Jonathan: με αυτή την έννοια, σε μικρή ηλικία,

Gabriel: Θα έλεγα πως ναι. Και λοιπόν, έγραφα μακροεντολές στο Word, αργότερα στο Excel. Έγραψα ένα σύστημα βασισμένο στο Excel για ένα... πώς το λες... ένα σύστημα ταμείου για ένα μικρό μαγαζί. Ήταν ένα μικρό μαγαζί με βιολογικά τρόφιμα και τα σχετικά, και βασικά σημείωναν όλες τις τιμές και μετά τις υπολόγιζαν στο μυαλό τους ή στο χαρτί. Έτσι δούλευε στην αρχή. Και έγραψα ένα σύστημα γι' αυτό, με σάρωση barcode και με ζυγαριά όπου έβαζες... ζύγιζες κάτι, έπαιρνες την απόδειξη και μετά τη σκάναρες όταν πήγαινες στο ταμείο να πληρώσεις και όλα τα σχετικά. Βασικά όλο αυτό ήταν βασισμένο στο Excel. Ήταν λοιπόν, ναι, πάντως σίγουρα θα το έκανα διαφορετικά. Το Excel ήταν ταυτόχρονα η βάση δεδομένων και ο εκτυπωτής. Δηλαδή μορφοποιούσα τα πάντα στο Excel, σε ένα φύλλο Excel, και μετά εκτυπώνονταν στον εκτυπωτή αποδείξεων, όλα αυτά τα πράγματα. Φυσικά, ναι, θεωρώ ότι αυτή ήταν η αρχή της καριέρας μου, ας πούμε.

Jonathan: Πόσο χρονών ήσουν όταν, όταν τα έκανες όλα αυτά, και, και τι ακολούθησε μετά από εκεί; Ήταν πριν το πανεπιστήμιο, κάπως στο λύκειο, και μετά διαμόρφωσε αυτό την πορεία της καριέρας σου, ας πούμε; Σε αρκετά μεγάλο βαθμό.

Gabriel: Ναι, όλα αυτά ήταν πριν το πανεπιστήμιο. Το σύστημα για το μαγαζί ήταν όταν ήμουν γύρω στα 20, 21, και τότε περίπου έκανα και την κοινωφελή μου θητεία.

Jonathan: Α;

Gabriel: Τις μακροεντολές τις έγραφα όταν ήμουν περίπου 16. Στο ενδιάμεσο έγραψα και κάποιο σύστημα βασισμένο στο Access για την εκτύπωση ετικετών για επιστολές, ώστε να μπορούν να σταλούν. Δηλαδή διευθύνσεις και τα σχετικά. Και μετά ήρθαν οι σπουδές, και έκπληξη: δεν σπούδασα πληροφορική.

Jonathan: Εντάξει.

Gabriel: Σπούδασα βασικά για να γίνω καθηγητής μαθηματικών και γερμανικών, για ηλικίες... Ας το υπολογίσω. Ηλικίες 10 έως 20, και 19. Αυτές είναι οι ηλικίες. Δηλαδή πέμπτη

Jonathan: Δηλαδή

Gabriel: ...έως τη 13η τάξη.

Jonathan: ...η πορεία της καριέρας σου, άρχισε να παίρνει κατεύθυνση, και σε τι βασίστηκε αυτή η απόφαση, κάπως;

Gabriel: Στην πραγματικότητα, μάλλον θα είχα πάρει τον δρόμο, ίσως συχνά, του προγραμματισμού. Αλλά κατά τη διάρκεια της κοινωφελούς θητείας μου έμαθα πολλά περισσότερα από τεχνικά πράγματα, θα έλεγα. Ήμουν υπεύθυνος, ήμουν σε μια μικρή ομάδα που ήταν υπεύθυνη για ένα γηροκομείο. Θα έλεγες ότι είχε κάπου 5, 5, 6 δωμάτια. Και υπήρχαν διάφοροι άνθρωποι και ήμουν υπεύθυνος κυρίως για μία. Ήταν ίσως 55, 60 χρονών και είχε Αλτσχάιμερ. Και αυτό μου έκανε μεγάλη εντύπωση, γιατί αν έρχεσαι αντιμέτωπος σε αυτή την ηλικία με κάτι τέτοιο... Θα έλεγες, ναι, ήταν 60 και ακουγόταν μεγάλη ηλικία για έναν εικοσάχρονο, αλλά ήταν ξεκάθαρο για μένα ότι αυτό μπορούσε να συμβεί σε οποιονδήποτε και ότι μπορούσε να συμβεί και σε μένα. Και αυτό με έκανε πολύ πιο ενδιαφερόμενο για τις κοινωνικές πλευρές της ζωής και

Jonathan: Συναρπαστικό.

Gabriel: ...για κοινωνικές επαγγελματικές πορείες. Και εκεί βασικά... Αυτός είναι βασικά ο λόγος που τότε επέλεξα να γίνω καθηγητής. Ήθελα να γράφω κώδικα, ήμουν πολύ καλός στη διδασκαλία ή στο να βοηθάω τους συμμαθητές μου, ειδικά στο σχολείο. Και στα μαθηματικά. Τα μαθηματικά ήταν ο πιο δυνατός τομέας μου και μου άρεσαν πάντα. Ναι, μου άρεσε πάντα να βοηθάω τους άλλους, να βελτιώνουν τις ικανότητές τους, ή πάντα το απολάμβανα όταν ξαφνικά το καταλάβαιναν. Όταν έβλεπα το φως στα μάτια τους. Τώρα το έπιασαν. Ναι. Και έτσι, έγινα τελικά καθηγητής.

Jonathan: Α, ωραία. Και πες μου, ανέφερες αυτό το πράγμα, την κοινωφελή θητεία, ας πούμε. Στη Γερμανία, που είναι υποχρεωτική για κάθε μαθητή ή παιδί πριν πάει στο πανεπιστήμιο; Πώς ταιριάζει όλο αυτό στην κουλτούρα της Γερμανίας;

Gabriel: Τότε ήταν εναλλακτική, εναλλακτική αντί να πας στον στρατό. Δηλαδή ή έκανες εννέα μήνες, εννέα μήνες στρατιωτική θητεία, ή έκανες 11 μήνες κοινωφελή θητεία. Αυτό ήταν η υποχρέωση.

Jonathan: Εντάξει.

Gabriel: Για τους άνδρες, όχι για τις γυναίκες.

Jonathan: Ισχύει ακόμα αυτό στη Γερμανία;

Gabriel: Όχι, δεν ισχύει πια. Όχι. Όχι.

Jonathan: Εντάξει. Ξέρω ότι ισχύει στην Ελβετία, από όπου κατάγεται η γυναίκα μου. Ήταν απλώς... Αυτό το σύστημα είναι ακόμα διαδεδομένο. Εντάξει. Λοιπόν, τώρα έκανες μαθηματικά και σπούδασες για να γίνεις καθηγητής, και προφανώς ο προγραμματισμός έπαιξε αρκετά σημαντικό ρόλο στη ζωή σου. Πότε περίπου... Δηλαδή υπήρξε στιγμή που να πεις «βασικά, είμαι στη διδασκαλία, το απολαμβάνω, αλλά δεν... υπάρχει ακόμα αυτό το κομμάτι του προγραμματισμού που είναι ενεργό και με τραβάει»; Πώς ισορρόπησαν αυτά τα δύο, η διδασκαλία και ο προγραμματισμός;

Gabriel: Πώς γύρισα πίσω στον προγραμματισμό; Ναι.

Jonathan: Ναι

Gabriel: Ναι. Λοιπόν, την εποχή που σπούδαζα, βασικά δύο πράγματα έκανα ως παράλληλες δουλειές. Το ένα ήταν διδασκαλία. Δίδασκα σε ένα φροντιστήριο. Δίδασκα στο πανεπιστήμιο, στους νεότερους, δηλαδή στα μαθηματικά, κυρίως στο πρώτο και δεύτερο εξάμηνο. Και ταυτόχρονα είχα δουλειά σε μια εταιρεία τεχνολογίας. Ήταν κυρίως... βασικά όλα ήταν βασισμένα στο Access.

Jonathan: Χμ.

Gabriel: Ήταν μια εταιρεία που έφτιαχνε hardware και software για car sharing και για εταιρείες που είχαν πολλά αυτοκίνητα και τα νοίκιαζαν στους υπαλλήλους τους. Και ναι, εκεί βασικά ξεκίνησα πρώτα ως συντάκτης εγγράφων, και μετά κατάλαβαν ότι μπορώ να προγραμματίσω κιόλας. Οπότε πέρασα γρήγορα στον τομέα του προγραμματισμού. Ναι. Και μετά θα έλεγα ότι τα πράγματα άλλαξαν κυρίως στα τελευταία μέρη των... που ήταν μέρη των σπουδών όπου έπρεπε να πας, έπρεπε να κάνεις έξι εβδομάδες στο σχολείο, και κάποια στιγμή τέσσερις εβδομάδες και τα λοιπά. Και νομίζω... Μου έγινε ξεκάθαρο, και μάλιστα αγαπητό, και μιλώντας με πολύ έμπειρους και πολύ, πολύ αφοσιωμένους καθηγητές, ότι βασικά οι καιροί έχουν αλλάξει πολύ. Οι μαθητές έχουν αλλάξει πολύ. Μια καθηγήτρια μου είπε, δίδασκε πάντα πέμπτη και έκτη τάξη, και βασικά μου έλεγε: "Πριν από πέντε χρόνια είχα έναν μαθητή στην τάξη μου που ήταν παιδί με προβλήματα, με την έννοια ότι το σχολείο δεν ήταν ολοκληρωμένο, ότι υπήρχε διαζύγιο ή προβλήματα στο σπίτι και τα λοιπά. Και τώρα έχει πάνω από 50%".

Jonathan: Σίγουρα.

Gabriel: Και αυτό ήταν πριν από 10 ή 15 χρόνια. 2006 ή 2007, πρέπει να ήταν, δηλαδή 15 χρόνια πριν. Και αυτό έδειξε πόσο πολύ έχουν αλλάξει τα πράγματα. Και ήταν επίσης πολύ ξεκάθαρο σε μένα ότι πολλοί μαθητές σήμερα απλώς δεν θέλουν πια να μάθουν. Και ο καθηγητής είναι πάντα ο... βασικά ο καθηγητής είναι πάντα ο τελευταίος. Η ουρά όλου του... Ναι. Οι γονείς, ο διευθυντής και οι μαθητές. Είναι βασικά όλοι αφεντικά του καθηγητή. Ναι. Ο καθηγητής είναι πάντα αυτός, το τελευταίο άχυρο, θα έλεγες, ή δεν είμαι σίγουρος πώς θα το εξέφραζες στα αγγλικά. Είναι πάντα αυτός που πρέπει να αναλάβει όλη την ευθύνη αλλά βασικά δεν έχει κανένα δικαίωμα.

Jonathan: ...εξουσία να... ναι. Να δράσει. Ναι.

Gabriel: Ναι.

Jonathan: Δηλαδή η απόφασή σου; Λοιπόν, συγγνώμη, σε διακόπτω. Συνέχισε, συνέχισε.

Gabriel: Κάτι τέτοιο, τουλάχιστον με έβαλε να σκεφτώ πολύ. Και αφού τελείωσα με το πανεπιστήμιο, απλώς γλίστρησα πίσω στον προγραμματισμό, γιατί ένας φίλος μου, αυτός που είχε δώσει στον πατέρα μου αυτή τη δουλειά με τη βιβλιογραφία, βασικά μου ζήτησε να τον βοηθήσω σε ένα project. Και αυτό το project, που αρχικά υπολογιζόταν για τέσσερις ή έξι εβδομάδες, κατέληξε να κρατήσει δύο και μισό ή τρία και μισό χρόνια. Ή τρία και μισό χρόνια. Project.

Jonathan: ...το scope creep. Το scope creep ήταν πραγματικό.

Gabriel: Ναι. Πρώτα μου ζήτησε να τον βοηθήσω με κάτι. Και μετά ήταν συνέχεια σε επαφή με ένα πρόσωπο από αυτόν τον εκδότη στις... Και ο εκδότης έλεγε συνέχεια: "Θέλω μια δημόσια ιστοσελίδα γι' αυτό, με τη βιβλιογραφία. Θέλω ο κόσμος να διαβάζει ολόκληρα τα βιβλία online".

Jonathan: Ω, ουάου.

Gabriel: Κάποια στιγμή είπα απλώς στον φίλο μου, μιλούσε μαζί του στο τηλέφωνο και είπε "θα μπορούσα να φανταστώ τον εαυτό μου να το κάνει. Δεν έχω βασικά κάτι να κάνω τώρα". Και είπε: "Α, ο Gabriel το κάνει". Κι έτσι ξεκίνησε. Λοιπόν

Jonathan: Ουάου.

Gabriel: Είχα ένα project, ναι, και μετά δούλεψα τρία και μισό χρόνια σε αυτό το project. Ανεβάζοντας χιλιάδες βιβλία online, ολόκληρη τη βιβλιοθήκη περιεχομένου

Jonathan: Ουάου.

Gabriel: ...τον κατάλογο. Διαφορετικές γλώσσες είναι συνδεδεμένες μεταξύ τους. Ναι, η ιστοσελίδα είναι ακόμα online. Είναι το egwwritings.org. Αν ενδιαφέρεται κανείς να τη δει, έχει νέο σχεδιασμό. Τον είδα γύρω στον Δεκέμβριο πέρυσι, άλλαξαν το design, αλλά ο κώδικας από κάτω είναι...

Jonathan: Ίδιος.

Gabriel: Κυρίως δικός μου, γιατί μπορώ να το δω, επειδή ήταν κυρίως βασισμένος σε JavaScript.

Jonathan: Ναι.

Gabriel: Ο κώδικας μοιάζει πολύ, είναι οργανωμένος διαφορετικά, τα αρχεία και όλα... τα διαφορετικά στυλ είναι ακόμα τα ίδια.

Jonathan: Θα πρέπει να μου στείλεις τον σύνδεσμο και θα τον βάλουμε στις σημειώσεις της εκπομπής, την κατάλληλη στιγμή. Αλλά τώρα, έκανες τρία και μισό, τι, τρία χρόνια αυτό το project. Έχεις βάλει, έχεις ευρετηριάσει όλα αυτά τα πράγματα. Χρησιμοποιούσες τη JavaScript ως κύρια γλώσσα τότε; Ποια ήταν η τεχνική σου υποδομή, θα έλεγες; Σε τι εστίαζες;

Gabriel: Λοιπόν, αυτό ήταν βασικά το μεγάλο βήμα απομάκρυνσης από το λογισμικό για Windows, που πριν ήταν Visual Basic και Visual Basic .NET. Και τώρα ήταν μόνο jQuery, JavaScript και PHP στο παρασκήνιο.

Jonathan: Εντάξει.

Gabriel: Είχαμε επίσης μια συμφωνία ότι όποτε έκανα έρευνα, είχα χαμηλότερη ωριαία χρέωση,

Jonathan: Χμ-χμ.

Gabriel: ήταν το ένα τρίτο από όταν έκανα πραγματικά προγραμματισμό. Και ναι, αυτό μου έδωσε την ελευθερία να μάθω βασικά στη δουλειά. Ναι.

Jonathan: Ωραία. Και μετά πού, πού... Exercism. Και τώρα κάνεις πολλά πράγματα. Έχω δίκιο να πω ότι η Go είναι κάπως κεντρικό στοιχείο σε αυτό που κάνεις; Καθοδηγείς πολύ κόσμο και έχεις, λοιπόν, έχεις ασχοληθεί με το Exercism στη Go και βοηθάς αυτή την πλευρά. Πότε άρχισε να μπαίνει στο κάδρο όλο αυτό και γιατί σε ενδιέφερε; Ξεκίνα.

Gabriel: Ναι, το 2016, αυτή ήταν η πρώτη μου δουλειά μετά από εκείνο το μεγάλο project. Στην πραγματικότητα, προς το τέλος εκείνου, άρχισα να περνάω στη Go. Σε εκείνη τη δουλειά έκανα κυρίως λίγο PHP και Python. Και η Go έγινε πολύ γρήγορα η αγαπημένη μου γλώσσα, η αγαπημένη μου γλώσσα, γιατί έχει αυτή την απλότητα. Προσπαθεί βασικά να... Από αυτόν τον τρελό κόσμο με όλο και περισσότερα χαρακτηριστικά και γλώσσες, που γίνονται όλο και πιο πολύπλοκες και μπερδεμένες, και με πολύ περισσότερο φόρτο για τον προγραμματιστή, γιατί πρέπει να διαλέξει με ποιον τρόπο να το κάνει. Και πρέπει επίσης να καταλάβει όλους τους άλλους τρόπους που το κάνουν οι άλλοι. Όλο αυτό το φόρτο λοιπόν, και η Go ξαφνικά έφερε αυτή τη γαλήνη και αυτή την... την απλοποίηση ξανά. Και αυτό έγινε πολύ γρήγορα το νούμερο ένα για μένα. Σε εκείνη την εταιρεία έφτιαξα και ένα πρωτότυπο, περίπου μισό χρόνο πριν φύγω, γιατί ήθελαν να περάσουν στη Go. Και στην αρχή, φυσικά, υπήρχαν αυτά τα πρώτα πράγματα, όπου σκοντάφτεις σε πράγματα που δεν μπορείς να κάνεις στη γλώσσα, και μετά καταλαβαίνεις γιατί δεν έχει νόημα να το κάνεις έτσι ή γιατί είναι καλύτερα να το κάνεις αλλιώς. Και με ενδιέφερε πολύ να μάθω πώς γίνονται αυτά τα πράγματα. Έτσι άρχισα να ακούω το podcast Go Time. Είναι του Changelog.

Jonathan: Εντάξει.

Gabriel: Και η Katrina Owen ήταν σε εκείνο το podcast, νομίζω δύο φορές. Τουλάχιστον δύο φορές την άκουσα, νομίζω. Ναι. Κι έτσι άρχισα να το ψάχνω. Νομίζω το 2017 γράφτηκα στο Exercism. Δεν είμαι 100% σίγουρος, θα έπρεπε να το κοιτάξω.

Jonathan: Το φαντάζομαι. Θα ήταν δίκαιο να το πούμε αυτό;

Gabriel: Ναι, νομίζω μπορεί να ήταν ακόμα και η έκδοση ένα, γιατί στην αρχή δεν υπήρχε... δεν έπαιρνα πραγματικά... δεν έπαιρνα καθόλου feedback. Έκανα μερικές ασκήσεις, αλλά δεν πήρα ποτέ feedback, και μπορούσα να δίνω feedback σε άλλους, και το έκανα. Αλλά δεν έπαιρνα ποτέ feedback. Δεν υπήρχε δηλαδή καμία διαδικασία για να πάρεις πραγματικά feedback. Ήταν του τύπου "αν θέλεις, κάν' το, και αν δεν θέλεις, άσ' το". Ας πούμε. Ναι. Νομίζω αυτή ήταν η έκδοση ένα, σωστά;

Jonathan: Το φαντάζομαι. Θέλω να πω, νομίζω ότι έχουν γίνει αρκετές αλλαγές από την έκδοση ένα στην έκδοση τρία.

Gabriel: Ναι. Ναι.

Jonathan: Η πρώτη είχε λίγο feedback. Η δεύτερη απαιτούσε υπερβολικές ποσότητες feedback, και μετά η τρίτη κάθισε κάπως κάπου στη μέση, λίγο ίσως προς την πλευρά του λιγότερου, αλλά όχι. Και, και ήσουν, ήσουν... συμμετείχες στη δημιουργία της έκδοσης τρία και πώς, πώς... Ναι. Ποια ήταν η συμμετοχή σου εκεί; Δηλαδή, δεν το έχω απολύτως ξεκάθαρο, αλλά θα ήθελα πολύ να το καταλάβω.

Gabriel: Ίσως ένα, ένα βήμα πίσω, αν επιτρέπεται. Βασικά, γύρισα πίσω μετά τη δεύτερη συνέντευξη. Άκουσα την Katrina στο Exercism,

Jonathan: Εντάξει.

Gabriel: Τότε υπήρχε η έκδοση δύο. Και όταν υπήρχε πολλή δουλειά και χρειαζόταν πολύ feedback. Πήδηξα μέσα σε αυτό και μου άρεσε πολύ να δίνω αυτό το feedback. Και,

Jonathan: Χμ-χμ.

Gabriel: Βασικά, άρχισα να σκέφτομαι πώς θα μπορούσα να το κάνω πιο γρήγορο. Ναι. Γιατί κατάλαβα γρήγορα ότι, ειδικά στις πρώτες ασκήσεις, ήταν ξεκάθαρο ότι θα έδινα την ίδια απάντηση ξανά και ξανά και ξανά.

Jonathan: Ναι.

Gabriel: Και από την άλλη, φυσικά, μερικές φορές, αυτά τα δύο ζητήματα, και μερικές φορές υπήρχε αυτό το ζήτημα και κάποιο άλλο. Οπότε βασικά άρχισα να το βελτιστοποιώ αυτό. Άρχισα να γράφω ένα μικρό πρόγραμμα σε Go, που χρησιμοποιεί στατική ανάλυση, γιατί ήθελα να ασχοληθώ με την ανάλυση. Δεν το είχα κάνει πριν. Ήθελα να το γνωρίσω. Οπότε με ενδιέφερε να το δοκιμάσω έτσι κι αλλιώς και φαινόταν καλή ιδέα. Γιατί ήταν ακόμα κώδικας που ήταν πολύ κοινός ή πολύ παρόμοιος όλη την ώρα. Οι λύσεις σε μια άσκηση, ειδικά στις πρώτες, είναι πολύ παρόμοιες. Έτσι μπήκα στη στατική ανάλυση και απλώς έψαχνα για διάφορα μοτίβα στον κώδικα και μετά πρόσθετα αυτόματα μπλοκ απαντήσεων ή προκαθορισμένα μπλοκ στην απάντηση. Βασικά ξεκίνησα τοπικά και έτσι κατάφερνα να κάνω γύρω στα 100 την εβδομάδα, 102 την εβδομάδα. Και δεν το έκανα καν full-time. Ήταν δίπλα στη δουλειά μου. Και ναι. Και μετά άρχισε να... ο Pitfield νομίζω ήταν ο πρώτος. John Arun, νομίζω έτσι λέγεται στ' αληθινά. Ήταν ο πρώτος που είπε: "Ουάου, αυτό είναι υπέροχο. Αυτό είναι σούπερ". Κι έτσι βασικά άρχισε να γίνεται γνωστή η δουλειά που έκανα, με τη στατική ανάλυση. Και νομίζω ότι αυτό ήταν μεγάλο μέρος της έκδοσης τρία, γιατί αρχίσαμε να σκεφτόμαστε πώς μπορούμε βασικά να μειώσουμε τη δουλειά του μέντορα με αυτά τα εργαλεία, με τη στατική ανάλυση ή τα εργαλεία που ελέγχουν βασικά τον κώδικα αυτόματα και δίνουν feedback αυτόματα. Ακόμα και εντελώς αυτόματα, χωρίς να εμπλέκεται καν μέντορας ή χωρίς να χρειάζεται να εμπλακεί. Και επειδή οι μέντορες, ήταν αρκετά ξεκάθαρο ότι έχουμε μέντορες και δεν αρκούν για τη δουλειά. Είχαμε το εργαλείο inversion και είδαμε επίσης ότι πολλοί μέντορες έκαιγαν, εξαφανίζονταν, και ναι, ήταν απλώς πάρα πολλά. Πάρα πολλά για πολλούς μέντορες. Ναι. Η δουλειά ήταν κάτι με ουρές, είχαν 500 ή περισσότερες λύσεις να καθοδηγήσουν, ή, και μερικές φορές υπήρχαν χρόνοι αναμονής ενός μήνα ή περισσότερο. Και φυσικά αυτές ήταν συνθήκες όπου και οι μαθητές απλώς έφευγαν σε κάποια φάση. Ναι.

Jonathan: Χμ. Έχει πλάκα, γιατί νομίζω ο Jeremy έλεγε τις προάλλες ότι από όλες τις λύσεις που υποβάλλονται, γύρω στο 75% είναι εντελώς μοναδικές, κάτι που το βρίσκω κι εγώ συναρπαστικό. Δηλαδή, πας σε μια άσκηση σαν το Hello World, προφανώς είναι πολύ απλή. Σίγουρα θα πρέπει να είναι ένα πρότυπο μοτίβο που εφαρμόζεται τακτικά. Και αυτός έλεγε: "Είναι άνθρωποι που δοκιμάζουν διάφορα διαφορετικά πράγματα". Και έχει πλάκα πώς γίνεται αυτή η μετάβαση, γιατί όσο ο προγραμματισμός γίνεται πιο δημοφιλής και όσο περισσότεροι άνθρωποι ασχολούνται με την ανάπτυξη λογισμικού και τον προγραμματισμό, αναρωτιέσαι: πού θα αρχίσει αυτή η αυτοματοποίηση να ακυρώνει τον ρόλο του προγραμματιστή; Αναρωτιέμαι, δεν ξέρω αν θα γίνει. Νομίζω απαιτούνται ακόμα πάρα πολλά, αλλά όσον αφορά, ξέρεις, δεν ξέρω ποιες είναι οι σκέψεις σου γύρω από αυτό, αλλά μοιάζει πραγματικά ότι τελευταία στο Exercism υπάρχει μια τεράστια ώθηση προς την καθοδήγηση, που είναι πραγματικά συναρπαστική, γιατί, όπως είπες, παίρνει όλα αυτά τα επαναλαμβανόμενα μαθήματα που πρέπει να δίνεις συνέχεια και τα βάζει με τρόπο που να είναι διαχειρίσιμος για τον κόσμο να τα διαχειρίζεται. Ταυτόχρονα όμως, περνάει στο σημείο όπου πραγματικά χρειάζεσαι την ανθρώπινη αλληλεπίδραση, έναν άνθρωπο που να ασχοληθεί πραγματικά με το περιεχόμενο. Οπότε δεν ξέρω αν έχεις κάποιες ιδέες γύρω από αυτό, αλλά το βρίσκω ενδιαφέρον πεδίο αυτή τη στιγμή.

Gabriel: Ναι, δεν νομίζω ότι οι προγραμματιστές θα αντικατασταθούν σύντομα. Θα περάσει ακόμα αρκετός καιρός. Στην ανάπτυξη λογισμικού, στις εφαρμογές γενικά, στην καθοδήγηση, νομίζω. Νομίζω ότι η στατική ανάλυση και επίσης η αυτοματοποιημένη καθοδήγηση, η αυτοματοποιημένη καθοδήγηση γενικά στο Exercism, μπορεί να βοηθήσει πολύ. Αλλά οι μέντορες χρειάζονται για πραγματική καθοδήγηση, θα έλεγα. Ναι. Για παράδειγμα, έχω κάποιον που καθοδηγώ, κάθε δύο-τρεις μήνες κάνουμε μια κλήση, μερικές φορές συχνότερα. Και τον καθοδηγώ στην καριέρα του, ας πούμε. Ναι. Και επίσης τεχνικά, πολύ βαθιά τεχνικά, αλλά είναι ένας εντελώς διαφορετικός τρόπος καθοδήγησης από το να κοιτάς απλώς τη λύση και να του λες τι μπορεί να βελτιώσει. Και νομίζω ότι γι' αυτό χρειάζονται ακόμα οι μέντορες που υπάρχουν, και σίγουρα θα χρειάζονται, και νομίζω ότι είναι κάτι στο οποίο μπορούμε να εστιάσουμε. Από την άλλη, νομίζω ότι δεν μπορούμε να αντικαταστήσουμε τους μέντορες εντελώς στις λύσεις, και δεν νομίζω ότι πρέπει. Μπορούμε να αυτοματοποιήσουμε πολλά πράγματα, αλλά ο μέντορας είναι κάποιος που μπορεί να δείξει την κατεύθυνση. Μπορεί να δει τα προβλήματα με τα οποία παλεύεις και να σου πει: "Κατάλαβε αυτό και αυτό", όχι απλώς "πρέπει να βελτιώσεις τον κώδικά σου με αυτόν τον τρόπο".

Jonathan: Ναι. Ναι.

Gabriel: Και για να είμαι ειλικρινής, θα ήθελα να έχουμε πάλι περισσότερη καθοδήγηση στο Exercism. Αναρωτιέμαι αν θα έπρεπε

Jonathan: Εννοείς πρόσωπο με πρόσωπο αλληλεπίδραση;

Gabriel: Ναι. Αναρωτιέμαι αν θα έπρεπε. Λοιπόν, είχαμε παλιά αυτή τη διαδρομή με 10 ασκήσεις, τουλάχιστον 10. Που έπρεπε να περάσεις και μπορούσες να προχωρήσεις μόνο όταν είχε γίνει καθοδήγηση.

Jonathan: Ναι.

Gabriel: Και νομίζω ότι με την αυτοματοποίηση που έχουμε τώρα, θα μπορούσαμε βασικά να το ενεργοποιήσουμε ξανά. Ή ίσως όχι τώρα, αλλά στο μέλλον. Και νομίζω ότι θα μου άρεσε αυτό.

Jonathan: Θα μπορούσαμε σίγουρα, θα έπρεπε να το θέσουμε σε μια κοινοτική κλήση, γιατί νομίζω ότι θα ήταν ωραίο να το ξαναβάλουμε στο προσκήνιο. Λοιπόν Gabriel, μία από τις ερωτήσεις που κάνουμε συχνά, και δεν είναι αυτή για την οποία σου μίλησα νωρίτερα, αλλά... Μία από τις ερωτήσεις που μου αρέσει να κάνω, γιατί είναι πάντα πολύ ενδιαφέρουσα και διαφορετική, είναι: σου "κλικάρε" κάποια στιγμή ο προγραμματισμός; Ο κόσμος λέει ότι υπήρξε μια εμπειρία όπου ξαφνικά όλα έβγαλαν νόημα. Χρησιμοποιώ συχνά την ιστορία μου. Δίνω ένα παράδειγμα από το σχολείο, όταν μάθαινα χημεία, στη Βρετανία όπου πήγαινα σχολείο. Έχεις αυτές τις εξετάσεις. Και όλα οδηγούν σε αυτές τις εξετάσεις για τρία χρόνια πριν από τις εξετάσεις. Δηλαδή έχεις τρία χρόνια σπουδών και αυτά κορυφώνονται στην τελική εξέταση. Και αυτό σε όλα τα μαθήματα. Και ένα από τα θέματα ήταν προφανώς η χημεία. Και πέρασα περίπου τρία χρόνια χωρίς να έχω ιδέα από χημεία. Απλώς δεν μπορούσα, δεν το έπιανα. Δεν μπορούσα να το καταλάβω, και μετά, μια εβδομάδα πριν την εξέταση, ήταν σαν να μου άναψε ξαφνικά το φως, σαν κάτι να έβγαλε επιτέλους νόημα. Και σκέφτηκα: "Ω, Θεέ μου. Μπορώ να τα βγάλω όλα από τον περιοδικό πίνακα. Αν ξέρω τους αριθμούς στον περιοδικό πίνακα, μπορώ να καταλάβω αυτό, εκείνο και το άλλο". Και τα πράγματα έγιναν πολύ απλά. Και ήταν σαν... Είχες κι εσύ μια τέτοια στιγμή στον προγραμματισμό, ή ήταν κάτι που απλώς... Το έβρισκες φυσικά κατανοητό, και πότε ήταν αυτή η στιγμή, αν έχει νόημα;

Gabriel: Δεν είμαι σίγουρος αν έχω αυτή την καθορισμένη στιγμή. Νομίζω ότι βοήθησε πολύ το ότι είχα αυτή την ηχογράφηση μακροεντολών και έβλεπα τον κώδικα από πολύ νωρίς με το Visual Basic for Applications. Δεν είμαι σίγουρος αν υπάρχει ακόμα κάτι τέτοιο σήμερα. Νομίζω ότι μπορείς ακόμα. Στο Word και να το κάνεις αυτό. Αλλά δεν είναι πολύ συχνό να έχεις κάτι τέτοιο, όπου μπορείς να ηχογραφήσεις και μετά να δεις τον κώδικα και να μάθεις έτσι. Νομίζω ότι αυτό μου το έκανε πολύ πιο εύκολο, γιατί στην αρχή δυσκολευόμουν πολύ. Νομίζω ότι μια, μια κάπως στιγμή όπου θα έλεγα "εντάξει, όχι ότι κατάλαβα τα πράγματα, αλλά ότι συνειδητοποίησα βασικά αν κάνω τα πράγματα σωστά ή λάθος" ήταν όταν μπήκα σε εκείνη την εταιρεία, όταν ήμουν φοιτητής, ήταν βασικά η πρώτη φορά που δούλεψα. Δούλεψα μαζί με άλλους προγραμματιστές. Πριν από αυτό, ήμουν πάντα μόνος μου και έπρεπε βασικά να τα κάνω όλα. Και ήταν πάντα ένα μεγάλο ερώτημα: το κάνεις συνήθως έτσι; Μοιάζει παράξενο. Μοιάζει πολύπλοκο. Μοιάζει να δουλεύει, αλλά είναι σωστό; Και αυτό απαντήθηκε κάπως όταν μπήκα σε εκείνη την εταιρεία και άρχισα να πηγαίνω εκεί. Σίγουρα υπήρχαν πολλά που έπρεπε να μάθω και έμαθα πολλά. Για παράδειγμα, τα σύνολα καταγραφών του Access. Ποτέ δεν τα είχα καταλάβει πραγματικά πριν. Δούλευα μαζί τους, αλλά

Jonathan: Χμ.

Gabriel: ναι, δούλευαν

Jonathan: Ναι. Κάτι

Gabriel: Μετά τα κατάλαβα πραγματικά, άρχισα να τα καταλαβαίνω. Οπότε ίσως ήταν κάτι που μου "κλικάρε", γιατί είχα μια συνάδελφο και μου τα εξήγησε, και πραγματικά... μου "κλικάρε" κάποια στιγμή, κατάλαβα. Πώς δουλεύουν και

Jonathan: Χμ-χμ.

Gabriel: πώς πρέπει να δουλεύουν και πώς να τα χρησιμοποιείς σωστά και τα λοιπά. Οπότε ναι, ίσως αυτό ήταν ένα από εκείνα τα σημεία. Αλλά νομίζω ότι αυτά τα σημεία εμφανίζονται πολύ συχνά στη δουλειά μας. Δεν νομίζω ότι υπάρχει ένα και μοναδικό σημείο, ίσως εκείνο ήταν ένα αρχικό σημείο. Αλλά και στη Go, υπάρχουν τόσα πολλά σημεία όπου μπορεί να μου "κλικάρει" κάτι, όπου καταλαβαίνω γιατί κάτι είναι έτσι και πώς πρέπει να χρησιμοποιηθεί. Και, για παράδειγμα, το context. . Ναι. Για παράδειγμα, το context.

Jonathan: Ναι.

Gabriel: Ναι. Το, για παράδειγμα, το context προστέθηκε στην... δεν είμαι σίγουρος, στην 1.6 ή 1.7 ίσως. Γύρω σε εκείνη την εποχή, δεν τα κοίταξα. Για να είμαι ειλικρινής, δεν τα χρειαζόμουν πραγματικά στην αρχή. Και μετά πήγα σε ένα, σε ένα meetup και κάποιος παρουσίασε για το context, πώς τα χρησιμοποιείς, πώς, και τα λοιπά. Και σκέφτηκα

Jonathan: Χμ.

Gabriel: ότι θα έπρεπε να τα κοιτάξω. Αλλά πέρασαν μερικοί μήνες μέχρι να τα κοιτάξω πραγματικά και να καταλάβω γιατί υπάρχουν. Και για παράδειγμα το κλειστό κανάλι, δεν ξέρω αν ξέρεις ότι πολλοί προτείνουν ακόμα στο internet να κλείνεις ένα goroutine με ένα κλειστό κανάλι, και δεν πρέπει. Γι' αυτό υπάρχει το context. Ναι. Χρησιμοποιείς ένα context, ακυρώνεις το context, και μετά μπορείς να κλείσεις το goroutine με αυτό. Αν χρησιμοποιείς κλειστό κανάλι, βασικά κάνεις χειροκίνητα αυτό που κάνει εσωτερικά το context, και υπάρχουν τόσες παγίδες να αποφύγεις, τόσα προβλήματα να αποφύγεις, που συνήθως ο κόσμος το κάνει λάθος.

Jonathan: Είμαι σίγουρος ότι έκανες ένα live, έκανες ένα live stream και ανέφερες κάτι γι' αυτό. Ναι, νομίζω ότι θυμάμαι που ανέφερες, ξέρεις, απλώς χρησιμοποίησε context γιατί

Gabriel: Ναι.

Jonathan: ...βγάζει πολύ νόημα.

Gabriel: Θυμάμαι ότι το ανέφερα αυτό.

Jonathan: Ναι. Αλλά όχι, δηλαδή, όσον αφορά τότε, όταν έχεις καθοδηγήσει κόσμο στο παρελθόν, ποιες είναι μερικές από τις... Μπορείς να εντοπίσεις; Πράξεις ή συμπεριφορές ή πράγματα που κάνουν οι άνθρωποι που πιάνουν τα πράγματα γρήγορα; Μπορείς να πεις τι κάνουν που τους επιτρέπει να μπουν στη θέση να μάθουν γρήγορα ή πιο αποτελεσματικά; Ή είναι πολλοί από τους μέντορες, ή τους ανθρώπους που έχεις καθοδηγήσει, απλώς από τη φύση τους έτσι αφοσιωμένοι; Ή υπάρχουν άνθρωποι που λες "ουάου, κάνουν πράγματα, κάνουν πράγματα που τους επιτρέπουν να επιταχύνουν...";

Gabriel: Δεν είμαι σίγουρος αν μπορώ να το πω αυτό για άλλους ανθρώπους. Μπορώ σίγουρα να το πω για μένα. Έμαθα, νομίζω, από τους γονείς μου. Έμαθαν μόνοι τους πολλά πράγματα και αυτό έμαθα κι εγώ από αυτούς, να μαθαίνω μόνος μου πράγματα. Έμαθα δηλαδή προγραμματισμό εντελώς μόνος μου. Στην αρχή υπήρχε ο πατέρας μου. Υπήρχαν κάποια πράγματα στο σχολείο. Τις περισσότερες φορές, στις μεγαλύτερες τάξεις του σχολείου, εγώ, ή εμείς, σχεδόν όλοι μας ήμασταν καλύτεροι από τον καθηγητή έτσι κι αλλιώς. Οπότε δεν υπήρχε πραγματικά μάθηση. Υπήρχε περισσότερο ένα είδος μάθησης ο ένας από τον άλλο. Αλλά

Jonathan: Ναι.

Gabriel: Γενικά, τα έμαθα όλα μόνος μου. Και αυτό είναι κάτι που νομίζω ότι χρειάζεσαι στον προγραμματισμό. Γιατί πρέπει συνέχεια να σκαλίζεις πράγματα που δεν έχεις ξαναδεί. Δεν τα ξέρεις, πρέπει να διαβάσεις γι' αυτά. Πώς είναι η λέξη; Αυτή η. Ικανότητα. Ναι. Αυτή η ικανότητα να μπορείς να σκαλίσεις κάτι και να το μάθεις μόνος σου, νομίζω ότι είναι το κλειδί στον προγραμματισμό για τη μάθηση. Και φυσικά μπορείς να μάθεις πολύ πιο γρήγορα αν βρεις κάποιον να σου τα πει. Δεν θέλω δηλαδή να πω ότι δεν πρέπει να ψάχνεις για μέντορα, ότι δεν πρέπει να πας στο Exercism και τα λοιπά. Αυτό σε βοηθά να αναπτυχθείς πολύ πιο γρήγορα, αλλά και πάλι αυτό είναι. Αυτό θα έλεγα.

Jonathan: ...μου φαίνεται ότι η μάθησή σου ήρθε μέσα από την πρακτική προσπάθεια να λύσεις προβλήματα. Είτε έφτιαχνες μακροεντολές για να κάνεις κάτι πιο αποδοτικά, μου δίνει την εντύπωση ότι αυτό ήταν ένα βασικό μοτίβο που επαναλαμβάνεται στη ζωή σου, όσον αφορά τη μάθηση, το οποίο νομίζω ότι ταιριάζει πολύ με αυτό που προσπαθεί να κάνει γενικά το Exercism, δηλαδή να βοηθάει τον κόσμο να κάνει πράγματα στην πράξη.

Gabriel: Ναι. Να το δοκιμάσει.

Jonathan: Λοιπόν, ναι. Αυτό είναι πολύ ωραίο. Λοιπόν, Gabriel, δεν μας μένει πολύς χρόνος ακόμα, αλλά έχω δύο τελευταία... Λοιπόν, όχι ερωτήσεις για σένα. Το ένα είναι ερώτηση, και θα σου ζητήσω να μοιραστείς μια άποψή σου, και μετά το άλλο θα είναι, λοιπόν, είναι κάπως μια άποψη που θα μπορούσες. Θα σου ζητήσω να δώσεις μια σύσταση στην κοινότητα για κάτι που πρέπει να δοκιμάσει αυτή την εβδομάδα. Αλλά το πρώτο είναι ότι έχουμε μιλήσει με πολλούς από τους προηγούμενους ανθρώπους που έχουμε πάρει συνέντευξη, και αν ακούς αυτό το podcast ή αυτό το live stream για αρκετή ώρα, θα ξέρεις ότι κάνουμε συνήθως μία μεγάλη ερώτηση προς το τέλος του live stream μας. Και η ερώτηση είναι: σε ποιον λόφο θα πέθαινες στην τεχνολογία; Δηλαδή ποια είναι η μία άποψη που κρατάς πολύ σταθερά, για την οποία θα ήθελες να σταθείς και. Και να έχεις στο μυαλό σου ότι πρέπει να δώσεις έναν καλό λόγο γι' αυτό. Δεν μπορείς απλώς να πεις "αυτή είναι η άποψή μου και τέλος". Πρέπει να μπορείς να υπερασπιστείς τον εαυτό σου με αυτή την έννοια. Αλλά ποια θα ήταν αυτή η άποψη, αν... Και μπορεί να είναι όσο έντονη, όσο ακραία ή όσο ασήμαντη θέλεις. Ποια θα ήταν λοιπόν;

Gabriel: Θα έλεγα ότι είναι μια παροιμία. Στην κοινότητα της Go, κάποιος έχει πει το εξής, και είναι: ο βαρετός κώδικας είναι καλύτερος από τον έξυπνο κώδικα.

Jonathan: Μου αρέσει αυτό. Τι σημαίνει;

Gabriel: Τι σημαίνει; Ναι, βασικά συνοψίζει ένα μεγάλο μέρος της φιλοσοφίας της Go γύρω από την απλότητα και την αναγνωσιμότητα. Δηλαδή αν κοιτάς κώδικα σε Go και σκέφτεσαι "ουάου, αυτό είναι έξυπνο", τότε αυτός είναι στην πραγματικότητα κακός κώδικας. Ακόμα κι αν αυτός που το έκανε ήταν πολύ έξυπνος και το έκανε με πολύ έξυπνο τρόπο. Και μερικές φορές νιώθω ότι αν ακολουθείς πραγματικά την απλότητα και τα idioms της Go, δεν έχεις πραγματικά κώδικα σε όλη τη βάση κώδικά σου στον οποίο να θέλεις να δείξεις, ή να μπορείς να δείξεις. Κοίτα αυτόν τον κώδικα, πόσο καλός είναι, γιατί όλος ο κώδικάς σου είναι στην πραγματικότητα βαρετός και πολύ απλός, και όποιος κοιτάξει τον κώδικά σου θα πει: τι το ιδιαίτερο έχει; Ναι, αλλά το θέμα είναι ότι έφτασες στην απλότητα επειδή είσαι καλός προγραμματιστής, και είναι μια διαδικασία επανάληψης, και ο πολύπλοκος κώδικας... το να γράψεις πολύπλοκο κώδικα είναι πολύ εύκολο. Το να γράψεις απλό κώδικα είναι [δύσκολο]. Γιατί πρέπει πρώτα να κάνεις το πρόβλημα απλό στο μυαλό σου, και μετά να γράψεις τον κώδικα σωστά, και μετά να τον επαναλάβεις και να τον κάνεις απλό. Και αυτή είναι μια πολύ μεγαλύτερη διαδικασία και χρειάζεται πολύ καλύτερους προγραμματιστές από το να γράψεις απλώς πολύπλοκο κώδικα, τον οποίο όταν τον κοιτάς, είναι δύσκολο να τον καταλάβεις. Είναι δύσκολο να τον διαβάσεις, δύσκολο να τον συντηρήσεις και δύσκολο να τον αλλάξεις.

Jonathan: Είναι αυτό το συνεχές πράγμα με τα trade-offs, έτσι δεν είναι; Είμαι σχετικά νέος στον χώρο της τεχνολογίας, τρία χρόνια, και δεν προέρχομαι από την πλευρά του προγραμματισμού. Προέρχομαι από το product, πιο πολύ από την πλευρά του προϊόντος. Περισσότερο από την επιχειρηματική οπτική. Και, θα έλεγες, ένα από τα πράγματα που ήταν πραγματικά ενδιαφέροντα ήταν ότι γινόταν όλο και πιο φανερό ότι όλα είναι θέμα trade-offs. Δηλαδή λες ότι το trade-off είναι απλός κώδικας εναντίον πολύπλοκου κώδικα, όπου ο πολύπλοκος κώδικας μπορεί απλώς να είναι πιο δυσκίνητος και προβληματικός στη συνέχεια. Ο απλός κώδικας μπορεί να πάρει περισσότερο χρόνο και να απαιτήσει περισσότερη ενέργεια και κόπο από την αρχή. Και αυτό είναι το trade-off που γίνεται συνεχώς. Οπότε αυτό ήταν ένα από τα... δεν ξέρω ποιες είναι οι σκέψεις σου γι' αυτό, αλλά μου κάνει εντύπωση ότι, ότι πραγματικά, αυτή η πλευρά της απλότητας, γιατί θυμάμαι ότι η μαμά μου είχε έναν φίλο στο πανεπιστήμιο και έγραφε πάντα μόνο δίσελιδες εργασίες για τις υποχρεώσεις του. Επειδή μπορούσε να τα συμπυκνώσει όλα σε δύο σελίδες, και έπαιρνε άριστα γι' αυτό. Οπότε νομίζω ότι, ότι, ότι ταιριάζει με όλη την ιδέα της απλότητας, και νομίζω ότι είναι πραγματικά δύσκολο να γράψεις απλό κώδικα, γιατί απαιτεί καθαρή, καθαρή σκέψη, όχι απλώς προγραμματισμό. Οπότε νομίζω ότι είναι ένας άξιος λόφος, και νομίζω ότι το έχεις αναπτύξει. Το έχεις πει πολύ καλά. Ωραία. Λοιπόν Gabriel, τελευταία ερώτηση αυτής της εβδομάδας. Και τώρα μπορείς να δώσεις λίγη συμβουλή στην κοινότητα του Exercism. Και μπορεί να είναι οτιδήποτε. Μπορεί να είναι συμβουλή υγείας, διατροφική συμβουλή. Είναι η ευκαιρία σου να μοιραστείς μια συμβουλή που θα έδινες στην κοινότητα και μπορεί να είναι ό,τι θέλεις. Ποια θα ήταν λοιπόν η σύστασή σου στην κοινότητα του Exercism αυτή την εβδομάδα; Ποιο ένα πράγμα πρέπει να δοκιμάσουν ή να κάνουν, από την οπτική σου;

Gabriel: Ω, αυτή είναι δύσκολη. Εντάξει, τώρα που λες ότι μπορεί να είναι οτιδήποτε, μπορώ να σου δώσω δύο πράγματα;

Jonathan: Σε αφήνω, σε αφήνω να κάνεις δύο

Gabriel: Εντάξει. Μία, μία σύσταση. Λοιπόν, είμαι βασικά χορτοφάγος. Μεγάλωσα χορτοφάγος. Δεν έχω φάει ποτέ κρέας, και βασικά μεγάλωσα vegan, τα περισσότερα, τα περισσότερα παιδικά μου χρόνια και τα νεανικά μου χρόνια. Οπότε δοκίμασε μια εβδομάδα χωρίς γαλακτοκομικά προϊόντα. Αυτή θα ήταν η μία. Λοιπόν. Και μια άλλη σύσταση θα ήταν... δεν είμαι σίγουρος αν μπορείς να το κάνεις σε μία εβδομάδα, αλλά αν είσαι καλός προγραμματιστής, μπορείς. Είναι πολύ ενδιαφέρον και πολύ αξιόλογο να προσπαθήσεις να φτιάξεις κοινόχρηστη μνήμη, μοιρασμένη ανάμεσα σε πολλαπλές υπηρεσίες, στην ίδια υπηρεσία, κοινόχρηστη μνήμη. Προσπάθησε να υλοποιήσεις κοινόχρηστη μνήμη χρησιμοποιώντας το πρωτόκολλο Raft. Μπορείς να χρησιμοποιήσεις μια βιβλιοθήκη. Δεν χρειάζεται να υλοποιήσεις το ίδιο το Raft, αλλά

Jonathan: Raft Θα πρέπει να μου δώσεις, θα πρέπει να μου στείλεις τον σύνδεσμο για να τον βάλω κάτω. Λοιπόν, αυτή είναι η πρόκληση του Gabriel... Λοιπόν, ίσως να το πούμε η πρόκληση του Gabriel για την εβδομάδα. Ίσως όχι τόσο σύσταση. Ίσως χρειάζεται

Gabriel: Ναι. Είναι πιο πολύ κάτι για να δοκιμάσεις.

Jonathan: Στέλνεις, στέλνεις μια πρόκληση. Αυτό θα μπορούσε να έχει, θα μπορούσε να έχει πλάκα, αλλά ωραία. Λοιπόν, μια εβδομάδα χωρίς καθόλου προϊόντα κρέατος. Δες πώς θα πάει και φτιάξε έναν server κοινόχρηστης μνήμης. Τι θα έλεγες; Υπηρεσία, κοινόχρηστη

Gabriel: Ναι, θα μπορούσες να το πεις in-memory key-value

Jonathan: Εντάξει.

Gabriel: Δηλαδή πολλαπλές υπηρεσίες, μία βάση δεδομένων, ή μία υπηρεσία. Ναι.

Jonathan: Ωραία. Αυτό είναι

Gabriel: Γιατί σου μαθαίνει πολλά για το πώς δουλεύουν οι βάσεις δεδομένων. Ναι. Από κάτω. Ειδικά τις μοντέρνες που είναι μοιρασμένες, ναι, δεν είμαι σίγουρος. Ναι. Cassandra, Scylla, δεν είμαι σίγουρος αν έχεις τη Scylla. Είναι κάπως σαν την Cassandra, αλλά σε C++ και τώρα περνάνε στο πρωτόκολλο Raft. Ή... Είναι μια βάση δεδομένων key-value. Μια μοιρασμένη είναι... όχι, δεν είναι βάση δεδομένων. Είναι διαχείριση υπηρεσιών. Ναι, το Be Degraff από την Degraf Beja. Οπότε αυτό, νομίζω, χρησιμοποιεί κι αυτό Raft από κάτω για να κατανείμει τα δεδομένα. Δεν μπορώ να το πω με σιγουριά, θα έπρεπε να το ξανακοιτάξω. Αλλά υπάρχουν πολλές βάσεις δεδομένων που το χρησιμοποιούν. Κατανεμημένο σύστημα. Λοιπόν, το κατανεμημένο σύστημα είναι βασικά μια μεγάλη πρόκληση, θα έλεγα, των σύγχρονων καιρών μας. Είμαστε στη διαδικασία να το λύσουμε, αλλά υπάρχουν ακόμα πολλές προκλήσεις να ξεπεράσουμε, και ναι, είναι πάντα καλό να μπορείς να σκέφτεσαι με αυτόν τον τρόπο, γιατί αν μπορείς, ανοίγει πολλές δυνατότητες.

Jonathan: Χμ.

Gabriel: Αν χρειάζεσαι κάτι. Στην τελευταία μου εταιρεία πήγαινα βασικά προς αυτή την κατεύθυνση, να έχω κοινόχρηστη μνήμη ανάμεσα σε πολλαπλές υπηρεσίες ταυτόχρονα. Ναι.

Jonathan: Ίσως, ίσως πρέπει να το κανονίσουμε ως master class. Θα δώσουμε στον κόσμο δύο εβδομάδες να το δοκιμάσει. Και μετά, Gabriel,

Gabriel: Αυτό είναι, αυτό είναι το master

Jonathan: Ναι,

Gabriel: ...όταν έχεις τελειώσει με το Exercism και έχεις κάνει όλες τις ασκήσεις,

Jonathan: Αυτό είναι το μεγάλο. Το μεγάλο. Τα δένει όλα, τα δένει όλα μαζί. Gabriel, ευχαριστώ πολύ για τον χρόνο σου. Ήταν πραγματικά απόλαυση να τα λέμε απόψε. Αν θέλεις να μείνεις μετά το, αφού τελειώσουμε την ηχογράφηση, γρήγορα, αλλά ήθελα απλώς να πω ένα τεράστιο ευχαριστώ και εκτιμώ πραγματικά όλα όσα βάζεις στο Exercism, και όχι μόνο για μας, αλλά και όλη την καθοδήγηση που κάνεις πιο πέρα και το ότι βοηθάς τον κόσμο να γράφει καλύτερο κώδικα. Είμαι σίγουρος ότι εκτιμάται πάρα πολύ παντού. Οπότε ευχαριστώ για τον χρόνο σου. Και. Επικοινώνησε με τον Gabriel. Αν είσαι στο Exercism, στείλε του ένα μήνυμα, ζήτα λίγη καθοδήγηση και είμαι σίγουρος ότι θα περάσεις καλά με τον Gabriel. Ωραία.

Gabriel: Ευχαριστώ πολύ.

Jonathan: ...τελειώσουμε την ηχογράφηση. Ναι, όχι, ευχαριστώ, ευχαριστώ που ήρθες και θα σε δούμε σύντομα σε κάποια πλατφόρμα, κάπου

Gabriel: Ευχαριστώ.

Περισσότερες ιστορίες από την κοινότητά μας

Άκουσε, μάθε και εμπνεύσου από τα μέλη της κοινότητάς μας.