Domande sull'intervista a Python [chiuso]


25

Ho intenzione di intervistare entro due settimane per uno stage che implicherebbe la programmazione di Python.

Qualcuno può suggerire quali possibili aree devo lucidare? Sto cercando cose comunemente richieste nelle interviste per le aperture di Python. A parte il fatto che sto già facendo la lingua da oltre un anno, non riesco a percepire ciò che mi possono chiedere.

Come per un'intervista in C o C ++, ci sono molte domande che vanno dall'inversione delle stringhe alla creazione di elenchi collegati, ma per un'intervista con Python, non ho idea.

Le esperienze e / o i suggerimenti personali sono i benvenuti.


Se è uno stage e stai programmando in Python già da un anno, penso che andrà tutto bene. Tha ha detto, penso che la natura generale delle domande per Python sarà la stessa di quelle che hai citato per c ++.
Robert Harvey,

Robert, programmare senza alcuna supervisione e guida è ciò che mi preoccupa. Forse mi manca in alcune aree.

1
Se è uno stage, perché non hai una guida? Questa è la definizione stessa di uno stage. Detto questo, gli stagisti in cui lavoro non ricevono lezioni di programmazione, ma ottengono chiare istruzioni e aspettative di lavoro. Come stagista, dovrebbero aspettarsi che imparerai sul lavoro e che il lavoro impiegherà un po 'più di tempo rispetto a quello che potrebbe fare se qualcuno con esperienza lo fa.
Robert Harvey,

Stai commettendo un errore comune che molte persone fanno uscire da scuola - un'intervista non è un test, è più come andare al primo appuntamento. Un buon intervistatore non ti farà sballare le palle cercando di scoprire se conosci angoli bui di una lingua, ma piuttosto cerca di stabilire, in generale, se la conosci davvero. Un buon intervistatore si concentrerà su conoscenze generali di programmazione, capacità di problem solving, capacità interpersonali ed esperienza. Se qualcuno inizia a chiedere i dettagli di come le stringhe degli stagisti di Python, significa che sono perse e non sanno come intervistare.
Sean McSomething,

Risposte:


8

Eccone alcuni facili:

  1. Cosa sono i decoratori di Python e come li useresti?
  2. Come esegui il debug del tuo codice Python?
  3. Come configureresti molti progetti in cui ognuno utilizza versioni diverse di Python e librerie di terze parti?
  4. Segui PEP8 mentre scrivi il tuo codice?

7

Che ne dici di qualcosa che coinvolge la comprensione dell'elenco di Python ? Per me, quelli erano uno dei maggiori punti di forza su C ++, dopo averne letto in Dive into Python .

"Scrivi una comprensione della lista che costruisce un elenco dei numeri pari da 1 a 10 (incluso)".
Dove la risposta è qualcosa del genere (notare che i valori dell'intervallo evitano un errore di fencepost):

foo = [x for x in range(1, 11) if (x % 2) == 0]
print foo
[2, 4, 6, 8, 10]

Del resto, se capisci tutti i concetti elencati in Immersione in Python, questo dovrebbe coprire la maggior parte delle funzionalità importanti.


13
Questo non è ritonico. In Python 2.x, basta fare range(2,11,2)e in Python 3.x, list(range(2,11,2)).
Chinmay Kanchi,

@Cyclops, sembra che tu debba intervistare per il tuo lavoro presso INNOTECH.
Giobbe

5
@Chinmay Kanchi Anche se non penso che sarebbe una buona domanda per un colloquio, la maggior parte delle introduzioni alle funzionalità avanzate fanno le cose più semplici che possono (per non confondere il lettore). Mentre esiste una soluzione più semplice per questo problema specifico, il punto era non rispondere a questo problema specifico. Il punto era usare una comprensione dell'elenco (che sono molto efficaci e un modo notevole per ottimizzare le cose in Python).
jsternberg,

6

Python passa per riferimento o passa per valore è anche un'ottima domanda.


1
Una grande domanda di follow-up sarebbe quella di chiedere come possono mostrarlo e perché è importante
McCon

@Ismail - Scusa, ma perché è una buona domanda?
Theodor,

7
@Cervo: se ho capito bene, Python è pass-by-value proprio come C #, Java, Scheme, ecc. Sono pass-by-value ... l' unico linguaggio pass-by-reference che ho visto è VB6, dove tutto è pass-by-reference se non diversamente specificato. Il fatto che tu possa mutare gli oggetti non lo rende pass-by-reference in alcun modo, e il fatto che tu possa avere oggetti immutabili non implica che neanche questi vengano passati per valore ... quindi dicendo " la risposta è né " è completamente sbagliato . Mi dispiace molto per il candidato il cui intervistatore ritiene che la risposta sia "nessuno dei due" ...
Mehrdad,

1
@Cervo: Cordiali saluti, anche la risposta con più di 100 voti nel tuo link contrasta la tua argomentazione: dice chiaramente che "I parametri sono passati per valore".
Mehrdad,

11
Credo che la risposta corretta sia: "I parametri sono riferimenti passati per valore".
user16764,

6

Domande che mi sono state poste:

  • Descrivi due metodi di meta-programmazione in Python.
  • Cos'è il GIL?
  • Perché il GIL è importante?
  • Perché esiste un'implementazione alternativa di Python chiamata Unladen Swallow ?
  • Django, Piloni o Zope? Difendi la tua posizione.

5

Non ho esperienze del genere, ma ecco alcune ipotesi:

  1. (Immutabilità
  2. Funzioni / classi di prima classe
  3. chiusure

Queste sono alcune cose che il programmatore di Python dovrebbe sapere, altrimenti potresti anche assumere un programmatore C per la posizione.


3

Vorrei andare lungo l'elenco in questa risposta . Cerca di aggiornare ciò che sai seguendo l'elenco per quanto è possibile. Non preoccuparti se non puoi farcela fino alla fine.



2

Qual è il tuo senso, cercheranno di verificare se conosci Python, vedere se riesci a fare le cose in Python o provare a programmare (in Python)?

Quelle sono cose molto diverse.

Se vogliono che dimostri di conoscere Python, potrebbero costringerti a fare cose come creare un generatore, quindi farlo senza usare yield. Spiega come funzionano le lezioni. Spiegare l'ordine di risoluzione del metodo C3. E così via.

Se vogliono che tu mostri che puoi fare qualcosa in Python, dovrai essere competente con le strutture di dati di base e avere un elenco di librerie a cui andresti per diversi tipi di attività. Quindi devi sentirti a tuo agio con dizionari, set, array. Allo stesso modo devi conoscere cose come l' BeautifulSoupanalisi di HTML, essere in grado di parlare di un framework che potrebbe essere usato per lo sviluppo web, ecc. Non devi necessariamente sapere come usare bene quelle cose, ma dovresti sapere dove vai, come capire di più ed essere in grado di usarli effettivamente una volta che l'intervistatore ti ha dato cose documentate.

Se vogliono che tu mostri che puoi programmare (in Python), devi conoscere le strutture di dati di base e conoscere i tuoi algoritmi. Questo è molto più vicino alle domande C / C ++ che ti verrebbero poste, tranne per il fatto che dovresti usare strutture di dati native dove ti semplifica la vita.

Per sicurezza, dovresti prepararti in una certa misura a tutti e tre. Ad esempio, leggi http://docs.python.org/tutorial/ e prendi delle note per te stesso. Spero che tu sappia già come programmare. E poi prova alcune attività casuali e forzati a usare le librerie che potresti aver perso. Quindi, ad esempio, leggi alcuni CSV, estrai informazioni a livello di programmazione da una pagina Web, costruisci un piccolo sito Web con un framework, ecc.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.