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

Ήμουν πρωτοεμφανιζόμενος και ξεκίνησα τον αυτο-μελέτη προγραμματισμού περίπου Ιανουάριος - Φεβρουάριος Τον Μάιο, έλαβα την προσφορά πρακτικής άσκησης σε μια γνωστή εταιρεία.

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

Ωστόσο, είναι απολύτως δυνατό να μπείτε στον κλάδο με αυτο-μελέτη εάν είστε αυστηροί και μελετήσετε τον σωστό τρόπο.

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

Βήμα 1: Εκμάθηση των βασικών

Το freeCodeCamp και το CodeCademy είναι οι καλύτεροι πόροι εάν ξεκινάτε, από κάτω.

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

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

Αυτό που έκανα:

Προσωπικά, πάντα με ενδιέφερε περισσότερο να δουλεύω στο front-end. Για έναν προγραμματιστή ιστού, μια βαθιά γνώση των JavaScript, HTML και CSS είναι αναμφισβήτητα το πιο σημαντικό πράγμα.

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

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

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

Βήμα 2: Δημιουργία έργων

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

Εάν προσπαθείτε να βρείτε ιδέες για έργα, μπορείτε να κάνετε το Google "100 ιδέες έργου σε γλώσσα X" και συνήθως κάνει το κόλπο. Επίσης, ρίξτε μια ματιά σε άλλα repos του GitHub και μάθετε από τον κώδικά τους.

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

Αυτό που έκανα:

Όταν έλαβα την προσφορά μου, είχα κάνει 4 - 5 έργα. Ξεκίνησα με μια μικρή εφαρμογή διαδικτυακού παιχνιδιού πληκτρολόγησης που διαμορφώθηκε από το GitHub ενός άλλου μαθητή και έμαθα πολλά από τον κωδικό τους και μετά πρόσθεσα το δικό μου. Σταδιακά προχώρησα σε πιο περίπλοκα έργα. Ακολουθεί μια λίστα με όλα τα έργα που έκανα πριν πάρω την πρακτική μου, τις περιγραφές τους και τις στοίβες που χρησιμοποίησα:

  1. Διάφορα άλλα μικρά παιχνίδια όπως το Minesweeper, όλα φτιαγμένα με React και στιλ με CSS.
  2. Ένας χάρτης για την οπτικοποίηση πάνω από μισό εκατομμύριο σημείων δεδομένων κίνησης που έχουν δημιουργηθεί με Javascript και Mapbox.
  3. Μια εφαρμογή React Native που επιτρέπει στους χρήστες να παρουσιάζουν τις καλύτερες φωτογραφίες τους, με το backend να εφαρμόζεται στο Node.js και το Mongoose, που φιλοξενείται στο Heroku.

Βήμα 3: Αίτηση για θέσεις εργασίας

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

  1. Το LinkedIn, το Glassdoor και το Easy Easy Apply δεν είναι φίλοι σας. Με αυτόν τον τύπο δημοσιεύσεων, ο στρατολόγος λαμβάνει τόσες πολλές εφαρμογές που συνήθως χρησιμοποιούν ATS (Application Tracking System) για να φιλτράρει όλα τα βιογραφικά. Εάν δεν έχετε προηγούμενη εμπειρία ή εντυπωσιακά έργα, οι πιθανότητες να περάσετε μέσω του φίλτρου είναι πολύ μικρές.
  2. Το συνοδευτικό γράμμα είναι ένα δίκοπο σπαθί. Όταν γίνει σωστά, μπορεί πραγματικά να σας διαφοροποιήσει από τους υπόλοιπους υποψηφίους. Ωστόσο, όταν γίνει λάθος, μπορεί να επιδεινώσει την κατάστασή σας. Η συμβουλή μου αν έπρεπε να γράψετε ένα είναι να το προσαρμόσετε, να το προσαρμόσετε, να το προσαρμόσετε. Στοχεύστε τη συνοδευτική επιστολή σας ειδικά στην εταιρεία για την οποία υποβάλλετε αίτηση. ΜΗΝ στέλνετε την ίδια γενική συνοδευτική επιστολή σε κάθε εταιρεία, καθώς οι υπεύθυνοι πρόσληψης γνωρίζουν ότι έχετε ήδη στείλει 100 από αυτούς. Τέλος, βεβαιωθείτε ότι δεν υπάρχουν γραμματικά λάθη. Ένα τυπογραφικό λάθος είναι αρκετό για να σας απορρίψει ο στρατολόγος.
  3. Είχα τη μεγαλύτερη επιτυχία είτε να υποβάλω αίτηση απευθείας στον ιστότοπο της εταιρείας είτε μέσω ψυχρής πρόσληψης μέσω email (ή ακόμα και του Διευθύνοντος Συμβούλου εάν η εταιρεία είναι μάλλον μικρή). Εάν η εταιρεία δεν διαθέτει δημόσιο ηλεκτρονικό ταχυδρομείο, συνήθως μπορείτε να μαντέψετε καθώς είναι σχεδόν πάντα στη φόρμα hello at companyname dot com. Έχουν πολύ περισσότερες πιθανότητες να δουν το βιογραφικό σας από ό, τι αν το υποβάλατε μέσω της υπηρεσίας Indeed / Glassdoor. Μπορείτε να έχετε ένα πρότυπο και να αλλάξετε ελαφρώς τη διατύπωση για διαφορετικές εταιρείες.
  4. Έχετε παχύ δέρμα. Οι εταιρείες σας απορρίπτουν για κάθε είδους τυχαίους λόγους και οι στρατολογητές σας φάνταζαν συνεχώς. Είναι φυσιολογικό. Εάν έχετε ένα λιγότερο ελκυστικό βιογραφικό, έχετε λιγότερες πιθανότητες να πάρετε συνέντευξη. Συνεχίστε να εφαρμόζετε και μην τα παρατάτε. Δεν τελειώνει ποτέ μέχρι να σταματήσετε να προσπαθείτε.

Βήμα 4: Συνέντευξη

Όταν φτάσετε επιτέλους στη γλυκιά συνέντευξη, φροντίστε να προετοιμαστείτε για αυτό. Υπάρχουν πολλοί πόροι στο διαδίκτυο που σας διδάσκουν πώς να αποκτήσετε μια τεχνική συνέντευξη. Εάν δεν το έχετε διαβάσει ήδη, το Cracking the Coding Interview είναι μια πολύ καλή ανάγνωση.

Οι τεχνικές συνεντεύξεις είναι πολύ αγχωτικές. Δεν υπάρχει λύση γι 'αυτούς - πρέπει να υποβάλετε ερωτήσεις σχετικά με τον αλγόριθμο. Το Leetcode προσφέρει πολλές καλές ερωτήσεις για εξάσκηση.

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

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

Τι έκανα :

Για να ξεκινήσετε: είναι εντάξει να πιπιλίζετε σε συνεντεύξεις. Έκαμψα εντελώς τα πρώτα μου. Είναι ενοχλητικό να θυμάσαι.

Συνειδητοποίησα ότι δεν ήμουν αρκετά προετοιμασμένος για τις τεχνικές ερωτήσεις. Άρχισα να κάνω Leetcode 2 - 3 ώρες την ημέρα. Το πιο σημαντικό είναι να μην ξοδεύετε πολύ καιρό σε ένα μόνο πρόβλημα. Δεν έχετε απεριόριστο χρόνο στη συνέντευξή σας. Αντ 'αυτού, βάλτε ένα χρονόμετρο, πείτε 10 λεπτά για μια εύκολη ερώτηση και 20 λεπτά για μια μεσαία (συνήθως δεν θα λάβετε σκληρές ερωτήσεις Leetcode στις συνεντεύξεις σας εάν υποβάλλετε αίτηση για θέση εισόδου ή για πρακτική άσκηση).

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

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

Πόροι: πού να βρείτε θέσεις εργασίας και πρακτική άσκηση

Αυτό που συνήθιζα να βρίσκω πρακτική άσκηση (εκτός από το Glassdoor, Indeed, και Linkedin) περιλαμβάνουν το Breakout List και το AngelList.

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

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

συμπέρασμα

Η εύρεση της πρώτης εργασίας / πρακτικής σας μπορεί να είναι μια μακρά, απογοητευτική και κουραστική διαδικασία. Ωστόσο, η εμπειρία που αποκτάτε από τον πραγματικό χώρο εργασίας το αξίζει εντελώς.

Εδώ είναι μια σύγκριση του έργου που έκανα μετά την πρακτική άσκηση μου και ενός από τα πρώτα μου έργα ποτέ.

Αρκετή διαφορά, σωστά;

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

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

Καλή τύχη σε όλους!