Sto imparando Java ora un giorno.
Voglio essere uno sviluppatore aziendale di successo. Quindi quali algoritmi e strutture dati dovrei essere ben preparato? Quali libri mi consiglieresti?
Per essere uno sviluppatore Java di successo, devo conoscere tutti gli algoritmi avanzati come quelli forniti in CLRS?
Potete suggerirmi un elenco degli argomenti che dovrei imparare in ordine decrescente di priorità?
Dimmi il nome di alcuni argomenti che devo conoscere. Ti piace la ricerca, l'ordinamento, i grafici, gli alberi ecc.?
È positivo che tu sia desideroso di estendere e migliorare le tue capacità di programmazione. È tuttavia importante non trattare gli algoritmi come un catalogo di cose da memorizzare. Quello che devi sapere per diventare un buon sviluppatore (in Java o qualsiasi altra cosa) è capire l'analisi algoritmica.
Lo impari imparando alcune strutture dati e algoritmi selezionati e imparando ad analizzare le loro prestazioni in termini di tempo e spazio (memoria). Ricerca, ordinamento, grafici, alberi, cumuli, pile e tutta quella roba buona. Questo dovrebbe anche seguire alcune basi della teoria del calcolo e della matematica discreta (anche se nel regno di Java non riusciamo mai ad usare direttamente questi due argomenti - i loro benefici sono indiretti).
Separare l'apprendimento di un linguaggio di programmazione (nel tuo caso Java) dall'apprendimento dell'analisi algoritmica (che è diversa dalla "memorizzazione" di algoritmi e strutture di dati).
"Algorithms in a Nutshell" di George T. Heineman, Gary Pollice e Stanley Selkow è un buon inizio. "Algorithms" di Sanjoy Dasgupta, Christos Papadimitriou e Umesh Vazirani è un altro buon libro di testo universitario.
La cosa migliore è prendere 9-12 corsi di credito in programmazione prima di frequentare un corso universitario di 3000 livelli in algoritmi. A parte questo, lo studio di sé con i due libri che ho citato potrebbe essere una buona alternativa (lo studio di sé potrebbe non essere adatto a tutti, però).
In bocca al lupo!