【精选】分享我在大厂遇到的面试题,震惊了!
点击上方蓝字关注我们
前提
在我这个公司已经待了 4 年多了。在技术上已经到达了瓶颈,然后就想出去看看机会。于是就有了如下的经验。
去DD
DD 面试先给我安排了一二面一起,但是三面因为面试官在开会于是就再约了。我是去的现场面试,本来是建议我远程面试,我拒绝了,我坚决要去现场面试。
一面:进程、socket、IO 多路复用 等问的稍微深入。然后一个小时不知不觉过去了,面试官走了。(因为这些东西我在我的个人 github 都有代码,所以面试官会看我代码,我会给他们展示我现在在公司的线上使用情况。)
二面:项目、Redis、MySQL、PHP-FPM 很多忘了,就是想到啥问啥,然后答到他的点上就下一个问题。最后让我写个算法题的时候,他在旁边看我 github 的代码。
(从个人感受上,DD 的面试官很尊重面试者)
过了一段时间之后,约我去三面。三面面试官没有考察什么技术难点,就是让我讲了个我的一个项目怎么做。最后就走了。
四面就 HR 面没啥了。
由于太久没有出去面试过,于是我决定在去其他大厂看看。原因有几个:
在面试 DD 的时候,在交流的时候不会紧张,但是等待的时候会有一点紧张。于是我想继续面试其他的锻炼自己。
想要看看其他大厂对技术的要求
如果还能拿到其他的 offer,对自己来说就多个选择。
于是就有了后面的经历~
BD面试
我是通过内推去面试的,所以面试很快能够约上。这次 BD 面试是所有面可以安排一起,只要通过就可以继续。于是:
一面:Swoole、进程、TCP、MySQL、Redis ,PHP-FPM 等都问了。有些知识点因为没有准备早就忘了,其他的总体上来说没什么问题。顺利二面。(面试时间很短,使用了 30 多分钟。所以什么都问,但是都问的不深)
二面:上来让我介绍自己的工作经历,然后问我做过的项目。没有问我技术点。主要是考察我能不能胜任开发项目我认为。这个也过得特别简单。于是顺利的过了。
三面:上来就抱着一个电脑,似乎很忙。然后看了我一眼说:你先介绍下自己,包括姓名、年龄、籍贯、学校等。然后你再介绍下你的工作经历。好,开始吧。
然后好像他又在看他的电脑,我在对面一直呱呱呱的说。简单的介绍完了自己和工作经历。
然后就问我:给你一个接口你会怎么做?这就是我之前分享的一个问题。这个问题把我问的很蒙。
在面试的期间,面试官时不时会说:我时间不多了,我等会有个会议。
然后再是问我最后一个问题:如果有两个文件 A 和 B,就比如是两份账单,我想查找是否有人重复领取工资,问我怎么做。我问他数据量情况,他说十几万行吧。
我想了几个方案:
1、通过 yield 读取文件然后写入数据库(本地),在通过一个 SQL 完成。
2、通过 Redis 的 set 完成。
3、通过布隆过滤器。
4、假设内存允许的情况下,直接通过 PHP 读取完两个文件然后通过数组完成。
最后面试官问我:你知道 awk 吗?我说我不清楚(只在批量杀死进程用过,其他情况确实没用过)。然后告我可以用 awk 写个命令就够了。
最后问我期望薪资,估计嫌我要的高了。就送我走了~
然后我的简历流到了 BD 的简历库,于是 BD 的 HR 打电话给我让我去另外一个部门面试。于是就约了个时间。一面面试官后来给我打电话,我还特意说了我面得职位是高级,说了我的期望薪资。一面面试官说没问题,只要你有这个能力就行。
BD第二次
一面:
session 和 cookie 的区别?
熟悉正则吗?
PHP 扫描目录知道吗?如果是嵌套目录呢?
HTTP 的 code 码知道吗?
PHP 的魔术方法有哪些?
PHP 的全局函数有哪些?
PHP 的垃圾回收、内存管理
写个算法:如何知道算法里面的括弧是否有效?
MySQL 的底层知道吗?(从这里我接过了话题,然后开始谈了很多 MySQL 的知识点。并且和面试官聊了聊其他有的没的。)我说完了之后问面试还有要问的嘛?面试官摇摇头说没了。然后说了句:你很有专研精神。然后和面试官互加了微信。面试官送我离开了。
TX
一面:面试官让我先介绍一个自己的项目。于是我就把我的定时任务项目跟他讲了,而且讲的里面很多的知识点。面试官会一直深扣。我回答面试官问题时,不会只回答面试官的这个问题点,而是会把这个点发散开来,尽量把我知道的能够联想到的都展开。面试的知识点有:TCP、Socket、进程管理、进程线程协程概念、HTTP、网络架构、MySQL、B + 树、RabbitMQ 等。
涉及 MySQL 的问题:执行 insert 语句的过程是什么?
最后写一个算法题:3 题让我挑一道。因为我不怎么看算法,于是才让我 3 题选一题。
二叉树
LRU 实现
数组中找出第 K 大的数
我选了个最简单的,第三个。
总结
面试只要准备的充分,似乎心里就不会慌。然后随着面试的越来越多,就越来越有底气。因此还是要多面面才好!