Tutte le guide

Domande di colloquio da programmatore, con soluzioni (eseguibili)

Ai colloqui per programmatore, oltre alle domande teoriche, quasi sempre ti chiedono di scrivere codice: piccoli problemi che testano se sai ragionare, non se hai memorizzato. Ecco i classici più frequenti, con soluzione spiegata ed eseguibile qui nella pagina.

1. FizzBuzz

Stampa i numeri da 1 a 15; al posto dei multipli di 3 scrivi "Fizz", dei multipli di 5 "Buzz", di entrambi "FizzBuzz".

È il filtro più famoso: banale se sai programmare, rivelatore se non sai.

for n in range(1, 16):
    if n % 3 == 0 and n % 5 == 0:
        print("FizzBuzz")
    elif n % 3 == 0:
        print("Fizz")
    elif n % 5 == 0:
        print("Buzz")
    else:
        print(n)

L'ordine dei controlli conta: la condizione "entrambi" va per prima, altrimenti non viene mai raggiunta.

2. Invertire una stringa

Data una parola, stampala al contrario.

parola = "programmare"
print(parola[::-1])

[::-1] scorre la stringa all'indietro. In un colloquio, saper spiegare anche una versione "manuale" con un ciclo fa una buona impressione.

3. Contare le vocali

Conta quante vocali ci sono in una frase.

frase = "ciao mondo"
vocali = 0

for lettera in frase:
    if lettera in "aeiou":
        vocali += 1

print("Vocali:", vocali)

lettera in "aeiou" è vero se la lettera è una vocale.

4. Il numero è palindromo?

Un numero è palindromo se si legge uguale da sinistra e da destra (es. 121).

function palindromo(n) {
  const s = String(n);
  return s === s.split("").reverse().join("");
}

console.log(palindromo(121));
console.log(palindromo(123));

Trasformi il numero in stringa, la rovesci e la confronti con l'originale.

5. Trovare il massimo senza usare max

Trova il valore più grande in una lista, senza funzioni pronte.

let numeri = [4, 9, 1, 7, 12, 3];
let massimo = numeri[0];

for (let n of numeri) {
  if (n > massimo) {
    massimo = n;
  }
}

console.log("Massimo: " + massimo);

Molte domande "difficili" sono variazioni di questo schema: scorri, confronta, tieni il migliore.

Come prepararti sul serio

Le domande di codice si superano con l'allenamento, non con la teoria: devi averne risolte tante prima. Il percorso Algoritmi e i percorsi di linguaggio su LevelUpCode ti fanno esercitare esattamente su questo tipo di problemi, con esecuzione immediata nel browser. Vuoi solo provare le soluzioni qui sopra? Aprile nel playground.

Impara facendo, non solo leggendo

Percorsi da zero ad avanzato con esercizi che scrivi ed esegui nel browser. I primi capitoli sono gratis.

Domande di colloquio da programmatore, con soluzioni (eseguibili) — LevelUpCode