程序员面试字节跳动,被怼了~

简介: 程序员面试字节跳动,被怼了~

image.png作者:三级狗 https://www.zhihu.com/question/31225105/answer/582508111


分享一个知乎上一个网友的经历:


人们都说,这个世界上有两种人注定单身,一种是太优秀的,另一种是太平凡的。


我一听呀?那我这岂不是就不优秀了吗,于是毅然决然和女朋友分了手。


人们都说,互联网寒冬来了,这个时候还在大面积招人的公司,必然是牛逼的公司。而这个时候勇敢跳槽的人,必然是牛逼的人。


于是2019年1月25日下午14:00,我开始了字节跳动的社招面试。


为了这天,我前一天排老长的队理了个利落的发型,胡子刮得一干二净。穿上崭新的新百伦999,连袜子都是崭新的NB,墨绿色工装裤配酒红色卫衣,外面再搭一件精致的黑色羽绒小坎肩,准时准点出现在电脑屏幕前,准备开始视频面试。


去面试头条,你最好有点心理准备。我面试过头条的好兄弟给了我一句忠告。不过邮件对考查内容写的一清二楚,所以一面,我并没有做太强的心理建设,事实证明我可能对通用型业务和软性技能的理解还不够透彻。image.png时间到了,画面里出现一个面积很小的房间,面试官坐在里面调节姿势和座椅靠背。这不是我第一次,但我却比第一次还要紧张。面试官跟我的一位闷骚朋友很像,长相、气质、说话声音如出一辙,我几乎差点问他这些年跟郑州那个女孩子还有没有联系,孩子到底是不是你的......


确认过眼神,我们在初次见面的紧张和局促中正式开始,前戏的部分大同小异,自我介绍,公司职能,项目简介。


小作坊走出来的小猿,项目经验并不出彩,没有高并发,没有分布式,前端后台服务器和数据库部署在同一台机器上。为了不显的太low又假装不经意提了提自己在GitHub上有自己的开源框架,但是他并不care。我的花样耍完了,就到了他肆意挥舞小皮鞭的环节。


“我看你项目上都是偏独立开发,或者你一个人在项目中承担了很大的比重。那你能不能说说你们的项目在部署的时候用的是怎样的架构?”


“主要就是Django部署那一套,nginx+uwsgi+Django+mysql。”


“那你详细说一下nginx在部署的时候有哪些必要的配置?”


“这个我在nginx里配置了端口的转发,对外监听80或443,然后转发到内部uwsgi的端口,由uwsgi来处理业务请求,部署Django项目。”显然我对nginx的认知仅仅局限在配置个端口反向代理,偷换概念企图蒙混过关。


“不是,我的意思是nginx当中不是有很多参数配置嘛,你在项目部署的时候那些参数是必要的配置,有哪些可以调优”


对方识破了我的小伎俩,并不给我蒙混过关的机会,无奈我只得低头认怂,表示并没有用过其他配置,出师未捷就挨了当头一棒。


“那你再说说uwsgi它的工作原理吧,它的底层是怎么工作的。”


因为紧张的缘故,原本不会的知识,一下子变得还是不会,囫囵吞枣地讲它代理一个服务端口,分配不同的线程处理客户端浏览器的请求。


“那他的底层是怎么实现的?看来我如果还没求饶,他就不打算放过我。


......(这里省略一些不清楚、不知道、忘记了之类的词藻,保留一丝尊严。)


接下来是关于redis哲学三连“是什么?为什么?怎么用?”


我把肚子里仅有的关于Redis的一滴墨水挤成了三滴,仍然没有给出他想要的。继续追问Redis的数据存储方式,操作方法,读写操作在底层都是如何实现。


啊~,好深。


除了低头委屈说不会,内心的我已经意识到了问题的严重性,平常面试你只要一喊不行,对方就会体贴地换一个方向继续深入,这次我都快被搞哭了,他居然换了个姿势继续往深怼,这谁顶得住啊……


到了这一步我的心理防线基本宣布告罄(qìng)。往后又问了关系型数据库表的存储结构,我隐约记得是毕加索还是毕加树来着,完后又追问到索引的实现原理,创建一个索引怎么它就能加快查询效率。


其实面试官的套路大多如此,每个技术都尽可能的深入,深到你不会为止,并不是非得要把你折磨的不能自理,而是为了考察你的技术水平到底如何。但是事到如今我的大脑已经无法给自己完成心理建设了,摧枯拉朽般智商情商性商逆商全线崩盘。


当然这也不能全怪我,上来就是三个大闷棍,就是李云龙来也让旅长打成懵逼了,哪里还能腾出精力开意大利炮。


下一个节目到了数据结构,面试官稳准狠一步到位点到了我的敏感地带:堆。什么是最小堆?什么是最大堆?在堆中怎么插入一个元素?


这个问题上值得庆幸的是,我居然急中生智,鬼使神差地用了四种不同的方式表达我不会,每种方式都尴尬而不委婉,并且还不重样。好歹面试一波儿不能让人家觉得我一无是处,多少还算有点文笔....


其实我平时稍微多看哪怕一眼,知道堆的实现方式是平衡二叉树,这一连串的问题不至于答的这么惨,面试的时候脑子里记得看过栈和队列,完全不知道堆是怎么实现,下来才知道就是个平衡二叉树。


这个时候的我已经被折磨的身心俱疲了,面试已经持续了将近四十分钟,嘴开始打漂,情绪紧张思维也难以集中,回答中开始大量出现我感觉、我猜、可能、应该是等高危词汇。


死亡轰炸还没有结束,接着是MQ,我所使用的MQ的技术选型,为什么选它,项目中如何应用,最后无一例外,它底层是如何实现?怎么保证的稳定的消费者生产者队列?回答的中间穿插着我不自信的连接词“嗯~啊~哼~哦~”。每次我招架不住求饶喊着不要不要的时候,我都能看到面试官嘴角狡黠(xiá)的微笑,由内而外的快感浮现在脸上憋都憋不住。心里暗暗发誓迟早有一天,我也要在上面。


最后以一道算法编程题结束,如何给一个双向链表排序?我失去控制的舌头自作主张地把话锋导向了快速排序,那,你来写一个双向链表的快速排序吧,这个视频页面上旁边有一个编辑器,语言你随便,用c++或python都可以,大概10分钟的时间,可以吧。


“那,我用c++试一下吧”


我随即在编辑器里自信的def了一个quickSort函数,参数是一个int数组,还有两个int值代表low和high两个档位,函数末尾加上冒号,下一行开始缩进四个空格以示尊敬,当然代码段的区分花括号必须得有。


写完这几句,双手这才收到了大脑已经在十分钟前宕机的消息,于是两手一摊表示无能为力。时间才过去一分钟,剩下时间我开始拿纸笔低头写字,沉默的面试官抬头看到还以为我在纸上排演算法,可实际上我是在拼尽最后一丝脑力回顾刚才他问我的问题,倒不是为了面试后好好复习,主要是我一会儿要写知乎,哈哈,我可真是个小机灵鬼。


期间面试官也用自己的代码快速的敲击键盘,听声音猜大概是在吐槽HR,筛选简历的时候长点心,找来面试的这都什么玩意儿。


时间差不多了,再一次厚着脸皮主动承认自己写不出来。实际上,我哪怕正经用c++写一个数组的快速排序也算话,然而当时的我满身只剩下疲惫,痛苦和羞辱。


面试官终于放我走人,长达一个小时的激情视频聊天终于结束,关掉视频的一刹那,随着浑身一阵抽搐,整个人瘫软在椅子上。我是谁?我在哪儿?刚才发生了什么?


哦,刚才发生了那种事情。我之前对那种事情还挺向往的,内心对此充满了激情和憧憬,怎么现在,对这件事情一点兴趣也没了?现在只想这么瘫着什么也不想做。要不要点根烟抽抽?哦对了我不抽烟。原来贤者时间脑子里这么多想法……


飘飘忽忽浑浑噩噩,脑海里一直回荡着周董的音乐:这感觉已经不对我最后才了解,一页页不忍翻阅的情节我好累,你沉默看我掉过几次泪多憔悴,而我心碎你受罪你的offer,我不配~~~!


面试过程和提到的问题大致如此,为了阅读体验有部分艺术修饰,但是内容全部都是真实的。接下来咱们说点正经的。


讲真的现在的我只想把头插到土里再也不出来,之前写过超级浓的鸡汤,讲学习方法,被技术号拿去直接顶置到现在;写过高赞,讲连连看的外挂,到现在还有人私信问我能不能做外挂的私活儿,一天上千的利润;作为培训讲师讲培训机构内幕,有上海北京的培训机构给到一小时1k了我不想去,想趁年轻进大厂做技术。在大家一顿商业吹捧之下就真的以为自己是个大佬了。


有极少数的人在评论区怼我说花拳绣腿,说我二本渣渣热衷于误人子弟,我都不以为然,心里想着等我有一天拿着大厂的offer回来证明自己!到今天总算知道他们说的是对的,打嘴炮和真有能耐是不一样的。之所以一直没有大佬来怼,可能是因为大佬不刷知乎。


今天这轮面试,算是被扒了个体无完肤,可以说是程序员面试的反面典型,当然我也不怕说出来,菜就是菜,吹水就是吹水,努力把吹过的水早日兑现,迟早有一天能成真正的大佬!


这次作为loser再说说在求职前期准备过程中暴露出的问题,望大家引以为戒。


1、尽量早早做好准备


面试不应该是准备好了才去,而是时刻都准备好了。如果非要说从什么时候开始准备离职跳槽,我的建议是半年。别像我一样,面试了才开始看算法和数据结构。


2、先找小公司面几次进入状态,再投大公司一举拿下。


我蠢到一开始就动用了我所有的人脉,投了bat及其他二线大厂所有的内推。算上字节跳动已经是我黄掉的第三个响当当大厂了,踩着大厂当垫脚石攒面试经,除了觉得自己蠢,我还觉得自己真特么牛逼。


3、你的简历,就是复习大纲


总有人拿网上找到的拿了bat offer的人提供的复习大纲复习,结果发现并没啥卵用。我这次字节的面试,他提出的所有的问题全部是基于我简历中的技能清单。


我认为很多人但凡能做到简历中技能清单描述的样子,就已经算了不起了。如果简历中感觉无料可写?我推荐一个好办法:


1. 听说过名字,就写了解;


2. 跟着帖子写过demo,就写熟悉;


3. 项目当中用过,就写熟练掌握;


4. 项目当中经常用,就写精通;


我就是这么写的,结果很显然,出来混,总是要还的,敢装逼,就活该被人凌辱。


4、警惕舒适区


不得不承认我在现公司呆的真的非常舒服,领导非常器重,项目和授课两不耽误,去大学实训总是受到学生的追捧,手里时不时还能接到价格公道的私活儿。


之所以想走,一方面是因为心中对大厂和技术的执念,另一方面是因为现在已经到了给自己规划的时间,碰巧赶上互联网寒冬是没有办法的事,但是我仍然坚信真正牛逼的人是不会被寒冬所阻拦。


最近的几波儿面试直接把我打到怀疑人生了,面试完后双目无神的望着天花板不知道该如何评价自己。授课到现在带过的学生虽然不多,但是送进一二线大厂的没有二十个也有十几个了(我们机构不造假学历,都是实习生进的),怎么我这个老师找个工作这么费劲?是道德的沦丧还是人性人扭曲?是大厂真的飘了还是我确实拿不动刀了?


“如果程序员对职场感到迷茫,对眼下的舒适感到不安,我建议他出去面试,不见得要走,但是你要出去,听听市场对自己的评价。”


这句话是在一个求职公众号里看到的,我觉得不光程序员,任何职场人都该深以为然。我对职场虽不迷茫,但是面试一波儿就发现,我在毫无意识的情况下,在工作三年这个节点成长上已经被人甩下一大截,更要命的是对基础知识的掌握程度完全比不上应届毕业的实习生。


往后日子里赶紧老老实实看书,踏踏实实做事儿,早日兑现自己曾经吹过的牛逼。


推荐去我的博客阅读更多:


1.Java JVM、集合、多线程、新特性系列教程


2.Spring MVC、Spring Boot、Spring Cloud 系列教程


3.Maven、Git、Eclipse、Intellij IDEA 系列工具教程


4.Java、后端、架构、阿里巴巴等大厂最新面试题


生活很美好,明天见~



image.png

相关文章
|
2月前
|
算法 程序员 Go
PHP 程序员学会了 Go 语言就能唬住面试官吗?
【9月更文挑战第8天】学会Go语言可提升PHP程序员的面试印象,但不足以 solely “唬住” 面试官。学习新语言能展现学习能力、拓宽技术视野,并增加就业机会。然而,实际项目经验、深入理解语言特性和综合能力更为关键。全面展示这些方面才能真正提升面试成功率。
56 10
|
3月前
|
JavaScript 前端开发 小程序
CoderGuide 程序员前后端面试题库,打造全网最高质量题库
CoderGuide涵盖范围包括且不限于:前端面试题(Vue,React,JS,HTTP,HTML,CSS面试题等),后端面试题(Java,Python,Golang,PHP,Linux,Mysql面试题等),以及算法面试题,大厂面试题,高频面试题,校招面试题等,你想要的,这里都有!
62 2
|
5月前
|
前端开发 应用服务中间件 程序员
老程序员分享:Nginx相关面试题
老程序员分享:Nginx相关面试题
56 2
|
5月前
|
SQL JavaScript Java
java程序员面试题大全含答案(2018--2019)
java程序员面试题大全含答案(2018--2019)
|
5月前
|
前端开发 程序员 JavaScript
9年程序员总结个人的面试技巧
9年程序员总结个人的面试技巧
40 2
|
6月前
|
数据采集 XML 程序员
最新用Python做垃圾分类_python垃圾分类代码用key和format,5年经验Python程序员面试27天
最新用Python做垃圾分类_python垃圾分类代码用key和format,5年经验Python程序员面试27天
最新用Python做垃圾分类_python垃圾分类代码用key和format,5年经验Python程序员面试27天
|
6月前
|
机器学习/深度学习 数据采集 算法
2024年机器学习入门,2024年最新字节跳动视频面试一般多久会收到结果
2024年机器学习入门,2024年最新字节跳动视频面试一般多久会收到结果
2024年机器学习入门,2024年最新字节跳动视频面试一般多久会收到结果
|
6月前
|
算法 程序员
2024年有哪些话一听就知道一个程序员是个水货?(1),2024年最新面试真题及答案
2024年有哪些话一听就知道一个程序员是个水货?(1),2024年最新面试真题及答案
2024年有哪些话一听就知道一个程序员是个水货?(1),2024年最新面试真题及答案
|
3月前
|
存储 Java
【IO面试题 四】、介绍一下Java的序列化与反序列化
Java的序列化与反序列化允许对象通过实现Serializable接口转换成字节序列并存储或传输,之后可以通过ObjectInputStream和ObjectOutputStream的方法将这些字节序列恢复成对象。
|
1天前
|
存储 缓存 Java
大厂面试必看!Java基本数据类型和包装类的那些坑
本文介绍了Java中的基本数据类型和包装类,包括整数类型、浮点数类型、字符类型和布尔类型。详细讲解了每种类型的特性和应用场景,并探讨了包装类的引入原因、装箱与拆箱机制以及缓存机制。最后总结了面试中常见的相关考点,帮助读者更好地理解和应对面试中的问题。
14 4