Ho imparato degli algoritmi in un corso universitario anni fa. Ma se devi fare algoritmi usando un libro, allora ne hai bisogno uno buono. Due libri si distinguono per me come il modo per entrare negli algoritmi:
- The Algorithm Design Manual di Steven S. Skiena
- Introduzione agli algoritmi di T Cormen, C Leiserson, R Rivest e C Stein
Il primo è forse più un manuale pratico, mentre il secondo è più simile alla Bibbia, ma con prove.
La strategia che potresti seguire consisterebbe nel leggere, fare gli esercizi teorici e quindi implementare il più possibile, concentrandoti su algoritmi / problemi che ritieni interessanti o stimolanti o entrambi. Quindi, cerca di coprire tutti gli aspetti degli algoritmi, non solo di implementarli. Ciò includerà lo studio della complessità del tempo e dello spazio e la dimostrazione della loro correttezza. Lo studio degli algoritmi va oltre l'implementazione di algoritmi.
Dopo aver acquisito sufficiente esperienza, inizia a specializzarti. Se ti interessano la geometria computazionale o algoritmi non bloccanti, ad esempio, inizia a esplorare libri e documenti di ricerca in quest'area.
La specializzazione è buona, ma è anche utile campionare tecniche di altre aree, quindi leggere ampiamente gli algoritmi (e implementare tali algoritmi) è un buon modo per mantenere un ampio set di competenze.
EDIT: Dopo aver esaminato gli algoritmi introduttivi, puoi consultare libri come Algorithms randomizzati di Motwani & Raghavan o Approximation Algorithms di Vazirani . Questi libri sono un sondaggio (e in una certa misura, un buon esercizio di apprendimento in tecniche matematiche) in tecniche di progettazione di algoritmi più avanzate. Ampliano anche la tua conoscenza di molti altri campi in CS come grafici e reti, progettazione di strutture dati e ottimizzazione.