![translation](https://cdn.durumis.com/common/trans.png)
Questo è un post tradotto da IA.
[Non specialisti, sopravvivere come sviluppatori] 14. Riepilogo dei contenuti del colloquio tecnico per sviluppatori junior
- Lingua di scrittura: Coreana
- •
-
Paese di riferimento: Tutti i paesi
- •
- Tecnologia dell'informazione
Seleziona la lingua
Testo riassunto dall'intelligenza artificiale durumis
- Raccoglie le domande tecniche più frequenti nei colloqui per sviluppatori junior, fornendo spiegazioni su argomenti come la memoria, le strutture dati, i database, la programmazione, gli algoritmi di sostituzione delle pagine, processi e thread, OSI 7 layer, TCP e UDP.
- Ogni argomento è presentato con una breve spiegazione concettuale e esempi tipici per favorire la comprensione.
- Contiene informazioni utili per acquisire le conoscenze tecniche di base necessarie per preparare i colloqui di lavoro come sviluppatore.
Sopravvivere come sviluppatore senza background tecnico
#14. Contenuti frequenti dei colloqui tecnici per sviluppatori junior
[Aree della memoria principale]
- Area codice: l'area in cui viene memorizzato il codice sorgente del programma. La CPU recupera le istruzioni (sorgente, funzioni, istruzioni di controllo) memorizzate nell'area codice e le elabora. Ad esempio, quando un programma scritto in C viene eseguito, l'area codice contiene il codice sorgente di quel programma.
- Area dati: l'area in cui vengono memorizzate le variabili globali e statiche. Viene assegnata all'avvio del programma e non viene distrutta fino alla sua terminazione. Ad esempio, quando un programma scritto in C viene eseguito, l'area dati contiene le variabili globali o statiche dichiarate in quel programma.
- Area stack: l'area di memoria temporanea utilizzata dal programma. Vengono memorizzate le variabili locali e i parametri correlati alla chiamata della funzione. Viene assegnata con la chiamata della funzione e viene distrutta alla sua terminazione. Ad esempio, quando viene chiamata una funzione scritta in C, le variabili locali o i parametri utilizzati in quella funzione vengono assegnati all'area stack.
- Area heap: l'area in cui gli utenti possono allocare e rilasciare dinamicamente lo spazio di memoria. Ad esempio, quando si alloca dinamicamente la memoria utilizzando la funzione malloc() in C, l'area di memoria allocata viene memorizzata nell'area heap.
[Strutture dati]
- Stack: una struttura dati che utilizza il metodo LIFO (Last In, First Out). Ad esempio, il pulsante "Indietro" nel computer è simile a uno stack. Le pagine visitate in precedenza vengono memorizzate nello stack e, quando si fa clic sul pulsante "Indietro", viene recuperata e visualizzata la pagina memorizzata più di recente.
- Queue: una struttura dati che utilizza il metodo FIFO (First In, First Out). Ad esempio, ricevere un numero di attesa in banca e entrare in fila di attesa è simile a una coda. La persona che arriva per prima viene servita per prima e l'ultima persona che entra viene servita per ultima.
- Tree: una struttura dati che rappresenta i dati in una struttura gerarchica. Ad esempio, il DOM Tree di HTML è simile a un albero. La struttura di una pagina HTML è rappresentata da un albero, iniziando dal nodo radice, il tag html, e procedendo in modo sequenziale con i nodi figlio.
- Heap: un tipo di struttura ad albero binario che si suddivide in heap massimo e heap minimo. Ad esempio, in una coda con priorità, i dati con la priorità più alta si trovano nel nodo radice dell'heap e i dati con la priorità successivamente più alta si trovano nei nodi figlio. Questo è un esempio di heap massimo.
[RDBMS e NoSQL]
- RDBMS: un database che definisce e gestisce i dati in modo strutturato con uno schema rigido. I dati possono essere memorizzati in modo distribuito e sono facili da modificare. Ad esempio, MySQL, Oracle e MS-SQL sono esempi tipici di RDBMS.
- NoSQL: un database che memorizza e gestisce i dati con uno schema flessibile. È adatto per l'elaborazione e la memorizzazione di grandi volumi di dati e ha anche un'elevata scalabilità. Ad esempio, MongoDB, Cassandra e HBase sono esempi tipici di NoSQL.
[Programmazione procedurale e orientata agli oggetti]
- Programmazione procedurale: una tecnica di programmazione in cui l'elaborazione sequenziale è molto importante. Linguaggi come C e Pascal sono linguaggi procedurali.
- Programmazione orientata agli oggetti: un metodo per elaborare i dati e le procedure in modo logico raggruppandoli in base al concetto di oggetto (oggetto). Linguaggi come Java, C++ e Python sono linguaggi orientati agli oggetti. Ad esempio, in un programma di simulazione di auto, un'auto è rappresentata come un oggetto. Gli attributi dell'auto (colore, accelerazione, ecc.) sono rappresentati dai dati e le funzioni svolte dall'auto (guida, arresto, ecc.) sono rappresentate dai metodi.
[Overriding e Overloading]
- Overriding: è il processo di ridefinizione e utilizzo di un metodo posseduto da una classe padre in una classe figlia. Quando si chiama un metodo della classe padre in una classe figlia, viene eseguito il metodo ridefinito nella classe figlia anziché il metodo della classe padre. Ad esempio, il metodo toString() in Java è un esempio di overriding.
- Overloading: è il processo di definizione di più metodi con lo stesso nome, ma con tipi e numero di parametri diversi, per rispondere a diversi tipi di chiamate. I metodi con lo stesso nome ma parametri diversi funzionano. Ad esempio, il metodo print() in Java è un esempio di overloading.
[Algoritmi di sostituzione delle pagine]
- FIFO: sostituisce la pagina più vecchia caricata nella memoria fisica. La "chiusura" della barra delle attività nel computer è simile all'algoritmo FIFO. Il programma eseguito per primo è anche il programma visualizzato per ultimo e viene chiuso.
- LRU: sostituisce la pagina che non è stata utilizzata per il periodo più lungo. Un'app che termina le app meno utilizzate tra le app vecchie, come un'app di terminazione delle app, è simile all'algoritmo LRU.
- LFU: sostituisce la pagina con il numero minore di accessi. Ad esempio, la funzione "Chiudi schede" nel browser che chiude le schede meno utilizzate tra le schede appena aperte è simile all'algoritmo LFU.
- MFU: sostituisce la pagina con il numero maggiore di accessi. L'algoritmo MFU è raramente utilizzato.
[Processi e thread]
- Processo: un'unità di lavoro di esecuzione assegnata dal sistema operativo, che rappresenta un programma. Se più processi vengono eseguiti contemporaneamente, a ciascun processo vengono assegnati aree di memoria e CPU indipendenti.
- Thread: un'unità di esecuzione che opera all'interno di un processo. I thread condividono le risorse assegnate al processo e vengono eseguiti. Ad esempio, in un browser Web, ciascuna scheda è un thread, non un processo.
[OSI 7Layer]
- Livello applicazione: il livello che collega l'utente alla rete. Include protocolli come HTTP, FTP e SMTP.
- Livello presentazione: il livello che definisce il modo in cui vengono rappresentati i dati. Include protocolli come JPEG, MPEG e SSL.
- Livello sessione: il livello che gestisce le sessioni tra due sistemi che comunicano.
- Livello trasporto: il livello responsabile del trasferimento dei dati. Include protocolli come TCP e UDP.
- Livello rete: il livello che imposta il percorso per il trasferimento dei dati. Include protocolli come IP e ICMP.
- Livello collegamento dati: il livello che trasferisce i dati in base all'indirizzo fisico (indirizzo MAC). Include protocolli come Ethernet e Token Ring.
- Livello fisico: il livello responsabile della comunicazione fisica e dei mezzi di trasmissione.
[TCP e UDP]
- TCP: un servizio orientato alla connessione che trasferisce i dati in modo affidabile. Utilizza una handshake a 3 vie e una handshake a 4 vie per stabilire o terminare la connessione. Ad esempio, quando si effettua l'accesso a un sito Web o si trasferiscono file, viene utilizzato il TCP.
- UDP: un servizio senza connessione che non richiede una procedura di segnalazione per il trasferimento di dati. La sua caratteristica è la mancanza di affidabilità dei dati, ma una velocità di elaborazione più rapida. Ad esempio, lo streaming video o i giochi online utilizzano UDP perché una trasmissione rapida è importante.