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





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



Η πορεία μου προς τη μηχανική λογισμικού

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



Ο κώδικας άνω γραμμής ήταν η πρώτη μου εισαγωγή στον προγραμματισμό και γρήγορα συνειδητοποίησα ότι με ενδιέφερε να μάθω να κωδικοποιώ. Αργότερα εκείνο το καλοκαίρι, έλαβα το πακέτο εγγραφής μου στην Παναγία των Παρισίων και άλλαξα από το Κολλέγιο των Τεχνών και των Γραμμάτων στο Κολέγιο Μηχανικών για να μπορέσω να σπουδάσω στην Επιστήμη Υπολογιστών (CS).

Μερικά από τα αγαπημένα μου μαθήματα CS ήταν το Design/Analysis of Algorithms, Cloud Computing και Programming Challenges. Τα προβλήματα ήταν ενδιαφέροντα και οι καθηγητές ήταν εξαιρετικοί στο να παρουσιάζουν νέες ιδέες και να εξηγούν έννοιες.

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



Η εμπειρία μου από την πρακτική άσκηση, μαζί με τις συζητήσεις από τους καθηγητές μου, μου έδωσαν την αυτοπεποίθηση να μην συμβιβάζομαι με κανέναν άλλο ρόλο όταν άρχισα για πρώτη φορά να υποβάλλω αίτηση για θέσεις εργασίας. Μετά από άφθονο χρόνο που αφιέρωσα σε ώρες γραφείου, αποφοίτησα το 2021 με πτυχίο CS και δέχτηκα μια προσφορά να γίνω Associate Software Engineer εδώ στο Sprout Social .




τι κάνει το 888

  Julius Boateng και μια ομάδα συναδέλφων από το Sprout Social

Εγκατάσταση στο Sprout Social

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

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



  Φωτογραφία των συναδέλφων Julius Boating και Sprout έξω από το Calder's Flamingo statue in downtown Chicago

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




αριθμοί αγγέλου 234

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



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

Οι προηγούμενες εμπειρίες σας έχουν σημασία

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

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

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

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

  Κινούμενο gif ενός κιτ ρομπότ TurtleBot.

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

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

Η Επιστήμη των Υπολογιστών είναι ένα εξαιρετικά ευρύ πεδίο

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

Αν ψάχνετε να ξεκινήσετε μια καριέρα στη μηχανική λογισμικού , το Sprout είναι ένα εξαιρετικό μέρος για να ξεκινήσετε.

Μοιράσου Το Με Τους Φίλους Σου:


αριθμολογία αριθμός 3 έννοια