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

Ξεκίνα το ταξίδι σου με Python!

Πού και πού συναντάμε κάποιον που βουτάει στα βαθιά μαθαίνοντας προγραμματισμό! Ο Carl, γνωστός και ως "Meatball" στο διαδίκτυο, άρχισε να μαθαίνει προγραμματισμό χρησιμοποιώντας το track Python στο Exercism...είναι μεγάλο κατόρθωμα, αλλά σε ποιον δεν αρέσει μια πρόκληση!

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

Jonathan: Λοιπόν, γεια σου και καλώς όρισες στο podcast του Exercism. Με λένε Jonathan. Είναι προνόμιο να είμαι ξανά εδώ και να μοιράζομαι ζωές και ιστορίες μαζί σου, όπου κι αν βρίσκεσαι. Σήμερα λοιπόν έχουμε έναν καλεσμένο που τον λένε Karl. Και θα μπω κατευθείαν στο θέμα και θα ζητήσω από τον Karl να συστηθεί λίγο. Λοιπόν Karl, πες μου, από πού είσαι; Με τι ασχολείσαι αυτόν τον καιρό; Και πώς έπεσες πάνω στο Exercism; Carl: Λοιπόν, μένω στην πόλη Γκέτεμποργκ της Σουηδίας και αυτόν τον καιρό είμαι φοιτητής πλήρους φοίτησης. Αλλά όταν μπήκα στην τεχνολογία και τον προγραμματισμό, χρησιμοποίησα το Exercism. Ξεκίνησα με το track του Python και νομίζω ότι το track του Python είναι το καλύτερο track για τους περισσότερους αρχάριους, γιατί η σύνταξη της Python είναι αρκετά απλή και, κατά τη γνώμη μου, αρκετά φυσική για τον άνθρωπο. Και όσον αφορά τους τύπους σε μια γλώσσα προγραμματισμού, η Python είναι αρκετά ευγενική μαζί σου. Δεν έχει και τόσους πολλούς τύπους, τύπους δεδομένων, αλλά... Ναι. Έτσι ξεκίνησα κάνοντας τα concept exercises και ακολουθώντας το syllabus. Και το έκανα αυτό, ας πούμε, κάθε δεύτερο Σαββατοκύριακο, κάνοντας ένα ή δύο exercises. Και ύστερα από λίγο καιρό, όταν πραγματικά... γιατί στην αρχή... έκανα πολλά λάθη, που τα βλέπω τώρα εκ των υστέρων. Τώρα που μεγάλωσα λίγο ή μάλλον... Τώρα που προγραμματίζω περισσότερο καιρό, μπορώ να αναγνωρίζω αυτά τα λάθη. Δεν χρειάζεται, δηλαδή, ο κώδικάς σου να είναι τέλειος στην αρχή. Και αυτό που μου άρεσε ήταν ότι όταν πραγματικά... όταν είχα κάνει πολλά exercises στο track του Python, πέρασα στο track της Ruby. Εντάξει. Ο λόγος που η Ruby είναι μια εξαιρετική γλώσσα για να περάσεις από την Python είναι ότι υπάρχουν πολλές ομοιότητες. Και... η σύνταξη της Ruby είναι αρκετά παρόμοια, αλλά υπάρχουν και κάποιες διαφορές. Για παράδειγμα, η Ruby είναι πολύ πιο OOP, αντικειμενοστρεφής. Οπότε νομίζω ότι για έναν αρχάριο θα μπορούσε να είναι ένα πολύ ωραίο ταξίδι να ξεκινήσεις με Python και μετά να περάσεις στη Ruby. Και τα λέμε την επόμενη φορά. Jonathan: Ξεκίνησες με την Python. Θέλω να πω, συχνά όταν οι άνθρωποι έρχονται στο Exercism έχουν κάποια εμπειρία από ανάπτυξη λογισμικού. Αν έχεις κάποιες προηγούμενες γνώσεις και εμπειρία από ανάπτυξη και προγραμματισμό, αυτό για το οποίο χρησιμοποιούν συχνά το Exercism είναι για να αναβαθμίσουν τις δεξιότητές τους σε μια συγκεκριμένη γλώσσα. Αλλά έχω δίκιο να σκεφτώ ότι ήρθες χωρίς καμία εμπειρία σε προγραμματισμό και ξεκίνησες με το Exercism; Carl: Είχα κάνει λίγο Scratch, δηλαδή οπτικό προγραμματισμό, παλιότερα, αλλά ποτέ πραγματικό κώδικα. Είναι δύσκολο να ξεκινάς από το μηδέν. Και νομίζω ότι αυτό είναι κάτι που το μοιράζονται όλοι οι προγραμματιστές. Η αρχή είναι σαν να ανεβαίνεις έναν λόφο, και μόλις τον ανεβείς, όλα γίνονται πιο εύκολα. Όπως εσύ. Jonathan: Νόμιζα ότι θα έλεγες πως ανεβαίνεις τον λόφο και μετά ο λόφος μεγαλώνει κι άλλο, και ανεβαίνεις λίγο ακόμα και μετά γίνεται όλο και πιο μεγάλος. Έχεις νιώσει κάτι τέτοιο; Υπήρξε μια στιγμή που τα πράγματα έβγαζαν νόημα. Υπήρξε κάποια στιγμή που είπες, εντάξει, ναι, το κατάλαβα; Carl: Θέλω να πω, το θέμα είναι ότι παίρνει πολύ χρόνο για να καταλάβεις πραγματικά κάτι σε βάθος, και αυτό που κάνουν συχνά οι περισσότεροι στην αρχή είναι... να χρησιμοποιούν πολύ τους while βρόχους, γιατί μπορείς να τους ελέγχεις πολύ περισσότερο από τους for βρόχους, επειδή στον for βρόχο πρέπει να του πεις από πριν πόσο μεγάλος θα είναι ο βρόχος. Και νομίζω... Όταν έμαθα πραγματικά πώς να χρησιμοποιώ σωστά έναν for βρόχο και να μην καταχρώμαι τους while βρόχους, νομίζω ότι τότε μου "κλικάρε" ο προγραμματισμός, ή μάλλον οι βρόχοι, κατάλαβα πολύ καλύτερα πώς δουλεύουν οι βρόχοι. Jonathan: Εντάξει, οπότε αυτή ήταν μια στιγμή που ένιωσες, εντάξει, αυτή η έννοια μου βγάζει νόημα. Και μετά, η κατανόηση των βρόχων, μεταφράστηκε και σε άλλες έννοιες που άρχισαν να βγάζουν όλο και περισσότερο νόημα; Θα μιλήσω από τη δική μου εμπειρία εδώ. Μαθαίνω κι εγώ Go, στο track του Go. Και οι βρόχοι δεν έβγαζαν κανένα νόημα μέχρι που αφιέρωσα, ας πούμε, περίπου τρεις μέρες περνώντας από τα exercises και την τεκμηρίωση και συνθέτοντάς τα, δηλαδή αποσυναρμολογώντας τα κομμάτι-κομμάτι. Και η εμπειρία του να περνάς από τους βρόχους και να προσπαθείς να τους καταλάβεις είχε πραγματικά μεγάλο αντίκτυπο στην κατανόησή μου του κώδικα γενικά, και στο πώς δουλεύουν οι συναρτήσεις και όλα αυτά. Ήταν παρόμοια η εμπειρία για σένα, θα έλεγες; Carl: Στην Python, συχνά λύνεις διάφορα πράγματα, συχνά κάνεις επανάληψη πάνω σε πράγματα. Αυτό είναι λίγο-πολύ το μόνο που κάνεις στην Python. Στην Python, κάνεις επανάληψη πάνω σε πράγματα για να λύσεις προβλήματα. Δηλαδή οι βρόχοι είναι πολύ σημαντικό να τους καταλάβεις πλήρως. Όταν καταλάβεις πραγματικά σε βάθος τους βρόχους στην Python, μπορείς να κάνεις πάρα πολλά, ακριβώς επειδή τα πάντα βασίζονται στην επανάληψη πάνω σε αντικείμενα. Jonathan: Ωραία. Λοιπόν, αυτή την περίοδο σπουδάζεις, ανέφερες σύντομα πριν από αυτή την ηχογράφηση, μαθηματικά, φυσική. Ποια θέματα σπουδάζεις αυτόν τον καιρό; Ποια θέματα ή ποια μαθήματα παρακολουθείς αυτή την περίοδο; Carl: Σπουδάζω προγραμματισμό, μαθηματικά και φυσική. Jonathan: Εντάξει, πώς σου φαίνονται όλα αυτά; Carl: Κοίτα, το θέμα είναι ότι έκανα Exercism ως προετοιμασία για αυτά τα μαθήματα προγραμματισμού. Και συνειδητοποίησα ότι τώρα ξέρω πολλά περισσότερα από αυτά που καλύπτουν τα μαθήματα. Jonathan: Τέλεια. Carl: Δεν μαθαίνω και τόσα πολλά από αυτά, γιατί αντ' αυτού μαθαίνω για τον μαρξισμό. Jonathan: Δηλαδή μας λες, Karl, ότι στην πραγματικότητα ο κόσμος θα έπρεπε να κάνει Exercism αντί για πανεπιστημιακό πτυχίο; Carl: Θέλω να πω, σε μια σχολή πληροφορικής, φαντάζομαι, μαθαίνεις λίγο περισσότερα για το πώς δουλεύει ένας υπολογιστής και για bits και τέτοια. Ενώ το Exercism σου μαθαίνει μόνο προγραμματισμό και επίλυση προβλημάτων και όλα τα λογικά κομμάτια του. Νομίζω ότι αξίζει ακόμα να πας στο πανεπιστήμιο. Jonathan: Σε πείραζα λίγο εκεί, γιατί νομίζω ότι θα προσβάλλαμε πολύ κόσμο με πανεπιστημιακά πτυχία αν του έλεγες ότι δεν ξέρει τίποτα. Οπότε θα το αποφύγουμε αυτό. Και Karl, πες μου, θα σου κάνω μερικές ακόμα ερωτήσεις τώρα, γύρω από το πώς μεγάλωσες. Πώς ήταν... Προσπαθώ να το διατυπώσω σωστά. Ως παιδί, σου άρεσε να λύνεις προβλήματα; Ενδιαφερόσουν για Lego ή τέτοια πράγματα; Και ο λόγος που ρωτάω είναι γιατί συχνά, όταν οι άνθρωποι ασχολούνται με τον προγραμματισμό, υπάρχει μια αρκετά φυσική απόλαυση στην επίλυση προβλημάτων. Οπότε, μεγαλώνοντας, είχες πολλά χόμπι ή πράγματα που ήταν πιο τεχνικά; Πες μου λίγο γι' αυτό. Carl: Θέλω να πω, μου άρεσε το Lego. Δεν... Θέλω να πω, ήμουν... Ήμουν καλός στα μαθηματικά όταν ήμουν μικρότερος. Είναι επίλυση προβλημάτων, δηλαδή προσπαθείς να λύσεις διάφορα μαθηματικά προβλήματα. Νομίζω ότι αυτό που με έμπασε πραγματικά στον προγραμματισμό είναι απλώς... Το ενδιαφέρον μου για την τεχνολογία γενικά, μου αρέσουν πολύ οι υπολογιστές. Και μου αρέσει πολύ... Ευχαριστώ. Κάθε φορά που κάποιος έχει ένα πρόβλημα με τον υπολογιστή του, λέει, α, μπορείς να με βοηθήσεις; Που μπορεί να είναι λίγο εκνευριστικό καμιά φορά, αλλά στην πραγματικότητα είναι συχνά πολύ διασκεδαστικό. Έτσι λοιπόν ενδιαφέρθηκα πολύ για τους υπολογιστές και αυτό με οδήγησε στον προγραμματισμό, που είναι ενδιαφέρον. Jonathan: Εντάξει, λοιπόν, από ό,τι καταλαβαίνω, έχεις κάνει πλέον τέσσερα με πέντε tracks στο Exercism, ή μάλλον έχεις μάθει, έχεις μάθει πραγματικά τέσσερις με πέντε γλώσσες χρησιμοποιώντας το Exercism, σωστά; Carl: Σωστά; Ναι, έχω κάνει... Έχω ξεκινήσει γύρω στα έξι tracks. Εντάξει. Αλλά μόνο σε τέσσερα τα πάω αρκετά καλά. Jonathan: Εντάξει, και από αυτά, ποια είναι; Θα είναι Python, Ruby. Carl: Python, Ruby, JavaScript και TypeScript, αλλά τα πάω αρκετά καλά και με την Elixir. Jonathan: Εντάξει, και από όλες αυτές τις γλώσσες, ποια απόλαυσες περισσότερο όσον αφορά τη μάθηση; Carl: Μου αρέσει πολύ η Elixir. Μου αρέσει πολύ το πώς γράφεις κώδικα σε αυτή τη γλώσσα. Νομίζω είναι πολύ... μια πολύ διασκεδαστική γλώσσα για να γράφεις κώδικα, αλλά είναι πολύ διαφορετική από αυτό που έχω συνηθίσει σε άλλες γλώσσες. Είναι σαν να ξεκινάς από την αρχή σε κάποιο σημείο. Ναι. Αλλά νομίζω ότι αν κάποιος θέλει πραγματικά να μάθει μια πολύ, πολύ ισχυρή γλώσσα, η JavaScript είναι εκεί. Είναι, κατά τη γνώμη μου, μία από τις πιο ισχυρές γλώσσες που μπορείς να ξέρεις. Jonathan: Εντάξει, λοιπόν, η JavaScript θα ήταν, διόρθωσέ με αν κάνω λάθος, μια πιο διερμηνευόμενη γλώσσα. Θα ήταν δίκαιο αυτό; Και η Elixir είναι μάλλον πιο συναρτησιακή. Έτσι δεν είναι; Carl: Ναι. Jonathan: Εντάξει, οπότε αυτές είναι αρκετά διαφορετικές μεταξύ τους. Μου κάνει εντύπωση που φαίνεται να σου αρέσει όλο το φάσμα αυτών των δύο γλωσσών. Τι είναι αυτό στην Elixir που το βρίσκεις διασκεδαστικό ή απολαυστικό; Μπορείς να το προσδιορίσεις; Carl: Θέλω να πω, είναι ο συναρτησιακός προγραμματισμός. Δηλαδή, έχεις αυτές... Έχεις αυτές τις συναρτήσεις και πρέπει να τις ενώσεις όλες μαζί. Και με όλες αυτές τις συναρτήσεις πρέπει να λύσεις το πρόβλημα. Και αυτό σημαίνει για μένα, τουλάχιστον, ότι βασίζομαι πολύ... Η τεκμηρίωση της Elixir είναι πολύ σημαντική για να κάνεις πραγματικά κάτι. Και η τεκμηρίωση της Elixir είναι εξαιρετική, κατά τη γνώμη μου. Οπότε ψάχνεις για τις σωστές συναρτήσεις, κάτι που νομίζω ότι είναι πολύ διασκεδαστικό. Jonathan: Δηλαδή είναι σχεδόν σαν να συνθέτεις ένα παζλ, θα έλεγε κανείς, όπου βάζεις όλα τα κομμάτια μαζί για να δεις το πρόβλημα. Carl: Βάζεις όλα τα κομμάτια μαζί για να δεις το παζλ ολοκληρωμένο. Και όπως είπα, μου αρέσει πολύ και το πώς γράφεις τη γλώσσα. Οπότε είναι ένα πολύ ωραίο παζλ. Jonathan: Ωραία. Και πού βρίσκεσαι σε αυτό το track; Έχεις τελειώσει τα practice exercises ή είσαι ακόμα στα concept exercises; Carl: Υπάρχουν πολλά concept exercises για αυτή τη γλώσσα. Νομίζω γύρω στα 20 ή ίσως και παραπάνω. Νομίζω ότι στα concept exercises έχω κάνει... μάλλον το 90% ή κάτι τέτοιο, οπότε είμαι σχεδόν έτοιμος. Jonathan: Τέλεια, πολύ ωραία. Πραγματικά πολύ ωραία. Λοιπόν, Karl, θέλω να μάθω λίγα περισσότερα για τη ζωή σου, πέρα από τον προγραμματισμό και την ανάπτυξη λογισμικού. Ποια είναι μερικά από τα πράγματα που σου αρέσει να κάνεις στον ελεύθερό σου χρόνο, ή χόμπι; Υπάρχει κάτι που θα ήθελες πραγματικά, αν μπορούσες να περνάς όλον σου τον χρόνο κάνοντάς το εκτός προγραμματισμού, ποιο θα ήταν αυτό; Carl: Λοιπόν, αν δεν μου επιτρέπεται να πω προγραμματισμό, μου αρέσει να παίζω βιντεοπαιχνίδια στον ελεύθερό μου χρόνο και μου αρέσει και το ποδήλατο. Έχει επίσης πλάκα. Jonathan: Ποδήλατο βουνού ή δρόμου; Carl: Δρόμου. Jonathan: Δηλαδή κάνεις ποδήλατο; Πες μου λίγο, γιατί είσαι στη Σουηδία, σωστά; Ναι. Και εκεί που μένεις, είναι επίπεδα; Έχει λόφους; Έχετε ωραία θάλασσα; Γιατί η εντύπωσή μου για τη Σουηδία είναι ότι έχετε θάλασσες. Carl: Ότι έχετε θάλασσα. Ναι, εκεί που μένω είναι αρκετά επίπεδα. Αλλά αν πας βόρεια, έχει πιο πολλούς λόφους. Jonathan: Χιονίζει αυτή την περίοδο στη Σουηδία; Νιώθω ότι τώρα αρχίζει να κρυώνει. Carl: Χιόνιζε την περασμένη εβδομάδα νομίζω, αλλά τώρα πολύ χιόνι. Jonathan: Εντάξει, και κάνεις ποδήλατο στο χιόνι; Carl: Ναι. Jonathan: Το κάνεις, δηλαδή. Έχουμε άλλον έναν... μπορεί να ξέρεις τον Brian. Ο Brian, είναι ένας από τους μέντορες της Elixir. Ο Brian Underwood, μένει κι αυτός στη Σουηδία, νομίζω στη Στοκχόλμη, και πηγαίνει για τρέξιμο στη μέση του χειμώνα, τρέχοντας μέσα στο σκοτάδι της νύχτας στη Σουηδία. Οπότε το βρήκα αρκετά, το βρήκα αρκετά, αρκετά ωραίο. Λοιπόν, κάνεις ποδήλατο συχνά, μία φορά την εβδομάδα, δύο φορές την εβδομάδα; Ή είναι κάτι που το κάνεις τακτικά; Ή απλώς... Carl: Εγώ, εγώ, εγώ, όταν... ταξιδεύω, πάω... με ποδήλατο μέχρι τον σταθμό των λεωφορείων και μετά παίρνω το λεωφορείο από τον σταθμό. Jonathan: Εντάξει, και μετά βρίσκεις ένα ωραίο μέρος και... Δηλαδή ταξιδεύεις με λεωφορείο. Carl: Πηγαίνω με ποδήλατο μέχρι τον σταθμό των λεωφορείων και μετά ταξιδεύω με λεωφορείο. Jonathan: Κατάλαβα. Εντάξει, ωραία. Και Karl, πόσο μακριά είναι το πανεπιστήμιο από εκεί που μένεις; Μένεις στο σπίτι σου ή νοικιάζεις; Πώς τα έχεις οργανώσει; Carl: Πώς τα έχεις οργανώσει; Μένω στο σπίτι. Είναι 30 χιλιόμετρα μακριά. Είναι... Παίρνει περίπου... δεν ξέρω. Α, κάτσε. Ναι, 30 χιλιόμετρα, μάλλον σωστά. Παίρνει περίπου 40 λεπτά ή κάτι τέτοιο. Jonathan: Εντάξει, δεν είναι και τόσο άσχημα, αλλά και πάλι είναι αρκετά μεγάλη διαδρομή. Λοιπόν, πόσα χρόνια σπουδών σου απομένουν ακόμα πριν μπεις στον πραγματικό κόσμο, ας πούμε; Σου μένουν τέσσερα χρόνια σπουδών. Είσαι στο πρώτο έτος αυτή την περίοδο; Carl: Ναι. Jonathan: Εντάξει, ουάου. Δηλαδή έχεις τελειώσει το πρώτο έτος και είναι τετραετείς σπουδές. Εντάξει. Και... έχεις καμιά ιδέα για το ποιο είναι το όνειρό σου για το μέλλον ή τι θα ήθελες να κάνεις ως καριέρα, ή σκέψεις πάνω σε αυτό; Carl: Θέλω να πω, πάντα ήθελα να δουλέψω με το διάστημα, γιατί νομίζω ότι είναι ωραίο. Όχι να είμαι σε κάτι σαν αστροφυσική, αλλά να κάνω ίσως λίγο προγραμματισμό γύρω από διαστημικά πράγματα. Και υπάρχει ο Ευρωπαϊκός Οργανισμός Διαστήματος, που θα ήταν κάτι, αλλά... Αν όχι αυτό, νομίζω απλώς... Δεν ξέρω, μια χαλαρή δουλειά στο backend θα ήταν ωραία. Jonathan: Απλώς μια χαλαρή δουλειά στο back-end, μου αρέσει πολύ ο τρόπος που το είπες. Ακούγεται τόσο απλό και εύκολο στα αυτιά μου. Και νομίζεις ότι θα ήθελες ποτέ να μετακομίσεις κάπου αλλού εκτός από τη Σουηδία; Ή σου αρέσει η Σουηδία; Καμιά σκέψη γύρω από αυτό; Θέλω να πω, άκου, σε ρωτάω πράγματα που ίσως δεν έχεις καν σκεφτεί ακόμα, γιατί έχεις ακόμα μερικά χρόνια μέχρι να πρέπει να κάνεις αυτές τις επιλογές. Αλλά το διάστημα ακούγεται πραγματικά συναρπαστικό. Πώς θα το κάνεις αυτό; Πώς θα αρχίσεις να ασχολείσαι με αυτό; Carl: Δεν έχω ιδέα, βασικά. Δεν έχω σκεφτεί ποτέ πραγματικά το πώς, αλλά... Θέλω να πω, θα δούμε. Είναι περισσότερο ένα όνειρο παρά ένα πραγματικό σχέδιο. Αλλά για να απαντήσω στην προηγούμενη ερώτησή σου, έχω σκεφτεί όντως μήπως ζήσω στον Καναδά ή κάτι τέτοιο, αλλά υποθέτω ότι θα ζήσω ακόμα στο βόρειο μέρος του κόσμου. Jonathan: Εντάξει, δηλαδή κρύο, πάγος και χιόνι. Είσαι εντάξει με αυτό; Ναι. Karl, έχεις αδέρφια; Carl: Έχω έναν μικρότερο αδερφό. Jonathan: Εντάξει, δηλαδή είστε δύο. Και του αρέσει ο προγραμματισμός; Του μαθαίνεις αυτά που μαθαίνεις και αυτά που ξέρεις; Carl: Α, δεν του αρέσει ο προγραμματισμός, βασικά. Δεν ξέρω. Jonathan: Αλήθεια; Δηλαδή δεν έχετε κοινά. Αλλά παίζεις παιχνίδια μαζί του κι εσύ; Carl: Παίζω παιχνίδια μαζί του καμιά φορά, ναι. Jonathan: Είναι πολύ μικρότερος, ή φαντάζομαι πρέπει να πηγαίνει ακόμα σχολείο; Carl: Είναι περίπου πέντε χρόνια μικρότερός μου. Jonathan: Εντάξει, είναι αρκετά μεγάλη διαφορά ηλικίας. Ωραία, τέλεια. Λοιπόν, πίσω στο Exercism και τη συμμετοχή σου, τώρα συντηρείς το track του Python, αν δεν κάνω λάθος; Ναι, ή μάλλον συνεισφέρεις. Συνεισφέρεις, εντάξει, ωραία. Κάποια μέρα θα συντηρείς. Αλλά πώς σου φαίνεται; Ποια είναι μερικά από τα πράγματα που έχεις μάθει μέσα από αυτή την εμπειρία; Carl: Θέλω να πω, οι άνθρωποι στο track του Python είναι πραγματικά εξαιρετικοί και είναι πολύ ωραίο να δουλεύεις μαζί τους... Γιατί αυτή την περίοδο έχω κάνει πολλή τεκμηρίωση και μαθαίνεις πραγματικά πώς να γράφεις τεκμηρίωση, και επίσης συχνά πρέπει να κάνεις πολλή έρευνα. Ναι, οπότε έχεις πολλή τεκμηρίωση και μαθαίνεις πολλά, γιατί πρέπει να διαβάσεις όλη την τεκμηρίωση πολλών άλλων ανθρώπων. Έτσι εμβαθύνεις πολύ στις έννοιες. Jonathan: Δηλαδή το απόλαυσες αυτό συγκεκριμένα ως τομέα όσον αφορά τη συνεισφορά; Carl: Ναι, και θέλω να πω, μαθαίνω πολλά διαβάζοντας αυτές τις τεκμηριώσεις. Jonathan: Όχι, είναι πολύ ωραίο. Λοιπόν, όσον αφορά τη συνεισφορά σου στην Python αυτή την περίοδο, σκέφτεσαι ότι θα ήθελες να αρχίσεις να συνεισφέρεις στην Elixir και στη Ruby; Πώς το βλέπεις αυτό; Carl: Θέλω να πω, ναι, θα μπορούσα να δω τον εαυτό μου να συνεισφέρει στο track της Ruby, αλλά στην Elixir, δεν νομίζω. Έχω αυτό το μακροπρόθεσμο σχέδιο, να συνεισφέρω στο track του TypeScript, αλλά θα δούμε. Νομίζω ότι θα μείνω στο track του Python για τους επόμενους έξι μήνες, βασικά. Jonathan: Εντάξει, ωραία. Λοιπόν πες μου, μπορείς να μου εξηγήσεις λίγο το TypeScript; Δηλαδή, δώσε μου μια αίσθηση του τι είναι. Ο λόγος που ρωτάω είναι ότι έχω ακούσει γι' αυτό. Αλλά έχω ακούσει ότι κατά κάποιον τρόπο... θωρακίζει τη JavaScript, αλλά και πάλι, πες μου αν κάνω τελείως λάθος. Βοηθάει λίγο στον έλεγχο ασφάλειας της JavaScript, αλλά μπορεί να κάνω λάθος. Τι είναι; Carl: Τι είναι; Θέλω να πω, αυτή είναι μια αρκετά καλή περιγραφή. Είχα ένα μάθημα front-end και ο καθηγητής χρησιμοποιούσε JavaScript και έκανε λίγη βασική JavaScript σε HTML. Επειδή έκανα copy-paste αυτόν τον κώδικα στο TypeScript. Και το TypeScript ήταν σαν, α, όχι, δεν θα έπρεπε να το κάνεις αυτό. Δεν είναι ασφαλές. Οπότε έχει να κάνει πολύ με αυτό, δηλαδή με το να κάνεις τον κώδικά σου ασφαλή. Δηλαδή να μην κρασάρει και τέτοια. Εισάγει τύπους, ώστε να μην έχεις συγκρούσεις τύπων. Και ναι, γενικά σου λέει να κάνεις ασφαλή πράγματα και όχι μη ασφαλή κώδικα. Ναι, είναι διαφορετική γλώσσα, αλλά μοιάζει πολύ με τη JavaScript. Συχνά μπορείς να σκέφτεσαι το TypeScript σαν JavaScript, αλλά του φοράς πανοπλία. Δηλαδή είναι σαν προστατευμένο. Jonathan: Εντάξει, δηλαδή είναι δική του γλώσσα. Νομίζω ότι στο μυαλό μου είχα την εντύπωση ότι ήταν σχεδόν σαν ένα plugin της JavaScript, αλλά λες ότι στην πραγματικότητα είναι απολύτως δική του γλώσσα. Carl: Νομίζω πως ναι. Θέλω να πω, μοιάζουν πολύ, οπότε ίσως είναι το ίδιο, σαν να είναι ένα plugin, αλλά μου αρέσει να το σκέφτομαι ως δική του γλώσσα, γιατί έχει κάποιες βασικές διαφορές. Jonathan: Μάλλον μόλις προσέβαλα κάθε φαν του TypeScript εκεί έξω λέγοντας ότι είναι plugin για τη JavaScript. Είμαι σίγουρος ότι αυτό θα φέρει μερικές ενδιαφέρουσες απόψεις. Αλλά για σένα, το κομμάτι της ασφάλειας του TypeScript είναι αυτό που το κάνει ένα χαρακτηριστικό που αξίζει να εξερευνήσεις περισσότερο. Σωστά; Carl: Θέλω να πω... Αυτό που με έμπασε στο TypeScript ήταν ότι η βιβλιοθήκη React που χρησιμοποιούσα δεν υποστήριζε κανονική JavaScript και υποστήριζε μόνο TypeScript. Συνήθισα το TypeScript και νομίζω ότι είναι πραγματικά ωραίο. Κάνει επίσης τον κώδικα πιο ξεκάθαρο όταν χρησιμοποιείς τύπους, γιατί μπορείς να δεις, εντάξει, αυτό δέχεται έναν αριθμό και επιστρέφει μια συμβολοσειρά. Γίνεται πιο εύκολο στην ανάγνωση. Jonathan: Εντάξει, ανέφερες το React Native εκεί. Προτιμάς το front-end development ή το back-end; Καταλαβαίνω ότι προτιμάς το back-end από ό,τι καταλαβαίνω. Αλλά ασχολείσαι και λίγο με το front-end; Carl: Έχω ασχοληθεί λίγο με το frontend, αλλά είμαι πολύ κακός στην CSS. Οπότε συνήθως προσπαθώ να βρω κάποια καλή βιβλιοθήκη UI και να χρησιμοποιήσω αυτή. Jonathan: Όταν λες κακός στην CSS, τι εννοείς; Δηλαδή ότι απλώς δεν την καταλαβαίνεις ή ότι είναι μπερδεμένη ή ότι έχει πάρα πολλά... Δηλαδή τι είναι αυτό με το οποίο δυσκολεύεσαι; Carl: Με το οποίο δυσκολεύομαι. Είναι σαν, είναι σαν να υπάρχουν τόσα πολλά πράγματα που μπορείς να αντιστοιχίσεις σε ένα αντικείμενο, τόσο πολλά. Α, για να αφαιρέσεις αυτό το πράγμα, δηλαδή όταν δημιουργείς έναν σύνδεσμο σε CSS ή σε HTML, σου εμφανίζεται μια γραμμή κάτω από το κείμενο. Και για να την αφαιρέσεις, πρέπει να προσθέσεις text decoration και μετά να γράψεις none. Τότε την αφαιρεί πραγματικά. Και είναι τόσα πολλά πράγματα που πρέπει να θυμάσαι. Και το πιο εκνευριστικό στην CSS είναι ότι αν κάνεις μια αλλαγή στον κώδικα ή στην CSS, συχνά χαλάει κάτι άλλο. Οπότε πρέπει να πεις, εντάξει, έλυσα αυτό το πρόβλημα. Τώρα προέκυψε αυτό το πρόβλημα και πρέπει να λύσω κι εκείνο, και πάει λέγοντας. Και συνεχίζει έτσι. Jonathan: Δηλαδή απλώς μεταθέτεις το πρόβλημα κάπου αλλού. Αυτό πρέπει να είναι τόσο εκνευριστικό. Υποθέτω ότι η μόνη μου εμπειρία με την CSS ήταν μαθαίνοντας, προσπαθώντας κι εγώ να μάθω React. Και έχεις τόσες πολλές μεταβλητές, όπως λες, τόσες πολλές επιλογές. Δηλαδή το επεκτείνεις ή το περιορίζεις; Και αν το κάνεις αυτό, τότε αλλάζει αυτό το κουμπί. Και πριν το καταλάβεις, όλα σου τα components κάνουν διαφορετικά πράγματα αν δεν προσέχεις. Ο Jeremy στο Exercism είναι πραγματικά καλός στην CSS, αλλά νομίζω ότι απλώς ξέρει τόσα πολλά από όλες τις διαφορετικές πτυχές της. Οπότε για σένα, το front end δεν είναι κάτι που απολαμβάνεις όσο περισσότερο το κομμάτι του back end. Carl: Δεν έχω κανένα πρόβλημα με τα προγραμματιστικά κομμάτια του front end, αλλά η ίδια η εμφάνιση δεν μου αρέσει και πολύ. Το back end όμως, τουλάχιστον για μένα, είναι περισσότερο του τύπου αν δουλεύει, μην το χαλάσεις. Jonathan: Ναι, μην το αγγίξεις, άσ' το όπως είναι. Το βρίσκω ενδιαφέρον πώς οι άνθρωποι τείνουν να προτιμούν... το ένα ή το άλλο. Ξέρεις τι είναι αυτό που σε τραβάει στο κομμάτι του backend; Λες ότι σου αρέσει το γεγονός ότι απλώς δουλεύει. Η λογική σκέψη και η επεξεργασία των πραγμάτων στο backend; Είναι αυτή η πτυχή που σου αρέσει περισσότερο; Carl: Ναι, μου αρέσει γιατί είναι κυρίως λογική και στήσιμο διαφορετικών δομών βάσεων δεδομένων. Αυτό είναι κυρίως, ακόμα κι αν δεν είμαι καλός με τις βάσεις δεδομένων. Jonathan: Ωραία, τέλεια. Λοιπόν, Karl, έχω μερικές ακόμα ερωτήσεις για σένα. Χάρηκα πολύ που κατάλαβα λίγο από πού έρχεσαι και τι σου αρέσει να κάνεις. Μπορείς να ξεχωρίσεις μερικές βασικές συμβουλές ή πράγματα που θα πρότεινες σε κάποιον που ξεκινάει να μάθει προγραμματισμό; Και μπορείς να το κάνεις αν έχουν, ας πούμε, πιο επιστημονικό υπόβαθρο, ίσως κάποιες συμβουλές για αυτούς τους ανθρώπους που το απολαμβάνουν αυτό. Αλλά αν το έβλεπες από μια εντελώς διαφορετική οπτική, τι θα έλεγες ότι είναι ένα... ένα καλό πράγμα να κάνεις σταθερά; Carl: Σταθερά; Θέλω να πω, νομίζω ότι θα έπρεπε... Να ξεκινήσεις με μια εύκολη γλώσσα. Μην ξεκινήσεις με Rust, C++ ή C. Αλλά μετά, βασικά... Όπως, όταν... Ξέρω ότι ο Jonathan το ανέφερε λίγο αυτό, αλλά... Όταν βλέπεις ένα πρόβλημα, διάβασέ το, κάνε ένα διάλειμμα, σκέψου το, πώς θα το λύσεις, και μετά γύρνα και λύσε το πραγματικά, γιατί... Είναι καλό να αφήνεις το μυαλό σου να επεξεργαστεί το πώς θα λύσεις το πρόβλημα. Ένα άλλο πράγμα νομίζω είναι να... να προσπαθήσεις να μην προχωράς πολύ γρήγορα. Κάνε λίγο τώρα, κάνε λίγο μετά, γιατί ας πούμε ότι κάνεις πολλά concept exercises, είναι καλύτερα να αφήσεις αυτές τις πληροφορίες να κατασταλάξουν, παρά να κάνεις όλες τις έννοιες την ίδια μέρα και τότε μάλλον θα έχεις μείνει απλώς μπερδεμένος. Jonathan: Και πώς εφαρμόζονται όλα. Εντάξει, ωραία. Οπότε πάρε τον χρόνο σου. Δώσε στον εαυτό σου τον χώρο να σκεφτεί τα πράγματα. Και θα έλεγες ότι το να πηγαίνεις πιο αργά, το να αφήνεις τα πράγματα να κατασταλάξουν βαθιά, είναι καλύτερο από το γρήγορα και, αυτό μοιάζει με αυτό που λες, είναι καλύτερο από το να περνάς γρήγορα ξυστά από την επιφάνεια; Carl: Σε κάποιες γλώσσες ίσως χρειάζεται να μάθεις μόνο τη σύνταξη και... και τα βασικά, και μετά να μπορείς να περάσεις σε πιο πραγματικά σενάρια και να εμβαθύνεις τότε. Όσον αφορά τη JavaScript, έμαθα τα βασικά και μετά έκανα projects με React και εκεί... έμαθα λίγο καινούργια πράγματα και εμβάθυνα στη γλώσσα. Jonathan: Ωραία, τέλεια. Εντάξει, ωραία. Τέλεια. Λοιπόν, Karl, έχω μια ακόμα ερώτηση για σένα, για αυτή την εβδομάδα. Ποια είναι η σύστασή σου για την κοινότητα αυτή την εβδομάδα; Η ειδική σου σύσταση, και μπορεί να είναι σχεδόν οτιδήποτε. Μπορεί να είναι, ξέρεις, πήγαινε να κάνεις ποδήλατο στο χιόνι. Μπορεί να είναι να πέσεις σε μια παγωμένη λίμνη ή να πας σε σάουνα, αν είσαι στη Σουηδία. Ποια θα ήταν η σύστασή σου για την κοινότητα; Carl: Ναι, θέλω να πω, δεν... νομίζω ότι είναι, είναι πολύ δύσκολο να κάνεις ποδήλατο στο χιόνι. Οπότε δεν... δεν το συνιστώ στον κόσμο. Jonathan: Ναι. Carl: Αλλά νομίζω ότι θα πω αυτό που είπα και πριν. Κοίτα, αν έχεις ένα πρόβλημα στο οποίο έχεις κολλήσει, κάνε ένα διάλειμμα. Μην κάθεσαι εκεί για μερικές ώρες ακόμα προσπαθώντας απλώς να το λύσεις. Είναι καλύτερα να κάνεις ένα σύντομο διάλειμμα και μετά να επιστρέψεις στο πρόβλημα. Jonathan: Εντάξει, ωραία. Λοιπόν, αυτή την εβδομάδα η σύστασή σου είναι: αν πρέπει να μάθεις κάτι, πήγαινε πιο αργά, κάνε ένα διάλειμμα, πιες έναν καφέ. Πίνεις καφέ; Carl: Όχι ακόμα. Jonathan: Όχι ακόμα. Εντάξει. Ποτέ. Carl: Βασικά πίνω μόνο νερό. Αυτό είναι μάλλον το ξεχωριστό πράγμα πάνω μου. Jonathan: Εντάξει, τέλεια. Αυτό θα σου γλιτώσει πολλά χρήματα στη ζωή σου από εδώ και πέρα, να το ξέρεις. Τέλεια. Λοιπόν, Karl, ήταν πραγματικά προνόμιο να μιλήσουμε σήμερα. Σε ευχαριστώ για τον χρόνο σου και σε ευχαριστώ για όλες τις συνεισφορές σου στα διάφορα tracks και που συμμετέχεις στο Exercism. Το εκτιμούμε πραγματικά. Χάρηκα πολύ που σε γνώρισα αυτούς τους τελευταίους μήνες, ειδικά μέσα από τον Discord server που τρέχαμε. Νομίζω ότι ήταν οι Ex-Orts, ήσουν στο Discord της Elixir; Carl: Είτε το cohort είτε τους experts. Jonathan: Ναι, νομίζω ότι σε έβλεπα αρκετά συχνά σε αυτά, που ήταν καταπληκτικό. Και ναι, ευχαριστώ για τη συνεισφορά σου. Ήταν υπέροχα. Ανυπομονώ να τα ξαναπούμε σύντομα και σε ευχαριστώ πολύ για τον χρόνο σου. Οπότε μείνε στην κλήση και θα τα κλείσουμε από εκεί. Αλλά ευχαριστώ όλους που μας άκουσαν. Άκουσες εμένα, τον Jonathan, και τον Carl, και ανυπομονώ να τα ξαναπούμε σύντομα. Γεια. Carl: Γεια.

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

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