背景
大多数情况下,程序员的个人技能成长速度,远远大于公司规模或业务的成长速度。所以,跳槽成为了这个行业里最常见的一个词汇。
实际上,跳槽的目的无非是为了涨薪或是职业发展,我也不例外。普通本科毕业后,进了一家互联网公司,这几年里不断在积累经验,最终选择了跳槽。
每个人都拥有大厂梦,我也不例外,在小公司待久了,感觉人会荒废掉,太轻松,没有压迫感。在众多大厂中,最终选择了字节跳动Python开发岗位,涨薪了30%。“年轻、活力、富有激情”是我听到得最多对它的形容词,所以毅然决然,希望自己能够在这个舞台上展示出自己。
以下分享这次面试字节跳动的面试题,另外还对自己的面试做了一些总结!
面经
一面 90多分钟
- HTTP通过什么保证安全传输?
- 说一下应用层中使用UDP协议的应用?TCP?UDP+TCP?
- HTTPS解析过程
- 一道算法题,1只羊99头狼,规则是狼吃了羊,羊会死,狼自己也会变成羊,说一下最后的情况。(数学归纳法)
- Linux下NGINX配置文件默认在哪个目录,如果某个用户更改了目录,通过什么命令找到(说一下Linux命令)
- git中pull和fetch的区别(git pull = git fetch + git merge,我只记得是这样 )
- innodb中的insert、delete、update、select MVCC原理说一下(中间提到了版本号)
- 对应上一个问题,版本号记录的规则?
- IO多路复用?讲一下?(提到了select)
- select描述符限制是多少?(1024 ),为什么是1024???
- 僵尸进程概念?如何解决?(由于中间提到了先让父进程结束)
- 对应上一个问题,孤儿进程概念?
- tcp滑动窗口 是干嘛的(流量控制的一种方式),说一下原理,概念,为什么叫滑动窗口,大概是这个意思。
这个题我卡了,没听到面试官说的,我回答的他很不满意。因为我简历写的是精通Python,面试官看看我,笑了一下, 好,问题来了,连环问。
- 说一下is和==区别,直接秒杀了,然后问is实现原理,利用了单例嘛,秒了,让我讲解一下单例,懒汉式,饿汉式,优缺点都说了。
- 说一下list、tuple、dict底层,然后问了set去重原理(__hash__和__eq__嘛)
- metaclass,用在何场景,(ORM),说一下type()各个参数
- PythonPath变量是什么?分别解释一下
-----------------数据库开始了------------------------
- 上来就Redis缓存穿透,缓存雪崩,说下一按概念,如何解决就OK
- Mysql排错和调优
- 分库分表规范,准则
- Redis持久化方式,还捎带问了问项目的缓存情况
反问:我问了新人培养情况、晋升机制、还有一些平时涉及到的工作栈。
二面 26分钟
- 深挖项目,git、nginx(反向代理、负载均衡)
- 场景题:假设我有多台服务器,将我的项目如果反向解析调用了别的服务器,如何实现,采用哪种方式(轮询、weight),分别说一下优缺点,以及特殊情况也要考虑(比如某一台服务器挂了,但是你并不知道是哪一台 )
- 算法题:lc(227) 计算器,当时直接eval来着,面试官笑着看我。。。
反问:问了接下来的流程(他告诉我三面还是技术面 ),然后谈了一下各个部门情况。
三面 35分钟 电话面试
直接两道算法题口述:
- 面试官临时举的例子,举的牧羊犬和羊,大概意思有点像老鼠喝毒药(二进制)
- 规划交通,类似于图的遍历。。。(不简单 )
hr面 告诉我通过了
简单聊了一下,你一定要表现出你特别想去他们公司,别犹犹豫豫的。hr面特别看你的态度,我个人觉得
- 你对于加班问题怎么看?
- 你意向工作城市,你父母怎么看?
- 期望薪资和待遇
- 是否是独生子
- 本科和硕士都是全日制统招吗
- 口头offer,期待中
面试心得体会
👉我是如何准备面试的?
①准备简历
(敲门砖,不会包装简历的程序员只能去外包)
程序员的简历一定要多下一些功夫,尤其是对一些字眼要再三斟酌,如“精通、熟悉、了解”这三者的区别一定要区分清楚,否则就是在给自己挖坑了。
②了解面试公司,做好功课,知道问什么
对一线互联网大厂的面试点,我也做了总结
③梳理知识体系,学会举一反三
实际上,梳理知识体系是最简单的事,但很多开发小白总是一头雾水,实际上从第二点的大厂面试点就可以总结梳理出来我们应该要学什么,要掌握什么,通常我的方法是“大厂面试点”+“工作年限”来梳理自己接下来的学习及发展路线图。
之后,就需要根据路线图上的重点去进行有针对性的学习,在学习过程中,学会举一反三,学会写笔记,做总结。
④面试前刷题
临时抱佛脚这句话说的并没错,可以加深自己的记忆力,当然不是面试前才看两眼,面试前再刷一遍题目是非常有用的!
技术外这些准备要做好
你要明确的一点是:你不会的东西就不要写在简历上。另外,你要考虑你该如何才能让你的亮点在简历中凸显出来,
比如:你在某某项目做了什么事情解决了什么问题(只要有项目就一定有要解决的问题)、你的某一个项目里使用了什么技术后整体性能和并发量提升了很多等等。
面试和工作是两回事,聪明的人会把面试官往自己擅长的领域领,其他人则被面试官牵着鼻子走。虽说面试和工作是两回事,但是你要想要获得自己满意的 offer ,你自身的实力必须要强。
下面这几点你必须知道 :
- 大部分公司的HR都说我们不看重学历(骗你的!),但是如果你的学校不出众的话,很难在一堆简历中脱颖而出,除非你的简历上有特别的亮点,比如:某某大厂的实习经历、获得了某某大赛的奖等等;
- 大部分应届生找工作的硬伤是没有工作经验或实习经历,所以如果你是应届生就不要错过秋招和春招。一旦错过,你后面就极大可能会面临社招,这个时候没有工作经验的你可能就会面临各种碰壁,导致找不到一个好的工作;
- 写在简历上的东西一定要慎重,这是面试官大量提问的地方;
- 将自己的项目经历完美的展示出来非常重要。
Python 易学难精,不是一朝一夕就能深入掌握。在这分享我珍藏的「学 Python 知识框架图」,系统地梳理了入门 Python 的必备知识点,建议保存。
关于Python技术储备
👉Python学习路线汇总
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。 温馨提示:篇幅有限,已打包文件夹,获取方式在:文末!!!!
👉Python必备开发工具👈
👉精品Python学习书籍👈
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
👉Python学习视频600合集👈
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
👉实战案例👈
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
👉面试刷题👈
总结(获取)
2021最新最全Python资料,需要的朋友自行获取!!!
所以,最后希望同为代码献身的我们,不负初衷,不畏困难,拥抱发展!
为明年打下一个基础,即将到来的2022年“金三银四”取得好成绩,提前祝大家找到心仪的工作~争取能够帮助更多学习Python的小伙伴!共勉!凎!
|