Ho inciampato questa citazione da Bill Gates: "Dovresti assolutamente inviarmi un curriculum se riesci a leggere tutto". Stava parlando dei libri di The Art of Programming .. Quindi ero piuttosto curioso e voglio leggerlo tutto ma onestamente, non lo capisco affatto I'm really not that highly
intellectual being
.. Quindi questo dovrebbe essere il motivo per cui non riesco a capirlo , ma sono impaziente di imparare .. Attualmente sto leggendo il volume 1 sull'algo fondamentale .. Quindi ci sono libri là fuori che sono amichevoli per i principianti / lenti come me? Così posso costruirmi e spero in futuro di leggere il libro di Knuth a mio agio ..
se ti definisci come not a highly intellectual being
allora ti stai ponendo a basse aspettative. Devi rompere quella mentalità se vuoi fare qualcosa che valga la pena di essere un problema. Non dovresti avere dubbi sul fatto che puoi ottenere qualcosa. Inoltre, raggiungerlo non significa che lo raggiungerai facilmente.
Le cose che vale la pena perseguire sono quelle difficili ... e non è un cliché. Nel software, nell'ingegneria, nella vita in generale, se vuoi ottenere qualcosa, devi cercare cose difficili, cose che la gente evita e non accontentarsi dei più bassi denominatori comuni delle cose.
Innanzitutto, non è chiaro quale sia il tuo background CS. Il libro di Knuth richiede un certo grado di maturità. Poche persone con una laurea in CS possono affrontarlo facilmente. Non mi aspetterei che uno studente di CS che ha appena terminato il suo primo corso di algoritmi sia effettivamente in grado di leggere anche un solo libro di Knuth. La maturità necessaria per ottenerlo non è proprio lì, e questo non ha nulla a che fare con la capacità mentale dello studente.
Devi avere i tuoi algoritmi di base freddi e chiari e devi avere una buona quantità di programmazione (lavoro e / o scolastica) sotto la cintura - direi, almeno 40 crediti sulla programmazione. Devi anche avere la tua matematica CS su un terreno solido.
Non puoi andare molto avanti senza avere una buona conoscenza della matematica discreta (e forse della teoria del calcolo).
Non è che avrai bisogno di quella conoscenza per lavorare sui problemi di Knuth, ma hai bisogno di una maturità per poter passare attraverso quel tipo di materiale.
Prima scegli un libro e un solo libro (il libro di CLRS come precedentemente suggerito), e lavoralo dall'inizio alla fine. Quando possibile, programmi che implementano gli algoritmi. Non usare Java o C #, nemmeno C ++. Vai a ossa nude C e ottieni la sensazione di costruire cose da rottami metallici a osso nudo.
Prendi anche il libro di Knuth su "Concrete Mathematics" se non hai seguito un corso di matematica discreta e teoria dei calcoli. Sarebbe bello che tu leggessi anche quel libro.
Quindi affronta l'enciclopedia di Knuth, un tomo, un capitolo alla volta. Non andare in un altro capitolo senza avere una buona conoscenza del primo.
Suggerirei di passare prima al volume I (algoritmi fondamentali), quindi al volume III (ricerca e ordinamento). Questi dovrebbero essere i tuoi obiettivi immediati. Quindi, più tardi (molto più tardi), affronta il volume IV (algoritmi combinatori) e poi il volume II (algoritmi semi-numerici.)
Non sentirti male se non lo capisci all'inizio. Ho cercato di superare il volume I e III per anni (ormai 10 anni).
E non dovresti mettere troppo peso su di esso neanche. Non farlo per dimostrare qualcosa a qualcuno o a te stesso. Fallo perché sei intellettualmente interessato a farlo. Puoi diventare esperto di algoritmi semplicemente usando il libro del CLRS (o uno qualsiasi dei libri di livello superiore disponibili).
Sii pragmatico e concediti una pausa. Trattare il libro di Knuth come un'ambizione personale a lungo termine, non come una prova immediata che sei materiale CS;)
Ci sono altre cose più importanti (per quanto riguarda la carriera) per cui ucciderti;)