字节跳动提前批客户端至二面(凉透经)

211硕士/方向是深度学习,有大小4篇paper(可能是靠这个过的简历,但也没屁用),一直在一家科技公司实习,然后突然有个朋友说有字节的内推,投一下 = = (然后我到现在就自闭了)


目前发现自己存在两个问题,
1. 简历不太对口,自己给自己挖坑:
明明很久没用数据库了,非要写上去
明明python就只是会用,非要写上去
2. 基础都有点印象,但是还是囫囵吞枣了:
3月份把操作系统/计算机网络/数据库都看了一遍(课本),然后就完事了,但其实很多东西课本上面根本没有

其实这段时间也是一直有在看java,jvm基本快看完了,面试官说python的GC了解吗(我知道,接下来我人没了)

一面(7月26日/早10点/45min17s)

1,上来自我介绍(我中规中矩的完成了,提及了在实习中)

2.为什么投客户端(我其实也挺迷茫的,但面试官突然提及了一句或许是因为会更有成就感,我内心小火花就起来了)

3.在实习公司主要做什么(语音识别/打杂/取快递/项目经理)

4.计算机基础开始:
进程和线程(这里一听到就很刺激,很熟,但是说起来就都忘了,大致说了6/7点,然后我说差不多了)
一次网页请求的完整过程(我从输入域名讲到了建立通信开始传输)
中间被打断,DNS的详细过程-->从本地HOST讲到根域名/顶级域名
再被打断那么本地DNS服务器查询的方式有哪几种(我懵了,有点印象,想不起来,提示递归,我说我刚刚说的是递归,还有的我想不起来了/下去看这个是在课本第六章,当时刚好看到这里没看了-->打我自己一嘴巴)
说完DNS后,要继续下面的过程,当说到HTTP的时候,继续打断:
前端浏览器怎么渲染网页-->顿一秒,对不起我不知道
HTTP的请求报文具体格式-->慌了,一时想不起来,差点把TCP的报文说了个遍,后来自己突然意识到说错了,想了一下说请求头和请求体,但还有一个,想不起来了
提示:GET and POST
回答了GET and POST的区别(这里其实已经告诉了,请求方式其实是在请求行里面的)
死锁/以及解决的方法-->这个比较常规,就不聊了
进程的三种状态,转换的方式

5. 两个场景问题:
如果让你统计一个地区的加油站数量,你咋整?-->我给了一种方案,问还有没有,想了3秒,给了第二种方案
如果你看头条得时候,视频卡住了,分析原因.-->我答了一些自己网络环境还有手机的问题,面试官问,服务器呢,我能想到的就是服务器down机了

6.java:
说一下hashmap(我答java看的不多,但是这个我看过源码,简单的说了初始值为16/扩容因子为0.75/扩容为翻倍/单个桶在8个前为链表,超过后为红黑树,其实还有很多,但是想不起来,比如resize后的hash在1.7和1.8的改变)
追问:那么为什么扩容是翻倍呢(顿了一分钟,突然想起来,这个要和初始值一起说,主要涉及到位与运算,如果不是16和翻倍,会导致桶的利用率下降,这里我只说了如果不是翻倍,没有提及16)
java的锁( 我看到是看过的,但是一下子下不起来,答了读写锁/互斥锁/自旋锁,并具体介绍了一下)

7. tensorflow Lite了解吗(不了解,告知我是移动端的,这个我是真不了解)

8.算法题:
升序,可正负的数组,平方后,不重复的个数
在提示下做了三次优化,最后一次O(N)时间,O(1)空间只说了思路

9.反问
我其实这个时候已经有点懵了,大概问了下客户端现在开发用的语言之类的问题(感觉挺小白的)

下去之后,自闭了,凭着印象答得,有一些确实答错了,就是第一层答对了,接着问的第二层理解出现了偏差.真的自闭了,字节是第一个面试,我要是不知道可以,可是我都知道,没时间复习,硬着头皮........
听说字节都是最多第二天就打电话通知二面,如果没有就GG了,然后第二天过去了,啥也没有,心如死灰,和组里说了我要离职.不然找不到工作了,毕业就要失业了.组里同意,但是要半个月后..............
第三天,下午3点,在解决之前的人留下来的bug的时候,一个电话,说过了,约面试时间.想了想,我真是没办法,每天加班到很晚,早上又起很早(我这没有弹性工作制,通宵加班实习生也得第二天早上9点到岗),曲折下约到了周六

二面(8月1日/早9点/1h20min)

此时其实有点淡然了,感觉自己能够走到二面就很心满意足了(安慰自己!)
这次应该可以算是简历面了,主要抓着简历问的

1.自我介绍
这次我说的比较久,穿插着做着项目介绍,大概就是想通过这种知道我能达到一个什么水平.
客户端的深度学习有了解过吗(没有,但是上一个面试官提及了,我也去查了一下)
问我一般深度学习的产业是怎样的,我说一般也还是部署在服务端,客户端推送请求(语音识别)
问我有没有可能在自己的设备上训练,定制化个人的东西(可以,google的GBorad就是在本机训练,会有服务器做一定的角***r />
图像识别或者NLP的深度学习领域有了解吗,模型呢(这块只能说是知道一些,但是......)
如果让你学习客户端开发,你从零开始,怎么学(老问题了,为什么选客户端开发)
如果给你时间,你觉得多久你可以做一个还行的客户端程序(我回答一个月,中间解释了一些学习路线)
毕竟你不知道客户端的东西,如果给你代码,你如何快速的上手(先按文档了解函数的具体功能及流程,查询里面的一些关键字/函数的功能,运行调试,了解运作的机制)

2. 场景题(这个也是穿插在自我介绍里面的):
如果让你做一个本机设备的百度搜索推荐,你会怎么办?

3.python(先问的python用了多久了,我说大概一年了,然后自己的菜就暴露出来了):
问的也不是说难的东西,主要用python是看的那种小白教程书就开始上路了,里面涉及的东西真的只能让你到用这个阶段
== 和 is 的区别(说实话,一问到这个我就感觉接下来我人没了)
java的equals和==我知道,说了一下.python的这个真的有点懵
我说==不用说,肯定是判断值的,is我想了半天也每个印象(后来仔细想想,我也没用过is做东西),面试官接着说,没关系那你写一下is的用法,写也写不出来....
接着提示,python万物皆对象,对象里面包含的属性有哪些(这里我真不知道,提示身份id,数据类型,值),提示到这里其实我能明白is的具体要比什么了,但是不敢说
duplicate和list的区别
duplicate的不可变是指赋值后内容不可变,还是说什么(具体说了挺多,最后答得点是这个对象不可变,但是可以重新赋值)
python的GC
java的GC我看过,Python的没了解(怪自己了),下去后看了一眼,和整体的理论还是JVM那一套.......

4.操作系统:
怪自己写了个多线程编程(其实这里本来想表达的是虽然写了,但是有问题,受限于简历篇幅,删的时候没删,出了大问题)
多线程死锁有了解过吗,什么原因(说了个循环申请的例子)
死锁的几个必要条件,检测死锁(这里已经慌得不行了,说什么我已经听不到了,答得是预防死锁.......后来一直在说算法/算法是什么/有什么算法可以用)
最后提示银行家算法,简单的说了一下银行家算法检测死锁的原理

5. 数据库
这里也怪自己,明明就没怎么用数据库了,深度学习没有到产业落地,我个人没有用过数据库
这里直接答其实好久没用了,但觉得自己忘了简历写了这个东西,理论上可以问的,因为多多少少还是知道的

6.算法(大概花了半个小时?)
这是一道可能是智力题?第一次见这种题型.........
A 杯子5L(满) B 杯子3L(满) C杯子10L(空)-->最后A只要带走4L
提示让我先写状态变化的情况,写完后,问我,程序怎么实现(我人傻了,因为写程序肯定不是把这些步骤一路写下来就可以了,搜索这不中用的脑子,陷在了是否递推公式上)
面试官一直强调,这是一个现实生活的问题,你可以看成N个人N个满杯子,给你一个空杯子,步骤是怎样的......
我这时候,已经完全蒙蔽了,面试官接着提示,如果用一种模型来表示这种操作,会是怎么样的-->我还是懵的
接着说,你先写,巴拉巴拉我写了包含一个add和一个remove的类,被提示不需要remove了
然后提示了很久,真的很耐心,换做是我可能不管了(我自己也一度想放弃,真的很难过,超级难过)
最后就是一种有限状态机存储状态,遍历可能性,我中间答了如果遇到相同的状态就返回(可能声音已经颤抖了,面试官没有听见)
接着说,这个是指数级复杂度,那么有没有什么可以优化的(其中一种方式就是我上面说的,但面试官没停到,先说了这个,我也回答前面我说的),然后说还可以通过链表的形式优化,方法挺多的.
最后面试官说,这个代码写起来挺长的,估计得100~200行,让我下去再写写(我是一定会下去写的,毕竟浪费了面试官双休这么长时间,我觉得自己是个罪人了)

7.反问
面试官说电脑要没电了
到这里,心如死灰,我要这简历有何用!
我大概问了下,客户端的学习路线和java的学习路线有什么区别或者相同的地方,面试官细心的解释了,四种状态/Activity(这些我之前有写过,了解过一点点)

高能预警!!!
我能走到二面已经很开心了,无论结果如何,下一个阶段的通知是什么时候
面试官回答一到两周(我想,我应该是没了,不,我就是没了)


还是很感谢一二面的面试官,真的,只怪自己太菜了.写这个也算是发泄一下心情,说实话,真的有点难过.
晚上0点我哥回来,也批评了我好久,我们大概说到了1点多,感觉自己和废物没有区别.
我现在很迷茫了......



#面经##字节跳动##校招##安卓工程师##iOS工程师#
全部评论
倒水那个还要写程序吗?我觉得可以这样得到,但是程序程序不会写。 5L为A,3L为B,10L为C。 步骤:1. A倒入C  , 此时 A为空,B为3L,C为5L。             2. B倒入A  , 此时 A为3L,B为空,C为5L。           3. C倒入B  , 此时 A为3L,B为3L,C为2L。           4. B倒入A  , 此时 A为5L,B为1L,C为2L。           5. B直接倒了,A倒入B  , 此时 A为2L,B为3L,C为2L。           6. C倒入A  , 此时 A为4L,B为3L,C为空。  我感觉是这样,好像1L水不见了哈哈哈哈哈。
1 回复 分享
发布于 2020-08-02 12:39
强啊楼主, 4篇paper!!!!
点赞 回复 分享
发布于 2020-08-02 09:44
再战,正式批好好准备下。加油
点赞 回复 分享
发布于 2020-08-02 09:45
没事还有机会的,不要放弃呀
点赞 回复 分享
发布于 2020-08-02 10:26
老哥还是很强的
点赞 回复 分享
发布于 2020-08-02 10:27
四篇论文为啥不投算法
点赞 回复 分享
发布于 2020-08-02 10:30
楼主投的是哪个部门呀
点赞 回复 分享
发布于 2020-08-02 12:55
写了这么长,楼主怎么记住这么多的。。要是我,啥也不记得了。。也就记得最后一两个问题。还是强的
点赞 回复 分享
发布于 2020-08-02 16:33
楼主面试的是java客户端?
点赞 回复 分享
发布于 2020-08-02 17:05
我字节二面爆炸,还没收到感谢信。。。估计还在备胎里面泡着= =
点赞 回复 分享
发布于 2020-08-02 19:34
一二面的话面完就可以直接问HR结果了
点赞 回复 分享
发布于 2020-08-02 21:02
问一下楼主,等了多久了
点赞 回复 分享
发布于 2020-08-02 23:20
终于看到一个武汉理工的校友了,放心不会挂的,这么优秀字节是不会放过你的😄
点赞 回复 分享
发布于 2020-08-03 00:46
你好 楼主 想问下那个视频卡顿的问题 面试官最后有说什么方法吗 谢谢
点赞 回复 分享
发布于 2020-08-03 10:21
最后一道智力题我倒是有点思路: 每一次不能只倒一半(倒入杯子要么满,要么倒出杯子空),所以对于某种状态: 我们首先尝试把不空的倒到空的杯子里面,也可以尝试把不空的倒到没满的杯子里面。至于满的杯子再倒过去显然没用了。还可以尝试把不空的杯子倒空。 这样一来每一种状态都有好几种转移方法。使用BFS遍历每一种状态转移,找到了终止状态(A=4)就算成功了。不使用DFS是因为它的搜索深度比较深,复杂情况可能有问题。
点赞 回复 分享
发布于 2020-08-04 11:11

相关推荐

10-27 17:26
东北大学 Java
点赞 评论 收藏
分享
10-15 09:13
已编辑
天津大学 soc前端设计
点赞 评论 收藏
分享
8 38 评论
分享
牛客网
牛客企业服务