作者:软件质量保障 知乎:https://www.zhihu.com/people/iloverain1024
最近知乎收到了一位研二非科班同学的付费咨询,让我帮忙给一些备战秋招测开岗面试建议。想到自己也是非科班出身,一路摸爬滚打走到现在,深知通过社招进入头部互联网企业是多么的困难,而校园招聘则是进入大厂的一条捷径,只要利用好寒暑假打牢基础,再沉淀一些面试技巧,进入大厂的概率是非常大的。
为了帮助更多的同学,今天就分享给大家,希望更多的同学看到。
Q:您好,我是西南交通大学的一名非科班学生马上就研二了,明年这时候秋招,目前在自学java基础,有一点python基础,向往测试开发方向发展留成都,我知道我基础很差,所以天天怀疑自己,不知道时间够不够用,对测开的难度和技术路线也没有明确的了解,请问您能给我一些建议吗?
1. 测试开发需要做什么?
以阿里的测试开发岗为例:
- 业务测试。阿里更侧重测试左移和右移。左移如参与code review、异常测试等;右移如重视线上监控、应急这些。
- 接口自动化测试用例开发,一般是在提测前开始,利用团队的接口测试框架开发接口测试用例,除了增量测试用例,还要维护存量测试用例。
- 写文档,测试分析文档、业务总结文档、复盘文档等。
- 对外提供支持。支持兄弟部门的测试工作,例如帮忙造数据,check数据。
- 协调&沟通。
- 测试专项,一般以效能工具为主。
因此,通过工作内容可以简单总结下阿里的测试开发需要应聘者具备哪些能力?
- 测试理论与实践。例如 测试分析、设计测试用例、问题定位。
- 开发能力。阿里的产品开发以Java栈为主,因此需要具备Java编程能力。而专项也要求测试具备开发能力,最起码要能通过代码实现所想。
- 沟通能力。产品是一个团队合作完成的。
- 产品经理定义产品;开发实现产品;测试保障产品质量。
- 测试需要和产品经理、开发协作,协作离不开沟通,因此沟通能力对于测试非常重要。
- 抗压能力。
2. 实现目标三步走
想要拿到心仪的offer,我建议分三步走:
2.1.打基础
- 测试理论基础
测试理论基础主要是一些概念性的知识,重点在于理解。这部分看书就行,建议购买《软件测试的艺术》、《全程软件测试》。这两本书前者能让你了解测试做什么?后者告诉你测试该怎么做?
PS:看书的时候建议记笔记,不懂的可以在测试论坛寻求帮助。推荐testerhome论坛,算是国内最大的测试论坛了。
此外建议平时闲暇时可以逛逛测试论坛以及一些测试公众号,了解下测试行业的新技术。推荐关注 testerhome、软件质量保障、软件质量报道、阿里技术等公众号。生活中接触技术性的东西多了,自然会养成肌肉记忆,能使自己保持好奇心。
- 编程能力
编程很重要,阿里的测试开发面试大多都是按照开发的要求来的。因此必须具备手写代码的能力。如何具备这些能力?无他,唯有熟而。核心在于多写代码。
基础差的话建议先补基础,提升最快的就是边看书边写。推荐《Java编程思想》《ON Java》这本书,时间充足的话差不多一个月能啃完。
重点学习:Java反射、Java泛型、Java的三大特性:封装、继承、多态、Java JVM、Java多线程。
以上内容是重中之重,因为大厂的产品用户体量都比较大,必须了解高并发、多线程。
当然,想要写好代码,设计模式也非常重要,了解下常用的几种设计模式就行:例如工厂模式、单例模式、代理模式。当然这对于你看框架(例如Spring框架)的源码也有帮助。
- 框架基础
建议啃透spring框架就行了。当然对于在校的学生来说,最缺的就是动手实践能力,因此我的建议是通过具体的项目来学习spring框架。
首先,掌握spring的重要概念:例如依赖注入、Ioc、Aop、spring beanfactory、mvc模型;
其次,动手做项目,当然不是让你从0开始写,你可以在市面上已有的开源项目开始学(后面会有推荐)。第一步能把开发环境搭建好,然后项目跑起来;再者就是模仿别人的写法实现自己的功能,这样对于你理解框架的运作机制非常有帮助。
- 算法基础
查找算法、排序算法,要理解不同算法复杂度差异。
- 数据库/Linux
数据库的话 掌握mysql的增删改查即可
Linux就在自己的电脑上安装一个虚拟机,然后装一个centos或者ubuntu(如果电脑是Mac系列,就直接在终端练习即可),熟悉下非GUI界面下该如何操控你的电脑。
- 动手实践能力
这里推荐几个练手的开源项目:
- SmartAdmin
一个后台管理系统项目。项目地址:https://gitee.com/lab1024/smart-admin
- mall4j
一个基于spring boot、spring oauth2.0、mybatis、redis的轻量级、前后端分离的电商平台项目,拥有完整sku和下单流程的完全开源商城。项目地址:https://gitee.com/gz-yami/mall4j
2.2.找实习
为什么需要实习经历?
- 工作能力的体现。你实习的企业为你背书了工作能力。
- 提前进入社会体验职场,对工作内容有一定的了解,将来社招目标更明确。
- 校园招聘的加分项。
有实习经历至少有上面三个优点,有实习经验的同学已经赢在了起跑线,这点不做赘言。
那么怎么找大厂的实习机会?
途径:我建议大家多关注目标企业的微信公众号以及官网。在校期间可以结识大厂工作的师兄师姐,可以让他们帮忙内推。
基本功:看名校背景、看学习能力。
最近和公司新来的测开实习生聊天,聊了下实习生从面试到进公司的整段历程和感受。实习机会还是比较难得的。虽然是测开岗,而面试难度是开发岗的难度。可以参考打基础部分的2、3、4部分。
2.3.备秋招
无论春招秋招,应届生找工作无外乎经历 准备阶段、面试阶段。
准备阶段
- 明确自己想要从事的工作岗位
这个非常重要,不同的岗位对于候选人的要求截然不同。例如开发岗位和测试岗位,开发岗位要求候选人的算法、数据结构基础非常牢实,面试过程也会问的比较细;而测试岗位则要求开发者了解即可。所以,提前明确想要做什么,可以在准备阶段事半功倍。
OK,岗位要求掌握的知识需要楼主自己花时间花精力去系统化学习。而准备一份亮眼的简历会让你脱颖而出,获得面试机会。
- 如何准备一份简历?
应届生求职简历不同于社招,社招重点围绕项目经验考察候选人,看重候选人的经验能否正反馈当前团队用人需求,问的问题偏实践性且比较细,如果你没做过某个项目,有些问题确实难以回答,所以社招简历切忌不要写你没做过的项目和不熟悉的技能。
而公司招聘应届生其实是一种人才储备,公司愿意花钱和精力去培养你,希望你将来能够为公司创造价值,可以算作一份投资。因此会重点考察候选人学习能力、团队协作、沟通交流能力。当然如果你还有岗位实践经历,那就是加分项。
那么你的简历上能突出这些点,通过的概率相比身边的同学就增大许多。
3. 如何突出学习能力?
那就是学科成绩,在校排名,奖学金获得情况,大赛参与和获奖情况,论文发表情况,各种证书等
4. 如何突出团队协作和沟通?
例如参与过什么社团,当过某些学生会职位,做过什么志愿者等等有就写上。
如果进入面试环节,候选人一定要提前准备自我介绍和一些常规性问题并且私下多练习,在宿舍的话,可以和室友一起相互模拟面试。常规性问题例如:
为什么选择我们公司?
将来职业规划是什么?
你对xx岗位的认识?
如何看待xx事件?等等,这些问题可以在牛客网搜索下,很多公司都会问,建议提前思考,准备好如何答复。
5. 学会复盘。
面试结束后,不管面试结果好坏,一定要复盘。把问到的问题记录下来,思考下如果再次问你,你会怎么回答,有可能下个公司还会问到同样的问题。
3. 结语
对于研二同学来说,现在能明确自己将来想要做什么,其实已经很优秀了,你的起跑线已经比别人提前了不少。