Eu tropecei nesta citação de Bill Gates: "Você definitivamente deveria me enviar um currículo se puder ler a coisa toda". Ele estava falando sobre os livros The Art of Programming .. Então eu fiquei bem curioso e quero ler tudo, mas honestamente, eu não entendo nada .. I'm really not that highly
intellectual being
.. Então essa deve ser a razão pela qual eu não consigo entender , mas estou ansioso para aprender .. Atualmente, estou lendo o volume 1 sobre algo fundamental .. Existe algum livro por aí que seja amigável para iniciantes / pessoas lentas como eu? Para que eu possa me construir e espero que, no futuro, possa ler o livro de Knuth à vontade ..
se você se define como está, not a highly intellectual being
então está definindo expectativas baixas. Você precisa quebrar essa mentalidade se quiser fazer algo que valha a pena. Não deve haver dúvida em sua mente que você pode conseguir algo. Além disso, alcançá-lo não significa que você o alcançará facilmente.
As coisas que vale a pena perseguir são as difíceis ... e isso não é um clichê. No software, na engenharia, na vida em geral, se você deseja alcançar algo, precisa seguir as coisas difíceis, as que as pessoas evitam e não se contentar com os menores denominadores comuns das coisas.
Primeiro, não está claro qual é o seu histórico de CS. O livro de Knuth exige um certo grau de maturidade. Poucas pessoas com um diploma de CS podem passar por isso com facilidade. Eu não esperaria que um estudante de CS que acabasse de terminar seu primeiro curso em algoritmos fosse capaz de realmente ler um único livro de Knuth. A maturidade necessária para alcançá-la simplesmente não existe, e isso não tem nada a ver com a capacidade mental do aluno.
Você precisa ter seu básico de algoritmos de maneira clara e clara, e precisa de uma boa quantidade de programação (trabalho e / ou escolar) em seu currículo - eu diria, pelo menos, 40 créditos em programação. Você também precisa ter sua matemática de CS em terreno firme.
Você não pode ir muito longe sem ter uma boa compreensão da matemática discreta (e possivelmente da teoria da computação).
Não é que você precise desse conhecimento para trabalhar nos problemas de Knuth, mas precisa de uma maturidade para poder passar por esse tipo de material.
Primeiro escolha um livro e apenas um livro (o livro do CLRS como sugerido anteriormente) e trabalhe-o do início ao fim. Quando possível, faça programas implementando os algoritmos. Não use Java ou C #, nem mesmo C ++. Vá para os ossos nus C e tenha a sensação de construir coisas a partir de restos de metal nus.
Obtenha também o livro de Knuth sobre "Matemática concreta" se você ainda não fez um curso de matemática discreta e teoria da computação. Seria bom que você também passasse por esse livro.
Em seguida, lide com a enciclopédia de Knuth, um tomo, um capítulo de cada vez. Não vá para outro capítulo sem entender bem o primeiro.
Eu sugeriria que você analisasse primeiro o volume I (algoritmos fundamentais), depois o volume III (pesquisa e classificação). Esses devem ser seus objetivos imediatos. Então, mais tarde (muito mais tarde), resolva o volume IV (algoritmos combinatórios) e, em seguida, o volume II (algoritmos semi-numéricos).
Não se sinta mal se não o entender primeiro. Eu tenho tentado passar pelo volume I e III por anos (10 anos agora).
E você não deve colocar tanto peso nisso também. Não faça isso para provar algo a alguém ou a si mesmo. Faça isso porque você está intelectualmente interessado em fazê-lo. Você pode se tornar proficiente em algoritmos simplesmente usando o livro do CLRS (ou qualquer um dos melhores livros de graduação).
Seja pragmático e faça uma pausa. Trate de ler o livro de Knuth como uma ambição pessoal de longo prazo, não como uma prova imediata de que você é material de CS;)
Existem outras coisas mais importantes (em termos de carreira) pelas quais se matar;)