面试话痨(一)让我们来热切的讨论这个养猪场吧

  如果你是一个聚会的组织者,你最怕什么?

  ♪ 最怕 空气突然安静 ♪

  面试也是面试官组织的一场聚会,面试官发起了一个八卦话题,比如:“诶,你知道吗,经理又开了一家能容纳16头猪的养猪场,刚养到12头就开始扩建了,也不知道哪里来的钱买的起这么多猪。”

  这时,如果你并不了解这个八卦,那么你就只能回答:

  “哦。”

  面试官:

  让一个话题尬住,必然会在面试官心中留下不好的印象,甚至可能会直接把你踢出聚会联系群。

  而如果你接住面试官的话题,滔滔不绝的讲下去,自信的看着面试官的眼睛,时不时穿插一些轻松的话题,配上轻松的笑容,讲个七八分钟后停下来反问面试官一句:

  “聊的有点远了,您看您是继续听我讲,还是问点啥?”

  加分!加分!加分!

  那么,如何把话题聊开,成为一个面试话痨呢?针对任何一个技术点,你都可以从深度和广度来展开话题

  现在讲深度的博客太多了,很多深得平时很少用的知识,在面试时被疯狂堆积。我对深度知识的意见是:如果你期望的月薪是在十几k,大可不必太追求深度的东西,把广度的知识串联起来,让面试官知道你是一个熟悉各种螺丝型号及拧法的熟练工就行了

  所以面试话痨系列主要从技术广度来讲如何在面试中把话题打开。首先,就着养猪场的话题,我们先来熟悉下什么是深度,什么是广度。



 

  深度

  面试官:“诶,你知道吗,经理又开了一家能容纳16头猪的养猪场,刚养到12头就开始扩建了,也不知道哪里来的钱买的起这么多猪。”

  萌新:“嗨,就是那个hashmap养猪场嘛,扩建那天我正好在。我悄悄告诉你你别乱说啊,经理的猪场啊,猪都是按hash编号入圈的,一个圈里面经常关好几头猪!那第12头要不是刚好要关到一个已经有猪的圈了,经理才舍不得扩建!”

  萌新:“其实这个16是经理认真推算出来的。因为负责管理猪圈的系统是写在计算机上面的,计算机的底层是一堆二进制数及二进制运算。hash在十进制的数学层面是求某值的余数,而在二进制层面,就是取两个数的补码的与(&)值,与值的运算方式是:两个数都为1时,与值为1,否则为0。为了让猪尽量分布到不同的猪圈,我们肯定是希望算出来的值尽可能的不一样,如果和0000去取与值,那么任何hash值计算出来的都是0,即所有的猪都会被关到一个猪圈,所以我们当然是希望底数是一个1111的数,而16的补码正好是1111。”

  萌新:“同样的,12也是一个精挑细选的数,12就是猪场容量的0.75,从概率学的角度来说,0.8以下比较能保证猪不进一个猪圈,考虑到尽量大的空间利用率以及阈值尽量为整数,所以选定了0.75,每次扩容都是二进制数往前进一位,体现在十进制的数学层面就是 容量*2,而16、32、64...这些数乘以0.75都是一个整数。”

  

  广度

  面试官:“诶,你知道吗,经理又开了一家能容纳16头猪的养猪场,刚养到12头就开始扩建了,也不知道哪里来的钱买的起这么多猪。”

  萌新:“嗨,就是那个hashmap养猪场嘛,我前两天才在报纸上看见了它的新闻,因为管理不当,多头猪同时冲向了一个猪圈,发生了严重的踩踏事故!现在统计表上有十头猪,实际上踩死了一头,就剩九头了,也不知道后面猪出栏的时候,这一头去哪里找。”

  萌新:“隔壁的hashtable养猪场就好很多了,同时只准一个猪进或者出,只是有些猪因为缺少自由患上了抑郁症,而currenthashmap养猪场就好很多了,分区式管理,保证顺序的同时给了猪最大的自由”

  萌新:“还有这个扩建的太不是时候了,当时经理的养鸡场被水淹了,养牛场被导弹轰了,经理忙的不行,还要分出精力来处理养猪场扩建的事,不就是多放一头猪嘛,根本不用这么着急的,隔壁redis村的字典养猪场就要人性化的多,闲的时候负载达到1就进行扩建,忙的时候负载达到5才进行扩建。明年经理的养猪场要是让我管,我肯定这么改。”


  以上就是我理解的从深度和广度两个方面去回答面试官的问题,在我看来,深度的东西平常工作中很少用到,而广度的东西能帮助自己联想各个知识点,通过对比明白各种技术栈的优缺点,更好的去完成日常的工作。

  当然深度的知识也很重要,能很快的解决工作中极少遇到的0.1%的难题,这就是大佬拿钱多的原因。只是对于更多的底层的萌新来说,将广度的知识融会贯通,在面试中谈笑风生,可能才是我们应该走的第一步。

  最近也面了很多家公司,积累了很多成功的面试经验,一方面是为了分享这些经验,另一方面也是怕自己几年后再找工作时忘记了这些经验,所以这里准备趁着入职前记录一下,希望能帮助到同样正在找工作的人。

  最后提醒一句,从广度的角度回答面试的问题,很费矿泉水,各位面试时记得带水备用。


   原创不易,转载请注明出处

  本系列链接如下:

  面试话痨(一)让我们来热切的讨论这个养猪场吧

  面试话痨(二)C:JAVA String,别以为你穿个马甲我就不认识你了

  面试话痨(三)我会锁的四种配法,您配吗?

 

posted @ 2020-03-21 14:01  有营养的yyl  阅读(...)  评论(...编辑  收藏