跳槽有技巧?超强测试开发面试经验等你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万个文件的归并排序。

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

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

总结:

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

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

软件测试面试文档

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

视频文档获取方式:

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

相关推荐
戊子仲秋2 小时前
【LeetCode】每日一题 2024_9_19 最长的字母序连续子字符串的长度(字符串,双指针)
算法·leetcode·职场和发展
哲伦贼稳妥4 小时前
程序人生-我的外服经历(4)
经验分享·程序人生·职场和发展
程序猿进阶4 小时前
如何在 Visual Studio Code 中反编译具有正确行号的 Java 类?
java·ide·vscode·算法·面试·职场和发展·架构
无名之逆5 小时前
云原生(Cloud Native)
开发语言·c++·算法·云原生·面试·职场和发展·大学期末
andrew_12199 小时前
腾讯 IEG 游戏前沿技术 一面复盘
java·redis·sql·面试
andrew_12199 小时前
腾讯 IEG 游戏前沿技术 二面复盘
后端·sql·面试
寻求出路的程序媛9 小时前
JVM —— 类加载器的分类,双亲委派机制
java·jvm·面试
kay_54510 小时前
YOLOv8改进 | 模块缝合 | C2f 融合SCConv提升检测性能【CVPR2023】
人工智能·python·深度学习·yolo·目标检测·面试·yolov8改进
gopher951111 小时前
qt相关面试题
开发语言·qt·面试
视觉小鸟12 小时前
【java面试每日五题之基础篇一】(仅个人理解)
java·笔记·面试