长时间休眠后如何提高我的数据结构技能


10

很久以前,我曾经对算法和数据结构非常满意。从那以后,我开始专业编程,然后去管理一个小团队,这完全使我在该领域的技术技能得到了体现。

我已经决定要再次成为一名开发人员,并为Google工作。问题是,我实在是太不习惯了,如果我现在要接受采访,我肯定会在10分钟内退缩。

您会为我推荐什么样的训练计划以使自己恢复健康?我已经在本周末开始了,回到了绝对的基础知识并实现了一些排序算法,链接列表和哈希表。接下来,我想我将通读其他基本数据结构和图形算法的整个课程材料。我想找到一套集中的实践练习,可以在相对较短的时间内完成,以处理旧的脑细胞。我知道这些东西-我只需要提醒自己我知道。


@Anon:如果这是Google今年新的自我宣传方式,我想说一件事。有用。
Fanatic23 2011年

4
如果您的数据结构处于休眠状态,则很可能已将其序列化。您只需要反序列化它们。
Mchl 2011年

4
@Mchl-我不知道Anon,但是我发现从长远来看,“大脑”存储介质的可靠性甚至不如软盘。几乎可以肯定,几年前序列化的任何东西现在都已损坏。
2011年

Answers:


6

我想告诉您4件事,并且列出了我想告诉您的顺序:

  1. 在此期间获取自己的绿茶来源
  2. 当您喝绿茶时,请浏览Skiena的书,可从此处获得。并在此处浏览音频/视频资料。
  3. http://code.google.com/edu/courses.html上查看由Google维护的一组出色的链接。
  4. SO处浏览与算法相关的问题,然后尝试自己回答

祝你好运!


虽然我喜欢Skiena的书,但从不知道有音频/视频材料,谢谢。
2013年

1

我建议选择人们现在正在使用的真实数据结构或文件格式,并对其进行一些出色的处理。例如,Git文件格式的文档很好:

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

用人们使用的格式做一些有趣的事情,并严格遵守它,可以教给别人一些经验,并且给您一些人们会感兴趣的东西。

或者至少要制作一个具有独特角度的东西。当我处于与您相似的位置时,我为在线面试问题写了一个答案,该问题涉及制作可以检测循环插入的单向图。如果我没有添加额外的约束,那将是一个简单的问题……但是我决定要求它可以在O(1)中插入。结果是NoCycle:

http://hostilefork.com/nocycle/


1

这完全取决于您的目标-例如,是否在其中进行算法设计和分析,或者您坚持使用标准结构和算法?但这对我来说听起来好像您已经在做需要做的事情。

如果您仍然有一本“很久很久以前”的老书,我建议您重新考虑一下。除此之外,这是标准的重访建议。问自己一些具体问题,寻找答案,当您用完所有内容时,会略过并快速浏览找到的所有内容,直到提出一些更具体的问题。

算法和数据结构(Niklaus Wirth)是一本相对简明的书,介绍了基本算法和数据结构,而没有进行所有算法设计和分析。虽然很基本-列表,各种树,堆,但是我不记得关于图的例子。一个优点是可以免费下载Oberon版本-http: //www.inf.ethz.ch/personal/wirth/-在书籍列表底部找到PDF链接。Wikipedia是显而易见的资源,但是具有如此之多的优势,因此在进入那里之前先决定自己想要什么和不需要什么是一个好主意。


0

当您过去对算法和数据结构非常熟悉时,您访问了哪些资源?

您需要花多少时间才能“相对较短”?

我认为通过奉献获得的知识不会消失。它只会逐渐消失,您将最好地判断您需要从事哪些领域,以重新获得曾经爱过的主题的昔日威力。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.