【字节跳动】客户端岗-提前批五面(已拿意向书)

一面(1h)

  1. 如何学习一门技术,最近看过的一篇博客内容
  2. 编译型语言和解释型语言
  3. 上过编译原理课吗?编译有哪些过程?(上过,一问三不知)
  4. 面向对象语言的特点
  5. URL输入到显示网页的过程
  6. HTTP三次握手,四次挥手
  7. 算法题:Leetcode 895.最大频率栈(困难)
    实现 FreqStack,模拟类似栈的数据结构的操作的一个类。
    FreqStack 有两个函数:
    push(int x),将整数 x 推入栈中。
    pop(),它移除并返回栈中出现最频繁的元素。
    如果最频繁的元素不只一个,则移除并返回最接近栈顶的元素。

一面约的14号。编译原理那一块问题太尴尬了,都给忘光了,面向对象的特点也不太清楚,当时问Python要是不用类,能实现面向对象吗?我给懵了…然后算法题的话,第一眼看上就像LFU缓存机制的算法题,没有刷过,不过庆幸刷过LRU缓存机制的题(感谢牛客上那篇整理7月字节跳动各岗位算法题的帖子),于是用了哈希表+双向链表,在面试官的提示下做出来了,不然估计一面就得凉。当天晚上接到HR的电话,很高兴一面通过,约了16号的二面。

二面(45min)

  1. 简历里的项目是前后端,为什么要报客户端?
  2. 面向对象需要具备哪几个特性?
  3. 讲讲多态。Python如何实现多态?
  4. Python里的装饰器有什么用?
  5. 线程和进程的区别?线程不安全会导致什么问题?会导致卡死吗?
  6. C和Python的区别
  7. HTTP是明文传输,有什么方法解决安全性。
  8. HTTPS加密的过程
  9. 算法题1:给定字符串,判断三种括号是否成对出现。
  10. 算法题2: 遍历二叉树,将所有节点的数字做个轴对称变化,计算所有节点数字之和。(轴对称即反转数字)

二面刚面完。Python装饰器的作用没有答出来,然后线程安全问题没答出来,应该是会导致卡死的,线程跟进程一样也会因为死锁的!二面感觉两道算法题都比一面的简单很多,不过自己还是在第二题上的反转数字上卡壳了,害…..面试官评价我基础知识不太扎实,感觉是凉了。许愿今晚能继续接到HR的电话吧!哈哈运气好过了就继续更三面!

以下是更新:

二面果然被刷了~不过还好HR说我面试评价总体不错,被另一个部门捞起来了,所以接着冲吧!!

7月22日 第二次1面(45min)

  1. 讲讲项目(这个没有准备,讲得很混乱..)
  2. 类方法 静态方法 实例方法
  3. Python元类metaclass
  4. 输入URL到显示网页有哪些过程?
  5. get和post的区别
  6. http不安全,如何解决?(https)
  7. https加密过程?
  8. 虚拟内存
  9. 算法题:给定两个非空链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储单个数字。将这两数相加会返回一个新的链表。(两个链表就地逆置,然后逐位相加,注意处理进位和两个链表长度不同的问题,加完之后再逆置回来)

总体感觉还行,就是面试刚开始的时候出了几次小状况突然没画面了,不过面试官很耐心,切换线路之后正常了。一来就开始讲项目,没有想到1面就会问项目,所以没有提前准备,导致介绍项目的时候逻辑混乱想到什么说什么,也没有突出重点,下次得好好准备一下了。然后是讲完“类方法 静态方法 实例方法”后,面试官说可能Python和其他语言不太一样吧~瞬间感觉是自己答错了hh,后来的问题都蛮常规,也恰好准备到了,算法题也问题不大,不过面试官小哥看得比较仔细,还会问我哪一行的代码有什么作用,感觉和之前不太一样呢。最后反问环节,面试官建议我可以脱离Python,多了解一下面向对象编程的通用概念,我感觉确实是疏忽了,这种编程思想的东西就是不应该就具体语言来讲的,很有收获。

下午面完没多久就接到HR电话了!约了27号的第二次2面,因为这几天都约满了,看来16号截止投递期限投的同学不少呀。这次2面一定得加油了!(至少让我挺到3面吧求求了!

7月27日 第二次2面(40min)

  1. 自我介绍+项目(项目介绍了一下ThreadPoolExecutor线程池)
  2. 详细讲讲ThreadPoolExecutor线程池
  3. HTTP和HTTPS
  4. 对称加密和非对称加密
  5. 数组和链表的优缺点
  6. 设计一种数据结构:可以随机查找,而且插入、删除时效率高(懵逼…)
  7. 栈和队列的区别
  8. 如何用2个栈实现队列
  9. 存储一个100×100的图片到文件中,并且可以还原,怎么做(先存尺寸,再顺序存每个像素点的值)
  10. 如何压缩存储图片?(懵逼…..面试官提示可以有损存储,答:临近4个或9个像素点取平均值,再存储)
  11. 如何实现无损压缩存储图片?(崩溃…统计同一像素点出现的频率,对高频点使用共享存储,瞎说的我晕了)
  12. 除了Python还用过其他什么语言?(吐槽Python真不好找工作,答C和Java)
  13. C和Python你觉得有什么区别?(C是编译型语言,Python是解释型语言,再说了下优缺点)
  14. 算法题:A:[1,3,4,3,2,5],B:[3,2],求A-B。(求差集,A-B=[1,4,5],简单)
    思路:把B中的数存进哈希表,遍历A。

这次感觉前面的情景设计题实在是太灵活了,自己的思路也确实不太好。求个3面啊!!许愿许愿!

当天晚上HR微信告诉我2面过了,我的妈耶太高兴了!后来和3面面试官约了31号晚上9点的面试(面试官真是又忙又辛苦),加油吧!最后一面了!

7月31日 3面(1h10min)

  1. 有没有做过企业级项目(无)
  2. 做项目的过程中,有什么收获?
  3. 有没有和同学合作过的项目?如何合作的?
  4. 如何评价跟你合作的同学?对他有什么建议?
  5. 你觉得自己擅长什么方面?(代码,人际交往)
  6. 这两个方面,你更喜欢哪个?(代码,不然呢……)
  7. 算法题:给两个字符串,实现36进制加法。0-9 a-z:10-35

建议这题大家动手写一下。我一开始思路有点问题,分了4种情况,导致代码很冗余,自己都看不下去了。后来幸好换了方法,才勉强写下去。最后要注意两个字符串长度不一样的情况,善后要做好,以及最高位的进位也要记得处理。这题应该不算难,但是自己估计写了40分钟,感谢面试官耐心等待!

写完算法题一度认为自己凉了,感谢HR小姐姐当天晚上微信上就告知我通过了!!目前就是等待意向书~

总结:这次字节跳动提前批,算是自己找工作的首面,抱着试一试的态度投递了客户端的岗位,毕竟客户端接受零基础。面试主要就是考察数据结构,计算机网络,操作系统和算法题,还有自己常用编程语言的一些特性,以及面向对象的思想。大部分面试题都能在牛客网的面经上找到,(非常感谢牛客]网!和各位分享面经的同学!)建议搜集整理好自己投递岗位的面经,然后认真准备就好了!自己一开始投递的部门(2面被刷),后来被另一个部门捞起来(感谢!),然后又经历了3面,这个过程其实还是有点折磨人心智的,不过最终能拿到offer,一切都值了!

所以,坚持不住的时候,记得再坚持一下!

发表评论

后才能评论