前几天收到了百度的OC,也算是给我的提前批画了一个句号。今天给大家分享一波我的个人经验,攒攒人品。如果后续有其它公司的面经也会在这个帖子更新。
首先介绍一下我的情况:二本本科+211硕,本硕都是计算机专业,研究生期间主要做数据处理,项目只有科研论文,无企业实习经历,说白了就是‘纯学生’。大概在5月份的时候找了实习,尝试投了阿里,被面试官无情diss(可能是我玻璃心,哈哈。确实是因为太多知识研究生期间没有用上,基本都忘了。当时面试官问的问题现在看起来都很基础,但是答不出来。后来面试官在我答题的时候总是叹气,也给了我很大压力,并且如果我回答的不对就直接打断我,不让我继续。)。在这次面试之后确实发现求职和学校学的有很大差距,就开始系统学习工作的知识。下面介绍一下我认为作为一个没有项目的测开求职,一些基本的素质要求:
- 算法 :对于大厂来说,测开的算法要求其实并不低。这一部分刚开始我刷了剑指offer的大约60多题吧,算是热热身。之后刷了leetcode的面试热题和热门100题。二者总共总题量大约不到200道左右,平时一天维持在5道左右的题量,并且定时的对已经做过的题进行回炉。建议如果算法能力有限,可以着重练习数组,双指针,dp之类的算法题,因为我认为这些算法题在面试手撕出现评率比较多。如果想要在笔试的时候编程题可以有高水平AC,建议对递归,dp问题要有高度理解。另外在面试时,对于给出的算法题可以给出两种或以上的方法,后一个方法是前一个方法的优化,或是用不同的方法解决更加加分。优化方法固然重要,但不要羞于使用暴力法,也可以说一说暴力的思路。
- 计算机网络:对于现在的互联网公司来说,计算机网络知识也是考察的重点。我认为最基本的可以从以下几个方面入手: (1) OSI 7层 TCP/IP四层,每一层的功能,在网络应用中每一层之间是如何协作的,每一层有哪些协议,哪些设备; (2) 对重点协议的掌握,如 TCP,IP,DNS,HTTP,HTTPS,ARP,RARP,UDP,它们的报文是什么样的(可以延伸如http里面的长连接,getpost,状态码等,https可以延伸对称非对称加密等等),工作流程是什么样的(中间有哪些步骤);(3)其它网络技术如session,cookie,token,socket。
3. 对自己常用语言的了解:我用python,在这里仅仅谈谈python。如python的多进程多线程,同步的方法,通讯的方法;闭包和装饰器;迭代器生成器协程;垃圾回收;深浅拷贝;缓存机制;面向对象的相关内容。这块东西很多,无法细说,如异常捕获,with as ,new方法 init方法,元类,*args **kwargs这些散的知识点。仅仅是会写几个for while class什么的是远远不够面试标准的。如果想在面试中有个好印象,可以看一看源码,结合源码和面试官谈。
4. 数据库:sql语句熟练掌握是基本功,除此之外索引,数据库优化,分布式,MVCC,行锁间隙锁,acid也是面试常问的内容,例如索引问题,不同的索引结构之间的优劣对比,索引优化,索引的种类,再比如关系数据库和非关系型数据库的对比,mysql对于语句的解析过程等等问题都是需要掌握的。
5. 操作系统: 这块我掌握的不是特别好,我认为对于死锁,线程进程,分页分段,锁的相关知识应该是掌握的重点内容。
6. Linux:最基础的我认为是常用的命令,如top,ps等命令,如果可以会awk,sed 和vim等编辑器那是再好不过的。
7. 数据结构: 最基本的就是对各种逻辑结构的使用,如栈和队列;对物理结构的操作,如顺序表链表;常见的排序算法(如快排)的手写和对比,查找算法的掌握(如折半)和对比,遍历的手撕(非递归也要掌握),算法复杂度分析等等基础内容。
8. 测试知识: 这一块大厂的要求感觉并不是特别高,因为在我的面试中,仅仅只是问了类似于怎么测一个电梯类似的题目,考察的是有没有测试思维。我认为最基本的测试知识包括,黑白盒测试方法对应的用例编写,测试的流程,测试模型(v,w等),bug管理,再比如功能测试性能测试安全测试等等知识的掌握。
9. 软能力:与人交际,团队协作等。
从我的个人感觉来看,以上知识一定要有自己的理解,一定要有自己的理解,一定要有自己的理解,切勿背诵面经,切勿背诵面经,切勿背诵面经。 因为面试官面试过很多人,你是不是背的面经他心里肯定有数。因此在回答问题的时候,一定要结合自己的理解来说,这样才能显得有你对这个问题有深度!以上问题均可以在B站学习视频,或者CSDN知乎等知识分享平台学习。如果以上有什么问题也欢迎大家多多交流。
以下是我的一些面经,仅供参考:
笔试:
10个选择(单选与多选 基本的代码阅读 面向对象 协程线程进程 操作系统等基础知识)
3道算法题 ac 1.73/3
一面
1 自我介绍 问项目的作用
2 python的gc机制
3 如何理解面向对象 面向对象设计的原则
4 测试模型
5 统计一个文章中某个单词出现的次数
6 知道哪些测试方法
7 白盒的几个覆盖
8 测试一个电梯
9 在项目里是如何测试你的代码的
10 你有和别人互相检查代码吗
11 爱好 再看什么书 看这些书对你的帮助
12 为什么要找测开 你的优势是什么 你的不足是什么
13 对广联达了解多少
14 如何看待加班
15 反问
8.22更新二面
1 自我介绍
2 项目里的难点
3 遇到困难的地方怎么解决
4 压力如何缓解
5 兴趣爱好
6 对测开工具有什么了解
7 有没有与别人有合作的经历
8 为什么要选base上海
9 对广联达了解多少
10 如何看待加班
11 手里offer情况
12 为什么要干互联网这一行
13 最近有没有提升自己的素质能力
14 反问
奇安信(base 南京)
笔试
单选 多选(操作系统 网络 基本的编程知识)2道算法(动态规划与递归 AC 1.83/2)
面试未参加
百度(base 北京)
一面
1 自我介绍 会哪些语言
2 深浅拷贝
3 is和==的区别
4 osi7层
5 tcp和udp的区别
6 tcp三次握手
7 get和post区别
8 找两个链表的公共节点
9 sql语句 找某个字段出现3次以上的数据
10 跳台阶问题动态规划
11 找数组中出现次数最多的元素
12 如果这个数组中出现次数最多的不止一个怎么办
13 什么是死锁
14 死锁产生的条件
15 知道哪些测试方法
16 测试一个饮水机
17 linux命令 查看一个文件的前几行数据
18 linux命令 查看一个文件某列数据
19 用过哪些python库
20 线程和进程的区别
21 反问
二面
1 自我介绍
2 项目中的难点 如何解决
3 协程
4 什么时候用协程
5 给你两个数组 找他们的中位数
6 linux会多少
7 一个表 有id和name两个字段 现在表中的数据越来越多 通过id找name变慢 如何解决
8 有多个txt文件 每个文件里面都是英文单词 给你一个单词 想要确定包含该单词的所有文件名 怎么解决
9 测试一个自动贩卖机
10 你认为上一题中哪个测试最重要
11 你是想做测试还是开发
三面
基本聊个人经历 学习 生活 无太多技术问题
全部评论
(19) 回帖