先说说自身情况, 双非本科应届生,科班,19年八月尾放弃考研准备秋招,持续了九月十月两个月。
有一些不厉害的程序设计相关的奖项,无项目开发经验,学科成绩应该在年级前50%吧。
投了一些国内目前还算比较好的互联网公司, 岗位都是c++后台开发相关, 面试机会基本上都是参加笔试获得的。
最后拿到了华为通用软件开发部和百度自动驾驶技术部的offer。
准备面试的同学一定要多投一点公司(大佬除外,中意哪个公司投哪个就好了。。。),暂时手里没有offer也不用太慌好好准备面试就行了,我也是十一月才接到的offer。
把去年秋招被面试官问过的问题回忆了一下,可能会遗漏了一些,给大家参考,希望有帮助。
另外给找工作的同学推荐一下牛客网,个人感觉是一个很好的平台,有很多面经和公司招聘信息。
计算机网络:
1、子网掩码、主机号、网络号、子网一些相关的知识和运算。
2、三次握手四次挥手详细过程以及每个状态,TIME-WAIT状态的意义,如果某次握手或者挥手的信息丢失会发生什么,为什么 不是四次握手,为什么不是三次挥手。
3、TCP和UDP的区别
4、http的链接过程,https的链接过程,http和https有什么区别。
5、输入一个url按下回车会经过哪些过程
6、详细说一下DNS解析过程,ARP协议的作用
7、网络的七层协议,五层协议
8、客户端发出的请求到服务端接收到请求,每层协议对数据包做了什么(就是一个封装数据包和解析数据包的过程)
9、各种状态码的含义
10、TCP如何保证传输的准确性,拥塞控制
11、网络编程相关(基本没被问过)
操作系统:
1、线程和进程的区别
2、孤儿进程,僵尸进程
3、进程间通信方式(管道,消息队列,共享内存,信号量)//弄懂原理即可
4、线程的各种锁(互斥锁,自旋锁,读写锁,信号量)//需要知道详细的原理,能用代码实现最好
5、c++的内存结构
6、死锁的四个条件,如何预防死锁,如何解决死锁
7、为什么要有虚拟内存
7、进程有哪几种状态
8、IO多路复用,select、poll、epoll
9、linux的各种命令(随缘吧,问的我没有一个会的)
10、linux内核相关
数据库:
1、索引,联合索引,什么时候应该建立索引,建索引的原则
2、为什么索引要用b+树(建议了解b树,b+树的原理)
3、基本的增删查改语句
4、复杂的查询语句,多表的联合查询
5、ACID四大特性
6、可以了解一下redis
c++:
1、c++11的特性(智能指针、泛型编程等)
2、static的作用
3、虚函数的原理,为什么需要虚函数
4、指针和引用的区别
5、malloc和new的区别
6、析构函数为什么设计成虚函数
7、多态的实现方式
设计模式:
1、里氏代换原则
2、依赖倒转原则
3、观察者模式
算法&&数据结构:
1、vector和数组有什么区别
2、链表的数组有什么区别
3、hash冲突的解决办法,hash表如何扩容,hash的时间复杂度(如何计算来的)
4、vector如何扩容
5、队列和栈的区别,分别在那些场景中会用到
6、手写归并排序,快速排序(递归和非递归),堆排序
7、红黑树的原理,和avl树的区别
8、map,set,unorder_map底层实现
9、二叉树的各种遍历(递归和非递归)
编程题:
头条:
1、一堆数中只有一个数字出现了奇数次,其他的都是出现偶数次,找到出现奇数次的数。
2、复杂链表的复制(剑指offer原题)
3、设计一个LRU算法,要求操作时间复杂度都是O(1)
4、链表的插入排序,空间复杂度O(1)
5、链表的奇数项是升序,偶数项是降序,将整个链表变成升序
6、一个不规则硬币,正面个反面出现的概率不等,现在两个人需要用这个硬币决策出谁先吃饭,设计一个公平的方案
深信服:
1、有一个很大的文件里面都是url,如何判断一个url是否在这个文件中出现过(说想法即可)
2、一个字符串中单词被一些'#'分隔开,设计一个函数返回分离出的单词数组(用纯c写)
3、有1,2,3,4,5元的纸币,数量不限,凑够一个n元的钱有多少种方式
华为:
1、求两个集合的交集
2、包含+-*/()的计算器
3、求字符串中的最长回问子串
4、求一个数组中每个数后面第一个比它大的数
快手:
1、大数加法
2、大数乘法
3、一个数列1,2,2,3,3,3,4...(n个n),输入一个k,求前k个数的和(要求时间复杂度O(log(k));
4、输入一个n,求n最少被几个完全平方数组成(输出那些数)
百度:
1、A表示1,B表示2...Z表示26,给一个数字,用字母表示,比如27=AA
2、两个字符串,吧A串变成B串需要的最少步数,可以删除一个字符,增加一个字符,改变一个字符
3、一个c++文本,里面有很多注释,删掉所有的注释部分。
4、二维平面上有2*n个点,没有三点共线,判断是否有一条直线能将这些点分成两部分,每边n个点(说想法即可)
5、1000瓶酒中有瓶有毒,老鼠喝了毒酒一周会死亡,一周内找出毒酒最少需要几只老鼠(说想法即可)
美团和腾讯的编程题想不起来了。。。