Πώς προσγειώθηκα μια εργασία μηχανικής λογισμικού μετά από ένα χρόνο σκληρής δουλειάς

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

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

Το μη παραδοσιακό μου υπόβαθρο

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

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

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

Επιλέγοντας το σωστό μονοπάτι

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

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

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

Ακονίστε την τέχνη σας

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

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

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

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

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

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

Ας φτιάξουμε κάτι

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

Το τελευταίο έργο capstone ονομάστηκε MVP, επίσης γνωστό ως Ελάχιστο Βιώσιμο Προϊόν. Είχαμε βασικά 72 ώρες για να δημιουργήσουμε οτιδήποτε θέλαμε, αρκεί να ήταν μια εφαρμογή πλήρους στοίβας. Ο περιορισμένος χρόνος ήταν μια πρόκληση και έπρεπε να σιγουρευτώ ότι μπορούσα να διαχειριστώ τον χρόνο μου αποτελεσματικά. Δεν θα μπορούσα να είμαι υπερβολικά φιλόδοξος με το έργο μου, αλλά ήθελα επίσης να είναι κάτι για το οποίο θα ήμουν περήφανος.

Η πρώτη μου ιδέα ήταν να δημιουργήσω μια αποκεντρωμένη εφαρμογή που θα χρησιμοποιούσε το blockchain Ethereum. Ακούστηκε εντυπωσιακό για τους εργοδότες, αλλά δεν ήμουν εξοικειωμένος με τη γλώσσα Solidity και δεν ήμουν σίγουρος αν θα μπορούσα να ολοκληρώσω ολόκληρο το dapp στο χρόνο. Μια άλλη ιδέα για την οποία θα αστειευόμουν ήταν μια εφαρμογή αξιολόγησης boba για όλα τα κοντινά καταστήματα boba που θα έκαναν οι συμμαθητές μου.

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

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

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

Το άλεσμα

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

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

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

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

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

«Η επιτυχία δεν είναι τελική, η αποτυχία δεν είναι μοιραία: είναι το θάρρος να συνεχίσουμε αυτό που μετράει». - Ουίνστον Τσώρτσιλ

Όλα τα παιχνίδια αριθμών

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

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

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

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

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

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

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

Η έντιμη σκληρή δουλειά αποδίδει

Μέχρι το τέλος της τριμηνιαίας αναζήτησης εργασίας μου, με προσκάλεσαν σε πέντε επιτόπιες συνεντεύξεις και έλαβα τρεις προσφορές. Μετά από πολλή σκέψη, είμαι στην ευχάριστη θέση να ανακοινώσω ότι θα συμμετάσχω στη Zume Inc. στο San Francisco Bay Area. Λατρεύω την αποστολή και όλους που έχω γνωρίσει. Όλη η σκληρή μου δουλειά και οι μεγάλες νύχτες τελικά απέδωσαν και δεν θα μπορούσα να είμαι πιο ευτυχισμένος με το που είμαι στη ζωή μου τώρα. Είμαι τόσο ευγνώμων για όλους που με υποστήριξαν σε αυτό το ταξίδι. Ξέρω ότι θα προκαλώ κάθε μέρα και θα επηρεάζω περισσότερο τη δουλειά μου.

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

Σας εύχομαι καλή τύχη στις προσπάθειές σας - Andrew

Μη διστάσετε να συνδεθείτε και να με ακολουθήσετε στο LinkedIn, καθώς εμπνέω όσους θέλουν να εισέλθουν στον κλάδο της τεχνολογίας: www.linkedin.com/in/andrew-ngo/