JavaScript va bene per algoritmi e strutture dati?
Sì, soprattutto se punti a ruoli frontend o full stack, dove è il linguaggio in cui farai i colloqui. Conviene imparare presto tre stranezze: non esistono heap o coda integrati, sort() confronta come stringhe se non passi un comparatore, e ogni numero è un float a 64 bit, quindi gli interi oltre 2^53 richiedono BigInt.
JavaScript ha un heap o una coda di priorità integrati?
No. Hai Array, Map, Set e le loro varianti weak, e basta. In un colloquio o scrivi un piccolo heap binario, una trentina di righe, o dici che ne useresti uno e ne indichi i costi; in entrambi i casi devi averne già scritto uno. Nel secondo passaggio di questo percorso lo fai.
Perché [10, 9, 1].sort() restituisce [1, 10, 9]?
Perché senza un comparatore Array.prototype.sort converte gli elementi in stringhe e li confronta in ordine UTF-16, e '10' viene prima di '9'. Ordina i numeri con nums.sort((a, b) => a - b). È il primo bug che quasi tutti incontrano quando iniziano a scrivere codice di ordinamento in JavaScript.
Nei colloqui frontend chiedono algoritmi e strutture dati?
In molte aziende più grandi, sì: di solito uno o due round su array, hash map, alberi e visita di grafi, in JavaScript, accanto ai round su interfaccia e system design. Le aziende più piccole puntano di più su esercizi pratici. In ogni caso, sapere che una ricerca in una Map richiede tempo costante e un ciclo annidato su due liste no è ciò che distingue una risposta che funziona da una veloce.
Quali corsi di questo percorso non sono insegnati in JavaScript?
Tre: la programmazione dinamica e la serie di colloqui in Python sono insegnate in Python, e la manipolazione dei bit in C++. Sono elencati dopo i passaggi, ognuno con un link che lo apre nel suo linguaggio. JavaScript ha gli stessi operatori bit a bit, più >>>, ma li applica a interi a 32 bit, cosa da ricordare quando porti un trucco da un linguaggio all'altro.
Devo conoscere JavaScript prima di iniziare questo percorso?
Almeno funzioni, array, oggetti e classi. Se sono argomenti nuovi, il corso di JavaScript di Coddy li copre prima, gratis, e questo percorso riprende da dove finisce.