剑指华为

作者: 晴天小雨不感冒 | 来源:发表于2019-12-20 20:12 被阅读0次

    前言

    我去华为面试了,很遗憾,结果不尽如人意,但也不是毫无收获。我把它当作一个故事讲一遍,希望能博得您茶余饭后一笑,如果除此之外你还有所收获,那更令我欣慰。虽然看上去洋洋洒洒一大篇,但其实心中感慨万千,这点东西都不能尽述胸中块垒之万一。不多说了,且行且珍惜吧!

    1.英雄帖

    故事起因是这样的:某天晚上(晚上噢!),本人在街上闲逛,吃着臭豆腐看美女。突然屁股兜里一热,手机响了。

    “您好,这里华为人事部,我是人事经理xxx,请问您现在方便接听电话吗?”

    。。。此处省略一万字。

    值得一提的有以下几点:

    1.是电话里的声音非常好听,耳测是播音系的。

    2.接完电话后臭豆腐凉了,心却热了。

    3.电话中说给我两天时间让我准备一下面试。其实无形中给了我巨大的压力,据我的经验,极少有公司会说给你多少天让你准备一下面试,通常的情况是问你哪天方便过来面试一下。但是华为就这么做了,这里体现了华为技术上的心理优势。(是的,你不好好准备会来这里丢人的噢!)

    2.磨刀霍霍

    其实在准备过程中就已经开始了内心的煎熬,该怎么准备?准备什么?前端知识体现异常庞杂,如果没有一定的策略,你将深陷知识的海洋中无法自拔。最后导致经脉逆转,真气倒流,走火入魔,别说去面试了,你可能自己就先打败了自己。像华为这样的技术型公司,比技术深度,比技术广度,你都没有任何优势。经过一番深思熟虑后本人决定采用押题法。本人只押一道题:排序算法。一般的的技术型公司笔试通常会有这样一道题(不分前端后端):数组[3,2,5,8,9,7,1,4],手写该数组的排序算法,至少写一种。至少写一种的言外之意是越多越好。本人就赌这道题。千万不要小看这道题,在这里我不多说,后面我还会详细谈到。本人在准备过程中详细地了解5种基本的排序算法,并反复地打磨推敲,达到了用时10分钟快速准确地手写5种排序算法的程度。你没听错,是用笔写在纸上。有了这个准备后,我们想象一面笔试的情景:你粗略浏览一遍题目,发现有好几页呢,你在倒数第二或第三题发现了它,你发现该题留给你的答题空间不够,于是你在答题区写下:详情见背面。然后你花10分钟在背面写下满满一页。其他题你大概做了个七七八八,说不上好也说不上坏,和别人比大概也没什么优势。那么在面试官看来,可能你整体的得分不高,但你仍然是最特殊的那一个。得分高的未必能在10钟内写出5种排序算法,而算法通常是技术型公司比较看重的。我个人认为我的策略是可以的。如果给你两天时间去准备,你要如何去准备呢?可能你想着如何去准备就想了一天。如果您有什么想法或建议,可以在评论区讨论,集思广益。

    3.刀光剑影

    华为东莞区在松山湖,别说在松山湖具体几号,那里都是华为的地盘,大体分为华为ABCDEF等各区。我去的具体是哪个区我也不清除,是华为的妹子给我定位导航一路过去的。

    华为的内部有一尊关公,供着燃烧的香和新鲜的水果。说不清楚是因为兴奋还是紧张,总之我情绪高昂,以致于差点一头撞在了关公的刀上。关公的刀吓了我一跳,后来的事实证明这是事情不会尽如人意的某种先兆。

    我跟给我导航定位的妹子说我到了,妹子回复说先去前台填张表。前台妹子让我坐在关公对面填,那个位置说实在的如果不是她说还真不敢坐,因为看起来像老板坐的。填完后妹子让我等着,我就这样和关公面对面坐了半个小时。

    走廊深处出来一对男女,都非常地年轻,男的大概二十几岁,女的看上去还不到二十岁。男的手里拿了一份A4纸打印地文件,我认为是笔试题,事实上不是。他们来到大厅,四处张望了一下。我起身招手,男的问:“你是面试前端的?”。我说:“是的”。“那这边请”,还是比较客气的。

    各种曲径回廊,来到一个假山旁边。男的说:“这里比较安静,就在这里吧”。

    各自落座。

    “是从哪过来的?”

    “虎门”

    “虎门啊,那挺远的啊,坐车多久?”

    “两个半小时,还好,不算很远”

    “行,先自我介绍下吧”

    “。。。此处省略一万字”。

    这两个年轻的面孔微笑地看着我,让我感到莫名紧张。事后回想起来,仍然让我感慨万千,他们的微笑种有一种技术的心理优势,或者说那是一种气场吧。总之,人家悠然自得,你已方寸大乱。我只希望他赶紧把笔试题给我,我要大显身手一番。

    “说说你们项目的前后端分离方案吧”

    “前端主要负责html,通过ajax请求后端数据,请求到数据后进行页面渲染,最后呈现给用户”

    “能不能具体一点?”

    “此处省略N字”。主要是我对这个问题毫无准备,逻辑混乱,自己根本不知道该讲啥。

    “说说前后端通信吧,你们是怎么做的?”

    “通过axious发送请求”

    “你对后端了解吗?”

    “了解,我会写java”

    “不过你好像对后端数据接口的定义不太熟悉,我刚才问的前后端通信,你只回答了前端”

    “呃,是的,那个我没参与”。

    这里我认为是一个戏剧性的转折点,因为我感觉他开始讨厌我了,他已经从心里pass掉我了,接下来的面试他只是验证他心中对我的判断。因为不管他提什么问题,我怎么回答,他都要从中挑刺。接下来的面试非常艰难。旁边的妹子还没有说过一句话。之后他采取了咄咄逼人的姿态,我也采取了自卫的姿态。大家要注意,面试一旦陷入这种境地,你技术再厉害也没用,因为从某种意义上说,你们在心理上已经形成一种敌对关系,不再存在合作的可能性。你唯一能做的就是尽量体面地离开,不要被他羞辱。之后各有来回,总体上是他占据优势,没有办法,这里是他的主场,他有随时切换话题的优势,对于不想深入的话题,他可以轻易带过。不过他还是被我抓住了非常明显的漏洞,就是在响应式和自适应以及媒体查询的时候,他对这些概念分得不太清,或许他认为这根本就是一回事,都是为了做屏幕适配。我抓住这一点予以反击,完全推翻他的结论,他脸都气红了,不过因为妹子在场,还得在面上装的绅士客气。自然,他又切换话题了,否则,我几乎能成功反杀他。

    。。。此处省略一万字。真的没什么好说的。

    “jsonp的原理是什么?”

    “通过手动创建script元素,利用script.src的跨域特性进行数据请求”

    “为什么会有跨域的限制?”

    “因为同源策略”

    “什么是同源策略?解决了什么问题?”

    “同源策略是指用户的cookie只能被相同域名下的网页访问,禁止其他域名访问。为了保护用户的数据安全”

    他没有再问,因为妹子示意他不要问了。他们眼神交流了一番,然后说差不多了。问我有什么想问的。我简单问了下公司的上下班时间。他们让我回到关公身边稍作等待。

    4.峰回路转

    那个男的进去了,妹子没有离开,此时和我一起坐在关公身边。

    她也不说话。我对于面试过程如此艰难而耿耿于怀,内心不能平静。那个男的进去了好久都没有出来。我左看右看,百无聊赖。我一看她也坐在这里,我是无法忍受和妹子相对而坐却相顾无言的。

    “你是他的助理吗?”

    我觉得像华为这样的大厂,技术做到一定级别,配个助理也是正常的。而且她和他一起面试,却又不说话,很像是一个助理。

    “我是做前端开发的”她笑着说。

    我一下就来了兴趣。我注意到她皮肤白皙,长得挺好看。

    “你是做前端开发的?”

    “是的,这边的前端都是我负责”

    “那刚才面试我的那位是?”

    “噢,他是我的下属,我不太擅长面试,他比较擅长,是我安排他给你面试的”

    “噢,是这样啊”

    之后男的和另一个女的出来了,那是人事。他们简短交流了一下,美女前端和男的进去了,人事留下来,我起身准备离开。

    人事送我到门口。

    “怎么样?面试还顺利吗?”她看起来挺友善。

    “还可以,讨论得挺激烈”

    “激烈是吧,不错,说明互动不错,面试最怕冷场,激烈是好事”

    “你说得对”

    我都不知道该说啥。

    “好吧,一路注意安全,我们会经过一轮审核,如果通过会在一周时间内通知你复试”

    “好的,谢谢”

    后语

    整个面试过程差不多是这样,前后大概20分钟。是一次失败的面试。

    总结起教训来,有以下几点,供大家参考:

    -1.不要去太远的地方去面试。

    超过两个小时,就不要去了。因为坐车太远,人到了以后已经是累得个七荤八素了,面试时的精面貌非常重要,而且你的临场反应能力也会因为你的疲惫而大幅下降。通常都不会有好的结果。

    我那天早上7点半出门,匆匆吃了个炒粉,那个炒粉炒的太咸,我为了赶时间也没和老板理论,匆匆吃完就走了。赶上公交车已经是8点。途中转了3次公交,因为炒粉的原因,口渴得不行。来到松山湖已经10:30,迟到了半个小时。松山湖虽然到处是湖水,却没有一个卖矿泉水的地方。可以说我赶到那里时,状态是非常差的(虽然我技术非常的牛,嘿嘿)。

    -2.要和面试官建立良性互动。

    这个没有办法,因为主动权不在你手里,如果面试官不主动释放良性的善意,你再怎么释放善意都是没有用的。除非你能做到滴水不漏,让他无可挑剔,即便如此也还要看他心情,他完全可以认为你这人不太好沟通而拒绝你。我认为失败的面试里,面试官的提问有一多半是没有必要问的,之所以问是因为他要羞辱你,进一步验证他心里的你不行的判断。对于这种情况,没有任何办法,只能硬顶硬地干。

    -3.面试前要放空自己。

    我在面试前天晚上还在背算法,搞到将近12点才上床睡觉,躺在床上还在默默念叨着刚才的算法。这无形种给我增加了压力,具体是几点睡着的我都不清楚总之那天我睡得非常少。事后回想起来,我认为正确的做法是,面试前一天晚上什么都不要做,早早睡觉,养好精神,给第二天的自己一个元气满满的开始。

    -4.很遗憾没有那个前端妹子的微信

    真的很遗憾,这种缘分就这么错过了。当然我不确定如果时光倒流,是否真的有勇气主动要她微信。人家是真正的大佬,那个咄咄逼人的家伙仅仅是她手下的小喽啰,所谓圣人无相,高手总是那些看起来不像高手的人。这让我想起《天龙八部》开头的情景:镜湖庄比剑。无量剑和逍遥派的两名大汉比剑,两派互为世仇,不共戴天。梁上却有一名少女吃吃冷笑,两名大汉大汉怒了,叫嚣着要把少女抓住教训一番。没想到少女自己跳下来,三下两下把两名大汉都打倒了。众人一时都惊呆了。那个少女叫钟灵。我和那位咄咄逼人的面试官上演的那场狗咬狗式的面试,正像无量剑和逍遥派的两名大汉比剑,而钟灵却在旁边冷眼相看。当然我不确定她是否真的还年轻,也许只是看起来年轻,也许她已经三十好几四十好几了,也许她是几个孩子的妈了。谁知道呢?

    前文有提到手写排序算法。这个真的非常重要。微软曾经一面的面试题:手写二分查找排序算法。大家注意,整个一面就这一道题,写出来就过,写不出来就滚蛋。这道题的面试通过率为5%,低得让面试官都非常惊讶,于是面试官把这道题拿到内部去给员工进行测验,通过率也仅为25%。提到手写算法,就不得不提一下软件之神--高德纳。比尔盖茨就是他粉丝。这个人在计算机领域的地方就相当于篮球界的乔丹,科学界的爱因斯坦。这个人有一个非常独特的习惯,就是喜欢在纸上写代码。他曾经说过“我写出来的代码,都是在脑子里运行了好几遍的,因此我写出来的代码没有bug”。他做出来一款Tex软件,并向全世界宣布将以二的N次方悬赏那些找到他的软件bug的人,找到第一个的悬赏2美元,找到第二个的悬赏4美元,依次递增,30多年过去,一共找出来15个bug。纸上写代码要求你对代码有更深入的理解,对流程有更精确的控制,你必须像机器一样思考,对各种边界条件要了然于胸。你是否能理解为什么微软会提出这么一道面试题呢?高德纳年轻时写过一本书《计算机编程艺术》,他一口气就写了三千多页,编辑去催稿时,他说还只是写了个开头,编辑认为可以做些删减,于是请技术专家鉴定一下,鉴定的结果是最好一字不差地出版。这套书一共七本,微软创业早期的招人标准就是读过《计算机编程艺术》其中一本,因为比尔盖茨自己就只读过一本,因为再往下读就看不下去了。这套书相当于计算机领域的相对论,可以在网上买到英文版,没有中文版,因为没有中国人看得懂。有兴趣地可以买来看一下,价格不便宜,当然一般都是看不懂的,不过也可以把它当作软件行业的圣经,每天早晚三炷香地供着,保佑自己代码随便敲,bug全没了。

    好了,就到这里吧,希望你有所收获。我将在下一篇文章里描述如何快速准确地在10分钟里手写5种排序算法。敬请期待。。。

    相关文章

      网友评论

        本文标题:剑指华为

        本文链接:https://www.haomeiwen.com/subject/tgoinctx.html