Πώς να μάθετε τον Python τον εύκολο τρόπο (και όχι τον τρόπο που έκανα)

Η Python υποτίθεται ότι είναι μια από τις ευκολότερες γλώσσες προγραμματισμού για να μάθει. Γνωρίζοντας ότι με έκανε να νιώθω πολύ άσχημα την πρώτη φορά που προσπάθησα και δεν κατάφερα να το μάθω. Ήταν χειρότερα τη δεύτερη φορά που απέτυχα.

Αλλά αποδεικνύεται - και το έμαθα στην τρίτη προσπάθεια - ότι η Python μπορεί να είναι πραγματικά προσβάσιμη, ακόμη και σε έναν μη-κωδικοποιητή που αγαπάει τις ανθρωπιστικές επιστήμες σαν κι εμένα. Απλώς πρέπει να το προσεγγίσετε με τον σωστό τρόπο.

Πώς απέτυχα να μάθω την Python… την πρώτη φορά

Η πρώτη φορά που προσπάθησα να μάθω τον Πύθωνα ήταν σχεδόν μια δεκαετία πριν. Δεν ήμουν πραγματικά σίγουρος τι ήθελα να κάνω με αυτό - ίσως να αυτοματοποιήσω μέρος της δουλειάς μου, ίσως να γράψω μια μικρή εφαρμογή. Φαινόταν σαν μια ικανότητα που θα ήταν καλό να γνωρίζουμε.

Έτσι πήρα ένα αντίγραφο του τότε δωρεάν Learn Learn Python the Hard Way PDF και άρχισα να προσπαθώ να το επεξεργαστώ.

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

Ήθελα να μάθω πώς να γράφω κώδικα Python, και το πρώτο μου βήμα ήταν να περάσω πέντε ώρες πολεμώντας με τη γραμμή εντολών; Είχα υποκινηθεί πριν καν ξεκινήσω.

Μόλις έκανα τελικά τα πράγματα, θα μπορούσα να γράψω κώδικα μαζί με το βιβλίο. Και έκανα, για λίγο, να επιβραδύνω τη σύνδεση ενός πολύ απλού παιχνιδιού περιπέτειας με κείμενο.

Αλλά όταν χτύπησα την πρώτη πραγματική πρόκληση - εκείνες τις στιγμές που έρχονται πάντα στην κωδικοποίηση όπου κάτι δεν λειτουργεί και απλά δεν μπορείτε να καταλάβετε γιατί - σταμάτησα.

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

Πώς απέτυχα να μάθω την Python… τη δεύτερη φορά

Λίγα χρόνια αργότερα, δοκίμασα ξανά. Μέχρι τότε δούλευα ως δημοσιογράφος και με ενδιέφερε η δημοσιογραφία δεδομένων και ειδικότερα το web scraping.

Ήξερα ότι θα ήταν απαραίτητο να έχω δεξιότητες κωδικοποίησης Python, οπότε βρήκα μια διαδικτυακή πλατφόρμα εκπαίδευσης - δεν θα πω ποια - και ξεκίνησα ένα αρχικό μάθημα Python.

Όπως τα περισσότερα MOOC, αυτό το μάθημα βασίστηκε σε βίντεο. Θα παρακολουθούσα μια διάλεξη σχετικά με ένα θέμα που σχετίζεται με την Python, θα απαντούσα σε ένα κουίζ στον ιστότοπο του μαθήματος για να επιβεβαιώσω ότι έμαθα το υλικό και στη συνέχεια να προχωρήσω στην επόμενη ενότητα.

Οι έμπειροι προγραμματιστές μπορούν ήδη να μαντέψουν τι συνέβη στη συνέχεια: όταν πήγα να προσπαθήσω να γράψω κώδικα Python για τον εαυτό μου, δεν μπορούσα να κάνω τίποτα.

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

Αλλά φυσικά, όταν ήρθε η ώρα να το εφαρμόσω μόνος μου, δεν μπορούσα. Θα μπορούσα να σαρώσω ξανά τα βίντεο και να αντιγράψω αυτό που έκανε ο λέκτορας, αλλά είχα πολύ δύσκολο χρόνο να εφαρμόσω οτιδήποτε έμαθα στα δικά μου έργα.

Ήταν επίσης δύσκολο να παραμείνω κίνητρο, γιατί δούλευα σε πράγματα που δεν φαίνονταν σχετικά.

Ήθελα να μάθω ξύσιμο ιστού. Αντίθετα, δυσκολευόμουν να καταλάβω βίντεο διαλέξεις σχετικά με την έννοια του αντικειμενοστρεφούς προγραμματισμού (OOP). Τι σχέση είχε με τους στόχους μου; Δεν ήμουν σίγουρος και αυτό το έκανε εύκολο να το κόψω. Πάλι.

Γιατί απέτυχα

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

  1. Χωρίς σαφή στόχο . Γιατί έμαθα Python; Δεν ήξερα πραγματικά. Αυτό το καθιστά πολύ εύκολο να σταματήσετε όταν η πορεία γίνεται δύσκολη - κάτι που πάντα θα γίνει, αργά ή γρήγορα.
  2. Πάρα πολύ μια πρόκληση εκ των προτέρων . Αργά ή γρήγορα, θα έπρεπε να καταλάβω πώς να βάλω το Python στο σύστημά μου, αλλά το έβαλα αυτό με μηδενική σχετική εμπειρία, πριν να γράψω όσο print(‘Hello world!’)ήταν μια συνταγή για απογοήτευση και αποτυχία.

Όταν μαθαίνετε κάτι προκλητικό, ειδικά ως συνολικά αρχάριος, χρειάζεστε νωρίς νίκες για να σας βοηθήσουμε να πιστέψετε ότι μπορείτε πραγματικά να το κάνετε.

Ξεκινώντας με μια απογοητευτική πρόκληση που δεν περιελάμβανε καν κωδικοποίηση εξασφάλισε ότι δεν έκανα αυτά τα κίνητρα και επιβεβαίωσα νωρίς νίκες.

Τη δεύτερη φορά, απέφυγα αυτά τα λάθη, αλλά αντίθετα έκανα νέα:

  1. Δεν έμαθα να κάνω. Το να βλέπω βίντεο και να περνάω κουίζ με έκανε να νιώθω ότι μπορούσα να κωδικοποιήσω, αλλά στην πραγματικότητα δεν κωδικοποιούσα. Όταν προσπάθησα (και δεν κατάφερα ) να γράψω κώδικα, ήταν ακόμη πιο απογοητευτικό γιατί νόμιζα ότι το κατάλαβα ήδη. Και επειδή έπρεπε να κάνω πολλά κλικ σε κάθε βίντεο για να ξαναβλέψω διαφορετικές ενότητες και να μάθω ξανά πράγματα.
  2. Είχα έναν σαφή στόχο, αλλά όχι έναν σαφή δρόμο προς αυτόν. Ήξερα ότι ήθελα να κάνω δημοσιογραφία δεδομένων και απόξεση ιστού, αλλά έπαιρνα ένα γενικό μάθημα Python. Αυτό σήμαινε ότι έμαθα μαθήματα που θα μπορούσαν να είναι κρίσιμα για την ανάπτυξη λογισμικού, αλλά δεν ήταν τόσο σχετικά με τη δημοσιογραφία δεδομένων. Συχνά δυσκολεύτηκα να συνδέσω τις βασικές αρχές που έμαθα στην τάξη με αυτό που πραγματικά ήθελα να κάνω με τον κώδικα.

Σε όλα αυτά, έκανα και ένα άλλο μεγάλο ψυχικό λάθος. Σκέφτηκα να μάθω την Python με ασπρόμαυρους όρους. Είχα "μάθει την Python" - όλη την Python - είτε δεν το είχα.

Αυτό έκανε την προοπτική της μάθησης πραγματικά εκφοβιστική. Όποτε έκανα μια πρόκληση, χειροτέρευε από το γεγονός ότι σκεφτόμουν κάποια μυθική «γραμμή τερματισμού» της Python που ήταν ακόμα πολύ, πολύ μακριά.

Φυσικά, αυτό είναι λανθασμένο. Όπως μια ομιλούμενη γλώσσα, η Python (και άλλες γλώσσες προγραμματισμού) δεν είναι κάτι που πραγματικά τελειώνετε . Και σαν μια ομιλούμενη γλώσσα, δεν χρειάζεται πραγματικά να είστε άπταιστα στο Python για να κάνετε τα πράγματα.

Όπως θα σας πει οποιοσδήποτε μαθητής ανταλλαγής πρώτου έτους, απλά θα μπορείτε να ρωτήσετε "Πόσο είναι αυτό;" και "Πού είναι το μπάνιο;" στην τοπική γλώσσα μπορεί πραγματικά να επηρεάσει την ποιότητα ζωής σας.

Το ίδιο ισχύει και για την Python. Δεν χρειάζεται να ξέρετε τα πάντα - ή ακόμα και όλα αυτά, απαραίτητα - για να κάνετε μια πραγματική διαφορά στη ζωή σας.

Αλλά αυτό είναι ένα μάθημα που έμαθα μόνο κατά λάθος.

Πώς πραγματικά έμαθα (μερικά) Python

Μέχρι το 2018, είχα σταματήσει να μαθαίνω την Python. Είχα δοκιμάσει δύο φορές και απέτυχα δύο φορές! Αλλά μετά προσλήφθηκα στο Dataquest, μια εταιρεία που διδάσκει δεξιότητες επιστήμης δεδομένων - συμπεριλαμβανομένου του προγραμματισμού Python - online.

Η νέα μου δουλειά δεν απαιτούσε δεξιότητα κωδικοποίησης, αλλά σκέφτηκα ότι έπρεπε να δοκιμάσω την πλατφόρμα εκμάθησης. Έπρεπε να καταλάβω το προϊόν μας και τι ένιωθαν οι μαθητές μας. Ίσως, σκέφτηκα, θα μπορούσα ακόμη και να μάθω αρκετά για να κάνω κάποια απόξεση ιστού, όπως είχα προγραμματίσει στο παρελθόν.

Έτσι, με λίγη ανησυχία, δημιούργησα έναν λογαριασμό και ξεκίνησα τη διαδρομή μαθημάτων Python for Data Science.

Προς έκπληξή μου, ένιωσα διασκεδαστικό και εύκολο. Και για τη μεγαλύτερη έκπληξή μου, δεν χρειάστηκε καθόλου προτού νιώθω ότι μπορούσα να φτιάξω μερικά έργα μόνα μου.

Έγραψα ένα μικρό σενάριο για ταξινόμηση email. Χρησιμοποίησα το Python για να αναλύσω γρήγορα ορισμένα δεδομένα της έρευνας. Και, με ταιριάζει και ξεκίνησε, έφτιαξα το μεγάλο έργο απόξεσης και ανάλυσης ιστού που ονειρευόμουν πίσω όταν ήμουν δημοσιογράφος.

Χρησιμοποίησα - και ακόμα είμαι - στην πραγματικότητα χρησιμοποίησα την Python για να διευκολύνω τη δουλειά μου και να βελτιώσω τη ζωή μου. Μερικά χρόνια αργότερα, είμαι ακόμα αρχάριος κωδικοποιητής, αλλά μπορώ να χαράξω μικρά σενάρια για να κάνω τα πράγματα πιο εύκολα και να λύσω προβλήματα ανάλυσης δεδομένων που έχω στη δουλειά χρησιμοποιώντας το Python.

Αυτό συνέβη επειδή, κατά τύχη παρά από το σχεδιασμό, είχα σκοντάψει έναν τρόπο εκμάθησης της Python που απέφυγε σχεδόν όλα τα λάθη που είχα κάνει με τις προηγούμενες προσπάθειές μου:

  • Ήρθα με έναν σαφή στόχο - μάθετε αρκετά την Python για να μπορώ να κάνω λίγη δουλειά δεδομένων, ώστε να καταλάβω καλύτερα τους πελάτες μας.
  • Αποφεύγω την πρόκληση της πλήρους εγκατάστασης της Python, επειδή το Dataquest σάς επιτρέπει να μάθετε και να γράφετε κώδικα απευθείας σε ένα παράθυρο του προγράμματος περιήγησης.
  • Έμαθα να κωδικοποιώ στην πραγματικότητα κωδικοποιώντας παρά να βλέπω κάποιον άλλο κώδικα.
  • Έμαθα σε ένα μονοπάτι που είχε σχεδιαστεί ειδικά για τα δεδομένα Python, οπότε ό, τι έμαθα και κάθε άσκηση που έκανα ένιωσαν συναφή.
  • Εγώ απλά προσπαθούν να μάθουν τι μπορώ χρειάζεται, δεν προσπαθούν να μάθουν όλα Python.

Πώς να κάνετε τη μάθηση Python πιο εύκολη

Κοιτάζοντας πίσω τα λάθη μου, και μετά την τυχαία επιτυχία μου, νομίζω ότι οφείλεται σε μερικές απλές επιλογές:

Πρώτα, μπείτε με ένα γκολ. Γιατί θέλετε να μάθετε την Python; Τι, ειδικά, θέλετε να δημιουργήσετε με αυτό; Εάν δεν έχετε καλή απάντηση σε αυτήν την ερώτηση, θα είναι πολύ δύσκολο να παραμείνετε κίνητρα.

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

Η εκμάθησή σας για κωδικοποίηση πρέπει να περιλαμβάνει πραγματικά γράψιμο κώδικα και πρέπει να γράφετε κώδικα που κάνει κάτι που σας ενδιαφέρει.

Τρίτον, αποφύγετε την αρχική πρόκληση να δημιουργήσετε το Python και τις διάφορες βιβλιοθήκες του στο τοπικό σας σύστημα.

Υπάρχουν πολλές διαδικτυακές πλατφόρμες τώρα που σας επιτρέπουν να γράφετε και να εκτελείτε κώδικα σε ένα πρόγραμμα περιήγησης ιστού ή μπορείτε να γράφετε και να εκτελείτε κώδικα σε ένα σημειωματάριο στο Google Colab ή σε μια παρόμοια πλατφόρμα. Απλώς προσπαθήστε να ξεκινήσετε όσο το δυνατόν πιο εύκολα στον εαυτό σας. Μπορείτε να ανησυχείτε για την τοπική σας εγκατάσταση αργότερα.

Τέταρτον, μην προσπαθήσετε να «μάθετε Python». Αυτός είναι ένας τεράστιος μακροπρόθεσμος στόχος που μπορεί αναμφισβήτητα να είναι ανέφικτος - ακόμη και οι καλύτεροι προγραμματιστές της Python δεν γνωρίζουν κυριολεκτικά τα πάντα για αυτό.

Αντ 'αυτού, προσπαθήστε να μάθετε πώς να χρησιμοποιείτε το Python για να δημιουργήσετε μια απλή έκδοση του έργου στόχου σας ή ενός μέρους αυτού του έργου. Στη συνέχεια, μάθετε πώς να χρησιμοποιείτε το Python για να κάνετε το έργο μεγαλύτερο, ή πώς να προχωρήσετε στο επόμενο βήμα.

Αναλύστε τα μεγάλα καθήκοντά σας σε μικρότερα κομμάτια και εστιάστε τους στόχους σας στην οικοδόμηση κάτι, ώστε να έχετε την ψυχολογική ανταμοιβή ότι έχετε χτίσει κάτι όταν ολοκληρώνετε ένα.

Ακολουθήστε αυτές τις οδηγίες ανεξάρτητα από τον προσωπικό σας λόγο για την εκμάθηση της Python και δεν έχω καμία αμφιβολία ότι θα είστε σε θέση να επιτύχετε τους στόχους σας χωρίς να χρειάζεται να αποτύχετε και να σταματήσετε δύο φορές στην πορεία!