Quali sono le aree su cui un programmatore Java con esperienza da nove anni dovrebbe concentrarsi mentre si prepara per un’intervista tecnologica su Amazon IDC?

Ok, diciamo che stai pensando di concederti 3 mesi di tempo per prepararti per fare uno scatto su Amazon. Penso che questo dovrebbe essere il tuo piano di battaglia
1. Inizia con gli algoritmi di ordinamento: ripulisci tutti gli algoritmi di ordinamento standard insieme ad alcuni che sono molto specifici per i dati
2. Ora inizia con gli array: prova a risolvere alcuni problemi di struttura dei dati basati su array (ce ne sono molti disponibili su Internet). Quando ti senti a tuo agio, inizia con array multidimensionali e fai alcune domande
3. Successivamente leggi alcuni articoli sulle comuni tecniche di manipolazione dei bit. troverai molte domande sulla manipolazione dei bit su careercup. Prova a risolverli senza guardare le soluzioni suggerite
4. Successivamente implementa la tua lista collegata ADT. Se hai familiarità con un linguaggio di programmazione di alto livello come Java che ha una classe di libreria LinkedList, prova a replicare quelle funzionalità con la tua implementazione dell’elenco collegato ADT. Navigare sul Web per domande sulla struttura dei dati comuni nell’elenco collegato e risolverle. Se risolvi abbastanza domande, presto quando vedi una domanda sarai in grado di adattare la domanda a uno dei modelli di soluzione noti
5. Successivamente implementare il proprio stack e coda ADT con entrambe le implementazioni supportate dall’elenco con array e ADT. Ancora una volta trova una serie di domande e risolverle
6. Ora implementa la tua struttura ad albero binario ADT. Leggi su pre-ordine / ordine postale e in ordine traversale di b-alberi. La maggior parte dei problemi dell’albero b può essere risolta con la ricorsione e con l’iterazione. Quindi, per ogni domanda che pratichi, prova a implementare soluzioni sia ricorsive che iterative. Uno a tuo agio con b tree, prova a generalizzare l’albero in un albero n-ary e implementa gli stessi algoritmi
7. una volta che hai familiarità con b alberi, prova a risolvere le domande su BST
8. Una cosa che consiglierei anche è ripulire la matematica di base. Ricordi il tempo in cui da bambino era solito trovare manualmente le radici quadrate? Prova a scrivere un algoritmo per risolvere operazioni matematiche leggermente più complesse come la radice quadrata usando operazioni matematiche di base. Ricorda inoltre che le moltiplicazioni e le divisioni sono state più lente delle operazioni di manipolazione dei bit. Impara a sostituire la moltiplicazione / le divisioni con i bit shift (è ovvio che n * 2 è uguale a n << 1 ma non è così ovvio che n * 100 è uguale a n << 6 + n << 5 + n << 2 -che viene con la pratica)