大家好,刚加入谱哥的星球,简单介绍一下自己,分享一下自己找实习的经历,文末有字节跳动内推和学习笔记。
个人背景
我是电子专业大四(非科班学生),去年九月份的时候开始准备找实习,当时除了简历上有两个项目之外,面试涉及到的计算机基础知识,数据结构和算法我都是不会的,基本上问两道题面试官就会把我放弃掉。
全力备战
后来11月底没课了,我开始全力备战面试,每天去图书馆学习一整天。我先学的是计算机网络、操作系统、数据库。这些基础知识我并没有系统地去学,因为目标是尽快找到实习,所以就跟谱哥公众号里说的那样,都是采用的快速备战面试的方式。
去网上找它们的常见面试题目,然后对每个题目都深入理解。网上的面试题总结非常多,也带答案。由于很多题目都可以牵涉出其他相关的知识点,而面试的时候面试官经常会追问,所以我花了很多时间在透彻理解上面,这样面试的时候被追问我才能答得上来。
我不光是看和记,也在自己进行整理,特别是追问可能问到的问题,整理在自己的笔记上,方便自己面试前快速复习。
计算机基础准备得差不多之后,我开始系统学习数据结构。我按照《数据结构》上面的知识体系,把常用的数据结构都自己实现了一遍;然后就是在牛客网上面刷剑指offer。
12月底的时候,被字节跳动捞起来面,拿到了后端开发的offer,很感谢谱哥的公众号,不仅在简历方面提供了很大的帮助,让我能够拿到面试机会,更重要的是让我有了找实习的意识和基础+项目+算法的明确路径。
面试头条
我是被捞起来面的,一面1个小时,休息了5分钟之后直接二面,也是1个小时。第二天三面,应该是leader面,就面了半小时左右。过了两天之后进入HR面。
1、一面
计算机网络
三次握手
握手时产生的序列号干什么用的
讲一下接收窗口
TCP和UDP的本质区别
什么时候选择TCP/UDP
HTTPS的连接过程
7层模型和4层模型,每一层有哪些常见协议?
路由器/交换机是哪一层
网络层用来干嘛?传输层用来干嘛?
HTTP可以使用UDP吗
HTTPS怎么确认收到的包就是服务器发来的
确定发送窗口的大小,如何最大利用带宽,假设延迟100ms,发送端10Mb/s,接收端100Mb/s
数据库
事务的四大特性
四种隔离级别
什么是幻读
InnoDB 怎么防止幻读
B+树原理,为什么使用B+而不是二叉平衡树
操作系统
用户态如何切换到内核态
进程间通信的方式,哪种最快
信号量怎么实现对共享资源的访问
语言
什么是Python生成器,迭代器;
什么是装饰器;
元组和list的区别;
Python中的dict底层怎么实现的
list的底层怎么实现的;
双等于和is有什么区别
算法
求x的y次方,想出比直接for循环更好的方案
求绝对众数
2、二面
设计题:一个数据库存了以下数据:用户id,登录时间,登出时间;如何找到一天当中的用户峰值(用一个hash map存所有秒数的在线人数)
为什么要分用户态和内核态;
Git 切换分支,提交,具体如何合并分支;
Python多线程用了几个CPU;
算法:二叉树,输出所有和为n的路径(可以从中间结点到中间结点)。
3、三面
和其他同学相比,你觉得自己有什么优势;
自己的不足有哪些;
GitHub和博客上分享过哪些东西;
TCP的流量控制和拥塞控制;
浏览器中输入网址到获得页面的全过程;
输入www.baidu.com,
怎么变成https://www.baidu.com的?怎么确定用HTTP还是HTTPS;
接触过哪些后端框架;
知道redis吗;
你用Django的时候,觉得它有哪些好的特性;
除了Python还接触过哪些语言;
多久入职。
笔记&内推
我在GitHub上总结了计算机基础的常见面试问题和答案,在我准备面试的过程中发挥了很大作用,文末点击阅读原文即可查看。
最后,分享一个字节跳动的内推信息。字节跳动最近在招实习生,20届/21届均可参与:
计算机基础学习/面试笔记:
https://github.com/wolverinn/Waking-Up
内推码:
https://job.toutiao.com/s/pWBDpg 。
社招/校招/实习都可以把简历发到我邮箱:
zhangzekuan@bytedance.com。
标题:姓名+岗位+社招/校招/实习,建议大家给我发邮件,能够及时给你反馈,并且有关于简历、面试的问题也可以和我交流~
推荐阅读:
2019年参加秋招的他们,现在怎么样了?
大公司 VS 小公司
工作三年 VS 读研三年
认真的人 自带光芒