Τι μαθαίνετε σε 4ετές πτυχίο Πληροφορικής

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

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

Προγραμματισμός I, II

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

Αυτή η τάξη ξεκίνησε με τη δημιουργία ενός κενού αρχείου και τη σύνταξη σε ένα IDE (χρησιμοποίησα τον κώδικα :: Blocks). Και δουλέψαμε μέχρι να δημιουργήσουμε το δικό μας παιχνίδι μάχης με βάση το κείμενο. Κοιτάζοντας πίσω τον κώδικα που έγραψα με κάνει να ντρέπομαι. Έχω διανύσει πολύ δρόμο από τότε. Εδώ είναι το repo αν θέλετε να γελάσετε (χρησιμοποιώ μόνο ένα αρχείο main.cpp με 1063 γραμμές κώδικα).

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

Διακριτές δομές στην επιστήμη των υπολογιστών

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

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

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

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

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

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

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

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

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

Ανάλυση αλγορίθμων

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

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

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

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

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

Ανάπτυξη διαδικτύου

Αυτή η τάξη είχε τις περισσότερες δεξιότητες που ήταν άμεσα εφαρμόσιμες σε μια εργασία στην τεχνολογία. Έμαθα για HTML, CSS, JQuery, JavaScript, PHP και JSON. Έμαθα πώς ένα αίτημα αποστέλλεται από μια διεπαφή ιστότοπου σε ένα πίσω μέρος, πώς υποβλήθηκε σε επεξεργασία στο πίσω μέρος και στη συνέχεια έστειλε πίσω στο διεπαφή με μια απάντηση. Έμαθα πώς να δημιουργήσω διεπαφή χρήστη και πώς να αλληλεπιδράσω με ένα επίπεδο δεδομένων που στη συνέχεια αλληλεπιδρά με το δίκτυο.

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

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

Εισαγωγή στις βάσεις δεδομένων

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

Μηχανική λογισμικού I, II

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

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

Αρχιτεκτονική Υπολογιστών & Γλώσσα Συναρμολόγησης

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

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

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

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

Λειτουργικά συστήματα

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

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

Εισαγωγή στα δίκτυα υπολογιστών

Αυτή η τάξη ήταν πολύ χρήσιμη. Εξετάστηκε πώς λειτουργούσαν τα δίκτυα υπολογιστών. Αυτό περιελάμβανε τη μετάβαση σε πρωτόκολλα δικτύου όπως HTTP, HTTPS, TCP, IP, FTP, IMAP, POP3, SSH και DNS. Έμαθα για το τι χρησιμοποιείται κάθε ένα από αυτά τα πρωτόκολλα, πώς εφαρμόζονται και απέκτησα κατανόηση του γιατί δημιουργήθηκαν.

Τα πρωτόκολλα δικτύωσης που ανέφερα παραπάνω χρησιμοποιούνται για κρίσιμες λειτουργίες του σύγχρονου λογισμικού. Αυτό περιλαμβάνει χειρισμό email (POP3 & IMAP), αποστολή αιτημάτων δικτύου μεταξύ πελάτη και διακομιστή (HTTP, HTTPS) και χειρισμό συσκευών με ασφάλεια μέσω δικτύου (SSH). Αυτό σας δίνει πραγματικά μια κατανόηση για το πώς λειτουργεί το Διαδίκτυο και πώς οι συσκευές σε όλο τον κόσμο μπορούν να αλληλεπιδρούν μεταξύ τους.

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

Εισαγωγή στη Μηχανική Ευχρηστίας

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

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

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

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

Ανάπτυξη λογισμικού για κινητά και σύννεφα

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

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

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

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

Έργο λογισμικού Capstone

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

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

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

Τελικές σκέψεις

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

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

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

Σας άρεσε αυτό που διαβάσατε; Δείτε τα άλλα άρθρα μου

Ξεκινώντας μια τεχνολογική καριέρα από το τίποτα.

Επιλέξτε την καλύτερη τεχνολογική καριέρα για εσάς - Dev Ops, Mobile Engineer, Data Scientist, Project Manager και Front End.

Συμβουλές για την πρώτη σας τεχνική συνέντευξη.

Πρέπει να αποκτήσετε πτυχίο επιστήμης υπολογιστών;

Swift εναντίον Objective-C