Comment augmenter mes compétences en structures de données après une longue hibernation [fermé]


10

J'étais assez bon avec les algorithmes et les structures de données une fois, il y a très longtemps. Depuis lors, j'ai programmé professionnellement, puis je suis allé gérer une petite équipe, qui a totalement tiré mes compétences technologiques dans ce domaine.

J'ai décidé de redevenir développeur et de travailler pour Google. Le truc, c'est que je suis tellement hors de la pratique, que si je devais être interviewé en ce moment, je serais sûrement déboulonné en 10 minutes.

Quel programme de formation me recommanderiez-vous pour me remettre en forme? J'ai déjà commencé ce week-end en revenant aux bases absolues et en implémentant quelques algorithmes de tri, liste liée et table de hachage. Ensuite, je pense que je vais lire l'intégralité du matériel de cours sur les autres structures de données de base et les algorithmes graphiques. Je veux trouver un ensemble concentré d'exercices pratiques que je peux faire en relativement peu de temps, pour jongler avec les vieilles cellules du cerveau. Je connais ce truc - je dois juste me rappeler que je le sais.


@Anon: S'il s'agit d'une nouvelle façon dont Google crée un buzz sur lui-même cette nouvelle année, il y a une chose que je voudrais dire. Ça marche.
Fanatic23

4
Si vos structures de données ont été mises en veille prolongée, elles ont très probablement été sérialisées. Vous avez juste besoin de les désérialiser.
Mchl

4
@Mchl - Je ne connais pas Anon, mais j'ai trouvé que le support de stockage "cerveau" est encore moins fiable à long terme que les disquettes. Tout ce qui est sérialisé il y a plus de quelques années est presque certainement corrompu maintenant.
Steve314

Réponses:


6

Il y a 4 choses que je voudrais vous dire, et j'ai énuméré l'ordre dans lequel je dois vous les dire:

  1. Obtenez votre propre source de thé vert pendant que vous y êtes
  2. Pendant que vous sirotez ce thé vert, parcourez le livre de Skiena disponible ici . Et parcourez le matériel audio / vidéo ici .
  3. Découvrez un excellent ensemble de liens mis à jour par Google à http://code.google.com/edu/courses.html
  4. Passez en revue les questions liées aux algorithmes à SO et essayez d'y répondre par vous-même

Bonne chance!


Bien que j'aime le livre de skiena, je n'ai jamais su qu'il y avait du matériel audio / vidéo, merci.
flash

1

Je suggère de choisir une véritable structure de données ou un format de fichier que les gens utilisent actuellement, et de faire quelque chose de cool avec. Le format de fichier Git est assez bien documenté par exemple:

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

Faire quelque chose d'intéressant avec un format que les gens utilisent et être rigoureux à ce sujet donne des leçons - et - vous donne quelque chose qui intéressera les gens.

Ou à tout le moins, faites quelque chose avec un angle unique. Lorsque j'étais dans une position similaire à la vôtre, j'ai écrit une réponse à une question d'entrevue en ligne sur la création d'un graphique non dirigé qui pourrait détecter l'insertion de cycles. Cela aurait été un problème facile si je n'avais pas ajouté de contraintes supplémentaires ... mais j'ai décidé d'exiger qu'il puisse faire des insertions dans O (1). Le résultat a été NoCycle:

http://hostilefork.com/nocycle/


1

Cela dépend exactement de votre objectif - par exemple, y a-t-il une conception et une analyse d'algorithmes, ou vous en tenez-vous aux structures et algorithmes standard? Mais il me semble que vous faites déjà ce que vous devez faire.

Si vous avez encore un vieux livre de texte préféré "il y a très longtemps", je vous suggère de le revoir. Au-delà de cela, c'est le conseil standard de tout revoir. Posez-vous des questions spécifiques, recherchez les réponses, lorsque vous êtes à court de questions, parcourez rapidement tout ce que vous pouvez trouver jusqu'à ce que vous puissiez trouver des questions plus spécifiques.

Algorithmes et structures de données (Niklaus Wirth) est un livre relativement concis sur les algorithmes de base et les structures de données sans toute la conception et l'analyse d'algorithmes. Très basique, cependant - listes, divers arbres, tas, mais je ne me souviens pas des digraphes par exemple. Un avantage est qu'il y a un téléchargement gratuit de la version Oberon - http://www.inf.ethz.ch/personal/wirth/ - recherchez le lien PDF près du bas de la liste des livres. Wikipédia est une ressource évidente, mais a tellement que c'est une bonne idée de décider ce que vous voulez et ce que vous ne voulez pas avant d'y aller.


0

Quand vous étiez plutôt bon avec les algorithmes et les structures de données, à quelles ressources avez-vous accédé?

Quelle est la durée «relativement courte» dont vous avez besoin pour parfaire vos connaissances?

Je ne pense pas que les connaissances acquises avec dévouement disparaîtront jamais. Cela ne fera que disparaître un peu, et VOUS êtes le meilleur juge sur les domaines sur lesquels vous devez travailler pour retrouver vos anciennes prouesses avec les sujets que vous avez aimés.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.