后端面试经历分享

0.背景

博主本人 2015 年毕业于郫县某 985
高校通信工程系,因为大学期间一贯和睦创业所以错过了大四秋招春招,毕业后又在迪拜市持续创业一年,但在创业集团一向不能沉淀技术积淀,于16年岁末萌生进大公司学习的想法,于是从16年岁暮先导通过社招找工作。尽管大学就起来做研发,但无奈简历只看毕业工作经验,所以我简历只有一年工作经历。

在此总括一篇小说给各位参考;

1.阿凡题

有道是算是人生第一场合试,早晨 11 点开始,公司是做 k12
在线教育不无关系业务,在五道口这边;

一面

前台登记后发了一套笔试题,初阶写,紧要都是 Python
基础知识,不算难,基本就是 可变对象不可变对象分别、 Python
垃圾回收机制等等的问题,有一两道编程题也很粗略,最终有个基于问题设计数据表的题材也不难,搞定后等面试官开首二面;

二面

面试官好像是个主持,起先让做自我介绍,他在看本身的笔试题,然后依据简历问了有的序列有关的问题以及简单的有些系统规划问题,之后大概问了问笔试题里一些题目和互补,感觉聊的可比心潮澎湃,面试官也对往日自己的阅历相比较感兴趣,于是去通知CTO 举办三面;

三面

CTO 面里题目的广度和纵深都很大,从服务器部署的有关知识到 Nginx
一些细节问题都有问到,不得不说问的如故相比较全面的,映像最深的应该是以此问题:

浏览器的一个呼吁从发送到重返都经历了哪些,讲的越详细越好

我大致讲下自家的答案:

1、先从网络模型层面:

client (浏览器)与 server 通过 http 协议通讯,http
协议属于应用层协议,http 基于 tcp 商讨,所以 client 与 server 首要通过
socket 举行报道;

而 tcp 属于传输层协议、假使走 https 还索要会话层 TLS、SSL 等协议;
传输层之下网络层,这里最重假若路由协和 OSPF
等展开路由转发之类的。再向下多少链路层首如果 ARP、RARP 探讨完成 IP 和
Mac 地址互解析,再向下到最底部物理层基本就是 IEEE 802.X
等协议举办数量比特流转成高低电平的的局部概念等等;

当浏览器发出请求,首先举办数量封包,然后数据链路层解析 IP 与 mac
地址的照耀,然后上层网路层举办路由查表路由,通过应用层 DNS
协议获得目的地方对应的 IP ,在这边举行 n 跳的路由寻路;而传输层 tcp
协议得以说下相比较经典的四遍握手、两回分其它长河和状态机,这里放个图可以视作参照:

2、应用层方面:

数据沟通重要通过 http 协议, http 协议是无状态协议,这里可以谈一谈
post、get 的分别以及 RESTFul 接口设计,然后能够讲服务器 server 模型
epoll、select 等,接着能够遵照实际经历讲下 server 处理流程,比如我:
server 这边 Nginx 得到请求,举办部分认证,比如黑名单拦截之类的,然后
Nginx 直接处理静态资源请求,其他请求 Nginx 转发给后端服务器,这里自己用
uWSGI, 他们之间通过 uwsgi 共商通讯,uWSGI 拿到请求,可以展开局部逻辑,
验证黑名单、判断爬虫等,依照 wsgi 标准,把得到的 environs 参数扔给
Django ,Django 依据 wsgi 标准收取请求和 env, 然后开首 start_response
,先跑 Django 相关后台逻辑,Django 拿到请求执行 request middleware
内的有关逻辑,然后路由到相应 view 执行逻辑,出错执行 exception
middleware 相关逻辑,接着 response 前履行 response middleware
逻辑,最后经过 wsgi 标准社团 response, 得到需要再次回到的东西,设置有些
headers,或者 cookies 之类的,最终 finish_response 再次回到,再通过 uWSGI
给 Nginx ,Nginx 重临给浏览器。

谈完后 CTO 依据本人说的一对细节提议了一些题目,最终当时就谈了 offer ,CTO
说不走 hr 这边了直接和我谈,相比较奇怪的是 offer 给的比我要好要的还高
5k。对于第一次找工作的本身来说当时满心激动。

最终大概说说环境:集团在五道口一栋写字楼内容,规模还算相比较大,听 CTO
谈做的事情也正如好玩,有机器学习、大数量等等 (
首假诺处理各个初高中课程的题材,涉及到文字识别深度学习等等,当然我只要进入肯定要从事情写起
),包午餐、早上茶之类的其他自己就不太了然了,因为上午就走了,不过公司类似是每礼拜五天班。集团提升感到还是相比较高效,感兴趣的同校可以去摸索。

2. 学堂在线

公司也在五道口,哈工大科技园里,Google 前中国办公对面的楼里 (
好像现在搬到 Google 这里了 )

一面

一面面试官应该是个后端研发工程师,感觉有点腼腆,全程一向不看我,重要聊了部分简历里的类型经验,系统规划,然后问了多少个简易的算法题和局部
Python 的基本知识,然后就去叫二面面试官了。

二面

二面面试官是机构掌管,嗯,这一次算是看着本人跟自身聊了,哈哈,感觉目光沟通也很关键,同样问了部分系统规划的题材和经历问题,因为博主
Django
相关的经验还算相比较丰硕,感觉他们也根本是找工作研发,所以没什么奇怪就过了。

三面

hr 面,紧要问了部分工薪期望,发展计划等等的,紧假使聊天,然后就发了
offer。

该校在线重假设做慕课平台,并且是和国内各大大学合作,福利方面因为最终没有去所以不是特别领悟,集团环境依然不错的。

3.果壳

果壳在国贸百朗园里,在园区最里面,不是很好找,一进去首发了一套面试题和一张登记表,登记表连父母家中资料都要,不是很了解要面试者这一个新闻干什么,又不自然去你家,等入职再填不行啊?所以除了自己新闻,其他自己没填。(
面了这么多家就果壳要填这个,还要填特别详细的信息,无法懂 )

一面

面试题难度适中,但是提到到的面比较多,还要写数据库查询语句等等,博主非科班,只大概自学过数据库,然后直接在用
orm ,毕业后就没怎么写过原生 SQL
,相关问题只好凭借回想大概写了下,还有一道题是 用 O(1) 的复杂度实现一个
栈 的出栈入栈和再次回到 max、min 值的操作,其他就是有的 Python
基础和表设计题。

这边说下这道设计栈的题:

进出栈函数 O(1) 没什么问题,首假如 max、min 操作(
博主找工作时没看过面试题目,只是刷了部分 LeetCode
,后来发现这道题很经典,网上广大答案)当时没遭遇过这种需求,然而可以一定想要时间复杂度下降,肯定是要用空间去换时间,所以立刻有设计了额外的数据结构存
max
min,但当下设计的依然有问题,前面又和面试官钻探了一晃,依旧尚未汲取最好的方案,最后回到网上搜了下发现实际很简短,当时只差最终一步,感兴趣的同窗可以看下:栈在
O(1) 时间内求
min

二面

面试官一上来就一贯拿着笔试题起始一道一道问,嗯,连自家叫什么都没让介绍,更别说介绍项目什么的,感觉有点懵逼,全程没一句废话,全是纯技术问题和算法,然后自己善于的面试官感觉不太感兴趣,我不太熟知的他很乐意追问,嗯,二脸懵逼,之后又问道
tcp 流量控制,当时直接说错给说了堵截控制,面试官表示本身 tcp 了然的不得了(
确实是自我的问题,回去之后又全方位看了一次 tcp )。

最后又问了过多数据库底层的东西,博主完全没接触过,所以面试官表示下一轮面试官有事
( 哈哈哈
),接着问我有怎么样想问的,我问了五个问题面试官表示友好还有事。。。好吧,这就不聊了。

总括:数据库知识很要紧,尽管你投的是研发不是 dba
,你也终将要懂数据库底层的基本原理,至少要清楚 索引原理、MySQL
数据引擎等等,因为将来凡是博主挂的面试都有数据库的锅。

果壳环境看上去有些乱,但比较友好,但实在不敢恭维面试的章程,所以挂了博主也没惋惜。其他地方就不太了然啦,因为根本没得到offer。

4.Veeva

供销社也在国贸附近,是一家给生物科技集团( 药厂 )做 crm 的跨国有公司业 (
不过国内的近乎和外国母公司没什么关联,就是个单身的分公司),不算是互联网公司,可是工资很给力。

一面

先是是 phone interview,hr
大概问了问跳槽的由来,项目经验,发展规划等,然后发来
homework,做完后交付;

二面

homework
相比简单,就是一个断定是否润年的函数,然而那里是有坑的,当问题很粗略时,人家考验的就不是智慧了,而是看你的编码能力,工程化能力及面向对象抽象能力,所以果断完整的写了个工程,加上全体的测试,然后交由之。

三面

hr 说技术同事看了 homework 感觉仍然相比较 ok
的,所以约面试,首先来的面试官好像就是个 leader,问了重重 Python 和
Django
相关的基础知识和算法题,现场有个白版,间接在地点她出题,我写,然后她
review ,基本上就是 LeetCode easy 难度的题,没有太大题目。

四面

应当是个技巧大牛,问了问经验起初系统规划,我记得及时是让规划一个短网址生成方案,有一些外加要求,比如不可能遵照字符顺序生成短网址,而是要自由生成,如何避免碰撞,如何最大频率利用所有空中。

切切实实方案得以看和讯,上边有人探究过:
短链接是什么规划的

接下来面试截至。

面试完后吸收 hr
电话说技术同事深感不错,问我有没有意向入职,但当下考虑依然想去互联网公司由此就拒掉了。不过veeva 的工薪很给力,感兴趣的同室可以去探望。

5.知乎

博主的 dream company,哈哈,去面试的时候特紧张。博客园在 768
创意园,环境很棒。

一面

一面面试官问了体系经历及片段个人新闻后起头考基础,紧假如面试官出题,然后自己在纸上写代码,难度适中,因为面试的相比较久了,记不太明了所有问题,记得让手写了快排,然后
Python 相关基础知识,一些 LeetCode 题,tcp 相关知识,epoll
服务模型、tornado 的有些法则 ( 可以看博主在此以前小说 tornado ioloop
分析

)数据库知识 ( 坦白理解不多 )末尾问了下二分查找,一面就过了。

二面

面试官好像是商业化后台的主持?问了系列经验,问了经验,对自我大学之间创业经验表示赞许,但毕业后又创业一年代表不顺心(
不是很精通为何),之后开端问一些系统规划息息相关问题,影象相比较深的是计划微信抢红包的构架,嗯,当时遵照自己的见识说了一套系统和注意的点以及分配红包的算法,感觉面试官应该不太惬意。回去后看了看网上,还真有写,果断研读了一发:
微信红包构架设计.

末端又聊了一些系统规划相关的内容,然后让我等等。

三面

等了半个钟头,期间看到前两面面试官平素在和 hr
研究,应该是要不要自己的问题,半个钟头后 hr
来跟自家聊了聊规划和品种以及为啥来新浪,然后就回去周天前给回复。

到此大概确定相应要自我的可能不大,应该是作为备胎了。
这里和谐的问题至关紧即使系统规划方面霎时并没有准备,另一方面数据库这块明明果壳问到了可是并未尊重起来。最后,年初出来找工作或者要三思而行,很多大点集团没什么招聘要求,除非特别出彩。

说到底,礼拜三没有收受新闻,基本规定挂了,果然在下周周一的时候接到了拒信,这点要赞一下,至少有强烈的拒信,不像有的另国公司,嗯,就不明说了。

天涯论坛氛围觉得如故挺赞的,
福利也很好,包三餐,不加班,嗯,不多说了,都是泪。
如今微博起初大量招人了,大家可以去尝试啊,替我成功自身的 dc 梦,哈哈哈。

6.春雨大夫

春雨医师在天涯论坛隔壁,真的是紧隔壁,环境也无可非议~

一面

照例举办自我介绍,然后问项目经验,起始纸上写代码,可是这里要赞一下春雨,面试题都不行接地气,全是遵照实际项目里的题材举办编码,比如有个给先生和患者聊天记录分组提示的问题,都是近乎的实际意况题目,完全没有这种纯算法题目,之后又聊了一些
Python Django 基础有关的事物,顺利跻身二面。

二面

问了一些体系信息,然后初叶系统规划,没记错的话应该是计划一个好像 QQ
的聊天工具,要求有群,并且可以发送图片、语音等各样音信,群管理员可以开展群管理等等。前边又问道数据库,直言数据库基础理解的相比较少,面试官也未曾为难我。

三面

三面的时候到夜间饭点了, hr 大嫂一级好,带我去外面中餐馆点菜吃饭,回来后
CTO 面试, 考了阿凡题 CTO 问过的题材:
浏览器的一个呼吁从发送到重回都经历了何等

于是乎我又按照下边非凡流程讲了五遍,接着又问了问自己的进步计划和梦想,然后自己问了问春雨相关的一部分问题,面试停止。

隔天收到了 offer,
请我吃饭的姑娘姐发给自身的,哈哈,不过出于年前不能到岗,只好拒掉了。

完全讲,春雨环境也很正确,但另外福利我也从没问,所以任何不太清楚咯,有趣味的校友可以去尝试。

7. 360

360 在酒仙桥,最不靠谱的面试。。。

平素通过拉钩邀请第二天中午面试,当时已经早晨五点。完全没打电话发短信,接到邮件的自我一脸懵逼,于是主动打电话过去确认,拿到一定后第二天做五个多刻钟车赶往望京。
( 我住在八宝山这块 )

一面

前台不让进,让通报面试的人来接,等了会儿面试官来接我,然后七绕八绕不理解绕道哪去给了自身一份笔试题,让自家做,着重强调不要看手机
( 本来就没打算看好嘛,我坐的头顶有个录像头,你让我怎么看,哈哈哈
)写完让自己打她电话,然后她就闪了。

自身一看问题,除了前三道是 Python 之后全是 Linux
基础题,当时心里想:不亏是做安全的呀,要求就是不等同,可是博主半吊子
Linux
水平只会有些常用的一声令下,笔试题里的高端用法实际是臣妾不会做啊,于是本着诚实的规范做完会做的打了对讲机。

二面

面试官来没有让自我介绍,直接对着题目开始问 (
我的心灵已经发出了争执感,和果壳一样 )。第一题是个 Python
改错题,面试官问为何如此改,我大体讲了下,然后是讲了下 lambda
表明式并提供编程例子,面试官看完也没说咋样,接着是一个用七个体系模拟栈,写实现代码,也从不太大问题,只是面试官也从不看代码,就是问了自己怎么落实。

随着到了 Linux
部分,基本都不会,会的也不得不写出简约的一声令下,面试官直言:你这一个笔试题做的不得了呀。怎么都不会
( 确实有自身的问题,Linux 基础欠好,然则一向否定了眼前其他一些有点冤啊 )

继之问了部分档次经验,看到自家的开源项目
djanog-simple-serializer
问这是干嘛的,然后自己说了下是连串化解决方案,面试官说:连串化不是很简短嘛?(
我也没说难啊大兄弟,只是其他的远非好用的融洽写了个嘛
)接着面试官问了自己一句让自家十脸懵逼的话,作为一个不懂 Python
的人,你能给自己大概讲讲 Django
和您做的东西啊?当时本人的心中全是黑人问号脸,wtf ?不懂 Python ?这您招
Python ? 怎么面试啊大兄弟,虽然自己精晓其他语言用的 6 写 Python
也没问题,但是招进来就要写作业你怎么也得找个有相关经验的面试吗,这下我掌握为什么在此以前Python 部分面试官不怎么看了。
此刻我只想趁早离开了,于是就说感觉招聘需要和自身不太一样,就不耽误时间了。

好啊,应该自己算是遭遇个例,请我们不要对 360 发生偏见。

8. 天涯论坛

乐乎在中航广场,人民高校边缘,不得不说,是自个儿面试过离我近年的铺面,头条大楼很霸道。发展也很迅猛。

一面

面试前一天中午莫名磨牙,真的是一宿没睡,睁眼到天亮,然后一脸懵逼的去面试,到了头条前台我勒个去,从没见过那样两人来面试,大厅做不下了,当时心里想:完蛋,这么五人,竞争得多激烈,明早还精神分裂症,血崩。

在前台签到,领了候选人的牌子,等了一会儿就叫到了自家,由于面试的人实在太多,我实际
-1
楼旅馆举行的面试,一面面试官是广告投放部门的工程师,先自我介绍,谈创业经历,问了
redis 用法及原理 (
前面两次问到数据库的前车之鉴,博主特意狠狠看了下各个数据库的基本原理
),然后按照自己说采纳 hash table 的阅历,提了一个分布式 redis 使用 hash
的机密问题,当时从未想出来,面试官提示了下大约说到了典型上,首如若分布式机器
hash 后或者存在储存分配不均匀问题。然后 hash
表又问了龃龉解决方案,重如若拉链法和进位法,之后聊了 tcp ,没什么问题。
问了排序算法的纤维时间复杂度及原因。接着出了一道费这波数列的题,要求在常数空间复杂度内总计任意
fib(n)
当时可能没听清,揣度没睡的原由,听成了常数时间复杂度,向面试官确认是常数时间复杂度
( 面试官可能没听清自己说的,以为我说的长空复杂度
)于是苦思冥想无果,面试官提醒动态规划,于是起始推导转移方程,最终面试官说没那么复杂,这时一对才发现大家知道岔了。其实很简单:

def fib(n):
    a, b = 0, 1
    for x in xrange(n):
        a, b = b, a + b
    return b

一边问题停止,在本人写题的时候面试官看了我的博客和 GitHub,表示满意 (
有点惊叹,第一次有面试官看自己博客和 GitHub
,固然简历上有,但从不曾人说看过
),然后又带我把一头所有题目过了五次,我不知底的地方都完好无缺的交付了答案,没见过这么好的面试官!!不亮堂她们给本人不怎么分,我给他俩满分!

二面

二面面试官是头条广告后台组总监,对自身的创业经验很感兴趣,问了重重有关题材,然后看到自身的开源项目又问了一部分题材,然后提了一个很风趣的题目,在最为状况下,系统缓存整体失效,该如何预防流量全体打到数据库上,当时从许多方面考虑但是觉得面试官没有异常令人满足,不过也毕竟答到了主题上,也固然过了。回去后特意看了看,缓存失效的化解方案,感兴趣的同校自行检索
“缓存重建”。

下一场问了问一些系列相关的经验和缓解方案,出了一道单链表逆置的题目 (
和面试官显露非科班,没有出很难的题目
),可是当下大脑基本处于停转状态,太困了,最终写出来有个
bug,其实题材很简单,回去稍微想了下就写了出来:

def revese(node):
    p = node
    cur = node.next
    p.next = None
    while cur:
        tmp = cur.next
        cur.next = p
        p = cur
        cur = tmp
    return p

面试官表示 coding
能力需要增强,当时也不佳说自己没睡觉,就径直说真的能力亟待提升。面试关说让自身等等去找下一轮面试官,等了一会儿告知我下个面试官不在,当时以为自己是挂了
( 结果是面试官真的不在
),面试官好像看出了自我的想法,重复了一句面试官真的不在。让自身回到,稍后
hr 约下次面试时间。

三面

三面是一周后的早晨 6
点,这一次终于来到了面试室,里面有一块白版,三面面试官是广告大组的
leader,进来没有再考基础题,问过经历后出了五道系统规划题,于是起首在白板上写,大概记得有多端登录管理、二维码登录等等一些统筹,要求规划出系统结构,相关数据库和表,博主设计完后给面试官讲了两遍,感觉面试官相比较满足,也没再问其他的,直接去叫下一轮面试官了。

四面

四面面试官是头条 data 部门的
vp,感觉人一流和善,进来直接跟自身说一道去吃饭啊,刚好体验下头条食堂,然后,第四轮面试是在饭桌上举行的,紧要谈了谈自身的门类经验和提升趋向以及为何来头条,最后吃完饭面试官说本来这一轮也会考技能,但是感觉聊得没错,就不聊技术了,让自家回来等
hr 电话。( 头条食堂真的不错呀,只是立即没好意思多打,哈哈 )

五面

hr 电话聊了聊个人发展及规划,然后确定了工资,就发了 offer ~~

头条环境特别不易,包三餐,自助餐馆,无限水果零食还有清晨茶,中午 10
点后打车报销,入职发 mac,
住公司周围房补,大小周加班有加班费等等,不问可知有利于非常多 (
为什么我清楚的这样多 )依旧引进我们来啊。

总结

末段,博主选拔了头条的 offer 。( 已经找到当年面试我的大神们,哈哈,喜笑颜开)

从2018年终找工作找到当年节后,终于找到一个如意的
offer,曾经也纠结过,感觉温馨高不成低不就,有段时间竟然拒绝出去找工作。

过多大商厦社招都是三年经验起,所以像博主这种毕业一年的人在一直不内推的景观下出席社招相当窘迫,在这里奉劝各位学弟学妹,一定要吸引校招的机会啊!!社招跟你竞争的可不光是你们同级的人。

找到工作后偶尔发现一本神书 《剑指
offer》我面试过主导享有题目方面都有,推荐大家肯定过五次(
如若早点看到就好了,哈哈 )

那里还有博主当时刷过的
LeetCode
https://github.com/bluedazzle/leetcode\_python
,可以参见一下,之后有时间博主也打算向来刷下去。

平生早晚要留意多积累,有规范的情形下尽可能协调多写一些要好的品类,那样面试会有很大的加分,比如博主以前写过的小程序:式神猎手
(
https://www.rapospectre.com/blog/create-an-onmyoji-weapp-in-24-hours
) 在面试中就很有好处。

还没完

说到抓住校招,网易春招刚刚开头,学弟学妹抓紧时机,本人可以内推哦:

和讯春日高校招聘火热开展中!
【面向对象】:前年应届毕业生和二〇一八年应届暑期实习生
【职位方向】:研发、产品、运营、销售、投资、HR等
【冬天招聘 –
2017届】:https://job.toutiao.com/campus/spring
【暑期实习 –
2018届】:https://job.toutiao.com/campus/summer
【投递时间】:11月9日 – 1月30日
【头条邀请码】:iUGUiF(不区分轻重缓急写)

报到相关网址输入我的头条邀请码即可成功内推哟,快到碗里来!!

社招的同班也别灰心,只要您找得到自我的邮箱( 应该挺好找的
),简历发给自己,帮您内推~

当然,对于上述其他家集团,只要本人拿到 offer 的铺面本身都足以帮我们推哟。

面试过程中还去过几家创业企业聊过,发展也很好,比如
青橙科技、视频帮等等,假诺我们感兴趣,我都足以帮咱们直推 CTO 。

作者:rapospectre

相关文章