Αναλύσαμε χιλιάδες συνεντεύξεις κωδικοποίησης. Εδώ μάθαμε.

Σημείωση: Έγραψα τις περισσότερες λέξεις σε αυτήν την ανάρτηση, αλλά ο θρυλικός Dave Holtz έκανε τη βαριά ανύψωση από την πλευρά των δεδομένων. Δείτε περισσότερα από το έργο του στο blog του.

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

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

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

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

Υπάρχουν μερικά ζητήματα με αυτήν την τυπική προσέγγιση για την προετοιμασία της συνέντευξης:

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

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

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

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

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

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

Εάν είστε περίεργοι, μπορείτε να δείτε ποια είναι η φόρμα σχολίων για τους ερωτηθέντες και τους ερωτηθέντες παρακάτω - εκτός από μια άμεση ερώτηση ναι / όχι, ρωτάμε επίσης για μερικές διαφορετικές πτυχές της απόδοσης της συνέντευξης χρησιμοποιώντας κλίμακα 1-4.

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

Τα αποτελέσματα

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

Έχω δει την ερώτηση της συνέντευξης στο παρελθόν

«Μιλάμε για πρακτική!» - Άλεν Ίβερσον

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

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

Δεν αποτελεί έκπληξη το γεγονός ότι οι ερωτηθέντες που είδαν την ερώτηση ήταν 16,6% πιο πιθανό να θεωρηθούν επιθυμητοί από τον ερευνητή τους. Αυτή η διαφορά είναι στατιστικά σημαντική - όλες οι γραμμές σφάλματος σε αυτήν την ανάρτηση αντιπροσωπεύουν ένα διάστημα εμπιστοσύνης 95%.

Έχει σημασία σε ποια γλώσσα κωδικοποιείτε;

"Όποιος δεν λατρεύει τη γλώσσα της γέννησής του είναι χαμηλότερος από ένα θηρίο και ένα άρωμα ψαριού." - Χοσέ Ριζάλ

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

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

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

Παρόλο που δεν κάνουμε σύγκριση ζευγών για κάθε πιθανό ζεύγος γλωσσών, τα παρακάτω δεδομένα υποδηλώνουν ότι γενικά, δεν υπάρχουν στατιστικά σημαντικές διαφορές μεταξύ του ποσοστού επιτυχίας όταν οι συνεντεύξεις διεξάγονται σε διαφορετικές γλώσσες. (Υπήρχαν περισσότερες γλώσσες από αυτές στην πλατφόρμα μας, αλλά όσο πιο ασαφής η γλώσσα, τόσο λιγότερα σημεία δεδομένων έχουμε. Για παράδειγμα, όλες οι συνεντεύξεις στο Brainf *** ήταν σαφώς επιτυχημένες. Kidding.)

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

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

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

«Ο Θεός να με βοηθήσει, έχω φύγει». - Μαργαρίτα Μπλέιν

Είναι όλα καλά και καλά ότι, σε γενικές γραμμές, η γλώσσα συνέντευξης δεν φαίνεται να σχετίζεται ιδιαίτερα με την απόδοση. Ωστόσο, μπορείτε να φανταστείτε ότι θα μπορούσε να υπάρχει ένα αποτέλεσμα ανάλογα με τη γλώσσα που χρησιμοποιεί μια συγκεκριμένη εταιρεία. Θα μπορούσατε να φανταστείτε ένα κατάστημα Ruby να λέει "προσλαμβάνουμε μόνο Ruby προγραμματιστές, εάν κάνετε συνέντευξη στο Python είναι λιγότερο πιθανό να σας προσλάβουμε."

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

Το παρακάτω διάγραμμα είναι παρόμοιο με το διάγραμμα που έδειξε διαφορές στο ποσοστό επιτυχίας της συνέντευξης (όπως μετράται από τους ερευνητές που είναι πρόθυμοι να προσλάβουν τον ερωτώμενο) για C ++, Java και Python. Ωστόσο, αυτό το γράφημα αναλύει επίσης την απόδοση από το αν η γλώσσα της συνέντευξης βρίσκεται στο σωρό της εταιρείας.

Περιορίζουμε αυτήν την ανάλυση σε C ++, Java και Python επειδή αυτές είναι οι τρεις γλώσσες όπου είχαμε ένα καλό μείγμα συνεντεύξεων όπου η εταιρεία έκανε και δεν χρησιμοποίησε αυτήν τη γλώσσα. Τα αποτελέσματα εδώ είναι ανάμεικτα. Όταν η γλώσσα της συνέντευξης είναι Python ή C ++, δεν υπάρχει στατιστικά σημαντική διαφορά μεταξύ των ποσοστών επιτυχίας των συνεντεύξεων όπου η γλώσσα της συνέντευξης είναι ή δεν είναι γλώσσα στη στοίβα της εταιρείας. Ωστόσο, οι ερευνητές που πήραν συνέντευξη στην Java ήταν πιο πιθανό να πετύχουν όταν έκαναν συνέντευξη με ένα κατάστημα Java (σελ.

Λοιπόν, γιατί η κωδικοποίηση στη γλώσσα της εταιρείας φαίνεται να είναι χρήσιμη όταν είναι Java, αλλά όχι όταν είναι Python ή C ++; Μια πιθανή εξήγηση είναι ότι οι κοινότητες που υπάρχουν γύρω από ορισμένες γλώσσες προγραμματισμού (όπως η Java) αποδίδουν υψηλότερο πλεονέκτημα σε σχέση με την προηγούμενη εμπειρία με τη γλώσσα. Σε αυτές τις κατευθύνσεις, είναι επίσης πιθανό οι ερευνητές από εταιρείες που χρησιμοποιούν Java να έχουν περισσότερες πιθανότητες να κάνουν ερωτήσεις που ευνοούν εκείνους με προϋπάρχουσα γνώση των ιδιοσυγκρασιών της Java.

Τι γίνεται με τη σχέση ανάμεσα σε ποια γλώσσα προγραμματίζετε και πόσο καλή είναι μια επικοινωνία που θεωρείτε ότι είστε;

«Το να χειριστείς μια γλώσσα με επιδεξιότητα είναι να εξασκήσεις ένα είδος υποβλητικής μαγείας». - Charles Baudelaire

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

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

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

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

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

Διάρκεια συνέντευξης

«Είναι ωραίο όταν φροντίζεις για καταστροφές και τρομερά κακές κριτικές και απόρριψη και όλα αυτά όταν είσαι νέος. η ανθεκτικότητα σας είναι απλώς καταπληκτική. " - Χάρολντ Πρίγκιπας

Όλοι είχαμε την εμπειρία να αφήσουμε μια συνέντευξη και να νιώθουμε ότι πήγε άσχημα. Συχνά, αυτό το αίσθημα κάποιας απόδοσης υποκινείται από τους κανόνες του αντίχειρα που είτε έχουμε βρει τον εαυτό μας είτε ακούσαμε επαναλαμβανόμενες ξανά και ξανά. Ίσως σκέφτεστε, «η συνέντευξη δεν κράτησε πολύ; Αυτό είναι πιθανώς κακό σημάδι… »ή« μόλις έγραψα τίποτα σε αυτή τη συνέντευξη! Σίγουρα δεν θα περάσω. " Χρησιμοποιώντας τα δεδομένα μας, θέλαμε να δούμε αν αυτοί οι βασικοί κανόνες για την αξιολόγηση της απόδοσης της συνέντευξής σας είχαν κάποια αξία.

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

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

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

Αριθμός γραμμένου κώδικα

«Η συντομία είναι η ψυχή του πνεύματος.» - Γουίλιαμ Σαίξπηρ

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

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

Αρθρωτότητα κώδικα

"Το σημάδι ενός ώριμου προγραμματιστή είναι η προθυμία να πετάξει κώδικα που ξοδεύατε χρόνο όταν συνειδητοποιείτε ότι είναι άσκοπο." - Μπραμ Κοέν

Εκτός από το να δούμε πόσοκωδικός που γράφετε, μπορούμε επίσης να σκεφτούμε τον τύπο κώδικα που γράφετε. Η συμβατική σοφία υποδηλώνει ότι οι καλοί προγραμματιστές δεν ανακυκλώνουν κώδικα - γράφουν αρθρωτό κώδικα που μπορεί να επαναχρησιμοποιηθεί ξανά και ξανά. Θέλαμε να μάθουμε αν αυτός ο τύπος συμπεριφοράς ανταμείφθηκε πραγματικά κατά τη διάρκεια της διαδικασίας συνέντευξης. Για να γίνει αυτό, εξετάσαμε τις συνεντεύξεις που πραγματοποιήθηκαν στο Python5 και μετρήσαμε πόσους ορισμούς λειτουργιών εμφανίστηκαν στην τελική έκδοση της συνέντευξης. Θέλαμε να μάθουμε αν οι επιτυχημένοι ερωτηθέντες όρισαν περισσότερες λειτουργίες - ενώ το να έχουμε περισσότερους χειριστές λειτουργιών δεν είναι ο ορισμός της αρθρωτότητας, από την εμπειρία μας, είναι ένα αρκετά ισχυρό σήμα για αυτό. Οπως πάντα,είναι αδύνατο να κάνουμε ισχυρούς αιτιώδεις ισχυρισμούς σχετικά με αυτό - μπορεί να συμβαίνει ότι ορισμένοι ερευνητές (οι οποίοι είναι λίγοι ήπιοι) υποβάλλουν ερωτήσεις συνέντευξης που προσφέρονται για περισσότερες ή λιγότερες λειτουργίες. Παρ 'όλα αυτά, είναι μια ενδιαφέρουσα τάση για διερεύνηση!

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

Κατά μέσο όρο, οι επιτυχημένοι υποψήφιοι που παίρνουν συνέντευξη από την Python καθορίζουν 3,29 συναρτήσεις, ενώ οι αποτυχημένοι υποψήφιοι ορίζουν 2,71 συναρτήσεις. Αυτό το εύρημα είναι στατιστικά σημαντικό. Το συμπέρασμα εδώ είναι ότι οι ερευνητές ανταμείβουν πραγματικά το είδος του κώδικα που λένε ότι θέλουν να γράψετε.

Έχει σημασία αν τρέχει ο κώδικάς σας;

«Μετακινήστε γρήγορα και σπάστε τα πράγματα. Αν δεν σπάτε πράγματα, δεν κινείστε αρκετά γρήγορα. " - Mark Zuckerberg "Το πιο αποτελεσματικό εργαλείο εντοπισμού σφαλμάτων εξακολουθεί να είναι προσεκτική σκέψη, σε συνδυασμό με δηλώσεις εκτύπωσης με συνετή τοποθέτηση." - Brian Kernighan

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

Για να εξετάσουμε αυτήν την ερώτηση, εξετάσαμε τα δεδομένα. Περιορίσαμε το σύνολο δεδομένων μας σε συνεντεύξεις διάρκειας άνω των 10 λεπτών με περισσότερες από 5 μοναδικές παρουσίες κώδικα που εκτελούνται. Αυτό βοήθησε στο φιλτράρισμα των συνεντεύξεων όπου οι ερευνητές δεν ήθελαν στην πραγματικότητα ο ερωτώμενος να τρέξει κώδικα ή όπου η συνέντευξη είχε συντομευτεί για κάποιο λόγο. Στη συνέχεια μετρήσαμε το ποσοστό των εκτελέσεων κώδικα που οδήγησαν σε σφάλματα.5 Φυσικά, υπάρχουν ορισμένοι περιορισμοί σε αυτήν την προσέγγιση - για παράδειγμα, οι υποψήφιοι θα μπορούσαν να εκτελέσουν κώδικα που κάνει μεταγλώττιση, αλλά δίνει μια ελαφρώς λανθασμένη απάντηση. Θα μπορούσαν επίσης να πάρουν τη σωστή απάντηση και να την γράψουν στο stderr! Παρ 'όλα αυτά, αυτό θα πρέπει να μας δώσει μια κατευθυντική αίσθηση για το αν υπάρχει ή όχι διαφορά.

Το παρακάτω διάγραμμα παρέχει μια σύνοψη αυτών των δεδομένων. Ο άξονας x δείχνει το ποσοστό εκτέλεσης κώδικα που ήταν χωρίς σφάλματα σε μια δεδομένη συνέντευξη. Έτσι, μια συνέντευξη με 3 εκτελέσεις κώδικα και 1 μήνυμα σφάλματος θα υπολογιζόταν στον κάδο "30% -40%". Ο άξονας y δείχνει το ποσοστό όλων των συνεντεύξεων που εμπίπτουν σε αυτόν τον κάδο, τόσο για επιτυχημένες όσο και για αποτυχημένες συνεντεύξεις. Ακριβώς βλέποντας το παρακάτω γράφημα, κάποιος έχει την αίσθηση ότι κατά μέσο όρο, οι επιτυχημένοι υποψήφιοι τρέχουν περισσότερο κώδικα που απενεργοποιείται χωρίς σφάλμα. Αλλά είναι στατιστικά σημαντική αυτή η διαφορά;

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

Πρέπει να περιμένετε και να συγκεντρώσετε τις σκέψεις σας πριν γράψετε κώδικα;

«Ποτέ μην ξεχνάτε τη δύναμη της σιωπής, αυτή η μαζικά ανησυχητική παύση που συνεχίζεται και συνεχίζει και μπορεί επιτέλους να προκαλέσει έναν αντίπαλο να φλυαρεί και να υποχωρήσει νευρικά». - Lance Morrow

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

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

Συμπεράσματα

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

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

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

Αν θέλετε να μας βοηθήσετε με αυτό και είστε ενθουσιασμένοι που θα ακούσετε πολλές τεχνικές συνεντεύξεις, ρίξτε μου μια γραμμή!

Θέλετε να γίνετε καταπληκτικοί σε τεχνικές συνεντεύξεις και να ξεκινήσετε την επόμενη δουλειά σας στη διαδικασία; Εγγραφείτε στο interviewing.io!