Como aumentar minhas habilidades em estruturas de dados após uma longa hibernação [fechado]


10

Eu fui muito bom com algoritmos e estruturas de dados uma vez, há muito tempo. Desde então, programei profissionalmente e fui gerenciar uma equipe pequena, que retrocedeu totalmente minhas habilidades técnicas nesse campo.

Decidi que quero ser desenvolvedor novamente e trabalhar para o Google. O problema é que estou tão fora de prática que, se eu fosse entrevistado agora, certamente seria reprovado em 10 minutos.

Qual programa de treinamento você recomendaria para eu voltar à forma? Eu já comecei este fim de semana voltando ao básico absoluto e implementando alguns algoritmos de classificação, lista vinculada e tabela de hash. Em seguida, acho que vou ler todo o material do curso sobre outras estruturas básicas de dados e algoritmos de gráficos. Quero encontrar um conjunto focado de exercícios práticos que eu possa fazer em um período de tempo relativamente curto, para manipular as antigas células cerebrais. Eu conheço essas coisas - só preciso me lembrar de que sei.


@ Anon: Se esta é uma nova maneira de o Google criar um burburinho sobre si mesmo neste novo ano, há uma coisa que eu gostaria de dizer. Funciona.
Fanatic23

4
Se suas estruturas de dados foram hibernadas, elas provavelmente foram serializadas. Você só precisa desserializá-los.
Mchl

4
@Mchl - Eu não sei sobre o Anon, mas descobri que o meio de armazenamento "cerebral" é ainda menos confiável a longo prazo do que os disquetes. Qualquer coisa serializada mais de alguns anos atrás está quase certamente corrompida agora.
Steve314

Respostas:


6

Gostaria de lhe contar quatro coisas e listei a ordem em que preciso lhe dizer:

  1. Obtenha sua própria fonte de chá verde enquanto estiver neste
  2. Enquanto você toma um chá verde, leia o livro de Skiena disponível aqui . E leia o material de áudio / vídeo aqui .
  3. Confira um excelente conjunto de links mantidos pelo Google em http://code.google.com/edu/courses.html
  4. Consulte as questões relacionadas aos algoritmos no SO e tente respondê-las por conta própria

Boa sorte!


Embora eu ame o livro da skiena, nunca soube que havia um material de áudio / vídeo, obrigado.
flash

1

Eu sugiro escolher uma estrutura de dados ou formato de arquivo real que as pessoas estejam usando agora e fazer algo legal com isso. O formato do arquivo Git está muito bem documentado, por exemplo:

http://book.git-scm.com/1_the_git_object_model.html

Fazer algo interessante com um formato usado pelas pessoas e ser rigoroso sobre isso ensina lições - e - fornece algo em que as pessoas se interessarão.

Ou, pelo menos, faça algo com um ângulo único. Quando eu estava em uma posição semelhante à sua, escrevi uma resposta para uma pergunta de entrevista on-line sobre como criar um gráfico não direcionado que pudesse detectar a inserção de ciclos. Teria sido um problema fácil se eu não tivesse adicionado restrições extras ... mas decidi exigir que ele pudesse fazer inserções em O (1). O resultado foi NoCycle:

http://hostilefork.com/nocycle/


1

Isso depende exatamente de qual é seu objetivo - por exemplo, o projeto e a análise de algoritmos estão aí, ou você está seguindo as estruturas e algoritmos padrão? Mas parece-me que você já está fazendo o que precisa fazer.

Se você ainda tem um livro de texto favorito antigo de "há muito tempo", sugiro que o revise. Além disso, é o conselho padrão de revisitar qualquer coisa. Faça perguntas específicas a si mesmo, procure as respostas, quando ficar sem ler as perguntas e navegue rapidamente pelo que encontrar, até encontrar algumas perguntas mais específicas.

Algoritmos e estruturas de dados (Niklaus Wirth) é um livro relativamente conciso sobre algoritmos básicos e estruturas de dados sem todo o design e análise de algoritmos. Muito básico, porém - listas, várias árvores, montes, mas não me lembro de digrafos, por exemplo. Uma vantagem é que há um download gratuito da versão Oberon - http://www.inf.ethz.ch/personal/wirth/ - procure o link em PDF próximo ao final da lista de livros. A Wikipedia é um recurso óbvio, mas tem tanta coisa que é uma boa ideia decidir o que você quer e o que não quer antes de ir para lá.


0

Quando você costumava ser muito bom com algoritmos e estruturas de dados, quais eram os recursos que acessava?

Quão curto é o "tempo relativamente curto" necessário para aprimorar seu conhecimento?

Não acho que o conhecimento adquirido com dedicação desapareça. Isso só desaparecerá um pouco, e VOCÊ é o melhor juiz em quais áreas você precisa trabalhar para recuperar sua antiga habilidade com os assuntos que você amou.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.