跳槽有技巧?超强测试开发面试经验等你pick

每一次跳槽,相信大家都有自己的一套方法论,一套准备和选择过程。当然面试也是一个双向选择,不排除有的时候看"缘分"。不管怎么说,这几年来,在面试过大大小小挺多家公司后,也算职场老鸟一枚了,总结了一些经验,分享给大家。

1、开篇:面试前

1)明确岗位职责

其实同样一个岗位,不同的公司的要求是有差异的。比方说,同样是测试开发工程师,A公司对该岗位的要求主要是偏服务端的测试流程开发,测试架构搭建;B公司可能更多的是偏客户端方向的;C公司可能也是跟A公司一样也是服务端,但是更多偏向于性能或大数据方向,所以对候选人可能有额外技能的要求;D公司呢,跟B公司挺类似的,也是客户端,但是做手游业务等等等等...

2)明确自身优势

作为需要写代码的岗位,最好也明确下公司主要用什么语言在做开发,虽然我们说开发语言都是大同小异的,有的公司也不care语言;但自身更熟悉哪种语言,match 程度高肯定是加分的,入职后也可以更好去融入团队,充分的发挥自身能力。

还有,明确自身的业务方向,也就是说自己之前的优势在哪,是有AI测试经验?服务端测开经验?云计算相关经验?游戏相关?SssS软件相关经验?之前做过的项目一定程度上决定了你的长处,这些长处可能是其它候选人不具备的。

3)不要海投

其实在明确岗位职责的前提下,明确自身优势,干嘛还要海投呢?我从来没有海投过简历,咱们前面所说的A/B/C/D四类公司,其实大家应该都遇到过。所以,针对他们的要求稍微有选择地修改简历,突出和公司要求更match的点,我觉得是挺必要的,也是大大提升投递反馈率的一个有效方法。个人认为海投是对自己优势的不尊重,也是对公司的不尊重,如果你足够热爱一家公司,你会拿一份随便的简历去投递吗?肯定不会。所以,珍惜每一次机会,重视每一次面试,把每一次投递,当作是对自身的负责,对面试机会的负责。

4)面经

面经的搜索是一种能力。我们说一家公司的面经,并不是指公司到底会问你什么题目(当然网上这种信息估计也很少),而是明确一家公司的面试流程,面试倾向,面试会涉及的方向和方面等,了解一下是可以的。常见的你可以上脉脉,看准网,知乎等,再有就是像51testing测试论坛等专门有测试分享的地方也可以找到不少信息。

所以你看,知己知彼,才能百战不殆。

2、中篇:面试中

1)算法与数据结构

这点在面试过程中往往是必不可少的,没有别的技巧,提前多刷leetcode吧。大部分公司面试算法都是从leetcode题目中挑选的,有一些可能是面试官临时想出来的,但一般都比较简单,比如简单字符串操作,数组操作什么的。做题的时候,选择你最最最熟悉的那个语言,像我一般用python会比较多,语法简单,写出来逻辑也好分析清晰。做题时别紧张,但也要注意下时间,一道题做太久的也有印象负分的。实在答不上来,就实话实说,把思路跟面试官解释清楚。

一般常见的算法与数据结构的题,涉及的常常有数据结构基本知识,排序算法,搜索算法,链表,字符串,数组,哈希,二叉树等。就我经验而言,个人认为最难的也就是动态规划这类了,我记得小米和滴滴终面都问过,但总体问的并不频繁。一般来说,写完一份算法题,还会让你对自己的function写一些测试用例。

2)计算机基础知识

这边比较偏向基础了,比如http/tcp协议,尤其是http的header/请求方法分类等比较常问;其次是操作系统基本知识,并发的概念,进程线程,互斥锁等;接下来是数据库知识,常见的有数据库查询语句,关键字比如group by的使用,多表联合查询(join),以及索引等;还有就是一些linux命令,如果 awk/grep/telnet/find/chmod/vim命令/netstat/查看文件/df/lsof 等等等,命令相关的其实不用去刻意记,因为大部分工作中很常用,水到渠成的事。

3)测试开发专业问题

每个岗位都有自己的专业性问题,测试开发也不例外。测试开发的专业问题一般有CICD,测试框架搭建起始,新技术使用方法,结合项目谈一些细节等。这个需要对简历中自己的项目足够熟悉,对涉及到的系统架构层面的东西也需要熟悉,有的面试官特别喜欢让你给他讲之前的项目架构甚至画出来。除此之外,作为开发角色,会问一些关于git的知识,git pull/checkout/revert 等相关,这些作为版本控制与管理的基本功,知道也是必须的;还有,我们的迭代周期,灰度上线等一些release相关的管理常识,最好也了解下;还有service进程管理相关,比如supervisor等也可以准备下,当然这些在介绍自己的项目时再详细说也可。

3、尾篇:面试后

我想最后的最后,应该就是对自身的总结了。虽然面试通过后就皆大欢喜了,但我认为还是有必要回顾一下。不能说为以后的跳槽积累经验吧,至少可以认识到自己的短板在哪里,而在工作中,这些短板很可能你会再次遇到,不管面试成功还是失败,都应该对自身有所提升才对。有人说,真正工作时候可能用不到那么多算法,为什么还要有那么多算法题目?在我看来,算法更多的是锻炼你的思维,像一些公司还特喜欢考智力题和脑筋急转弯,可能很多面试者当场不能给出标准的完美的答案,这不重要,你的解题思路,应试表现也会作为重要的参考部分。思维开阔,思路明朗,个人认为在工作时很重要。

4、万一的万一

讲一下自己的真实经历吧。因为即使把上面的都做到了,真正面试时候还是会遇到不太熟悉的突如其来的问题咋办?记得阿里某事业部的面试,像阿里这种体量的,大概率会涉及大数据高并发之类的东西,说实话其它一般公司的体量都没办法跟阿里这样的比较。那么问题来了:

面试官:我有一个excel文件,里面有1亿个数字,对这些数字排序,该怎么办?

我:首先得看内存能不能装得下...(有点迷)

面试官:能装下

我:(内心os: 排序我会写, 但直接排肯定不行, 量太大只能化大为小)那就分别排。

面试官:怎么分别排?

我:(想了一会)可以把这些数据分成到不同的文件,比如一万个文件,那每个文件大约有一万个数字,然后我们可以起多线程把这一万个文件中的数字分别排序,然后...

我:然后我在这个排序池里,每次放入一个元素,相当于1万个文件的归并排序。

细节记不太清了,总之我想表达的是即使遇到了陌生的,也不要慌,代码写不出来可以先说思路,大部分情况下,思路清晰了,代码其实也会写了。

步入职场,工作是最好的老师,自学能力加持。不要抱有侥幸的心理,认识到自己的短板,真正认真去学一些东西。职场是有自动筛选原则的,就跟大自然一样。成熟的职场人,是要让自己有足够的选择,而不是让公司选择我们。加油。

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

视频文档获取方式:

这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

相关推荐
Lee川1 天前
优雅进化的JavaScript:从ES6+新特性看现代前端开发范式
javascript·面试
Lee川1 天前
从异步迷雾到优雅流程:JavaScript异步编程与内存管理的现代化之旅
javascript·面试
晴殇i1 天前
揭秘JavaScript中那些“不冒泡”的DOM事件
前端·javascript·面试
绝无仅有1 天前
Redis过期删除与内存淘汰策略详解
后端·面试·架构
绝无仅有1 天前
Redis大Key问题排查与解决方案全解析
后端·面试·架构
AAA梅狸猫1 天前
Looper.loop() 循环机制
面试
AAA梅狸猫1 天前
Handler基本概念
面试
Wect1 天前
浏览器缓存机制
前端·面试·浏览器
掘金安东尼1 天前
Fun with TypeScript Generics:玩转 TS 泛型
前端·javascript·面试
掘金安东尼1 天前
Next.js 企业级落地
前端·javascript·面试