Γιατί κωδικοποίησα κάθε μέρα για ένα χρόνο, τι έμαθα και πώς μπορείτε να το κάνετε επίσης.

Έψαχνα να αλλάξω καριέρα. Ο κόσμος σήμερα δεν είναι καθόλου ίδιος με αυτόν που μεγάλωσαν οι γονείς μας. Κατά συνέπεια, πολλές από τις συμβουλές σταδιοδρομίας που μου έδωσαν οι γονείς μου δεν ήταν πλέον σχετικές με το τοπίο που έχουμε τώρα.

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

Ήμουν αποφασισμένος να το κάνω αυτό. Κάτι τέτοιο σήμαινε ότι δεν το καθυστερούσαμε. Θα ξεκινήσω αμέσως, έτσι ώστε σε άλλα 10 χρόνια να μην κοιτάξω πίσω και να πω «Μακάρι να το ξεκίνησα πολύ νωρίτερα».

Έτσι αποφάσισα να κωδικοποιώ καθημερινά για ένα χρόνο. Επιτρέψτε μου να σας πω για την εμπειρία μου.

Η αρχη

Ξεκίνησα κάνοντας κάποια έρευνα για να μάθω πώς να κωδικοποιώ. Βρήκα πράγματα όπως το Codecademy και το FreeCodeCamp, δωρεάν πόρους για να βρέξω τα πόδια μου. Υπήρχαν πολλά να μάθουν και θα ήταν ένα μακρύ ταξίδι που απαιτούσε πολλή πειθαρχία. Όμως, σκέφτηκα, όσο περισσότερο δουλεύω τώρα, τόσο περισσότερο θα αποδώσει αργότερα.

Και τότε ανακάλυψα ένα άρθρο που μιλάει για αυτήν την πρόκληση που ονομάζεται # 100DaysOfCode . Υπάρχουν δύο βασικές προϋποθέσεις για την ολοκλήρωση της πρόκλησης:

  1. Κωδικοποιήστε τουλάχιστον μία ώρα κάθε μέρα για 100 συνεχόμενες ημέρες
  2. Παρακολουθήστε την πρόοδό σας κάθε μέρα με το hashtag # 100DaysOfCode

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

Έτσι άρχισα να κάνω tweet από τον λογαριασμό μου twitter.com/PolarisTLX κάθε μέρα, καθώς και σε μια ομάδα Facebook.

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

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

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

Ωστόσο, ακόμα δεν ήμουν έτοιμος για δουλειά. Υπήρχαν απλά πολλά που έπρεπε να μάθω. Αλλά σημείωσα μεγάλη πρόοδο, και ήμουν αποφασισμένος να συνεχίσω μέχρι που τελικά πήρα αυτήν τη δουλειά. Έτσι αποφάσισα να συνεχίσω σε 150, 200, 250 ημέρες…

Σημαντικά επιτεύγματα

Και έτσι έφτασα τις 365 ημέρες! Εδώ είναι μερικά από τα σημαντικότερα πράγματα που κατάφερα να πετύχω κωδικοποιώντας κάθε μέρα για ένα χρόνο:

  • Ολοκληρώθηκε δεκάδες σεμινάρια κωδικοποίησης, μαθήματα και βιβλία
  • Επιλύθηκαν πάνω από 100 αλγόριθμοι και προκλήσεις κωδικοποίησης συνέντευξης
  • Κέρδισε τα πιστοποιητικά "Προγραμματιστής διεπαφής " και " Αλγόριθμοι JavaScript και έργα δομών δεδομένων" από το freeCodeCamp
  • Συμμετείχε σε ένα διήμερο hackathon, όπου το έργο επιλέχθηκε για παρουσίαση στα μέλη του διοικητικού συμβουλίου της εταιρείας. Στη συνέχεια αποφάσισαν να το προωθήσουν στο επόμενο στάδιο ανάπτυξης
  • Έγινε δεκτό σε πρόγραμμα ανάπτυξης λογισμικού πλήρους απασχόλησης με ποσοστό αποδοχής κάτω του 1%
  • Συνέβαλε στο επεκταμένο πρόγραμμα σπουδών beta του FreeCodeCamp
  • Έγραψε περιεχόμενο μαθημάτων για το νέο πρόγραμμα σπουδών Ruby του Odin Project για να βοηθήσει άλλους επίδοξους προγραμματιστές να μάθουν να κωδικοποιούν
  • Δημιούργησα έναν λειτουργικό κλώνο του Facebook, ολόκληρο το back-end και το front-end εντελώς από το μηδέν και το ζήτησα ζωντανά στο Heroku ως ένα από τα επιλεγμένα έργα μου στο χαρτοφυλάκιό μου
  • Προσγειώθηκα την πρώτη μου κανονική ροή εισοδήματος, δουλεύοντας για έναν πελάτη από απόσταση, γεγονός που οδηγεί στη μόνιμη πρόσληψη

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

Δεν είναι μια εύκολη πρόκληση

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

Αλλά αυτό που έχω παρατηρήσει είναι ότι ακόμη και με τα πιο βασικά κριτήρια, οι περισσότεροι άνθρωποι που δοκιμάζουν αυτήν την πρόκληση αποτυγχάνουν. Πολλοί άνθρωποι ξεκινούν το # 100DaysOfCode με την επιθυμία να βρουν δουλειά ως προγραμματιστής (κυριολεκτικά δεκάδες χιλιάδες άτομα από όλο τον κόσμο), αλλά λίγοι από αυτούς επιτυγχάνουν πραγματικά τον στόχο τους.

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

Ανακάλυψα και μπήκα σε πολλές ομάδες γεμάτες ανθρώπους που προσπαθούσαν να μάθουν να κωδικοποιούν. Μερικά από αυτά που βρήκα ήταν:

  • 30-ημέρες-JavaScript
  • 30-Days-of-React
  • περιστροφές όπως 180-Days-Of-Code
  • Ομαδικές ομάδες καναλιών που αφιερώθηκαν στη δουλειά μέσω ενός συγκεκριμένου βιβλίου κωδικοποίησης μαζί με έναν στόχο να κάνουν ένα κεφάλαιο κάθε εβδομάδα και να συζητούν / να συγκρίνουν σημειώσεις.

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

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

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

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

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

Λοιπόν, πώς το έκανα - και πώς μπορείτε;

Υπάρχουν πολλά πράγματα που μπορείτε να κάνετε για να σας βοηθήσουμε να παραμείνετε σε καλό δρόμο και να επιτύχετε τους στόχους σας. Μερικά από αυτά περιγράφονται παραπάνω και περιλαμβάνουν:

  • δίνοντας στην πρόοδό σας κάποια δομή και λογοδοσία με κάτι σαν # 100DaysOfCode
  • να θέσετε μικρούς στοιχειώδεις στόχους και να τους επιτύχετε
  • προγραμματισμός ζευγών
  • εύρεση ομάδων για συμμετοχή και μάθηση μαζί

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

Το πιο σημαντικό πράγμα που έκανα

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

Η κοινωνική μου ζωή πήρε συχνά πίσω θέση, όπως και ο χρόνος του βιντεοπαιχνιδιού μου, και δεν συμβαδίζω με την τελευταία καυτή εκπομπή στο Netflix. Υπήρχαν επίσης μέρες που πραγματικά δεν ένιωθα, αλλά έπρεπε να κάνω «κάποια» πρόοδο. Πρέπει να θυμηθείτε ότι πρόκειται για καθυστερημένη ικανοποίηση, κάνοντας βραχυπρόθεσμες θυσίες για μακροπρόθεσμα κέρδη.

Άλλα πράγματα που με βοήθησαν

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

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

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

Αποποίηση ευθυνών

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

«Μπορείτε να παραλείψετε μια μέρα εδώ και εκεί για απρογραμμάτιστες καταστάσεις, αλλά όχι περισσότερο… Σας επιτρέπεται να χάσετε μια μέρα (αλλά στη συνέχεια να το συμπληρώσετε προσθέτοντας μία ακόμη μέρα στο τέλος του 100). Ο στόχος είναι να γίνετε συνεπείς, ανεξάρτητα από το τι σας ρίχνει η ζωή. " - Alexander Kallaway, δημιουργός του # 100DaysOfCode

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

Μερικά από τα κενά περιελάμβαναν τα 60α γενέθλια της μαμάς μου , ένα ταξίδι κάμπινγκ σε πάρτι και τα Χριστούγεννα. Διαφορετικά δεν υπήρχαν δικαιολογίες. Κωδικοποίησα την Παραμονή της Πρωτοχρονιάς και την Πρωτοχρονιά. Κωδικοποίησα όταν ήμουν άρρωστος,και ακόμη και το πρωί πριν μπήκα για χειρουργική επέμβαση και την επόμενη μέρα από τη χειρουργική επέμβαση. ;

Μπορείτε σχεδόν να δείτε ποιες μέρες έχασα απευθείας στη σελίδα προφίλ μου στο GitHub: //github.com/PolarisTLX. Ωστόσο, ορισμένα κενά αντιπροσωπεύουν χρόνο όταν ήμουν σε απομακρυσμένες περιοχές χωρίς πρόσβαση στο Διαδίκτυο και δεν μπορούσα να δεσμεύσω κώδικα στο GitHub. Αλλά έκανα ένα σημείο να φορτώσω ένα βιβλίο κωδικοποίησης σε ένα tablet που βεβαίωσα ότι ήταν πλήρως φορτισμένο πριν φύγω. (Δεν είναι ο αγαπημένος μου τρόπος εκμάθησης κώδικα, αλλά μπορεί να είναι ωραίο να αλλάζω λίγο τη μέθοδο εκμάθησης και να δοκιμάζω ένα διαφορετικό μέσο κάθε φορά.)

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

Περίληψη προόδου 365 ημερών

Έτσι, σε 365 ημέρες προχώρησα στα ακόλουθα επιτεύγματα:

  • μαθαίνοντας πώς να χρησιμοποιείτε ένα πρόγραμμα επεξεργασίας κώδικα και να δημιουργείτε απλές στατικές ιστοσελίδες
  • δημιουργία λειτουργικών αριθμομηχανών και εφαρμογών καιρού
  • δημιουργία απλών διαδραστικών παιχνιδιών πλατφόρμας 2D
  • να νιώσετε άνετα με την ανάπτυξη πλήρους στοίβας με πολλές γλώσσες, πλαίσια και λειτουργικά συστήματα και να δημιουργήσετε έναν πλήρη ιστότοπο κοινωνικής δικτύωσης RESTful από το μηδέν (όπου οι χρήστες μπορούν να εγγραφούν με τον επιλεγμένο κωδικό πρόσβασης, να δημοσιεύσουν, να τους αρέσει και να σχολιάσουν, να ανεβάσουν τις δικές τους φωτογραφίες, να δημιουργήσουν εκδηλώσεις, αποστολή και αποδοχή αιτημάτων φίλων και προσκλήσεων σε εκδηλώσεις με άλλους χρήστες κ.λπ.)
  • δημιουργώντας υλικό μαθημάτων για να βοηθήσουμε άλλους επίδοξους προγραμματιστές να μάθουν πώς να κωδικοποιούν.

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

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