Ερωτήσεις συνέντευξης Python

Από Aaron Cao · Ενημερώθηκε

Περιμένετε τρία επίπεδα: μηχανική της γλώσσας όπως η mutability, οι generators και οι decorators· συμπεριφορά κατά την εκτέλεση όπως το GIL· και εφαρμοσμένο προγραμματισμό σε δομές δεδομένων. Οι περισσότερες απορρίψεις προέρχονται από αδύναμες εξηγήσεις του γιατί, όχι από λανθασμένο συντακτικό.

Οι ερωτήσεις που συνεχίζουν να επανέρχονται

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

  • Mutable προεπιλεγμένα ορίσματα. Γιατί το def f(x=[]) συσσωρεύει τιμές μεταξύ κλήσεων; Οι προεπιλογές αξιολογούνται μία φορά, όταν ορίζεται η συνάρτηση, όχι σε κάθε κλήση.
  • Generators έναντι lists. Πότε το yield υπερτερεί της κατασκευής μιας list; Όταν η ακολουθία είναι μεγάλη, ή όταν ενδέχεται να σταματήσετε να διαβάζετε νωρίς.
  • Decorators. Τι επιστρέφει πράγματι ένας decorator, και γιατί ο wrapper χρειάζεται το functools.wraps;
  • Το GIL. Γιατί τα threads που εξαρτώνται από τη CPU δεν κλιμακώνονται στην CPython, και τι χρησιμοποιείτε αντ' αυτού;
  • Shallow έναντι deep copy. Τι χαλάει όταν μια ένθετη δομή αντιγράφεται με ένα slice;
  • Identity έναντι equality. Γιατί ο έλεγχος is σε μικρούς ακέραιους αριθμούς σε ένα shell σας δίνει ένα παραπλανητικό αποτέλεσμα.

Τι ξεχωρίζει την επιτυχία από την αποτυχία

Δύο υποψήφιοι μπορούν να δώσουν τον ίδιο σωστό ορισμό του GIL και μόνο ο ένας προχωράει. Η διαφορά είναι συνήθως στη δεύτερη πρόταση.

Έναν backend engineer που έκανε συνέντευξη για ρόλο επιπέδου L5 σε έναν μεγάλο πάροχο δημόσιου cloud τον ρώτησαν γιατί η υπηρεσία τους επιβράδυνε υπό φόρτο. Ανέφερε το GIL, και μετά συνέχισε: το hot path ήταν η ανάλυση JSON, άρα τα threads ήταν λάθος εργαλείο, και η μετακίνηση αυτού του σταδίου σε ένα process pool αποκατέστησε το throughput. Το να ονομάσει τον περιορισμό κέρδισε μερική βαθμολογία. Το να τον συνδέσει με μια απόφαση κέρδισε τον γύρο.

Χτίστε κάθε απάντηση σε τρία στάδια: τι κάνει το feature, γιατί υπάρχει, και πότε θα το αποφεύγατε. Το τρίτο στάδιο είναι αυτό που παραλείπουν οι περισσότεροι υποψήφιοι, και είναι αυτό που δείχνει κρίση. Άλλες σελίδες για γύρους coding, συμπεριφοράς και σχεδιασμού συστημάτων ομαδοποιούνται στο τύποι συνεντεύξεων.

Πώς να προετοιμαστείτε χωρίς να τα αποστηθίζετε

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

  • Γράψτε την απάντησή σας σε κάθε επαναλαμβανόμενη ερώτηση ως τρεις προτάσεις, και μετά πείτε την χωρίς να κοιτάτε.
  • Επιλέξτε δύο χαρακτηριστικά που χρησιμοποιείτε καθημερινά και προετοιμάστε έναν ειλικρινή περιορισμό για το καθένα. Το να μπορείτε να κριτικάρετε τα δικά σας εργαλεία διαβάζεται ως εμπειρία.
  • Φέρτε μια πραγματική ιστορία εντοπισμού σφαλμάτων όπου η συμπεριφορά της Python σας ξάφνιασε και βρήκατε τον λόγο.
  • Εξασκηθείτε στο εφαρμοσμένο μισό ξεχωριστά: dictionaries, sets, ταξινόμηση με μια key function, και επεξεργασία string καλύπτουν μεγάλο μέρος των screenings.

Αν θέλετε έναν χρονομετρημένο γύρο απέναντι σε έναν συνεντευκτή AI πριν από την πραγματική, αυτός βρίσκεται στη σελίδα mock interview.

Πού ταιριάζει ένας ζωντανός βοηθός, και πού όχι

Το SubcueAI είναι μια εγγενής εφαρμογή desktop για macOS και Windows. Καταγράφει και τις δύο πλευρές της κλήσης, μεταγράφει σε πραγματικό χρόνο, και εμφανίζει έναν σκελετό σε ένα αιωρούμενο overlay που παραμένει τοπικό στο μηχάνημά σας, οπότε δεν συμμετέχει στη συνάντηση ως συμμετέχων ή bot. Για έναν γύρο Python, το χρήσιμο αποτέλεσμα είναι μια προτροπή δομής, όχι μια έτοιμη απάντηση: οι λεπτομέρειες πρέπει να είναι δικές σας, επειδή η επόμενη ερώτηση θα αφορά τον κώδικα που μόλις περιγράψατε.

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

Συχνές ερωτήσεις

Οι συνεντεύξεις Python εξακολουθούν να ρωτούν για το GIL;

Ναι, και συνήθως ως έμμεση ερώτηση. Ο συνεντευκτής θέλει να μάθει αν μπορείτε να διακρίνετε ένα φορτίο εργασίας που εξαρτάται από τη CPU από ένα που εξαρτάται από I/O και να επιλέξετε αναλόγως threads, processes ή async. Ένας ορισμός μόνο απαντά μόνο στη μισή ερώτηση.

Πόσα Python trivia πρέπει να αποστηθίσω;

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

Τα προβλήματα coding αποτελούν μέρος μιας συνέντευξης Python;

Συνήθως ναι. Τα περισσότερα screenings συνδυάζουν ερωτήσεις συζήτησης με ένα μικρό εφαρμοσμένο πρόβλημα, συχνά για dictionaries, sets, ταξινόμηση ή επεξεργασία string. Το να εξηγείτε την προσέγγισή σας πριν πληκτρολογήσετε αναμένεται, και η σιωπή βαθμολογείται άσχημα.

Πρέπει να παραδέχομαι όταν δεν ξέρω μια απάντηση;

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

Μπορώ να χρησιμοποιήσω έναν βοηθό AI κατά τη διάρκεια μιας συνέντευξης coding στην Python;

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

Σχετικές ερωτήσεις

← Περισσότερα για Τύποι συνέντευξης