Τι στο καλό είναι ένας Advocate Προγραμματιστή;

TL; DR: Ο υπερασπιστής του προγραμματιστή είναι ο καλύτερος φίλος του προγραμματιστή!

Τα τελευταία τρία χρόνια περίπου, αφιερώνω τον επαγγελματικό μου χρόνο και ένα μεγάλο μέρος του προσωπικού μου χρόνου για να βοηθήσω τους συναδέλφους προγραμματιστές να είναι επιτυχημένοι και παραγωγικοί με τα εργαλεία που αγαπούν και χρησιμοποιούν. Αυτά τα εργαλεία περιλαμβάνουν πλατφόρμες Web, όπως JavaScript, PWA και Angular, το Google Cloud Platform, το Actions on Google και γενικά τα chatbots. Αυτό το έκανα ως Advocate για προγραμματιστές.

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

Ιστορία μου…

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

Ωστόσο, μάλλον ήμουν πολύ παθιασμένος με αυτό γιατί έκανα πάντα περισσότερα από τα απαιτούμενα καθήκοντα στην τάξη. Εννοώ, η κλίση της Java στο κολέγιο ήταν εντάξει, αλλά βαρέθηκα. Ξόδεψα τον περισσότερο χρόνο μου για να μάθω νέα πρότυπα προγραμματισμού από γλώσσες όπως Python, PHP, Assembly 8086, oCaml και JavaScript. Τότε ήταν που ανακάλυψα και ερωτεύτηκα τη JavaScript και από τότε αποφάσισα να στοιχηματίζω πάντα στο JavaScript και δεν το μετανιώνω ποτέ.

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

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

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

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

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

Σύντομη ιστορία…

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

Λοιπόν, τι ακριβώς είναι ο Advocate Προγραμματιστή; Τι κάνει έναν σπουδαίο συνήγορο προγραμματιστή; Και γιατί η πρόσληψη παθιασμένων προγραμματιστών υποστηρίζει τη σωστή απόφαση να λάβει ως οργανισμός; Επιτρέψτε μου να προσπαθήσω να απαντήσω σε αυτές τις ερωτήσεις.

Τι είναι ο συνήγορος προγραμματιστή;

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

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

Ιστορικά, πολλές εταιρείες τεχνολογίας προσέλαβαν Developer Advocates για να υποστηρίξουν τις πλατφόρμες τους, βοηθώντας τους τελικούς προγραμματιστές να χρησιμοποιούν τα προϊόντα τους, και εξακολουθούν να το κάνουν. Επομένως, το πραγματικό νόημα του Advocate Προγραμματιστή είναι κάποιος του οποίου η δουλειά είναι να βοηθήσει τους προγραμματιστές να είναι επιτυχημένοι με μια πλατφόρμα ή μια τεχνολογία . Ο ρόλος του Developer Advocate είναι να λειτουργεί ως γέφυρα μεταξύ της ομάδας μηχανικών και της κοινότητας προγραμματιστών. Η δουλειά τους είναι να δώσουν ανατροφοδότηση και στα δύο μέρη, εξίσου, και με τους δύο τρόπους.

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

Τι κάνει έναν σπουδαίο συνήγορο προγραμματιστή;

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

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

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

Συνεχής μάθηση

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

Σκεπτόμενος ανοιχτόμυαλα

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

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

Δημιουργία πραγματικών εφαρμογών

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

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

Κοινή χρήση και φροντίδα

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

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

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

Δώστε σε αυτό το άρθρο μερικά χειροκρότημα και επιτρέψτε μου να ξέρω πόσο σας άρεσε, στο Twitter @ manekinekko και φροντίστε να με ακολουθήσετε για περισσότερο περιεχόμενο ;