背景:
双中流985,非科班出身,无实习。
相关课程与书籍:
秋招前—计算机网络,计算机组成,数据库概论,机械出版社黑皮数据库(没完全看完),UNIX网络编程,C++Prime,mysql,redis基础知识。
秋招时—LINUX内核设计与实现(看了两遍),分布式基础知识,机械出版社分布式系统(还在继续看ing),docker和k8s相关知识。
题量—leetcode400题(相对比较熟练,面试手撕没栽过)/sql(每次学了都忘,lol)。
面试公司:
字节跳动 — 深圳抖音后台 2020.07.12
一面(60分钟/挂)
1. 介绍项目。
2. linux服务器编程实现中,服务器端和客户端使用的关键命令以及close()函数系统帮你做了啥(回答了系统帮忙释放连接,释放对应的Socket结构的内存还有fd结构,面试官一直不满意,应该是系统在正常情况下发送FIN,不正常情况下发送RESET)。
3. 介绍一下三次握手,四次挥手。(引导我回答上面的题的正确答案,没反应过来)
4. 客户端连续发送两个HTTP数据包给服务器,会出现乱序吗。
5. 介绍一下寻址模式。(虽然知道想问啥,但是实在忘记名词了,应该是立刻数寻址,寄存器寻址,间接寻址,直接寻址)。
6. 介绍一下SOCKET的四元组。
7. 数据库的四范式。(牢牢记住后面三范式,忘了第一范式的科学表达是啥)
8. 合并双链表,一链表奇数上升,一链表偶数下降。(限时15分钟,一开始先介绍一下思路,翻转链表+弟递归合并双有序链表,面试官没反应过来后者,让我先写,然后写完看了看,说空间复杂度要求O(1),于是改成传统的合并有序双链表。)
9. 介绍一下C++的特性(回答封装继承多态),虚函数实现原理。
总结:
作为秋招第一次正式一点的面试,感觉字节基础知识还是不够扎实,太菜了。期间还把fd一直说成端口,后来的面试中都直接说file desciptor了。后来9月北京字节电商捞了一次,免笔试直接面试,不想去北京,拒了。
TP-LINK — 深圳软开
笔试
1. 图形题,智力题,性格测试(怀疑人生)。
2. 两数相乘。(leetcode 43, 考前复习过leetcode的题,10分钟写了出来)。
3. 内存池实现。(lol,完全不会)。
一面(20分钟)2020.07.04
1. 介绍项目。围绕项目,介绍了线程池+Reactor模式+epoll(边缘触发)。
2. UDP怎么实现可靠传输。(回答了模仿TCP加上超时重传机制+序列号确实机制,类似VFTP)
3. UDP和TCP区别。
4. C++新标准了解过吗。
5. 口述一下回环链表做法。(回答了快慢指针 or 哈希)
二面(20分钟)2020.07.08
1. 教育经历,技术栈,学习方式。(聊人生)
意向书 2020.07.09:(已拒)
总结:
十分感激TP给了我秋招的第一个OFFER,最后开了白菜价。个人原因由于不想做嵌入式,所以拒绝了OFFER。但是TP对985出身转行的同学十分友好,待遇好,好的培养方案,给时间成长,要求基础并不高。
Shopee — 后台研发
笔试 2020.07.21:
1. 忘了是三道题还是四道题。题都是原创,medium难度吧。一道A了80%,一道A了70%。
一面 2020.07.27:
1. 介绍项目,围绕项目,介绍了线程池+Reactor模式+epoll(边缘触发)。
2. 服务器能接受多少qps。
2. 如何解决粘包。
3. UDP和TCP区别。
4. 三次握手和四次挥手。
5. 实现项目中遇到过什么印象深刻的问题。(介绍了一下服务器状态大量出现Time-wait以及如何解决)
5. 实现strcmp( )。(一开始实现了strcpy( ), 后来面试官看了提醒我题目看错了,不过两个都写出来了。)
6. Nignix的多进程和服务器项目的多线程对比,说说看法。(没用过nignix, 倒是在学习docker时,大概了解过一下)
二面 2020.07.31:
1. 消息队列。(不会,问了是不是Redis里面的Subscribe
和publish,其实应该问的是Kafka,后来介绍又问了一遍,回答了只知道用来削峰填谷)
2. B树和B+树区别,着重介绍一下B+树。(这个回答得很详细)
3. Innodb和Islam的区别。
4. Mysql的主从复制具体实现。
5. Redis的主从复制具体实现。
6. C++新标准。(只说了sharepointer weekpointer这些)。
7. 堆和栈的区别。
8. 探讨了数据库的一致性,redis和mysql的一致性保证。
9. 服务器大并发会出现什么问题。(回答了time-wait状态以及解决方法)
10. 介绍了一下每一个部门,问我有啥想法。
HR面 2020.08.05:
1. 为什么转行。
2. 怎么学习计算机知识的。
3. 对shopee有什么了解。
4. 询问了工资地点/福利/培养机制/意向薪酬。
意向书 2020.08.14:(已接,后来开了介于sp-ssp之间的档)
总结:
1. Shopee对于我来说,其实算是dream offer了,LOL,主要是不想加班,业界名气也不错,主要是有T家的很多大佬在,零食自由,没有PUA的风气。
2. Shopee校招要求的是Go语言技术栈,但其实笔试和面试都没有要求。Base可选深圳和坡县,如果有保底的Offer,推荐投新加坡。
华为 — 2012
笔试 2020.07.25:
1. 性格测试。
2. 四道笔试题。(往届经验,A一道就可以了)
一面 2020.08.14:
1. 介绍项目。
2. 介绍人生。
3. 动态规划(二维地图左上到右下走法)。
二面 2020.08.17:
1. 介绍项目。
2. 数据库引擎。(只回答了Innodb和islam,但是感觉面试官还想问我其他的引擎,lol)
3. 计算机体系结构的了解。(感觉问题太空泛,是要问内核,还是真体系结构,后者忘光了)
4. 介绍一下计算机的分层,分层都大概说说。(从下往上说,突然忘了会话层这个名词,尴尬)
5. 数据库怎么保证一致性。(说了各个事务隔离等级,说了mvcc,另外还想说直接用锁实现的方法,但是面试官说,不清楚就不要说,lol)
6. 接龙。(给了道估计是hard,劝退吗,还是写了出来,深搜+哈希记录,好像这叫记忆化深搜)
主管面:(约了2020.11.2到2020.11.6的某个时间)
总结:
1. 一直是一个程序员小哥哥和我对接,小哥哥对我很关心,确实将心比心和我交流,也成为了朋友。
2. 其实对2012也挺感兴趣,不过流程走得太慢等不了。
招商深圳 — 应用程序开发工程师
一面 2020.10.26
1. 四人小群面。5分钟在给定多个主题选择一个主题,2分钟演讲,1分钟点评。
总结:
第一次经历非技术面,2分钟演讲没控制好时间。
商汤 — 开发
笔试 2020.08.20:
1. 忘了,但是过了。
一面:(直接拒绝)
总结:
1. 笔试链接8月19号凌晨发我,这加班有点严重呀。
2. 8月某个星期六晚上打给我约我一面,时间是下星期天,这加班有点严重呀。
阿里云 — infrastructure部门
一面 2020.07.31:
1. 介绍服务器项目。
2. 服务器项目中定时器的实现细节。
3. 服务器项目内存拷贝。
4. select,poll, epoll发展历程,epoll实现细节。
5. 介绍一下docker。(介绍了docker的分层文件系统,docker和虚拟机的区别,namespace,cgroup等隔离)
6. 介绍一下对k8s的理解。
7. 二维迷宫带障碍,随机起点,找最短路径。(深搜+剪枝)
二面 2020.08.04:
1. 围绕项目穷追猛打。
2. epoll两种模式。
3. 线程池具体怎么实现。(condition wait + notify)
4. 日志部分怎么实现。
5. 消息队列怎么实现。
6. 服务器项目的内存拷贝有多少次。(网卡到内核,内核到用户,顺便介绍epoll优势)。
7. 锁是不是一定能保持互斥。(问了一个mutex出现在cache中,会怎么保证互斥性)。
8. docker和k8s。
9. 手撕LRU。
三面:
1. 介绍项目。
2. 介绍了一下研究经历,问了我简历上的PCA/MCMC/高斯过程。
3. 强化学习基础知识。
四面:
1. 介绍项目。
2. 职业规划。
3. 以后会遇到什么困难。
4. 探讨了简历上的数据比赛经历,扯到了怎么做特征工程,stack之类的。
HR面:
1. 怎么给公司带来价值。
2. 职业规划。
3. 和计算机科班出身,你有什么优势。
总结:
1. 阿里的面试官还是挺厉害的,能深挖项目,逐步深入的问,每次技术面都1小时起步,脑力消耗极大。
2. 验证了“海量hc=几个hc”。五轮面试,泡池子,不给意向书,现在也不释放简历,佛了。
3. 后面看了一起《动手写docker》这本书,不过就看了原理部分,现在也忘了。
腾讯云(内推,官网现在也没投lol)
一面:
1. linux内核知识。
2. 计算机组成知识。(页概念,调度算法,换页机制)
3. 进程与线程区别深入版。(写时拷贝,底层都是clone(),后来看了看,其实linux下,线程和进程的区别取决于clone()调用时参数的设置)
4. 虚拟内存和物理内存理解,进程空间组成。
5. C++虚函数,虚函数表。关键的数据结构在进程空间的位置。
6. C++ 带虚函数的类和不带虚函数的类size的区别。
7. Listen()函数有没有特别的参数(忘了)
8. 最长无重复字符串。
9. memcpy() (上面做太快了,时间不够,加了这道题,不会呀)
总结:
1. 面试官很nice,虽然感觉大部分回答得不错,但是还是挂了。根据反馈说对部分知识理解有偏差。
2. 腾讯云面试后,意识到自己的不只,于是看了linux内核实现与设计。
网易互娱 — infrastructure
笔试(2小时)2020.09.12:
1. 各种基础知识,涉及了redis的雪崩,mysql,docker知识,挺全面。(感觉做得不错)
2. 有序数组,给定数组,找到第一个和最后一个出现的index。(这道题提交时候,按了整个模块提交,人傻了)
3. 合并k链表。(重头开始写,用头写呀,知道怎么写也不想写)
总结:手贱手贱。
另外投过的公司:
1. 京东提前批(简历挂)
2. 快手提前批 (简历挂)
全部评论
(15) 回帖