Eu tenho lido este site com muito interesse, mas acho que muito disso passa pela minha cabeça. Isso me fez querer aprender muito mais sobre algoritmos e CS em geral. Tanto quanto eu posso dizer da minha pesquisa, existem 2 maneiras principais de fazer isso.
Eu posso por um bom livro grosso e pesado e percorrê-lo lenta mas seguramente.
Eu posso "aprender fazendo" e com um bom livro, mas, em vez de lê-lo de capa a capa, passe para as partes que me interessam e trabalhe na implementação e aplicação de algoritmos de que gosto.
?
Minha pergunta é: qual das opções acima você usou e recomendaria a mesma abordagem a outra pessoa?
algorithms
education
Daniel Gratzer
fonte
fonte
Respostas:
Eu aprendi sobre algoritmos em um curso universitário anos atrás. Mas se você quiser criar algoritmos usando um livro, precisará de um bom. Dois livros se destacam para mim como a maneira de entrar em algoritmos:
O primeiro talvez seja mais um manual prático, enquanto o último é mais parecido com a Bíblia, mas com provas.
A estratégia que você poderia seguir consistiria em ler, fazer os exercícios teóricos e, em seguida, implementar o máximo possível, concentrando-se em algoritmos / problemas que você achar interessante ou desafiador ou ambos. Portanto, tente abranger todos os aspectos dos algoritmos, não apenas implementá-los. Isso incluirá o estudo da complexidade do tempo e do espaço e a comprovação da correção. O estudo de algoritmos é mais do que apenas implementar algoritmos.
Depois de ganhar experiência suficiente, comece a se especializar. Se você se interessar por Geometria Computacional ou algoritmos não-bloqueadores, por exemplo, comece a explorar livros e trabalhos de pesquisa nesta área.
A especialização é boa, mas também é bom amostrar técnicas de outras áreas; portanto, ler amplamente sobre algoritmos (e implementar tais algoritmos) é uma boa maneira de manter um amplo conjunto de habilidades.
EDIT: Após analisar os algoritmos introdutórios, você pode consultar livros como Algoritmos Aleatórios de Motwani & Raghavan ou Algoritmos de Aproximação de Vazirani . Esses livros são uma pesquisa (e até certo ponto, um bom exercício de aprendizado em técnicas matemáticas) em técnicas mais avançadas de design de algoritmos. Eles também ampliam sua visão sobre muitos outros campos do CS, como Gráficos e Redes, Design de estrutura de dados e Otimização.
fonte
Ensine uma classe de algoritmos.
Ou talvez até melhor:
escreva um livro de algoritmos.
fonte
Tente resolver problemas com base em um algoritmo assim que ler um. Além disso, para entender os algoritmos e implementá-los melhor, você precisa entender melhor as estruturas de dados. Há um livro muito bom de estruturas de dados escrito por Sahni. Você pode usar isso e, para algoritmos, pode resolver problemas do livro de desafios de programação. As perguntas são bem legais lá.
fonte
Se você não aprendeu sobre algoritmos na universidade, recomendo participar de uma das aulas on-line, considere se inscrever em um dos cursos em coursera.org ou seguir vídeos publicados pela Universidade de Stanford.
fonte