Πόσο διαρκεί το Free Camp Camp;

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

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

Έμαθα κάποια C ++ στο γυμνάσιο, αλλά έγραψα ως επί το πλείστον τεράστιο, επαναλαμβανόμενο κώδικα επειδή δεν κατάλαβα τις λειτουργίες. Έκανα μαθήματα Visual Basic .NET στο undergrad αλλά έχω σχεδόν μηδενική μνήμη για το τι συνέβη εκεί. Εργάστηκα μέσω του μαθήματος JavaScript της Codecademy πριν από μερικά χρόνια από μια αιώρα στη Γουατεμάλα.

Νομίζω ότι αυτό το κυματοειδές μονοπάτι της μη πλήρους μάθησης με προετοιμάζει με κάποιους τρόπους. Έχω επίσης πτυχίο Computer Computer, το οποίο ήταν πολύ πιο επικεντρωμένο στο σχεδιασμό, την κινούμενη εικόνα και τη μοντελοποίηση από ό, τι στην κωδικοποίηση, αλλά μου έδωσε κάποια θεμελιώδη γνώση HTML / CSS.

Έχουν γραφτεί πολλά για το "γιατί κωδικοποίηση", οπότε δεν θα νικήσω ένα νεκρό άλογο εδώ.

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

Αφού έσκαψα στο διαδίκτυο για να βρω το καλύτερο μέρος για να ξεκινήσω, αποφάσισα να ξεκινήσω να δουλεύω μέσω του Free Code Camp Η πρώτη θέση ήταν το The Odin Project, αλλά ο Reddit φάνηκε να συμφωνεί ότι η FCC ήταν το ισχυρότερο σημείο εκκίνησης. Και για οποιονδήποτε λόγο εμπιστεύομαι το μυαλό της Reddit όταν πρόκειται για αυτά τα πράγματα.

Έτσι έθεσα έναν μικρό αρχικό στόχο 2 ωρών / ημέρα και εγκατέστησα το RescueTime για να παρακολουθώ τον εαυτό μου. Ακολουθεί μια ματιά στο πώς πήγε.

ΗΜΕΡΑ 1

Δούλεψα γρήγορα στις τρεις πρώτες ενότητες. Το HTML5 / CSS, το Responsive Design με το Bootstrap και το jQuery είχαν εκτιμώμενο συνολικό χρόνο ολοκλήρωσης 13 ωρών, αλλά σύμφωνα με το RescueTime, τους έβγαλα σε μόλις τέσσερις. Σε αυτό το σημείο αναρωτήθηκα αν έκανα κάτι λάθος, αλλά αποφάσισα να συγχαρώ τον εαυτό μου και να συνεχίσω να προχωράω.

ΗΜΕΡΑ 3–4

Ήμουν σε ρολό και μετακινήθηκα ομαλά στην ενότητα Basic Javascript. Νωρίς το πρωί την Ημέρα 3 άρχισα να αισθάνομαι κολλημένος για πρώτη φορά σε μια άσκηση Αναζήτηση προφίλ που περιλαμβάνει τη χρήση ενός βρόχου για να επαναλάβει μια σειρά αντικειμένων. Αλλά μέχρι τις 10:30 μ.μ. το έκανα σχεδόν στη μέση του Basic Algorithm Scripting (και σύμφωνα με το RescueTime είχα περάσει συνολικά 12 ώρες 20 λεπτά στο Free Code Camp).

Το επόμενο πρωί άρχισα να οργώνω τους υπόλοιπους βασικούς αλγόριθμους, γράφοντας μερικές από τις λύσεις σε 3-5 λεπτά. Επιβεβαίωσα στη συνομιλία FCC ότι πολλοί άνθρωποι ξεκινούν σχετικά γρήγορα και επιβραδύνονται με την πάροδο του χρόνου καθώς αυξάνεται η σχετική δυσκολία (κάνοντας έτσι τους εκτιμώμενους χρόνους ολοκλήρωσης να γίνουν πιο ρεαλιστικοί).

Τούτου λεχθέντος, μέχρι το βράδυ της τέταρτης ημέρας θα είχα ολοκληρώσει τους αλγορίθμους με ένα μεγάλο σύνολο 18 ωρών στο FCC (και εκτιμάται ότι 22 ώρες συνολικού χρόνου καταμέτρησης εργασίας που δαπανήθηκε σε άλλους ερευνητικούς πόρους όπως το Δίκτυο προγραμματιστών Mozilla. σε αυτό το σημείο ήταν 75 ώρες.

Ο αρχικός μου μικρο-στόχος των 2 ωρών / ημέρα με είχε αφήσει να σκεφτώ ότι θα είχα ολοκληρώσει 100 ώρες εργασίας μέχρι να φύγω από το κρησφύγετο της Γιούτα. Τώρα που θα είχα εμπνευστεί πραγματικά με τη δουλειά που θα είχα ολοκληρώσει το 75% εκεί όπου ήθελα να είμαι μέσα σε μόλις τέσσερις ημέρες.

ΗΜΕΡΑ 17

Πήγα σε κατάσταση μείζονος κεφαλής και δεν πήρα σημειώσεις προόδου για δύο εβδομάδες. Τα κακά νέα είναι λίγα για να αναφέρω εκεί, αλλά τα καλά νέα είναι ότι η FCC με έκανε σε κατάσταση ροής για δύο συνεχόμενες εβδομάδες. Σε αυτό το σημείο είχα ολοκληρώσει ένα χαρτοφυλάκιο σκελετών (τώρα λίγο πιο εντυπωσιακό) και έφτιαξα ένα Random Quote Machine, καθώς και μια πραγματικά απαίσια εφαρμογή καιρού εμπνευσμένη από τον Lord of the Rings. Την 17η ημέρα υπέβαλα το πρόγραμμα προβολής της Wikipedia. Το να μάθεις πώς να χρησιμοποιείς API ήταν διασκεδαστικό και χρήσιμο. Αποδεικνύεται ότι μπορείτε να δημιουργήσετε πράγματα μεσαίας πολυπλοκότητας χωρίς να κατανοήσετε διακομιστές ή βάσεις δεδομένων (μπορείτε απλώς να συνδέσετε σε κάποιον άλλο)!

ΗΜΕΡΑ 23–24

Δουλεύοντας μέσω των ενδιάμεσων αλγορίθμων βρέθηκα να αρχίζω να βλέπω τη διαφορά μεταξύ καθαρού και άσχημου κώδικα. Άρχισα επίσης να ενσωματώνω περισσότερες σημειώσεις στον κώδικά μου για μελλοντικό έλεγχο. Με κάποιον τρόπο μου πήρε τόσο πολύ χρόνο για να συνειδητοποιήσω ότι το console.log ("δοκιμές") ξεπερνάει πάντα την κονσόλα προγραμματιστή JS στο πρόγραμμα περιήγησης. Είχα αρχίσει να χρησιμοποιώ το //repl.it για να τρέξω κώδικα που θα εμφανίζει τα αρχεία καταγραφής της κονσόλας ως καθαρή έξοδο. Κάπως ενοχλητικό τώρα αλλά hey - δεν το άφησα να με σταματήσει και τώρα ξέρετε καλύτερα.

Έσπασα το πρόγραμμα περιήγησής μου για πρώτη φορά μέσω του Sum of All Primes. Ανεξάρτητα, έλυσα τελικά το ζήτημα και ένιωσα πολύ υπέροχο να λύσω το 99% της πρωταρχικής λειτουργίας χωρίς καμία εξωτερική έρευνα.

ΗΜΕΡΑ 31–33

Βρήκα τις προκλήσεις του Advanced Algorithm αρκετά… καλά… προηγμένες. Ήμουν αρκετά εκστατικός όταν τελείωσα τον Advanced Algorithm "Friendly Dates Range" σε μόλις 90 λεπτά. Σε δύο από αυτούς τους προηγμένους αλγόριθμους ανέφερα συγκεκριμένες λειτουργίες από το StackOverflow για να βοηθήσω στην καθαριότητα του κώδικα μου. Εκείνη την εποχή ανησυχούσα ότι αυτό θα επέστρεφε για να με πληγώσει, αλλά πολλοί πόροι που έχω συναντήσει υποστηρίζουν ότι αυτό που κάνει έναν σπουδαίο προγραμματιστή είναι η ικανότητα να κάνω συγκεκριμένες ερωτήσεις για μια μηχανή αναζήτησης. Για παράδειγμα, η δημιουργία μιας εκδοχής JS του αλγόριθμου του Heap από το μηδέν θα αποτελούσε μαθηματικά υψηλού επιπέδου και μια νέα εφεύρεση του τροχού. Βρίσκοντας ένα μοντέλο JavaScript που θα μπορούσα να δουλέψω, μου επέτρεψε να ολοκληρώσω την κατασκευή του αυτοκινήτου.

Την ημέρα 33 ολοκλήρωσα την τελευταία από τις προηγμένες προκλήσεις κωδικοποίησης. Το επόμενο έργο (το πρώτο από τα έργα Advanced Front End Development) απαιτούσε την κατασκευή ενός JS Calculator. Ήταν ωραίο να ψάχνω πίσω στην πλευρά των πραγμάτων HTML / CSS. Ανέκαμψα την πρόκληση με ζωντανή κωδικοποίηση στο κανάλι Twitch της FCC και κατέληξα να ολοκληρώσω το έργο με ζωντανό κοινό 24 ατόμων. Αυτή ήταν μια υπέροχη εμπειρία που μου ζήτησε να εξηγήσω τον κωδικό μου καθώς τον έγραψα. Η ζωντανή κωδικοποίηση έχει επίσης μια ενσωματωμένη ανάγκη για διατήρηση της δυναμικής. Επιβραβεύει ένα στυλ κωδικοποίησης "fast fast and break stuff" μέσω μιας πιο βαρύς ερευνητικής μεθόδου.

ΗΜΕΡΑ 40

Η κωδικοποίηση του παιχνιδιού Tic-Tac-Toe αποδείχθηκε (για μένα) το πιο εξαντλητικό έργο όλων. Για μένα, η κωδικοποίηση του AI δεν ήταν πολύ διασκεδαστική ή ικανοποιητική. Κατά τη γνώμη μου, το τελικό αποτέλεσμα μου ήταν αδύναμο AI και μια διεπαφή sub-par. Εκείνη την εποχή αναρωτιόμουν αν ίσως η δημιουργία διαδραστικών πραγμάτων σαν αυτό δεν ήταν το πάθος μου.

ΗΜΕΡΑ 45

Δούλεψα πολύ σκληρά στο τελικό έργο, το οποίο ζήτησε ένα αντίγραφο JavaScript του παιχνιδιού της δεκαετίας του 1970, Simon, πλήρης με μια προαιρετική «αυστηρή λειτουργία» και μια αυξανόμενη ταχύτητα παιχνιδιού. Ήμουν αποφασισμένος να το κάνω εξαιρετικό. Από αυτό το γράψιμο, εξακολουθώ να νιώθω ότι ο Simon μου είναι μία από τις καλύτερες εκδόσεις εκεί έξω Την ημέρα 45 ολοκλήρωσα το έργο και άρπαξα το πιστοποιητικό μου για το Front End Development!

Τελικά στατιστικά:

77 ώρες αναφοράς και μάθησης

67 ώρες ανάπτυξη λογισμικού

Επικοινωνία 41 ωρών (συμπεριλαμβανομένης της συνομιλίας FCC)

= 185 ώρες για 45 ημέρες (ή ~ 4 ώρες / ημέρα)

Κατέληξα να τελειώσω το πρόγραμμα σπουδών περίπου στο μισό χρόνο.

Δεν μπορώ να προτείνω το πρόγραμμα του Free Code Camp για το Front End Dev. Ανεξάρτητα από το πόσο καιρό σας παίρνει, είναι δωρεάν, είναι εύκολο να ξεκινήσετε και έχει μια έξυπνη και προσβάσιμη κοινότητα (αν το λέω και εγώ ο ίδιος).

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

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