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

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

  ? 最怕 空气突然安静 ?

  面试也是面试官组织的一场聚会,面试官发起了一个八卦话题,比如:“诶,你知道吗,经理又开了一家能容纳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,别以为你穿个马甲我就不认识你了(03月22日上传-预告-我必定写完)

原文地址:https://www.cnblogs.com/ttjsndx/p/12539030.html

时间: 2024-11-03 18:23:46

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

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

面试话痨系列是从技术广度的角度去回答面试官提的问题,适合萌新观看!   面试官,别再问我火箭怎么造了,我知道螺丝的四种拧法,你想听吗? String相关的题目,是面试中经常考察的点,当面试中遇到了String相关的问题,我们可以这么聊: 一:String底层结构 从底层结构上来说,jdk1.8的String,底层是char[].我在工作中几乎很少用到char[],因为List太好用了,我宁愿用List<Character>也不想用char[],因为以前学C时体会过用char[]的痛苦,长度必须

张书乐:自媒体想火,千万别话痨,口水太多没朋友

自媒体写文章,别字数太多让粉丝手指疲劳,能不麻烦用户的地方,尽可能不要给他们添麻烦,因为多一个环节,就会有损耗.这里损耗的都是慢慢的用户体验和转换率. 文/张书乐(人民网.人民邮电报专栏作者) 新著有<微博运营完全自学手册> 接上篇<自媒体别小看了贴标签,这里面都是粉丝> 依然以微博为例,现在,装修做得差不多了,在进入文案写作之前,先学几个基本动作,因为开通微博后,总会跃跃欲试发上一两条. 对微博用户,特别是企业微博用户来说,以下3个问题区是最容易出现在初始阶段的,而在初始阶段最有

关于前段时间的Java实习面试总结

前言:关于前段时间(大概在五月下旬)的3+1面试,一直想做个总结,但是后面接踵而来的实验.考试.做课程设计,不得不把这事搁在现在来完成. 3+1面试总结 3+1,是学校与企业联合培养人才的一种方案,面向大三的学生.这一次,我们计算机专业和网络工程专业一共大概500多人,而实习岗位只有80个,还是有一点竞争的.毕竟学院要求不可以自己去外面找实习,只能在这里抢或者留在学校学习.说什么我都不想在大四呆在学校了. 清晰回忆起5月19日的下午,我带着准备好了的简历,提前30多分钟来到学院楼,企业也陆陆续续

一个北漂程序员,BAT面试经历:专科渣校毕业现已年薪70万,看我如何成功逆袭

前言 为什么现在写这篇,因为现在是求职高峰期,我知道很多读者都在找工作.不少人面试都会踩坑,我刚好有丰富的面试经验,我曾在北京BAT面试过,如果我从面试官的角度来讲讲其中的坑,应该会对大家找工作有一些帮助吧. 面试的第一步是写简历,俗话说人靠衣装,佛靠金装.简历就是面试官对我们的第一印象,如果你连简历都打动不了面试官,怎么破"第一层,去应对接下来的面试呢?可以看看下面这篇文章,我觉得还不错.希望对你们能有帮助. 硬不硬你说了算!近 40 张图解被问千百遍的 TCP 三次握手和四次挥手面试题 ht

Java多线程面试问题

原文链接:http://ifeve.com/java-multi-threading-concurrency-interview-questions-with-answers/ 多线程和并发问题是Java技术面试中面试官比较喜欢问的问题之一.在这里,从面试的角度列出了大部分重要的问题,但是你仍然应该牢固的掌握Java多线程基础知识来对应日后碰到的问题. Java多线程面试问题 1. 进程和线程之间有什么不同? 一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者

如何在面试中介绍自己的项目经验

在面试时,经过寒暄后,一般面试官会让介绍项目经验 .常见的问法是,说下你最近的(或最拿得出手的)一个项目. 根据我们的面试经验,发现有不少候选人对此没准备,说起来磕磕巴巴,甚至有人说出项目经验从时间段或技术等方面和简历上的不匹配,这样就会造成如下的后果. 第一印象就不好了,至少会感觉该候选人表述能力不强. 一般来说,面试官会根据候选人介绍的项目背景来提问题,假设面试时会问10个问题,那么至少有5个问题会根据候选人所介绍的项目背景来问,候选人如果没说好,那么就没法很好地引导后继问题了,就相当于把提

程序员在面试时更好的介绍项目经历

在面试时,经过寒暄后,一般面试官会让你介绍项目经验.常见的问法是:“说下你最近的(或最拿得出手的)一个项目”. 根据我的面试经验,发现有不少程序员对此没准备,说起来磕磕巴巴,甚至有人说出项目经验从时间段或技术等方面和简历上的不匹配,这样就会造成如下的后果. 第一印象就不好了,至少会感觉该候选人表述能力不强. 一般来说,面试官会根据程序员介绍的项目背景来提问题.假设面试时会问10个问题,那么至少有5个问题会根据程序员所介绍的项目背景来问,程序员如果没说好,那么就没法很好地引导后继问题了,就相当于把

iOS中的预编译指令的初步探究

看到非常好的两篇技术文,转来方便自己查看. 转自:http://www.cnblogs.com/daiweilai/p/4234336.html 开篇 我们人类创造东西的时候有个词叫做”仿生学“!人类创造什么东西都会模仿自己来创造,所以上帝没有长成树的样子而和人长得一样,科幻片里面外星人也像人一样有眼睛有鼻子……但是人类自己创造的东西如果太像自己,自己又会吓尿(恐怖谷效应),人类真是奇葩:奇葩的我们在20世纪创造了改变世界的东西——计算机(电脑),不用怀疑,这货当然也是仿生学!这货哪里长得像人了

优秀软件测试工程师必备的8个能力!-(附思维导图)

结合自己以往的工作经验,自己梳理出来一些材料,绝对原创,绝对干货. 优秀的软件测试工程师必备的"8个能力" 作为一名软件工程师,需要的能力并不多,但是要成为一名优秀的软件测试工程师,需要的能力就比较多了,自己整理出来8个方面,每个方面都会分成很多细小的方便并进行举例说明.同样的,文章的思维导图放在文末,需要原图直接找我. 文章一共4500字左右,预计阅读时间9分钟 不废话,上干货! 一.业务分析能力 1.分析整体业务流程 不了解整个公司的业务,根本就没办法进行测试2.分析被测业务数据