专栏首页五分钟学算法我以为是个正经程序猿,结果是个中二段子精

我以为是个正经程序猿,结果是个中二段子精

年后回来,凭借着在 GitHub 收获 14000 star ,因此收到好多面试内推邀请,抱着检验一下自己水平的想法,于是打算好好准备去面一下大厂。在这个过程中认识到了挺多有趣的人,其中「三级狗」就是我认为最有趣的那个。

以下故事就是来源于他的亲身经历。下面文中的我指代「三级狗」。


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

我一听,哎呀?那我这岂不是就不优秀了吗,于是毅然决然和女朋友分了手。 人们都说,互联网寒冬来了,这个时候还在大面积招人的公司,必然是牛逼的公司。而这个时候勇敢跳槽的人,必然是牛逼的人。 于是 2019 年 1 月 25 日下午 14:00 ,我开始了字节跳动的社招面试。 为了这天,我前一天排老长的队理了个利落的发型,胡子刮得一干二净。穿上崭新的新百伦 999,连袜子都是崭新的 NB,墨绿色工装裤配酒红色卫衣,外面再搭一件精致的黑色羽绒小坎肩,准时准点出现在电脑屏幕前,准备开始视频面试。 “去面试头条,你最好有点心理准备。” 我面试过头条的好兄弟意味深长的给了我一句忠告。

“我是什么水平,你难道还不知道么!”我心里暗下决心:我富贵,一定忘。

不过邮件对考查内容写的一清二楚,所以一面,我并没有做太强的心理建设,事实证明我可能对通用型业务和软性技能的理解还不够透彻。

时间到了,画面里出现一个面积很小的房间,面试官坐在里面调节姿势和座椅靠背。这不是我第一次,但我却比第一次还要紧张。面试官跟我的一位闷骚朋友很像,长相、气质、说话声音如出一辙,我几乎差点问他这些年跟郑州那个女孩子还有没有联系,孩子到底是不是你的...... 确认过眼神,我们在初次见面的紧张和局促中正式开始,前戏的部分大同小异,自我介绍,公司职能,项目简介。

小作坊走出来的小猿,项目经验并不出彩,没有高并发,没有分布式,前端后台服务器和数据库部署在同一台机器上。

为了不显的太 low 又假装不经意提了提自己在 GitHub 上有自己的开源框架,但是他并不 care。

为了显的自己与头条有着深度合作关系不经意提了提在抖音上录了几个视频,但是他并不 care。

为了显的自己经验丰富,不经意脱下了帽子摸了摸硕果仅存的几根头发,但是他并不 care。

这个时候,我还没意识到:随着我的花样耍完,接下来就是他肆意挥舞小皮鞭的环节。 “我看你项目上都是偏独立开发,或者你一个人在项目中承担了很大的比重。那你能不能说说你们的项目在部署的时候用的是怎样的架构?” “主要就是 Django 部署那一套,nginx+uwsgi+Django+mysql。” “那你详细说一下 nginx 在部署的时候有哪些必要的配置?” “这个我在 nginx 里配置了端口的转发,对外监听 80 或 443,然后转发到内部 uwsgi 的端口,由 uwsgi 来处理业务请求,部署 Django 项目。” 显然我对nginx的认知仅仅局限在配置个端口反向代理,偷换概念企图蒙混过关。 “不是,我的意思是 nginx 当中不是有很多参数配置嘛,你在项目部署的时候那些参数是必要的配置,有哪些可以调优。” 对方识破了我的小伎俩,并不给我蒙混过关的机会,无奈我只得低头认怂,表示并没有用过其他配置,没想到出师未捷就挨了当头一棒。

我饶了饶头,然后将帽子戴了起来。 “那你再说说 uwsgi 它的工作原理吧,它的底层是怎么工作的。” 因为紧张的缘故,原本不会的知识,一下子变得还是不会,囫囵吞枣地讲它代理一个服务端口,分配不同的线程处理客户端浏览器的请求。 “那他的底层是怎么实现的?“ 看来我如果还没求饶,他就不打算放过我。 ......(这里省略一些不清楚、不知道、忘记了之类的词藻,保留一丝尊严。) 接下来是关于 Redis 哲学三连“是什么?为什么?怎么用?” 我把肚子里仅有的关于 Redis 的一滴墨水挤成了三滴,仍然没有给出他想要的。继续追问 Redis的数据存储方式,操作方法,读写操作在底层都是如何实现。 啊~,好深,深不见底。 除了低头委屈说不会,内心的我已经意识到了问题的严重性,平常面试你只要一喊不行,对方就会体贴地换一个方向继续深入,这次我都快被搞哭了,他居然换了个姿势继续往深怼,这谁顶得住啊……

我在心里呐喊:我会不会这些难道你心里没点 B 树吗? 事实上,到了这一步我的心理防线基本宣布告罄(qìng)。往后又问了关系型数据库表的存储结构,我隐约记得是毕加索还是毕加树来着,完后又追问到索引的实现原理,创建一个索引怎么它就能加快查询效率。 其实面试官的套路大多如此,每个技术都尽可能的深入,深到你不会为止,并不是非得要把你折磨的不能自理,而是为了考察你的技术水平到底如何。但是事到如今我的大脑已经无法给自己完成心理建设了,摧枯拉朽般智商情商性商逆商全线崩盘。 当然这也不能全怪我,上来就是三个大闷棍,就是李云龙来也让旅长打成懵逼了,哪里还能腾出精力开意大利炮。 下一个节目到了数据结构,面试官稳准狠一步到位点到了我的敏感地带:堆。什么是最小堆?什么是最大堆?在堆中怎么插入一个元素? 这个问题上值得庆幸的是,我大概是饿了,想起了茴字有几种写法,急中生智,鬼使神差地用了四种不同的方式表达我不会,每种方式都尴尬而不委婉,并且还不重样。好歹面试一波儿不能让人家觉得我一无是处,多少还算有点文笔.... 其实我平时稍微多看哪怕一眼,知道堆的实现方式是完全二叉树,这一连串的问题不至于答的这么惨,面试的时候脑子里记得看过栈和队列,完全不知道堆是怎么实现,下来才知道就是个完全二叉树。 这个时候的我已经被折磨的身心俱疲了,面试已经持续了将近四十分钟,嘴开始打漂,情绪紧张思维也难以集中,回答中开始大量出现我感觉、我猜、可能、应该是等高危词汇。 死亡轰炸还没有结束,接着是 MQ ,我所使用的 MQ 的技术选型,为什么选它,项目中如何应用,最后无一例外,它底层是如何实现?怎么保证的稳定的消费者生产者队列?回答的中间穿插着我不自信的连接词“嗯~啊~哼~哦~”。每次我招架不住求饶喊着不要不要的时候,我都能看到面试官嘴角狡黠(xiá)的微笑,由内而外的快感浮现在脸上憋都憋不住。心里暗暗发誓迟早有一天,我也要在上面。 最后以一道算法编程题结束,如何给一个双向链表排序?我失去控制的舌头自作主张地把话锋导向了快速排序,那,你来写一个双向链表的快速排序吧,这个视频页面上旁边有一个编辑器,语言你随便,用 c++ 或 python 都可以,大概 10 分钟的时间,可以吧。 “那,我用 c++ 试一下吧。” 我随即在编辑器里自信的 def 了一个 quickSort 函数,参数是一个 int 数组,还有两个 int 值代表low 和 high 两个档位,函数末尾加上冒号,下一行开始缩进四个空格以示尊敬,当然代码段的区分花括号必须得有。 写完这几句,双手这才收到了大脑已经在十分钟前宕机的消息,于是两手一摊表示无能为力。时间才过去一分钟,剩下时间我开始拿纸笔低头写字,沉默的面试官抬头看到还以为我在纸上排演算法,可实际上我是在拼尽最后一丝脑力回顾刚才他问我的问题,倒不是为了面试后好好复习,主要是我一会儿要写知乎,哈哈,我可真是个小机灵鬼。 期间面试官也用自己的代码快速的敲击键盘,听声音猜大概是在吐槽 HR,筛选简历的时候能不能长点心,找来面试的这都什么玩意儿。 时间差不多了,再一次厚着脸皮主动承认自己写不出来。实际上,我哪怕正经用 c++ 写一个数组的快速排序也算话,然而当时的我满身只剩下疲惫,痛苦和羞辱。 面试官终于放我走人,长达一个小时的激情视频聊天终于结束,关掉视频的一刹那,随着浑身一阵抽搐,整个人瘫软在椅子上。我是谁?我在哪儿?刚才发生了什么?

哦,刚才发生了那种事情。我之前对那种事情还挺向往的,内心对此充满了激情和憧憬,怎么现在,对这件事情一点兴趣也没了?现在只想这么瘫着什么也不想做。要不要点根烟抽抽?哦对了我不抽烟。原来贤者时间脑子里这么多想法…… 飘飘忽忽浑浑噩噩,脑海里一直回荡着周董的音乐:这感觉已经不对我最后才了解,一页页不忍翻阅的情节我好累,你沉默看我掉过几次泪多憔悴,而我心碎你受罪你的 offer ,我不配~~~!

面试过程和提到的问题大致如此,为了阅读体验有部分艺术修饰,但是内容全部都是真实的。接下来咱们说点正经的。 讲真的现在的我只想把头插到土里再也不出来,之前写过超级浓的鸡汤,讲学习方法,被技术号拿去直接置顶到现在;在知乎写过高赞,讲连连看的外挂,到现在还有人私信问我能不能做外挂的私活儿,一天上千的利润;作为培训讲师讲培训机构内幕,有上海北京的培训机构给到一小时 1k 了我不想去,想趁年轻进大厂做技术。在大家一顿商业吹捧之下就真的以为自己是个大佬了。

在知乎,有极少数的人在评论区怼我说花拳绣腿,说我二本渣渣热衷于误人子弟,我都不以为然,心里想着等我有一天拿着大厂的 offer 回来证明自己!到今天总算知道他们说的是对的,打嘴炮和真有能耐是不一样的。之所以一直没有大佬来怼,可能是因为大佬不刷知乎。 今天这轮面试,算是被扒了个皮开肉绽,可以说是程序员面试的反面典型,当然我也不怕说出来,菜就是菜,吹水就是吹水,努力把吹过的水早日兑现,迟早有一天能成真正的大佬!

后记:工作还没找下,文章倒是火了,公众号转的满天飞。还有好多没拿我授权就给我转走啦。特此上来跪求各位转载的号主们,麻烦转载前跟我说一声,我又不问你们要钱......现在同事领导从各大平台都看过了,知道我是三级狗,每天上班贼鸡儿尴尬....

现在不了解我能力的,劝我转行写作;了解我能力的,劝我转行写作.... 搞得我一度开始怀疑自己嫁错了新郎入错了洞房,我一手逆天改命的编码技巧,竟会在苍白无力的文字面前如此不堪一击?

前两天还看到一个技术交流群里,一个人突然发出了一个公众号推文,一看是我的这篇文章,我以为他推荐给大家觉得写得好,结果后面跟了一句:“今日头条的面试大家了解一下,有觉得自己比作者厉害的,简历给我我内推哦~”。

哈~,我的内心毫无波动,甚至织起了毛衣...

就在我编辑此文的时候,「三级狗」微信发了一堆话给我。

「三级狗」就是这么有趣的一个人,如果你们对他感兴趣,请前往知乎去骚扰他,他会很骚气的欢迎你。当然,如果你想微信骚扰他,或者想内推他,可以在后台回复 三级狗 ,我把他的微信给你去勾搭一下,添加的时候注明一下「程序员吴师兄」~

https://www.zhihu.com/question/31225105/answer/582508111

发文前夕,「三级狗」又噼里啪啦的发了一段话过来。所以,你觉得好的话可以帮「三级狗」share 一下这篇文章,帮他实现这个白日梦。

本文完。


今日问题:

你面过最大的一个公司是什么?或者你在面试的时候印象最深刻的一件事是什么?

打卡格式:

打卡 X 天,答:xxx 。

本文分享自微信公众号 - 五分钟学算法(CXYxiaowu)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-02-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 推荐几个只有程序员才会玩的游戏

    这是一个在线解谜游戏,画风简洁,部分关卡需要具备一定的web知识。url地址直接访问,打开浏览器调试等操作都是解谜必要的。对于web开发人员来说非常值得一玩。

    五分钟学算法
  • 分享几个有点意思的 GitHub 项目

    不久前,一位来自比利时的小哥在 GitHub 上开源了一个基于深度学习的语音合成项目,它通过采集分析一段具体的声音样本,便可在 5 秒内生成与之类似的克隆语音。

    五分钟学算法
  • 扫雷与算法:如何随机化的布雷(一)

    这种实现逻辑的一个弊端就是会在已经布雷的位置再度布雷,进而导致整个区域的布雷数量与要求不符合。

    五分钟学算法
  • 再谈“我是怎么招聘程序员的”

    我以前写过一篇《我是怎么招聘程序员的》的文章(在CSDN那里有很多人进行了回复)。今天,我想再谈谈关于招聘和面试这方面的东西,主要是以下这些原因:

    范蠡
  • 逆风而行!从考研失败到收获到自己满意的Offer,分享一下自己的经历!

    大家好,我是Guide哥,这篇文章是一位读者的投稿。这篇文章分享了他从确定Java后端方向 -> 考研 -> 考研失败->准备春招 -> 收货自己满意的offe...

    Guide哥
  • HR面的6道题,如何才能完美回答?

    每当自己的简历得到反馈,被HR通知面试,这种感觉一定非常好。感觉已经妥妥的,明天就能准备入职了~

    zz_jesse
  • 面试的时候,不要让面试官有“出戏”的感觉

    这几天看了一些同学们的作业,总体来讲,代码都这写的挺好,页面也都做出来了。但总是会有一些这里那里,或多或少的小毛病,让我无法在内心里给个100分。这许多小毛病都...

    web前端教室
  • C++ OpenCV特征提取之亚像素级角点检测

    前面我们学习了Harris角点检测还有Shi-Tomasi角点检测等,如果我们要对有点的精度有更高的要求,就需要用到了亚像素级角点检测。其实在实际应用中可以看到...

    Vaccae
  • 程序员C语言快速上手——进阶篇(七)

    最早的C语言仅仅用来编写小而美的代码,总共不超过100行,随着计算机软件的发展,小程序变成了大型软件工程,整个项目是由多人协同开发完成的,一个人显然已经玩不动了...

    arcticfox
  • 2.3 spring5源码---spring ioc 加载配置类的源码

    我们经常会在一个类上打上@Configuration, @Component, @Bean等. 带有这些注解的类, 我们在spring启动的时候,是如何被加载的...

    用户7798898

扫码关注云+社区

领取腾讯云代金券