Il colloquio tecnico di 10 minuti [chiuso]


37

Devo fare una rapida valutazione di dozzine di nuovi studenti molto rapidamente. Ho 30 minuti di incontro con ciascuno di essi (in due o tre giorni). Voglio usare la maggior parte del tempo per discutere di aspetti non tecnici. Quindi ho intenzione di usare 10 minuti per domande tecniche. Le stesse domande per tutti loro.

Sono già tutti assunti (sono studenti), quello che devo sapere è il livello medio per preparare una formazione.

Idealmente, la difficoltà must be progressiveper stabilire un livello per ciascuno. Il livello I sarà nella media e farò una media anche per ogni domanda.

Se avessi solo 10 minuti e 10 domande da porre a un candidato, quali sarebbero i tuoi primi 10?


6
Più contesto sul lavoro? È una posizione di amministratore di sistema o una posizione di programmatore e se si sta programmando un livello basso o alto? Qualche lingua o tecnologia specifica nel tuo negozio? Tutti detterebbero la mia lista di domande.
Chris,

4
Che tipo di allenamento? Programmazione? IT generale?
Adam Lear

3
Lo rovescerei e passerei 10 minuti in cose personali e 20 minuti in cose tecniche.
Kyralessa,

1
Lo so, è quello che farebbe la maggior parte delle persone. Ma credo in diversi approcci.

3
10 minuti per il candidato sono troppo pochi
Zzz,

Risposte:


55

Tre domande, elaborando la fine della risposta di Eric Lippert qui :

Domanda 1:

Su una scala da 1 a 10, dove ti voti (dai un nome all'abilità qui)? Rispondono [n], un numero compreso tra 1 e 10.

Domanda 2:

Cosa potresti imparare da qualcuno al livello [n + 1]?

Domanda 3:

Cosa potrebbe imparare da te al livello [n-1]?

Il più importante fattore nella vostra decisione è quello di determinare dove uno studente (realisticamente) pone se stessi , e questi tre domande vi aiuterà a determinare che rapidamente. Aiuta anche a identificare le persone che potrebbero essere compromesse dall'effetto Dunning-Kruger (su entrambe le estremità), ma questo è un altro argomento.

Se qualcuno può trovare il riferimento a questo metodo su SO e modificare questo post per includere un link, lo apprezzerei molto.

Comunque, dovrebbe cadere ben meno di dieci minuti.


5
Wow! Metrica abbastanza insolita. Non ho mai pensato a me stesso in quel modo. Grazie!
Andrew Андрей Листочкин

Ovviamente il candidato risponde a 10 per evitare la seconda domanda.
destra del

4
@WTP Il dieci è una bugia.
Tim Post

1
Questo è superbo. Se un datore di lavoro me lo chiedesse, potrei spiegare di più su di me in pochi minuti di quanto normalmente ne avrò la possibilità in un'intervista di 1 ora.
fearofawhackplanet il

28
  1. Che cos'è una classe?
  2. Cos'è un metodo statico?
  3. Che cos'è l'eredità?
  4. Cos'è il polimorfismo?
  5. Cos'è una chiave primaria?
  6. Cos'è una chiave esterna?
  7. Qual è la differenza tra HTTP GET e HTTP POST?
  8. Che cos'è un servizio Web?
  9. Nomina alcune strutture di dati.
  10. Qual è lo scopo di un Object / Relational Mapper?

Sentiti libero di suggerire sostituzioni, questo elenco ha molti margini di miglioramento.


1
i metodi statici sono in molte lingue oltre al C ++, non che qui sia rilevante. In realtà trovo che sia un concetto difficile da comprendere per molti studenti - e chiedere loro se lo afferrano, o chiedere una definizione, è un modo scadente per scoprire se lo fanno o no.
Kate Gregory,

3
Tieni presente la domanda specificata dieci domande in dieci minuti. Se fossero state dieci domande in trenta minuti, vorrei aumentare il livello di difficoltà e porre domande aperte più significative.
Eric Wilson

3
Mi piacciono molto le domande 1-8 nella tua lista, anche se potrei sostituire la domanda 9 o 10 con "Perché le interfacce sono importanti" e / o "Perché è importante una classe astratta?" (in quell'ordine)
Nicole

7
Cosa c'è con tutte le domande OO?
Ricorsione

3
Eh, queste sono tutte domande sulla lingua. Non sono così convinto che siano importanti, contro altre cose legate alla teoria.
Andres Jaan Tack,

20
  1. Spiega i puntatori!
  2. Cosa sono le chiusure?
  3. Quali lingue usi nel tuo tempo libero e perché?
  4. Parla un po 'delle transazioni!
  5. Qual è la differenza tra un interprete e un JIT?
  6. Spiega le basi di un compilatore.
  7. Cosa succede a livello di memoria durante la ricorsione (e cosa c'è di diverso quando si ha il TCO)
  8. Quali sono i concetti importanti della programmazione OO (e perché sono importanti)?
  9. Quali novità stai guardando a casa e perché è interessante?
  10. Spiega la differenza tra un processo e un thread.

20
Non penso che la maggior parte di queste siano buone domande per le persone completamente nuove a .net (o programmazione) - e anche se conoscono le risposte che sono 1 minuto per domanda ...
FinnNk

9
Sono d'accordo che queste domande sembrano più domande "quanto sei geniale" piuttosto che domande "cosa sai / hai imparato" per gli studenti.
hyprsleepy,

5
Avrei fallito terribilmente in questo test, soprattutto perché non ho mai studiato CS o usato C. Quindi questo potrebbe aiutare a determinare chi ha prestato attenzione in classe e quali programmi per divertimento, ma non so se sarà utile in il contesto del PO.
Eric Wilson,

3
La maggior parte delle persone avrebbe sbagliato la maggior parte di questi.
Ricorsione

4
Buone domande, ma ad alcune non è possibile rispondere in un minuto.
zvrba,

16

La mia esperienza di studenti praticamente ricomincerei da capo: ho scoperto ciò che le persone imparano all'università e ciò che è utile sono due set piuttosto separati.

Ma dato che hai la possibilità di parlare con loro, sarebbe sciocco non prenderlo.

La mia ipotesi è che ci sia poca comunanza nel loro background, quindi sto evitando domande specifiche sulla lingua. L'unica eccezione che ho fatto a questo è l'ipotesi che abbiano fatto qualcosa sul web, ma questa domanda potrebbe essere sostituita da qualcosa di equivalente se sono specialisti incorporati o altro.

Hai chiesto loro di essere progressivi, cosa che in un certo senso ho cercato di fare, ma se la mia ipotesi di assenza di comunanza è corretta, le domande giuste / sbagliate sono relativamente difficili e molta della loro competenza verrà da quanto sono buone le loro risposte a più generali le domande sono.

Comunque...

1) A quali lingue e tecnologie sei stato esposto? Quanti di questi (e quali) hai speso più di 50 ore in realtà a programmare (che non include lezioni, tempo di laboratorio e così via, ma include progetti e compiti in cui sei stato programmando da solo).

2) Descrivi il programma più complesso che tu abbia mai scritto. Cosa l'ha reso complesso?

3) Cosa ti è stato insegnato all'università (in relazione alla programmazione) che davvero non pensi di aver capito bene? Se pensi di aver compreso tutto (controlla i loro voti a questo punto), parla di un'applicazione o di un elemento di un'applicazione che hai visto che non sapresti come programmare e come potresti iniziare a pensarci.

4) Quali sono i principi di base della programmazione orientata agli oggetti?

5) Parlami di database relazionali più che puoi in 1 minuto

6) Per un'applicazione Web, descrivere un metodo per mantenere le informazioni sull'utente tra le pagine. Quali vantaggi e svantaggi esistono per il meccanismo che hai descritto.

7) Scegli un pezzo di funzionalità di uso comune all'interno dell'informatica e spiega in modo molto breve come funziona a livello programmatico (ad es. Crittografia, compressione). Spiega anche come avresti dovuto usare quella funzionalità che avresti implementato (qui starei cercando il fatto che sebbene tu possa sapere come funziona qualcosa, probabilmente è meglio prendere una libreria per questo).

EDIT: Ristrutturato e aggiunto un paio di domande extra per renderlo più progressivo come inizialmente chiesto.


6
Mi piace questo elenco, aggiungerei un'altra domanda: cosa ti è stato insegnato all'università per cui non riesci a vedere alcun uso pratico del mondo reale? Ciò potrebbe fornire utili indicazioni su come pensano.
glenatron,

2
Se sono buoni allora i 10 minuti sono scaduti dopo la domanda 2 :-)
Sean Patrick Floyd,

Quando chiedi dei "principi" di OOP, intendi suggerire che OOP è una religione?
compman,

@compman - Chiaramente no. il principio può applicarsi a una religione ma non è esclusivo di quel contesto e può anche applicarsi a qualsiasi organizzazione, movimento o professione.
Jon Hopkins,

8

Se questi sono studenti e stai cercando di essere in grado di valutare dove si trovano nei loro studi, allora non dovrebbero esserci domande o domande che li indurranno a riflettere. Il mio consiglio sarebbe di concentrarsi solo sulle basi: non ha molto senso chiedere loro di spiegare come funziona la riflessione se non sono ancora completamente al passo con gli oggetti e l'eredità.

Ecco alcune domande di esempio che potrebbero essere utilizzate e potresti forse iniziare con qualcosa della categoria di conoscenza di base e poi spostarti sulla base di come rispondono alle domande, un po 'come il test adattativo .

fondamenti

  1. Quali sono alcuni comandi di base per il controllo del flusso del programma?
  2. Quali sono alcune operazioni logiche di base?
  3. Qual'è la differenza tra while e for loops?

Nucleo

  1. Spiegare brevemente la programmazione orientata agli oggetti.
  2. Spiega brevemente il concetto di eredità.
  3. Spiegare brevemente come funzionano i database.
  4. A cosa serve la enumparola chiave e quando la useresti?

Avanzate

  1. Cosa puoi dirmi dei generici C # o dei modelli C ++?
  2. Cosa puoi dirmi del sovraccarico dell'operatore?
  3. Qual è la differenza tra una classe e una struttura?
  4. Cosa puoi dirmi sulla riflessione in .NET?

6

Senza una risposta al mio commento sopra, queste sono cose che mi vengono in mente in generale, ma non sono sicuro che le considererei tecniche.

  • Che tipo di controllo versione hai usato?
  • Conoscete metodologie di sviluppo software come agile, waterfall, tdd?
  • Qual è lo scopo della documentazione nel software?
  • Differenza tra linguaggi tipizzati staticamente e dinamicamente?

5
"Perché lo stile di codifica degli spaghetti è utile?" - l'ultimo
mlvljr

Haha è questo per cercare di ingannarli?
billy.bob,

@ m.edmondson Ora, per favore, fai un esempio di un caso in cui è inevitabile interrompere l'astrazione;)
mlvljr

Hmm, non credo che ci sia un caso inevitabile ;-)
billy.bob

4

Mi rendo conto che stai cercando di costruire la formazione in base a ciò che non sanno e che prevedi di avere diversi "secchi" di formazione per diversi gruppi di studenti. Dato che hai assegnato solo dieci minuti, perché non fare un elenco di cose che stai pensando di includere nella formazione e porre quelle domande specifiche. Quindi hai intenzione di insegnare loro C #. Chiedi se lo sanno bene. Chiedi se hanno utilizzato funzionalità più recenti (LINQ, tipi nullable, generici, ...). Se nella formazione sono presenti contenuti di database, porre alcune domande al riguardo. Alla fine potresti vedere che uno degli argomenti che avevi programmato non è necessario, perché tutti lo sanno, e alcuni altri argomenti sono necessari a tutti, e così via. È più pratico che cercare di formulare domande che non sono correlate a ciò che tu '


+1 - Questo è quello che volevo dire. Basta chiedere loro cosa devono essere inclusi in una formazione fatta per loro.
mouviciel,

4

Poni loro la domanda FizzBuzz

Sapevano come codificarlo? Che lingua hanno usato? Perché l'hanno codificato come hanno fatto? Hanno usato la ricorsione? Loops? Altri metodi / funzioni? Puntatori?

Potresti anche usare la domanda come base per altre domande (es. Perché hai usato / non hai usato la ricorsione? Come scriveresti usando i puntatori?)

Non comprende tutto, ma potrebbe darti un'idea delle loro capacità di programmazione


1
Oh sì, ho promesso a qualcuno nella comunità che avrei posto questa domanda. Sarà l'ultima domanda e condividerò i risultati con tutti.

1
@Pierre 303: chiedevo alle persone di scrivere una funzione che avrebbe convalidato un codice postale. Ti assicuro che è stato altrettanto illuminante come FizzBuzz.
Scott Whitlock,

1
Mi dai l'opportunità di dare alcuni risultati che ho ottenuto facendo questa domanda. Su 6 o 7 interviste, nessuno è stato in grado di rispondere. Molti di loro erano studenti freschi, ma uno ha avuto 8 anni di esperienza! Quindi sono un po 'confuso ...

4

Dieci domande:

  1. Mostra un ciclo for che somma i valori di un array. Chiedi quindi cosa fa il pezzo di codice. [Possono leggere un ciclo di base?]

  2. Chiedi loro di scrivere un ciclo for che stampi i numeri da 1 a 10, separati da virgole. [Oltre a "possono farlo?" puoi giudicare quanto sia ripetitivo il loro codice.]

  3. Mostra un pezzo di codice con due riferimenti ae b, indicando due diversi oggetti con un campo intero ximpostato su, diciamo, 7e 5. Poi riassegnare: a = b;, b.z = 9;, e poi chiedere il valore di a.z. [Capiscono i riferimenti?]

  4. Mostra due cicli nidificati (usando gli indici ie j), accumulando valori da alcune espressioni. Nel ciclo più interno, hanno due calcoli: double x = Math.pow(2.0, i)e double y = x * j. Chiedi loro di rendere il codice più efficiente. [Conoscono la semplice dipendenza da loop?]

  5. Chiedi loro cosa c'è che non va nell'esempio di codice A. (Vedi sotto.) [Possono pensare logicamente?]

  6. Chiedi loro cosa c'è che non va nell'esempio di codice B. (Vedi sotto.) [Anche sul pensiero logico.]

  7. Chiedi loro di invertire questa condizione: (s != null && s.Length != 0)senza usare !. [Conoscono la legge di DeMorgan?]

  8. Mostra un pezzo di codice simile alle vecchie pubblicità di Lint sulle riviste: chiedi loro di trovare il bug. Ad esempio, sovraccarico equalsinvece di sovrascriverlo. [Sono bravi avvocati di lingua? Questo tipo di domande testano per lo più l'esperienza: hai già visto questo prima?]

  9. Possono descrivere come eseguire una ricerca binaria attraverso un array ordinato?

  10. Possono descrivere come potrebbe essere implementato un metodo di ordinamento?

Questi possono sembrare "troppo brevi", ma credo che per valutare gli studenti potresti scoprire che i dieci minuti sono piuttosto stretti. Vuoi davvero vederli fare un po 'di codice. (Sembra che farai FizzBuzz, sulla base di un commento.)

Se puoi assumere uno studente più forte, allora vorrai anche chiedere ad alcuni dei classici, come la ricorsione, invertire una lista collegata e forse un jolly avanzato come spiegare una lista XOR o quali intuizioni potrebbero avere perché l'ordinamento di un insieme di numeri rende più facile comprimere che non ordinare.

Codice Esempio A:

if (m != null)
    a = m;
else
    a = null;

Codice esempio B:

if (x != 0 || x != 1) {
    ...
}

3

Sicuramente lo farai nel modo sbagliato. Identifica i gruppi in cui vuoi collocare ogni studente

per esempio

No previous programming experience
Familiar with procedural constructs like variables, loops, branching
familiar with basic object orientated constructs like classes, interfaces, events, inheritance
familiar with using Generics/Templates
familiar with creating Generics/Templates

e così via. Dopo aver identificato i gruppi adatti che dipenderanno dal materiale del corso, capire quali domande porre sarà banale.


3

Gli studenti sono già assunti e vuoi creare un programma di formazione, quindi parte dell'accordo è capire quanto velocemente possono imparare (e / o ciò che sanno: a chi importa quale?). Perché non scegliere alcune domande facili, medie e difficili e farle in anticipo.Perché tendere un'imboscata con domande che potrebbero non conoscere, se possono essere facilmente apprese (da alcuni)?

Vedrai, contrariamente a quanto la maggior parte della gente immagina, che molti studenti non faranno molto bene anche con le domande in mano. In questo modo, imparerai a conoscere i tuoi studenti, le loro conoscenze e le loro capacità di apprendimento.


2

Crea 5 semplici costrutti del diagramma di flusso e un elenco separato di risposte. Chiedi loro di abbinare l'immagine con la frase.

Disegna quanto segue:

  1. Se costruisci
  2. Se altrimenti costruisci
  3. Do While Loop
  4. Do Until loop
  5. Costrutto Dichiarazione del caso

Chiedere loro di spiegare la differenza tra 1 e 2.
Chiedere loro di spiegare la differenza tra 3 e 4.
Chiedere loro un esempio di quando un costrutto di case case sarebbe applicabile.


1

Non sono sicuro che sarebbe possibile farlo in 10 domande in 10 minuti. Forse dai loro 5 minuti per dirti quello che sanno su .net. Quindi avere un elenco preparato di forse 20 argomenti e scegliere 2 o 3 da cose che hanno menzionato e 2 o 3 da cose che non hanno.

Ad esempio potresti iniziare:

Dimmi brevemente (hai 5 minuti) come produresti un semplice progetto C # in Visual Studio dalla sua creazione alla sua esecuzione.

Dopodiché:

OK, dimmi qualcosa in più su quanto segue. Sarà veloce, 1 minuto per risposta, quindi non cercare di essere troppo dettagliato, voglio solo avere un'idea di ciò che conosci.

Quindi fai 5 domande per questo dal seguente:

  • Spiega cos'è una classe.
  • Qual è la differenza tra una classe astratta e un'interfaccia?
  • Spiega brevemente come funziona la garbage collection in .Net

    ....

  • Come eseguire il debug di qualcosa in caso di problemi?

  • Yadda-yadda - Sono sicuro che sarai in grado di scegliere un lungo elenco tra le altre risposte

1

Credo nell'autovalutazione! Se spieghi alla persona l'esatta situazione che si troverà, ad esempio: "dovrai codificare SQL ... con un database di oltre 100 tabelle e 500K + record, che devono essere eseguiti in meno di 4 secondi ...". E se gli chiedi: "Pensi di poterlo fare?" - otterrai una risposta corretta.

Spenderò 5 domande sulle aspettative degli studenti e altri 5 tecnici:

  1. Cosa ti aspetti da questo allenamento?
  2. Qual è il tuo livello (questo dovrebbe essere specifico del dominio)?
  3. Cosa vuoi vedere / imparare durante questo allenamento (indica 3 punti più importanti)?
  4. Se facciamo esercizi, cosa vedresti più utile per te? (officina, scelta multipla)?
  5. Cosa ti aspetti dall'insegnante?

Quindi puoi andare con alcune domande tecniche come (questo dovrebbe essere in base all'argomento). per OOP ad esempio:

  1. Che cos'è l'incapsulamento?
  2. Cos'è l'interfaccia?
  3. Polimorfismo?
  4. Sub-tipizzazione?
  5. Binding dinamico?

1

Sono alla ricerca di problem solving, forte abitudine di apprendimento, sviluppo professionale e ampia conoscenza degli approcci.

  1. Posso vedere il tuo portfolio?
  2. Quali sono gli ultimi 3 libri tecnici che hai letto? Perché?
  3. Quale testo di programmazione ha cambiato il modo in cui pensi di più? Perché?
  4. Come definiresti chickenun oggetto? Come si collega ad altri birds? Che ne dici di mammalse animals?
  5. Puoi spiegare qualcuna di (REST, polimorfismo, algebra relazionale, progettazione di parser, MVC) in termini di profani?
  6. Qual è il software più interessante (o migliore) che hai creato tu stesso?
  7. Puoi descrivere le lingue in cui sei abile dal preferito al meno preferito? Cosa ti frustra delle tue lingue meno preferite?

Mi aspetto che gli sviluppatori:

  • Sii intraprendente e veloce
  • Comprendi correttamente i concetti di base
  • Impara a scoprire concetti avanzati
  • Traccia il successo e il fallimento (imparando da esso)
  • Impara costantemente, riflessivo
  • Comunicare problemi complessi semplicemente
  • Mostra equilibrio e logica quando si discute di questioni dogmatiche comuni

1
Raramente leggo libri di programmazione da copertina a copertina. Fanno materiale di riferimento e chiarimento migliore.
Andres Jaan Tack,

Hai ragione: ci sono alcuni testi che non puoi leggere da copertina a copertina (materiale di riferimento), ma ci sono una serie di volumi incredibili che cambieranno il tuo modo di pensare. Ad esempio: Visual Explanations di Tufte o The Paradox of Choice, o Programming Pragmatics (o qualsiasi altra cosa di Hofstadter).
Bruce Alderson,

"ci sono un numero di volumi incredibili che cambieranno il modo di pensare" che non è limitato ai libri tecnici / di programmazione. Inoltre, non ho un portafoglio, tutti i miei lavori sono stati sistemi sicuri, sarei fregato.
NimChimpsky,

Contribuisci un po 'di tempo a un progetto aperto o no profit. È importante vedere il vero lavoro prima di assumere qualcuno (finirai per mostrare il tuo vero lavoro alla fine). Un portafoglio è importante quanto un CV ben curato.
Bruce Alderson,

1

La tassonomia di Bloom è utile qui. Vuoi raggiungere una varietà di livelli di conoscenza, che vanno dalla memorizzazione automatica a quella analitica. Questo ti dà la possibilità di scoprire dove si trova il loro livello di abilità. Poiché l'OP era alla ricerca di domande da porre agli studenti, l'elenco che segue non suppone più conoscenza di quanto uno studente del 3 ° o 4 ° anno (spero) possederebbe.

Concettuale

  1. Che cos'è un underflow dello stack?
  2. Qual è la differenza tra un oggetto e una classe?
  3. Qual è la differenza tra una funzione e un metodo?
  4. Identifica alcuni dei punti di forza e di debolezza di Quicksort e Insertion Sort.
  5. Descrivi come un programma che hai scritto mostrerebbe tutti i valori memorizzati in un albero binario.

Pratico

  1. Hai usato un sistema di controllo versione? In che modo consente ai membri del team di collaborare in modo più efficace?
  2. Il tuo compilatore dice "simbolo non identificato". Cosa significa?
  3. Che cos'è una "violazione della segmentazione"?
  4. Denominare alcune strutture di dati fornite dalla sintassi (inserire la lingua qui) o dalla libreria standard.
  5. Come trovare e visualizzare tutti gli indirizzi e-mail in 10.000 file?

1

Dal momento che sono già assunti, per una rapida valutazione penso che si dovrebbe (insieme alle domande di programmazione), si dovrebbe chiedere loro

  1. Qual è la configurazione del sistema su cui hai lavorato (configurazione hardware del PC).
  2. Hai provato a testare il tuo codice (progetto se lavorato durante il college) su diversi sistemi operativi.
  3. Preferisci la codifica in Windows o Linux (se hanno funzionato su sistemi operativi diversi da Windows)
  4. la codifica è più veloce / più lenta / meglio dipende dai sistemi? (sistemi più alti = buon fattore per la codifica poiché i sistemi lenti richiedono tempo per la compilazione e tutto il resto)
  5. Inoltre, chiedi se sanno almeno di formattare un'unità o di installare il sistema operativo nel caso in cui si blocchi o non riesca ad avviarsi mentre fa affidamento sul tipo IT per chiedere aiuto (questo è per sapere se sono in grado di gestire correttamente alcune situazioni del sistema operativo)

Queste domande sono solo per scoprire la loro consapevolezza del sistema che usano durante la programmazione,


0

Inizia dai livelli più bassi dello stack del software e verso l'alto.

  1. Cos'è il BIOS?
  2. Qual è il ruolo del sistema operativo?
  3. Che cos'è il multi-tasking? Che cos'è il collegamento dinamico?
  4. Descrivi come il codice sorgente viene trasformato in un programma di lavoro per la lingua scelta dallo studente (esempio di risposta per C: preprocessore -> compilatore -> un gruppo di file oggetto -> linker -> eseguibile)
  5. Che cos'è una cache? Stimare i tempi di accesso relativi alla cache L1, cache L2, RAM, disco di rotazione (cioè non SSD).
  6. Enumera le strutture di dati che potresti implementare senza cercare i dettagli nella letteratura.
  7. Qual è il programma più complesso che hai scritto? Cosa l'ha reso complesso?
  8. Spiegare la ricorsione su un esempio di propria scelta.
  9. Perché i programmi si arrestano in modo anomalo?
  10. Spiega cosa è una sezione critica e fai un esempio di dove verrà usata.

4
La maggior parte di queste domande sembrano provenire da un libro sul sistema operativo e onestamente hanno poco a che fare con la programmazione. Onestamente, non è necessario conoscere nulla di tutto ciò per la maggior parte dei lavori di programmazione, se presenti.
Bryan Harrington,

1
Un po 'esagerato, ma: se non sai quale sia il ruolo del sistema operativo, è inutile parlare di sicurezza e diritti di accesso, sia a livello di sistema operativo che a livello di database. Se non si conosce il processo di compilazione, non è possibile eseguire il debug del processo di generazione dalla A alla Z. Se non si conoscono le latenze della cache, si finirà con il codice che invia tutto in un DBMS in cui un piatto- il file sarebbe stato sufficiente. Se non conosci i mutex, non sai nulla della programmazione parallela. Il resto dovrebbe avere un evidente collegamento con la programmazione.
zvrba,

1
(E se non sai cos'è il BIOS, molto probabilmente non sai nulla sulla programmazione dell'hardware del PC.)
zvrba

4
Inizia con una conoscenza di base dell'elettricità. Gratta che: inizia con la fisica atomica. ALLORA procedete fino al BIOS.
Dan Rosenstark,

Mentre queste sono domande molto importanti e di base, e ogni programmatore dovrebbe conoscere le risposte, ritengo che la prima metà dell'elenco sarà una perdita di tempo, in quanto anche i tecnici dei PC devono saperlo. Non ti daranno una buona idea se la persona che stai assumendo sa qualcosa sulla programmazione .
Ken Bloom,

0
  1. Una stringa è mutabile o immutabile?
  2. Qual è la differenza tra una classe e una classe statica?
  3. Che cos'è un puntatore?
  4. Descrivi la complessità.
  5. Qual è la differenza tra un array e un elenco collegato.
  6. Qual è la differenza tra Merge Sort e Quick Sort?
  7. Dato un foglio di calcolo con colonne Nome, Indirizzo, Codice postale e Numero di telefono descrivono come convertire il foglio di calcolo in un database normalizzato.
  8. Descrivere le differenze tra metodi asincroni e sincroni e i modi in cui devono essere gestiti.
  9. Come passeresti le informazioni da un'applicazione lato server a un'applicazione Web?
  10. Qual è la tua lingua preferita? Quali sono alcuni dei motivi per cui useresti quella lingua su X? (es. perché dovresti usare Java su C # e quali sono alcune delle differenze fondamentali?)
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.