面试中如何胡侃知识点(以MongoDB为例)

Posted a year ago by Mingche Su

在面试时候有时会遇到考官问你一些你列举的关键词(知识点),如何跟考官侃侃呢?
举例子:could you tell me what you know about NoSQL(MongoDB)?
[图片上传中。。。(1)]
下面列举了回答问题的几个维度:
第一个维度:被考官牵着鼻子走(面试者初期的状态):不知道怎么讲(或者压根不会),考官问什么你回答什么,这样会非常被动。其实大部分时候面试如果遇到不会的知识点(如果不是onsite的时候)可以Google的,但是切记在网上查知识点的时候,要用百度“xx是什么” 或者Google查汉语的解释:“xx是什么”,大部分不在美国接受本科的同学看到陌生的技术名词,在紧张的情况下是无法理解的。汉语毕竟是母语,理解得比较快,这样可以给面试官的感觉是你懂知识点,在国内学过,只是不知道怎么用英文表达,至少还是能弥补一小下的。
如果Onsite的时候真的不会某个知识点,你可以就反问面试官大概是什么东西,诱导他说一个大的范围知识,然后谈论一个相近的知识,反问面试官一个问题,最后说你听过这个知识点,与他在激烈讨论下,显得你们在谈笑风生;
比如面试问你MongoDB知不知道,你可以反问下这个大概是什么?面试官很可能就会说NoSQL的一种了,这时候你恰巧知道hbase,可以多扯扯hbase的东西,然后说MongoDB啊,以前听说啊,但是没用过,有机会可以尝试,你再反问它们为什么用MongoDB而不用hbase,你各种列举hbase的优点,达到浑水摸鱼的效果;
第二个维度:罗列知识点,诱敌深入(正常面试者的水平)):
首先你要装成是专家,然后自信的选择几个层面讲起:
What is MongoDB

Main features of MongoDB

Application of MongoDB

Who's using MongoDB

When NOT to Use Document Stores


特此申明:以上几张图来自于CMU NoSQL Database Management 95737课件,仅为本文举例说明,无任何商业用途。在面试中:基本答几个熟悉的层面就OK了,面试本身很多时候具有卖弄的成分,给面试官觉得很猛,实际上这些问题面试官也不一定很清楚,重要的就是你要很有观点,而且对新技术感兴趣,了解最新前沿技术动态。
比如这里卖弄的点吧,说说哪些公司在用,这些就能体现出:你对IT行业很了解,调研过很多公司技术栈,然后你会的东西你要多说,这样引导考官问你熟知的东西,然后开始给他讲,他就会觉得你很博学。
其余卖弄的点:主要四种NoSQL:
Column Family Databases
Document Databases
Key-Value Databases
Graph Databases

每种database 都点评下,会给人感觉很牛的样子.
第三个维度:用生长的方法来谈(大师级的答案,基本这样答,考官会哭的)。什么是生长的方法?就是从一颗种子开始谈,讲一讲它是如何张成参天大树的。MongoDB是怎么来的,如何演化的?
刚开始给面试官讲一个实际的例子 (工作中碰到的实际问题):
假设我们有很多app信息信息需要存储,包括URL、PageSource、ID和Name等,如何写入硬盘呢?很简单,顺序地写就可以了。

写好了之后,善变的我突然想加一个Version信息在第二块中,但是我们不能直接在第二块之后添加,因为这些数据在硬盘中是连续写的。
所以我们可以在最后重写第二块的数据,加上Version信息,然后将之前已有的第二块信息删除。[图片上传中。。。(8)]
这样的方法会使数据不连续(产生磁盘碎片),中间有很大的gap,读取数据的时候很麻烦。这种情况下如何提速呢?可以在数据块之间建立指针,嗖地就跳过去了。
[图片上传中。。。(9)]这样查找变得简单了,可是仍然没有解决产生磁盘碎片的问题。如何既能加入新信息而又不移动已有数据呢?就是在每个数据块之后添加一些冗余的padding,这样新的数据就可以直接添加了。[图片上传中。。。(10)]
以上是我们的幻想,想象中有足够大的、连续的硬盘空间可以写。理想很丰满,现实却很骨感,真正的硬盘往往已经不连续了,存在着大大小小的磁盘碎片,我们只能插空写。[图片上传中。。。(11)]
你看这样我们可能就会将文件写的很碎了,要跳来跳去,读写性能很差。如何避免这种琐碎呢?就是申请一个比较大的空间,尽可能地连续写。
那么如何申请大小合适的空间呢?策略就是double上升。我们从16M开始,不够就申请32M,再不够申请64M…直到2G为止(不再double,不够再申请还是2G)。[图片上传中。。。(12)]
解决了写还要解决读,比如如何查找ID范围在5000到7000范围内的app信息呢?我们就可以对ID建索引,比如BST,每个节点都指向对应的文档。[图片上传中。。。(13)]
这就是MongoDB的实现。MongoDB将document存储在硬盘上,每个document都可以随意添加,有schema-free的特点。MongoDB在document尾部添加了padding,并且document之间有前向和后项指针,成倍地申请硬盘空间,用B树(BST的升级版)做索引。
注:第三维度的讲解 来源于硅谷之路40:十分钟解读MongoDB,查看完整视频:http://www.bittiger.io/classes
转自:https://www.bittiger.io/blog/post/djAH5QCDc6ExwE9Wz

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,686评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,668评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,160评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,736评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,847评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,043评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,129评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,872评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,318评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,645评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,777评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,861评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,589评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,687评论 2 351

推荐阅读更多精彩内容