Ένας οδηγός επιβίωσης Μηχανικής Λογισμικού

Πόροι που θα σας βοηθήσουν στην αρχή της καριέρας σας

Τα πρώτα χρόνια της καριέρας μου ήταν μια περίοδος έντονης μάθησης.

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

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

Θα καλύψω:

  • Πώς να αξιοποιήσετε στο έπακρο τις συνεντεύξεις,
  • Πώς να επιβιώσετε (και να ευδοκιμήσετε) στην εργασία σας ως μηχανικός λογισμικού,
  • Και ποιοι πόροι πρέπει να εξετάσετε όταν εξετάζετε τη συνεχή βελτίωση

Συνεντεύξεις

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

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

Προετοιμασία για μάχη

Εάν σκέφτεστε μια καριέρα στη Μηχανική Λογισμικού, φροντίστε να μάθετε μερικές από τις πιο συχνές ερωτήσεις συνέντευξης προγραμματισμού, όπως το "FizzBuzz":

«Γράψτε ένα πρόγραμμα που εκτυπώνει τους αριθμούς από 1 έως 100. Αλλά για πολλαπλάσια των τριών εκτύπωσης« Fizz »αντί για τον αριθμό και για τα πολλαπλάσια των πέντε εκτύπωσης« Buzz ». Για αριθμούς που είναι πολλαπλάσια των τριών και πέντε εκτύπωσης «FizzBuzz». "(Κωδικοποίηση τρόμου)

Ακούγεται αρκετά απλό, έτσι;

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

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

Φυσικά, θα πρέπει να γνωρίζετε περισσότερα από το FizzBuzz για να επιβιώσετε από τις συνεντεύξεις σας. Πρέπει επίσης να βεβαιωθείτε ότι γνωρίζετε:

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

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

  • "Cracking the Coding Interview", ένα φανταστικό βιβλίο που περιλαμβάνει πολλά προβλήματα κωδικοποίησης και τις λύσεις τους, καθώς και περιλήψεις για όσα πρέπει να γνωρίζετε για να τα λύσετε
  • CodeWars, ένας ιστότοπος που έχει μια μεγάλη συλλογή προβλημάτων κωδικοποίησης που μπορείτε να επιλύσετε στο πρόγραμμα περιήγησης χρησιμοποιώντας μια ευρεία επιλογή γλωσσών. Το πιο χρήσιμο μέρος είναι να δούμε πώς άλλοι χρήστες έλυσαν το ίδιο πρόβλημα. Θα δείτε διαφορετικές προσεγγίσεις για το ίδιο πρόβλημα και θα μάθετε νέα εργαλεία στη γλώσσα της επιλογής σας.

Δώστε στον εαυτό σας αυτό το επιπλέον πλεονέκτημα

Υπάρχουν πολλά πράγματα που μπορείτε να κάνετε που θα σας δώσουν κάτι επιπλέον.

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

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

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

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

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

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

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

Συνέντευξη από τον ερευνητή σας

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

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

Ακολουθούν ορισμένα παραδείγματα ερωτήσεων που μπορείτε να κάνετε:

"Πώς θα μοιάζει μια τυπική εργάσιμη ημέρα;"

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

Κόκκινη σημαία: " Δεν είμαι σίγουρος." → Σημαίνει ότι οι άνθρωποι που σας παίρνουν συνέντευξη δεν θα είναι στην ομάδα σας ή δεν έχουν ξεκάθαρη ιδέα γιατί σας προσλαμβάνουν.

"Πώς δοκιμάζετε το λογισμικό σας;"

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

Κόκκινη σημαία: « Απλά δεν γράφουμε σφάλματα, χαχα». → Αυτοί οι άνθρωποι είναι ακριβώς αυτοί που γράφουν σφάλματα.

"Τι σύστημα ελέγχου έκδοσης χρησιμοποιείτε;"

Τα συστήματα ελέγχου εκδόσεων είναι εξαιρετικά χρήσιμα για τη συνεργασία και δεν υπάρχουν λόγοι για μη χρήση σε επαγγελματικό περιβάλλον.

Κόκκινη σημαία # 1: "Ω, σύστημα ελέγχου έκδοσης;" → Τρέξτε μακριά, πολύ μακριά.

Κόκκινη σημαία # 2: gt; " → Υποδεικνύει ότι πιθανότατα δεν συμβαδίζουν με τις ώρες και δεν έχουν ενημερώσει την υποδομή τους εδώ και πολύ καιρό.

"Κάνετε κριτικές από ομοτίμους;"

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

Κόκκινη σημαία: «Εμπιστευόμαστε απλώς ο ένας τον άλλον!» → Πολύ πιθανό ότι οι ανώτεροι προγραμματιστές είναι πολύ προστατευτικοί στον κώδικα τους και δεν είναι ικανοί να λαμβάνουν σχόλια.

«Ποια προγράμματα έχετε για συνεχή εκπαίδευση;»

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

Κόκκινη σημαία: «Εννοείς να διαβάζεις πράγματα στο διαδίκτυο στον ελεύθερο χρόνο σου;» → Η εταιρεία είτε δέχεται μετρητά είτε βλέπει τους προγραμματιστές ως αντικαταστάσιμες και όχι ως μακροπρόθεσμες επενδύσεις.

"Ποια είναι η διαδικασία ανάπτυξης λογισμικού που χρησιμοποιείτε;"

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

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

«Πώς αντιμετωπίζετε το τεχνικό χρέος;»

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

Κόκκινη σημαία: "Εστιάζουμε αποκλειστικά σε νέες λειτουργίες." → Η βάση κώδικα τους είναι χάος ή θα είναι σύντομα.

"Ποια είναι η κουλτούρα της εταιρείας σας;"

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

Εργασία ως Μηχανικός Λογισμικού

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

Συγχαρητήρια, είστε επίσημα μηχανικός!

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

Καλός κώδικας βιομηχανίας

Ο κώδικας καλής βιομηχανίας έχει τις ακόλουθες ιδιότητες, με αυτήν τη σειρά:

  • Είναι αναγνώσιμο , επειδή ο κώδικας διαβάζεται και διατηρείται συχνότερα από ό, τι είναι γραμμένος. Η πρόθεση του κώδικα πρέπει να είναι ξεκάθαρη σε άλλους προγραμματιστές χρόνια μετά τη σύνταξή του.
  • Αμυντική, όπως ακολουθεί τις βέλτιστες πρακτικές αμυντικής κωδικοποίησης. Η αμυντική κωδικοποίηση είναι ένα θέμα από μόνο του, αλλά η ουσία του είναι: Πρέπει να διασφαλίσετε ότι η ακατάλληλη χρήση τάξεων και μεθόδων που έχετε γράψει δεν θα οδηγήσει στον κώδικά σας να καταστρέψει το λογισμικό.
  • Βελτιστοποιημένη , η οποία είναι η τελευταία σε αυτήν τη λίστα επειδή τις περισσότερες φορές, δεν θα χρειαστεί πραγματικά να ανησυχείτε. Αυτό δεν σημαίνει ότι πρέπει να γράψετε κακό κώδικα που κάνει κάτι στο O (n³) όταν υπάρχει γραμμική λύση. Ωστόσο, οι προγραμματιστές είναι γενικά πρόθυμοι να δοκιμάσουν και να βελτιστοποιήσουν υπερβολικά όταν δεν υπάρχει ανάγκη για αυτό, συχνά εις βάρος της αναγνωσιμότητας και της υπευθυνότητας του κώδικα. Πρέπει πάντα να είστε σε θέση να αποδείξετε ότι απαιτείται μια συγκεκριμένη βελτιστοποίηση που θυσιάζει αυτές τις ιδιότητες.

Τώρα που ξέρετε πώς να γράψετε έναν καλό βιομηχανικό κώδικα:

Δεν θα κάνετε πολύ κωδικοποίηση

Μπορεί να αποτελεί έκπληξη, αλλά τις περισσότερες φορές δεν θα γράφετε νέο κώδικα, αλλά αντίθετα, θα είστε:

  • Εντοπισμός σφαλμάτων
  • Ανάγνωση υπάρχοντος κώδικα
  • Σε συναντήσεις ή γράψιμο email
  • Ερευνώντας τι πρέπει να κάνετε, ώστε να μην γράφετε κώδικα

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

Εντοπισμός σφαλμάτων και ανάγνωση κώδικα

  • Θα χρειαστείτε πολύ περισσότερα από το εντοπισμό σφαλμάτων χρησιμοποιώντας δηλώσεις εκτύπωσης. Όλες οι ευρέως χρησιμοποιούμενες γλώσσες και τεχνολογικές στοίβες διαθέτουν μια ποικιλία ισχυρών εργαλείων. Μάθετε να τα χρησιμοποιείτε καθώς θα κάνουν τον εντοπισμό σφαλμάτων ένα αεράκι και θα σας εξοικονομήσουν αμέτρητες ώρες.
  • Κατανοήστε τη βάση κώδικα. Οι περισσότερες τεχνολογικές στοίβες έχουν κάποιο είδος εργαλείων δημιουργίας γραφημάτων κώδικα που θα σας βοηθήσουν να κατανοήσετε τη δομή της βάσης κώδικα. Τα εταιρικά IDE έχουν γενικά ενσωματωμένη τη λειτουργικότητα. Μπορείτε επίσης να εξερευνήσετε τον κώδικα χρησιμοποιώντας εργαλεία όπως το ReSharper, το grep ή το Sourcegraph.
  • Κατανοήστε το προϊόν. Υ ou'll να εκπλαγείτε πόσοι προγραμματιστές δεν ξέρω πώς το λογισμικό υποτίθεται ότι το έργο πριν να προσπαθήσετε να «διορθώσουν» το. Απλώς διαβάστε την τεκμηρίωση.

Οργανώστε τις σκέψεις σας

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

  • Λίστες TODO / Tasking: Η εταιρεία σας θα πρέπει ήδη να διαθέτει κάποιο λογισμικό εργασίας, αλλά βοηθάει να έχετε και ένα προσωπικό σύστημα. Χρησιμοποιήστε post-it σημειώσεις ή λογισμικό όπως το Trello ή το Todoist.
  • Σημειώσεις: Να κρατάτε πάντα σημειώσεις σε συναντήσεις, να βελτιώνετε την υπάρχουσα τεκμηρίωση και να δημιουργείτε μια προσωπική βάση γνώσεων. Χρησιμοποιήστε το Evernote, το OneNote ή ένα σημειωματάριο, όπως στο παρελθόν. Μπορεί να φαίνεται υπερβολικό, αλλά θα ευχαριστήσετε τον εαυτό σας ένα χρόνο αργότερα όταν επανεξετάζετε τη σκοτεινή διαδικασία κατασκευής που σας πήρε 3 ημέρες για να καταλάβετε την πρώτη φορά. Ποτέ δεν συνάντησα έναν καλό Μηχανικό Λογισμικού που δεν έλαβε εκτεταμένες σημειώσεις.
  • Διαγράμματα / Οπτικοποιήσεις: Οι άνθρωποι είναι οπτικά πλάσματα και η δημιουργία διαγραμμάτων διαδικασιών και αρχιτεκτονικών θα σας βοηθήσει και άλλους να κατανοήσετε πολύπλοκα θέματα. Τα διαγράμματα είναι ιδιαίτερα χρήσιμα κατά την επικοινωνία με μη τεχνικούς συναδέλφους. Χρησιμοποιήστε το Lucidchart, Visio ή έναν απλό πίνακα.

Μάθετε πότε να χρησιμοποιήσετε βιβλιοθήκες

Σύντομη απάντηση: Σχεδόν όλη την ώρα.

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

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

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

  • Ανοιχτού κώδικα , ώστε να μπορείτε να επαληθεύσετε μόνοι σας την ποιότητα του κώδικα και ενδεχομένως να διορθώσετε σφάλματα που είναι κρίσιμα για την εφαρμογή σας.
  • Άδεια χρήσης με άδεια χρήσης όπως το MIT και το BSD , επομένως η εταιρεία σας δεν αντιμετωπίζει προβλήματα χρησιμοποιώντας τη. Να είστε προσεκτικοί με την GPL, για να μην ανοίξετε τυχαία ολόκληρη τη βάση κώδικα σας.
  • Ώριμο , δηλαδή έχει βγει για αρκετό καιρό και έχει ένα πλούσιο σύνολο χαρακτηριστικών.
  • Διατηρείται , με νέες κυκλοφορίες να βγαίνουν συχνά.
  • Χρησιμοποιείται από άλλες εταιρείες ή έργα , το οποίο λειτουργεί ως σφραγίδα έγκρισης και διασφαλίζει ότι έχει υποστήριξη από τη βιομηχανία για συνεχή συντήρηση.

Συνεχής βελτίωση

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

Οι ευκαιρίες για μάθηση είναι πολλές και πολλές από αυτές είναι αρκετά προσιτές:

  • Διαδικτυακά μαθήματα: Δεν πρέπει να χάσετε την ευκαιρία να μάθετε από τους καλύτερους καθηγητές στον τομέα σε ευέλικτη μορφή. Ρίξτε μια ματιά στα Coursera, Udacity και edX (μεταξύ πολλών) για μαθήματα που μπορούν να συμπληρώσουν τις υπάρχουσες δεξιότητές σας.
  • Online Μεταπτυχιακά Πτυχία: Μια πρόσφατη τάση μεταξύ κορυφαίων πανεπιστημίων, τα διαδικτυακά μεταπτυχιακά είναι ένας ευέλικτος τρόπος για να συνεχίσετε την επίσημη εκπαίδευσή σας. Είναι επίσης γενικά λιγότερο ακριβά πτυχία στην πανεπιστημιούπολη, με τα περισσότερα προγράμματα να κοστίζουν ~ 10.000 $ για ολόκληρο το πτυχίο. Τα Georgia Tech, UT και UC San Diego είναι μερικά από τα πανεπιστήμια που προσφέρουν τέτοια πτυχία. Προτείνω προσωπικά τα Online Master της Georgia Tech από τα οποία αποφοίτησα φέτος.
  • Ιστολόγια: Τα ιστολόγια είναι ένα σημαντικό μέρος της κοινότητας προγραμματιστών (δεν αποτελεί έκπληξη εδώ, καθώς διαβάζετε ένα τώρα). Ιστολόγια όπως το Coding Horror, το Joel στο λογισμικό ή ακόμα πιο χιουμοριστικοί ιστότοποι όπως το Daily WTF μπορούν να σας δώσουν μια καλή ιδέα για το τι και τι δεν πρέπει να κάνετε ως Software Engineer. Η περιήγηση Medium, r / προγραμματισμός, το HackerNews ή άλλες ροές θα σας οδηγήσει επίσης σε καλά άρθρα και ιστολόγια.
  • Συνέδρια: Τελευταίο, αλλά όχι λιγότερο σημαντικό, τα συνέδρια είναι μια καταπληκτική μαθησιακή ευκαιρία και σίγουρα θα πρέπει να επωφεληθείτε από τον προϋπολογισμό κατάρτισης της εταιρείας σας πηγαίνοντας σε αυτά. Μια πολύ ελλιπής λίστα καλών συνεδρίων για να δείτε (παράλληλα με το θέμα τους): GOTO; (Γενικά), Strange Loop (General), PyCon (Python), CPPCon (C ++), DEF CON (Security), Fluent (Web dev). Όλα αυτά έχουν επίσης βίντεο από (περισσότερες) συνομιλίες στο YouTube, ώστε να μπορείτε να μάθετε κάτι ακόμα κι αν δεν μπορείτε να παρακολουθήσετε!

Ας ελπίσουμε ότι αυτό το άρθρο σας έχει οπλίσει με τη γνώση του τι να περιμένετε από την αρχή της καριέρας σας ως Μηχανικός Λογισμικού και σας έδωσε τα εργαλεία για να έχετε καλή απόδοση σε αυτό το συναρπαστικό ταξίδι! Ευχαριστώ για την ανάγνωση! Εάν έχετε οποιεσδήποτε ερωτήσεις ή προτάσεις, αφήστε ένα σχόλιο ή tweet @AlexievValeri.