Φτάσαμε στο τελευταίο μέρος της σειράς μας.
Μιλήσαμε ήδη για τα πρώτα βήματα στο επάγγελμα.
Για το τι αξίζει πραγματικά να μάθεις. Για το Code Review, το Clean Code και την καθημερινή δουλειά στην ομάδα.
Έμεινε ένα ερώτημα: Πότε λοιπόν παύεις να είσαι Junior;
Αυτή η ερώτηση εμφανίζεται πολύ συχνά.
Μετά από ένα χρόνο; Μετά από δύο; Μετά από πέντε; Ή μήπως όταν μάθεις ένα ακόμα framework;
Η απάντηση μπορεί να σε εκπλήξει. - Δεν υπάρχει ένας σωστός αριθμός.
Έχουμε δει προγραμματιστές με δεκαετή εμπειρία που ακόμα χρειάζονταν καθοδήγηση σε πιο περίπλοκα έργα. Έχουμε δει επίσης άτομα με τρίχρονη εμπειρία που σχεδίαζαν λύσεις ανεξάρτητα, υποστήριζαν νεότερους συναδέλφους και αναλάμβαναν την ευθύνη ολόκληρων μοδίλων συστημάτων.
Γι' αυτό στον χώρο του IT τα χρόνια εμπειρίας είναι μόνο ένα κομμάτι του παζλ.
Ο Senior δεν τα ξέρει όλα
Αυτό είναι ίσως ο μεγαλύτερος μύθος στο κλάδο.
Πολλοί Junior φαντάζονται τον Senior Developer ως κάποιον που έχει την απάντηση σε κάθε ερώτηση. Η πραγματικότητα είναι τελείως διαφορετική.
Ένας καλός Senior πολύ συχνά λέει: «Δεν ξέρω.»
Αλλά αμέσως προσθέτει: «Ας το ελέγξουμε.»
Αυτή είναι μια τεράστια διαφορά.
Ο Senior δεν χρειάζεται να θυμάται όλη την τεκμηρίωση. Δεν χρειάζεται να γνωρίζει κάθε βιβλιοθήκη. Δεν χρειάζεται να γράφει τα πάντα απ' έξω.
Ξέρει όμως:
- πού να ψάξει για πληροφορίες,
- πώς να επαληθεύσει μια λύση,
- ποιο ρίσκο συνεπάγεται μια απόφαση,
- πότε να πει «δεν ξέρω» αντί να μαντεύει.
Αυτό είναι ένα από τα πιο σημαντικά χαρακτηριστικά ενός ώριμου προγραμματιστή.
Προγραμματιστής ή μηχανικός;
Στην αρχή της καριέρας οι περισσότεροι επικεντρώνονται στον κώδικα.
Πώς να γράψω μια συνάρτηση; Πώς να φτιάξω ένα API; Πώς να συνδέσω τη βάση δεδομένων;
Με τον καιρό αρχίζεις να συνειδητοποιείς πως ο κώδικας είναι μόνο ένα εργαλείο.
Η πραγματική δουλειά είναι να λύσεις ένα επιχειρηματικό πρόβλημα.
Ο πελάτης δεν αγοράζει μια εφαρμογή επειδή γράφτηκε σε μια συγκεκριμένη γλώσσα. Αγοράζει τη λύση στο πρόβλημά του.
Εκεί είναι η στιγμή που ο προγραμματιστής αρχίζει να σκέφτεται σαν μηχανικός.
Η καλύτερη λειτουργία είναι μερικές φορές αυτή που δεν θα γράψεις
Ακούγεται παράξενο; Κι όμως.
Φαντάσου ότι ο πελάτης ζητάει ένα νέο μοδίο. Μπορείς αμέσως να αρχίσεις να σχεδιάζεις μια λύση. Μπορείς όμως και να κάνεις μερικές ερωτήσεις.
Γιατί χρειάζεται αυτή η λειτουργία;
Πόσο συχνά θα χρησιμοποιείται;
Υπάρχει ήδη μια παρόμοια λύση;
Μπορεί να επιτευχθεί το ίδιο αποτέλεσμα με πιο απλό τρόπο;
Πολύ συχνά αποδεικνύεται ότι το πρόβλημα μπορεί να λυθεί χωρίς να γραφτούν εκατοντάδες νέες γραμμές κώδικα. Και γι' αυτές τις αποφάσεις πληρώνει ο πελάτης. Όχι για τον αριθμό των commit.
Η ευθύνη αρχίζει εκεί που τελειώνει ο κώδικας
Ο Senior δεν είναι υπεύθυνος μόνο για το κομμάτι του έργου του. Βλέπει πιο συνολικά.
Αναρωτιέται:
- πώς θα επηρεάσει η αλλαγή άλλα μοδίλα,
- αν η λύση θα κλιμακώνεται,
- αν η νέα λειτουργία θα είναι εύκολη στη συντήρηση,
- ποιο ρίσκο φέρνει η παραγωγή,
- αν οι χρήστες θα έχουν πραγματικό όφελος.
Είναι ένας εντελώς διαφορετικός τρόπος σκέψης.
Ο καλός Senior δημιουργεί άλλους Senior
Αυτή είναι μία από τις ομορφότερες πτυχές του κλάδου μας.
Οι καλύτεροι προγραμματιστές που συναντήσαμε δεν φοβόντουσαν να μοιραστούν τη γνώση τους. Αντίθετα.
Χαίρονταν όταν κάποιος στην ομάδα εξελισσόταν πιο γρήγορα. Γιατί μια δυνατή ομάδα πάντα υπερτερεί έναν απλό ήρωα.
Για πάνω από είκοσι χρόνια είχαμε την ευκαιρία να δούμε πώς άτομα που ξεκίνησαν πρακτική μαζί μας έγιναν πλήρη μέλη της ομάδας. Μια από αυτές τις ιστορίες περιγράψαμε στο πρώτο μέρος της σειράς.
Σήμερα αυτό το άτομο αναλαμβάνει ανεξάρτητες απαιτητικές εργασίες, σχεδιάζει λύσεις και στηρίζει νεότερους προγραμματιστές.
Συνέβη από τη μια μέρα στην άλλη; Φυσικά και όχι. Είναι αποτέλεσμα εκατοντάδων ωρών μάθησης. Δεκάδων Code Review. Αμέτρητων ερωτήσεων. Λαθών. Και μιας μεγάλης περιέργειας για τον κόσμο.
Η AI δεν θα αντικαταστήσει τον καλό προγραμματιστή
Δεν μπορούσε να λείψει αυτό το θέμα. Η τεχνητή νοημοσύνη αλλάζει τον κλάδο μας; - Ναι. Πολύ.
Σημαίνει ότι οι προγραμματιστές παύουν να είναι απαραίτητοι; - Αντίθετα.
Αλλάζει ο χαρακτήρας της δουλειάς. Δαπανούμε όλο και λιγότερο χρόνο για να γράφουμε επαναλαμβανόμενο κώδικα.
Περισσότερο χρόνο δαπανάμε σε:
- ανάλυση προβλημάτων,
- σχεδιασμό αρχιτεκτονικής,
- επαλήθευση λύσεων,
- συζητήσεις με πελάτες,
- λήψη αποφάσεων.
Η AI είναι εξαιρετικός βοηθός. Αλλά η ευθύνη για το έργο παραμένει στον άνθρωπο. Και θα παραμείνει έτσι για πολύ καιρό.
Τι δεν θα βάλεις στο CV
Το CV θα δείξει:
- γλώσσες προγραμματισμού,
- frameworks,
- πιστοποιήσεις,
- εμπειρία.
Δεν θα δείξει όμως πράγματα που πολύ συχνά καθορίζουν την επιτυχία.
Μπορείς να παραδεχτείς ένα λάθος;
Μπορείς να ζητήσεις βοήθεια;
Σέβεσαι τον χρόνο των άλλων;
Τηρείς τις συμφωνίες;
Μπορείς να επιλύεις συγκρούσεις ήρεμα;
Αναλαμβάνεις ευθύνη για τις αποφάσεις σου;
Αυτά είναι τα χαρακτηριστικά που κάνουν την ομάδα να θέλει να δουλέψει μαζί σου.
Αν μπορούσαμε να δώσουμε μόνο μια συμβουλή...
Μετά από πάνω από είκοσι χρόνια ανάπτυξης λογισμικού θα μπορούσαμε να μιλάμε για τεχνολογίες.
Για αρχιτεκτονική. Για frameworks. Για τεχνητή νοημοσύνη.
Αλλά αν έπρεπε να σου αφήσουμε μόνο μια συμβουλή, θα ήταν: Μην παύεις ποτέ να είσαι περίεργος.
Οι τεχνολογίες θα αλλάζουν. Οι γλώσσες προγραμματισμού θα εξελίσσονται. Τα frameworks θα εμφανίζονται και θα εξαφανίζονται.
Αλλά η περιέργεια, η ταπεινότητα, η διάθεση για μάθηση, η ικανότητα να κάνεις ερωτήσεις - είναι δεξιότητες που θα χρειάζονται πάντα.
Γλωσσάριο όρων
Senior Developer
Έμπειρος προγραμματιστής που όχι μόνο γράφει ποιοτικό κώδικα, αλλά σχεδιάζει λύσεις, παίρνει τεχνικές αποφάσεις, υποστηρίζει την ομάδα και αναλαμβάνει ευθύνη για τα έργα.
Αρχιτεκτονική λογισμικού
Ο τρόπος σχεδίασης μιας εφαρμογής και των σχέσεων μεταξύ των στοιχείων της, που επηρεάζει την ανάπτυξη, την απόδοση και τη συντηρησιμότητα του συστήματος.
Κλιμακωσιμότητα
Η ικανότητα ενός συστήματος να χειριστεί αυξανόμενο αριθμό χρηστών, δεδομένων ή διεργασιών χωρίς απώλεια απόδοσης.
Commit
Η καταγραφή αλλαγών σε σύστημα ελέγχου εκδόσεων Git, που επιτρέπει την παρακολούθηση της ιστορίας ανάπτυξης του έργου.
Mentoring
Η διαδικασία μεταβίβασης γνώσης και εμπειρίας σε λιγότερο έμπειρα μέλη της ομάδας, υποστηρίζοντας την επαγγελματική τους εξέλιξη.
Σύνοψη της σειράς
Αν διάβασες και τα τέσσερα μέρη, ίσως παρατήρησες ότι σπάνια μιλήσαμε για συγκεκριμένα frameworks.
Εσκεμμένα.
Γιατί οι τεχνολογίες αλλάζουν πιο γρήγορα από ποτέ.
Αυτό που σήμερα είναι δημοφιλές, σε μερικά χρόνια ίσως είναι απλώς μια περιέργεια.
Όμως ο τρόπος σκέψης του καλού προγραμματιστή παραμένει αμετάβλητος: Ανάλυση. Ευθύνη. Επικοινωνία. Ομαδικότητα. Περιέργεια.
Αυτά είναι που κάνουν τον Junior να γίνει Mid Developer και με τον καιρό Senior.
Στην Web24 για πάνω από 20 χρόνια δημιουργούμε λογισμικό για πελάτες από διάφορους κλάδους. Σε όλο αυτό το διάστημα έχουμε καταλήξει σε ένα συμπέρασμα. Τους καλύτερους προγραμματιστές δεν τους αναγνωρίζεις από το πόσες γλώσσες προγραμματισμού ξέρουν. Τους αναγνωρίζεις από το πώς λύνουν προβλήματα, πώς συνεργάζονται με ανθρώπους και πόσο νοιάζονται για την ποιότητα αυτού που φτιάχνουν.
Αν μόλις ξεκινάς την πορεία σου στο IT, σου ευχόμαστε να μην χάσεις ποτέ την περιέργειά σου.
Γιατί από αυτήν ξεκινά κάθε καλή καριέρα.



