字节跳动C++研发工程师(三面全通过)

7月14日(一面、二面)
一面45min:
首先做了自我介绍,然后简单回答了面试官对于项目中的一些疑问,没有太多的深入。
一面面试官比较和蔼,问的问题比较专业,比较基础,简单做了一下回忆:
virtual函数能不能用在构造函数中,为什么?
我的回答:一般构造函数不能virtual,析构函数才用virtual。面试官说,为啥,我说我平时都是这么用的,不确定啥原因。面试官也挺好,说没关系。
你遇到过内存泄漏问题吗?
我的回答 :没有遇到过,但是对同一个区域进行两次del,应该会造成内存泄漏,其他不清楚。面试官说,好的。
你知道系统死锁是 怎么造成的吗?
我的回答:操作系统我没有学过,但是 我是做网络的,我们网络中也有死锁以及防范的方法,于是将计算机网络中的各种锁成因,以及避免方法进行了说明,并在最后说,我觉得所有的死锁问题根源在于资源的抢占,并且,多个进程间形成了循环依赖,即得不到被其他进程占用的资源,也不释放自己已经占据的资源。面试官比较满意。
说说hash冲突的解决方法:
我的回答:一般由两种常用方法,开放地址法和链地址法,结果自己蠢,把两个方法的实现方式将反了,不过面试官大体上听懂了我的意思,还比较满意。
你一般用过C++的那些高级属性:
用过容器来的,数组,队列,栈,优先级队列,hash类的map,set。 面试官说还有别的吗?我一时想不起来,他说 用过智能指针吗,我说没有,了解吗?我说不了解,用过auto吗?我说用过,一般用auto做函数或者变量的定义,然后大致说了一下我平时使用的场景。感觉自己有点弱。
了解进程间的通信吗?
我说,进程间的通信包括管道,命名管道,消息队列,共享内存等。一般管道比较慢,消息队列做同步,共享内存快。
http提交表单的方法有啥?
我说,不知道,估计面试官是想知道post,get哪些方法吧,早都不记得了。
C++函数只声明,不定义会在哪一步报错?
我说,我不知道,一般我没有这样写过。
最后是一道编程题,链表的题目,很简单,但是还是有个小错误,在面试官的诱导中,自己发现了。
******************************************************************************************************************
******************************************************************************************************************
5分钟后,hr打电话,说一面通过,10min后二面可以吗,我说可以。
二面(50min)
二面不用自我介绍了,直接上来就说,我在看你的博客,我当时惊呆了,面试官在我的博客上寻找着知识点,整个氛围比较轻松,他说你刷了很多题目,我说,是的,然后看了leetcode600多道题目的刷题量。
挑了一个自己觉得做的最好的项目介绍,我就挑了一个介绍一下。回答了面试官的疑问。
问了我TCP是怎么保证可靠性的,udp呢?
我的回答:tcp本身通过ack确认机制来保证确认信息收到了,并通过重传机制对丢失信息进行重传,也就是说,应用端将数据交给TCP,自己啥都不用管了,他一定能传到,所以称之为可靠性,udp没有这样的机制,直接 最大化传输,但是,并不意味着他就不可靠,只是可靠性的保证交给了应用端去做。面试官挺满意。
我在你的博客上看到你负责远程服务器集群维护,能具体描述一下吗?
我就把自己实验室集群远程访问那套东西做了介绍,面试官问我他们如何通信的,我把ssh的通信过程搬过来。
c++和python的区别?
我说,动态静态的区别,C++要经过编译器,python不用,直接解释器就可以搞定了运行了。回答的太简单了。
5层TCPIP中,每一层都包含啥协议?
物理层:802,链路层,arp(这块应该有争议),ip层:IP协议,传输层:tcp udp  应用层,http,ftp,snmp邮件地址解析协议。回答的太少了。
编程: 动态规划,完全背包,挺简单的,但是,脑子短路,有个地方写错了,但是面试官说,思路对了,就过了。
******************************************************************************************************************
******************************************************************************************************************
然后hr说过了,约了面试时间,7月17号下午3点。
三面(2小时)
面试官是前端开发部门的leader。
可以说,三面包含压力成分。题目真心难。
首先,自我介绍,挑一个项目介绍。然后非要我的源码,幸好在csdn上保存了,所以,直接就当下来,一个文件一个文件的讲。问了很多问题,将近问了50分钟,终于讲明白了。
没有实习经历吗?我说有,华为算法研究部实习过,他说,为啥不写在简历上,我说,简历做的早,之后没有补充。
然后开始编程,问了我一道链表题目,我直接说了核心解法,他说,你刷过,我是是的,好,过,下一道,字符串的题目,我说我可能也刷过,我先写吧,面试官笑着说,好的,然后,思路对了,内置函数忘了怎么用了,他问,如果这道题 你忘了这个内置函数怎么使用了,你怎么实现这样的功能,我说这个函数的源码我看过,可以直接用kmp等效。他说好,你能给我讲一下吗?我讲的不好,毕竟不会表达,然后,我说了一句 ,能直接上代码吗?他说可以,我就用了3分钟,写了一下kmp,之后,面试官将我代码拷过去。
最后一部分是面试中搞得最难的,当时,已经怀疑人生了,面试官让我解释 tcp为啥3次握手,4次挥手,都是 为了防止哪些情况的发生。TCP在做数据传输的时候,其中 包含那些信息。我回到了ip,name,以及控制字段,面试官说不够细致。然后说了好久,我还是回答不出来。
然后又问,你觉得客户端的通信时怎么建立起来的,我大致回答了一下,他说不够细致,太笼统。我只能老老实实说不知道,然而,他并不罢休,说,如果给你这样一个任务,你会怎么实现。我当时真的是觉得要凉了。
之后又做了很长一段时间的交流,询问我对新技术的学习能力,简单把自己的一些经历做了一下讲解,证明自己好学。然后让我问他问题,这个时候大家一般要抓住机会,多和面试官交流。多为一些有意义的问题,即使失败了,也会有很多对自己有用的信息。
三面结束之后,真的觉得自己凉透了,发呆了有一个多小时。

结果,今天早上hr小姐姐说我是她负责的人里面第一个通过的,我当时真的是惊呆了。还说,她还不知道后面的流程是啥,让我先等候,先给我通知到,然后去申请意向书。

总的来说,放平心态,即使面试官给很大压力,也要微笑面对,不会就说自己没有接触过,以后会努力学习一下,会就将最佳的状态拿出来。另外,刷题很重要,面试官发现你算法比较6的时候,会有极大的加成。如果遇到感觉上相似的问题,要善于将自己领域的东西引过去,此外,有实习经历的简历一定要说。找一个能说的超级清楚的项目,最好有源码的,把他说的清清楚楚,会有很好的印象加分。简单分享到这里。


#字节跳动##面经##C++工程师##秋招#
全部评论
老哥算法还是6啊,“但是对同一个区域进行两次del,应该会造成内存泄漏”。。这个说法不准确,动态分配的资源没有delete才会造成mem leak,广义上讲系统的资源不回收,例如: 进程不回收,socket不关闭都算mem leak,对了还有基类析构函数不用虚函数。。两次delete。。底层对堆free两次,是有问题的,第一次free之后内存就回收了,放到了free list上了,再free一次就会出问题。。。类似那种原生的线程锁,unlock两次。。
点赞 回复
分享
发布于 2019-07-18 19:36
博客可以挂出来吗?
点赞 回复
分享
发布于 2019-07-18 16:49
博乐游戏
校招火热招聘中
官网直投
tql tql
点赞 回复
分享
发布于 2019-07-18 16:53
只申明不定义是不是在链接时报错?
点赞 回复
分享
发布于 2019-07-18 17:24
恭喜楼主,算法强,已经赢了一半了
点赞 回复
分享
发布于 2019-07-18 21:21
刷了600道说明你已经成功了
点赞 回复
分享
发布于 2019-07-18 23:17
刷题这么拼应该会很快适应头条的真996
点赞 回复
分享
发布于 2019-07-19 09:44
600多道题……真的很强了,恭喜恭喜!
点赞 回复
分享
发布于 2019-07-18 16:23
dalao
点赞 回复
分享
发布于 2019-07-18 16:27
请问老哥是研究生吗?
点赞 回复
分享
发布于 2019-07-18 16:33
没有实习经历的跨行者有机会嘛~~~
点赞 回复
分享
发布于 2019-07-18 16:33
是啥部门呀
点赞 回复
分享
发布于 2019-07-18 16:40
tql
点赞 回复
分享
发布于 2019-07-18 16:42
600多题
点赞 回复
分享
发布于 2019-07-18 17:00
这基础都能过一面,真是6
点赞 回复
分享
发布于 2019-07-18 17:15
恭喜恭喜,楼主厉害👍
点赞 回复
分享
发布于 2019-07-18 17:18
kmp。。我整了半天没耐心整下去了。大佬有点强
点赞 回复
分享
发布于 2019-07-18 17:21
老哥什么时候投的?base是北京吗?
点赞 回复
分享
发布于 2019-07-18 17:21
我跟面试官说我JVM和计网的比较熟悉,然后他硬是不问我那些!!非要问我从来都没接触过的并发。。。哭聊
点赞 回复
分享
发布于 2019-07-18 17:25
大佬厉害了
点赞 回复
分享
发布于 2019-07-18 17:34

相关推荐

字节跳动|商业化技术 招聘多模态/AIGC算法工程师,base 北京/上海/新加坡/温哥华,senior候选人可选深圳/杭州/湾区。JD如下,有意者请将简历发送至zhanghantao.022@bytedance.com岗位职责:1. 负责广告、电商、直播等相关内容理解,包括图片、文本、视频、音频等; 2. 负责数据挖掘与特征工程,构建机器学习模型,构建商业化生态; 3. 面对千万量级业务/受限资源(例如端上)等场景,优化模型计算效率,提升模型可用性; 4. 依托海量业务数据,探索并落地各种前沿技术(如预训练、自监督学习、小样本学习等)。 5. 负责基础模型和AIGC的探索与落地,构建新一代基于AIGC的商业生态体系。 任职要求:1. 本科或以上学历,计算机、自动化、电子信息或相关专业; 2. 熟悉常见机器学习和深度学习相关技术和算法(如分类、聚类、回归等),熟悉至少一种常用深度学习框架(如pytorch、tensorflow等),具有扎实的基础; 3. 有丰富的机器学习相关经验,符合以下至少一个方面: (1) 熟悉计算机视觉相关任务,对图像/视频分类、目标检测、图像/视频检索、OCR、图像分割等至少一方面有经验; (2)熟悉NLP相关任务,对文本分类、语义分析、情感分析、NER等至少一方面有经验; (3)熟悉音频相关任务,对ASR、AED、LID等至少一方面有经验; (4)熟悉多模态学习、大规模预训练等; (5)加分项:熟悉图神经网络、知识图谱的理论和应用,并具有相关经验;熟悉剪枝、量化、蒸馏等模型加速技术,具有使用tensorrt等部署模型相关经验; 4. 编程基础扎实,熟悉基本的数据结构和算法; 5. 具备优秀的分析及解决问题能力、逻辑思维能力、沟通协作能力,保持对新事物的好奇心,责任心强,诚信可靠; 6. 在AI顶会顶刊发表过高水平论文的优先。 7. 熟悉生成模型的优先,比如GPT, Diffusion等等。    #字节跳动#
点赞 评论 收藏
转发
38 294 评论
分享
牛客网
牛客企业服务