Από ανθρωπιστής έως προγραμματιστής σε αριθμούς και χρώματα

Γεια σου, Χαμπρ! Σε διαβάζω πολύ καιρό, αλλά ακόμα δεν έχω καταφέρει να γράψω κάτι δικό μου. Ως συνήθως -σπίτι, δουλειά, προσωπικές υποθέσεις, εδώ κι εκεί - και τώρα αναβάλλατε ξανά τη συγγραφή του άρθρου για καλύτερες εποχές. Πρόσφατα, κάτι άλλαξε και θα σας πω τι με ώθησε να περιγράψω ένα μικρό κομμάτι της ζωής μου σχετικά με το να γίνω προγραμματιστής με παραδείγματα, που μπορεί να είναι χρήσιμα για αρχάριους, αμφισβητίες και παιδιά που ειλικρινά δεν πιστεύουν στον εαυτό τους. Πηγαίνω!

Θα ξεκινήσω από μακριά - ως παιδί, οι γονείς μου μου έδωσαν έναν τεράστιο αριθμό εγκυκλοπαίδειες και βιβλία - για όλες τις περιστάσεις. Οποιοσδήποτε λόγος να κάνεις δώρο είναι ένα βιβλίο. Τότε, φυσικά, δεν τους ήμουν ευγνώμων, αλλά απλώς το θεωρούσα δεδομένο. Αλλά με την πάροδο του χρόνου, μιλώντας με άλλους ανθρώπους, έβγαλα ένα περίεργο συμπέρασμα: πολλοί δεν ήξεραν τι ήξερα, δεν άκουσαν ονόματα, έννοιες, έννοιες, δεν διάβασαν συγγραφείς και δεν είδαν ταινίες. Αυτή ακριβώς τη στιγμή, ήρθε μια διορατικότητα: ορίστε, η ΓΝΩΣΗ. Για πολύ καιρό, δεν ήξερα πού θα μπορούσα να τα εφαρμόσω όλα αυτά, γιατί η απλή επικοινωνία με ανθρώπους δεν πληρώνει με κανέναν τρόπο και το επάγγελμα της αφήγησης ενδιαφέρουσες ιστορίες δεν υπήρχε εκείνη την εποχή (τώρα υπάρχουν μερικοί bloggers , YouTube, TED-ED, κ.λπ.). Σπούδασα αγγλικά, πολύ και επίπονα, γιατί... "Ήταν πολλά υποσχόμενο και θα ήταν χρήσιμο στο μέλλον" - εκείνη την εποχή, φυσικά, δεν υπήρχε εμπιστοσύνη στο μελλοντικό μου επάγγελμα, οπότε μέσω του "Δεν θέλω" με οδήγησαν σε μαθήματα ξανά και ξανά. Τώρα, φυσικά, είμαι απίστευτα ευγνώμων που δεν πήδηξα εκείνη τη στιγμή και κατάφερα να έχω μια καλή βάση, η οποία, φυσικά, έπαιξε σημαντικό ρόλο στην επιλογή του μελλοντικού μου επαγγέλματος.

Δεν είμαι ένας απλός ουμανιστής, αλλά ένας «υβρίδιο»: έχοντας προηγμένες δεξιότητες και αγαπώ να οργανώνω τις δραστηριότητες των ανθρώπων, ενδιαφέρομαι, ταυτόχρονα, για τη φυσική, τη χημεία, τα οικονομικά φαινόμενα, την επιστήμη των υπολογιστών και το δημοφιλές υλικό επιστήμης. Στο σχολείο έδωσα ακόμη και εξετάσεις στη φυσική και μπήκα σε τεχνικό πανεπιστήμιο με προϋπολογισμό! Έχοντας κάνει αίτηση σε πολλά πανεπιστήμια ταυτόχρονα σε εκ διαμέτρου αντίθετες σχολές, μέχρι την τελευταία στιγμή δεν ήμουν σίγουρος τι να διαλέξω. Αφού υποβάλαμε αίτηση στον προϋπολογισμό, υπογράψαμε όλα τα χαρτιά και μιλήσαμε με τον κοσμήτορα, ο πατέρας μου και εγώ ήρθαμε σπίτι και ξεκινήσαμε τις δουλειές μας με μια αίσθηση ολοκλήρωσης.

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

Στο τέλος, φτάσαμε στο πανεπιστήμιο, πήραμε τα έγγραφα (αν και αυτό ήταν πιθανότατα παράνομο, αφού είχαν περάσει οι εγγραφές) και πήγαμε να κάνουμε αίτηση σε άλλο πανεπιστήμιο. Ο πατέρας μου είχε τότε ένα πολύ κοντό κούρεμα, είχε μόλις κάνει επέμβαση στα μάτια και είχε αφαιρέσει τα γυαλιά του και γενικά έμοιαζε με έναν τυπικό «αδελφό από τη δεκαετία του '90», παρά τις 2 ανώτερες σπουδές και το διδακτικό υπόβαθρο. Φυσικά, δεν μπορούσαν να αρνηθούν έναν τόσο πολύχρωμο χαρακτήρα. Από τότε δεν μετάνιωσα ποτέ που μπήκα στη σχολή Ξένων Γλωσσών.

Δουλεύοντας με παιδιά, συνειδητοποίησα δύο πράγματα:

  • Μου αρέσει πολύ, μπορώ να πω μια ενδιαφέρουσα ιστορία, να συνδυάσω πληροφορίες από βιβλία και εγκυκλοπαίδειες στην ιστορία και, το πιο σημαντικό, να επιτύχω αποτελέσματα στον τομέα της διδασκαλίας αγγλικών
  • Υπάρχει καταστροφική έλλειψη χρημάτων, ακόμα κι αν κάνετε μια εργασία μερικής απασχόλησης (ιδιαίτερα μαθήματα + κατασκήνωση γλώσσας για παιδιά για όλες τις εποχές)

Ως αποτέλεσμα, μετά από αρκετά χρόνια εργασίας ως δάσκαλος (Αγγλικά, Γερμανικά και λίγα Ισπανικά), αποφάσισα να εγκαταλείψω το επάγγελμα, γιατί... απλά κάηκε. Μάλλον, πολλοί από εσάς γνωρίζετε αυτό το συναίσθημα: φαίνεται ότι η δουλειά είναι η ίδια, οι ίδιοι άνθρωποι, η δουλειά, ό,τι σας ταίριαζε χθες - αλλά η ψυχή αντιστέκεται κάθε εργάσιμη μέρα, τα λάθη των παιδιών έχουν γίνει εσωτερικά ενοχλητικά, Η ειρήνη που ήταν πάντα κάπου μέσα, άρχισε να εξαφανίζεται και πανικόβλητες σκέψεις εμφανίστηκαν να δραπετεύσουν κάπου.

Κατά τη διάρκεια της καριέρας μου, σκεφτόμουν τη δυνατότητα να αλλάξω το επάγγελμά μου σε κάτι πιο σχετικό, που δεν σχετίζεται με τη συνεργασία με ανθρώπους, έχοντας κάνει περίπου 10 προσπάθειες να σπουδάσω ανεξάρτητα γλώσσες προγραμματισμού. C++, C#, Delphi, Python, Pascal, Java - όλα αυτά ήταν πολύπλοκα, ακατανόητα, εκφοβιστικά, χρονοβόρα και μη παραγωγικά. Στην πραγματικότητα, απλώς δεν είχα αρκετά κίνητρα: ούτε η κρίση του 2008-2009 ούτε τα προβλήματα του 2014-2015 άλλαξαν τη στάση μου απέναντι στη δουλειά. Και όταν ξεκίνησε η συναισθηματική εξάντληση, έγινε σαφές ότι δεν μπορούσα να συνεχίσω να εργάζομαι έτσι, για χάρη των παιδιών, τα οποία δεν ήθελα να τραυματίσω.

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

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

  1. Επιλέξτε το πιο απλό, το πιο γρήγορο από άποψη αποτελεσμάτων και από την αρχή μια γραμμή εργασίας που δεν πληρώνει λιγότερο από ό,τι στο προηγούμενο μέρος σας. Έγινε ανάπτυξη frontend. Κρίνετε μόνοι σας: γνωρίζοντας Αγγλικά σε επίπεδο C2, ο περισσότερος κώδικας αντιπροσώπευε για μένα αγγλικές εντολές αναμεμειγμένες με σύνταξη που θυμόμουν αρκετά καλά (οδηγείται από σκέψεις του στυλ «είτε αυτό ή δεν δουλεύετε καθόλου»). Το αποτέλεσμα στο μπροστινό μέρος είναι αμέσως ορατό - αυτή είναι μια ολοκληρωμένη σελίδα. Η πληρωμή δεν είναι επίσης κακή, από 40 χιλιάδες ρούβλια (σύμφωνα με το hh.ru). Ο μισθός μου τότε ήταν περίπου 60-65 + προσωπικές μεροκάματα για ~20 χιλιάδες. Αυτό δεν ήταν αρκετό, αλλά όταν πρέπει να παλέψεις με τον εαυτό σου μόνο και μόνο για να έρθεις στη δουλειά, κανένα χρηματικό ποσό δεν σε κάνει ευτυχισμένο.
  2. Πληρωμή και σχέδιο δράσης: Στόχευα για 60+ ρούβλια, οπότε άρχισα να μελετώ τη λίστα των σχετικών τεχνολογιών front-end: HTML, CSS, JavaScript (ES5-6), React. Αυτά έχουν συμπληρωθεί με εργαλεία που διευκολύνουν τον συντονισμό και την εργασία με κώδικα σε διάφορα στάδια: jQuery, Git, SASS, webpack, VS Code. Αυτό κατέστησε δυνατή τη σύνταξη ενός σχεδίου για τη σταδιακή μελέτη όλων αυτών, ταυτόχρονα με την εφαρμογή της γνώσης στη δημιουργία ιστοσελίδων, την αποσυναρμολόγηση και την εφαρμογή διατάξεων σε κώδικα και τη διαβούλευση με φίλους.
  3. Αυτο-μελέτη: Από τον Φεβρουάριο του 2019 έως τον Ιούνιο του 2019, τα μελέτησα όλα αυτά, μελετώντας επιμελώς την τεκμηρίωση, διαβάζοντας το StackOverFlow και αναζητώντας απαντήσεις στις πιο ανόητες ερωτήσεις που θα μπορούσαν να προκύψουν. Ήταν δύσκολο για μένα - μερικές φορές ο κώδικας απλά δεν ήθελε να λειτουργήσει όπως φανταζόμουν. Αλλά δεν απελπήθηκα - η ανάλυση του παραδείγματος κώδικα + η τεκμηρίωση πρότεινε πού έκανα λάθος, τι έβαλα λάθος και τι δεν ολοκλήρωσα. Τότε ήταν που επαίνεσα καθημερινά τους γονείς μου που επέμεναν να μάθω αγγλικά από παιδί - άλλωστε όλα τα σχετικά έγγραφα ήταν μέσα.

Το HTML και το CSS ήταν το πιο εύκολο για μένα - περίπου 2 εβδομάδες. Κατά τη διάρκεια αυτής της περιόδου, συγκέντρωσα μια διάταξη για τον ιστότοπο κάποιου σχεδιαστή χρησιμοποιώντας καθαρό HTML και CSS και συγκέντρωσα όλα τα πιθανά δεκανίκια, μελέτησα ένα σωρό προσεγγίσεις και συνειδητοποίησα ότι η χειροκίνητη σύνταξη όλων αυτών των γραμμών ήταν απίστευτα χρονοβόρα. Μετά από λίγο γκουγκλάρισμα, συνάντησα αμέσως το Bootstrap 4 και, έχοντας εξοικειωθεί με τις δυνατότητες, άρχισα να διαβάζω την τεκμηρίωση. Μετά από μερικές μέρες προσεκτικά καπνιστών εγχειριδίων, που διανθίστηκαν με την παρακολούθηση διαφόρων εκπαιδευτικών βίντεο στο YouTube, άρχισα να δημιουργήσω τον δικό μου απόλυτα ανταποκρινόμενο ιστότοπο, με εικόνες, κάρτες και κινούμενα σχέδια. Αυτό κράτησε περίπου 2 εβδομάδες, κατά τις οποίες ανακάλυψα το jQuery ως εργαλείο χειρισμού DOM.

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

Το πιο δύσκολο πράγμα ξεκίνησε στο στάδιο της εκμάθησης καθαρής JavaScript - μια πολύ σοβαρή ερώτηση προέκυψε στο μυαλό μου: γιατί να το μάθω αυτό αν το jQuery είναι πιο εύκολο; Πήγα στο Google για μια απάντηση: αποδείχθηκε ότι το jQuery θα πάει σύντομα σε έναν άλλο κόσμο, με εξαίρεση τον κώδικα παλαιού τύπου, και όλοι οι πραγματικοί προγραμματιστές χρησιμοποιούν JS, επειδή Τα πλαίσια έρχονται και παρέρχονται, αλλά το καθαρό JS εξακολουθεί να είναι σχετικό. Θέλουμε να βρούμε δουλειά και να το κάνουμε για πολύ καιρό, σωστά; Άρχισα λοιπόν να βλέπω βίντεο, να προσπαθώ να γράψω κώδικα και λειτουργίες σε ιστοτόπους εκμάθησης και να ξαναγράφω τα προηγούμενα έργα μου. Φυσικά, στην αρχή αποδείχτηκε λίγο λιγότερο από το τίποτα, αλλά μετά από μερικές μέρες δεν σκεφτόμουν πλέον να γράψω κάθε είδους λειτουργίες βέλους (που αποδείχθηκαν απλούστερες από τις κανονικές), δουλεύοντας με επιλογείς document.getElementById , ταξινόμηση πινάκων και εξαγωγή στοιχείων αντικειμένων χρησιμοποιώντας .map, .filter, .reduce, εργαστεί με API και AJAX κ.λπ.

Και δεν έκανα λάθος - ενώ μάθαινα το React, συνάντησα έναν τόνο κώδικα JS που έπρεπε να αναλυθεί και να κατανοηθεί, διαφορετικά τίποτα δεν θα λειτουργούσε. Παίρνοντας μια βαθιά ανάσα και λυπώντας τον εαυτό μου λίγο, άρχισα να εμβαθύνω στην ουσία της διαδικασίας με διπλάσια δύναμη. Πολύ σύντομα αποδείχθηκε ότι το React είναι ένα ελαφρώς τροποποιημένο HTML (JSX) + ένα κιτ διαφορετικών εργαλείων που διευκολύνουν την ενημέρωση μιας σελίδας και τη δημιουργία μιας SPA (εφαρμογή μιας σελίδας). Προσθέστε μια πρέζα JS και έχουμε κινούμενα σχέδια, φόρτωση και μεταβάσεις. Έχοντας συνηθίσει τη σύνταξη, πήρα την πρώτη διάταξη ηλεκτρονικού καταστήματος που συνάντησα και έγραψα ένα απλό SPA που μου επέτρεπε να επιλέγω κατηγορίες, να πλοηγούμαι στον ιστότοπο και να αλλάζω μετρητές ειδών στο καλάθι.

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

Σύνδεσμος με εκπαιδευτικό υλικό, κανάλια YouTube, άρθρα και όλα όσα χρησιμοποίησα στην εκπαίδευσή μου.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο