今年是笔者本科毕业的第6年,在接近三十而立的年龄里,回首自己从毕业到现在的职业生涯,可以说是一波三折。趁着自己现在有时间,就做一个复盘和总结,分享给曾经和我一样迷茫的朋友,希望能够带给你一些启发。
笔者是某末流211大学电子信息工程专业科班出身的,大四那年有些不知道“天高地厚”地拒绝了本校保研,准备跨考复旦大学的金融专业研究生,结果当然是华丽丽地当了一回“分母”。话说那时候考研还不是很卷,如果我坚持考自己专业,应该也是可以上岸一所不错的学校的,但是造化弄人.......于是乎,完美地错过了当时的秋招,只能急匆匆地追赶春招的步伐。地球人都知道春招无论是从岗位数量还是岗位质量上都远不及秋招。何况笔者本身专业水平并不强,大学期间也没有什么拿得出手的项目竞赛经历,再加上考研失利确实让我沮丧了很久,所以找工作的进程并不顺利。记得是当年的六月初了,周围的人都在准备毕业答辩、拍毕业照、各种散伙饭,唯独我还在为工作的事到处面试奔波。
突然有一天,辅导员私信我说:“有一家国企要招一个技术支持,因为前面拿offer的同学临时决定出国留学,所以多了一个HC出来,面试估计不会很难。你要不要去试试?”我赶紧应了下来,第二天就参加这家公司的面试,所幸面试题目也真的不难,而且当时很多同学都已经签约了,所以竞争并不大,再加上211学校牌子的加成吧,我很顺利地拿到了Offer并签了三方协议。对于这个“捡来”的offer,我真的心存感激,如果没有它,我真的可能会毕业就失业了。
【经验教训】考研一定不要眼高手低,盲目跟风跨专业。
其实直到签约我都不太明白技术支持到底是干什么的,只是想着好歹是个国企,有个工作总比毕业就失业强吧。接下来就水到渠成地写论文、答辩、毕业。入职国企是七月中旬,我们一行50多个应届生参加了为期一个月的岗前培训,培训结束后才会分配具体的岗位和工作地点。这里不得不说,国企的培训制度还是很完善的。岗前培训的内容丰富多彩:军事训练、企业文化、职场礼仪、专业理论知识、专业实训......也是在这一个月的培训里我才明白了技术支持这个岗位主要的工作内容是:客户项目方案的规划设计、公司软硬件系统的安装实施、系统调试、故障排查、售后答疑、客户培训等等。很有特色的一点就是这个岗位要经常出差,一年基本有250天都在客户现场。当时初出茅庐的我,似乎并不排斥需要出差的工作,甚至很喜欢。因为出差可以到处玩。
但是培训结束后岗位分配的结果却打碎了我的“美梦”---50多个应届生,好像只有我被分配到了北京的服务运营岗,其他人都是全国各地的技术支持岗。服务运营岗的主要工作内容就是:制定客户服务的政策和流程;审批客户服务合同的内容是否合规;项目招投标文案的撰写;服务文化的宣传等等。总而言之,是一个类似“文员”的岗位,除了写招投标文案的时候有些忙,其他时间几乎都很闲,线上审一下合同、打几个电话、回复几封邮件一天的时间就晃过去了。也许这种工作对于有家庭有孩子需要照顾并且事业心不强的职场妈妈来说,是个不错的选择,因为工作稳定轻松、待遇一般、福利齐全......但是对于工科生的我来说,真的很难熬:明明很闲,却还要在工位上呆上一整天;一年到头,感觉什么都没学到,没有任何成就感;工资在帝都也不过勉强果腹的感觉.....于是,这份工作我干满一年后,年轻气盛的我果断“裸辞”去寻找诗和远方了。
【经验教训】工作不易,千万千万不要裸辞,尤其是自己能力还很弱的时候。
裸辞后,我先是和几个大学同学去了一趟云南旅游,然后又开始到处投简历。果然裸辞都是没有好下场的,当时的我虽然还很年轻,但是由于只有一年打酱油的文员工作经历,所以工作找的很困难,连续一个月连面试机会都没有。后来我就把工作地点改成了全国,终于有一家杭州的外包公司给我打了电话,简单地问了一下我过往的工作经历后,他们就给我发了OFFER并且将我派到HW项目上做测试。
HW作为一家业内知名的大公司,有着非常完善的测试流程和规范,让我这个测试小白也能在这样的大框架下很快地上手。刚开始的时候,师傅让我照着产品手册搭建测试环境,顺便熟悉一下产品的业务和功能。并且每次开需求评审会、项目沟通会之类的都会叫我参加。在熟悉了产品功能后,师傅开始让我参与其中一个小模块的测试工作,需要自己写用例、执行用例、管理BUG等。那时候的我像一个上紧发条的机器,白天在公司上班完成领导的任务,晚上自己学习软件测试的基本知识:比如软件开发的流程是什么、什么是软件测试、什么是BUG闭环、如何设计测试用例、如何撰写测试报告、什么是需求评审、如何同开发沟通等等。除了测试知识外,我也自学一些必备的技术知识:比如如何安装数据库,数据库的SQL语句怎么写,LINUX的文件结构是什么,主要的shell指令有哪些等等。在当时,我的学习渠道主要是自己购买书籍以及关注一些测试方面的网站和公众号,也就是从那个时候开始我关注了51test公众号,公众号每天都能推送几篇硬核技术文,让测试小白的我大开眼界。工作中,遇到不会的我也会主动请教组内的同事,这样做了半年后,我基本上是一个合格的功能测试人员了,给我一个功能模块,我能很快地学习它的业务,搭建测试环境,编写用例,执行测试,管理BUG,输出测试报告。但是那个时候,提交BUG只局限于把复现步骤写清楚并且把报错截图发给开发,其他的都等着开发去解决就好了。
直到有一次我和甲方(也就是HW)的一个正式测试工程师出差去客户现场做验收测试,我看到甲方工程师做测试的时候不仅是简单的点击鼠标,而是会运用各种调试抓包工具抓取Log,分析定位问题,找到问题大概的原因后,再反馈给相应的开发。这时,我知道我离大厂的差距还很远。于是乎,我开始主动请缨要求从事一些比较复杂的工作,并且也慢慢熟悉那些调试工具的使用,了解产品背后的技术原理、系统内部的结构、各模块之间的通信协议等等。此后在测试中再发现问题,我就不是简单地截图丢给开发了,而是学着和开发一起抓log,复现bug最终定位问题所在,然后辅助解决问题。期间,我还自学了性能测试工具loadrunner的使用,以及持续集成工具Jenkins。就这样在外包公司又干了半年。
但是新的瓶颈又来了,毕业两年还是一个外包公司的“点工”,接触不到公司的核心技术,做的产品都是边角料的内部系统。记得有一次大学同学聚餐,有个在大厂做JAVA开发的男生说自己在自学机器学习神经网络的东西,我连忙问了一下“什么是神经网络啊?”我才意识到大厂正式工和外包工的差距不仅是工牌,而是眼界和格局。那时候我就暗下决心:最多再过一年,我一定要去大厂。
【经验教训】持续学习才能成长,阳光总在风雨后。即使在外包公司或者小私企,工作待遇工作内容工作环境都不太尽如人意的情况下,也要持续学习丰富自己。毕竟机会总是给有准备的人的。
自从立下了要去大厂的目标,我就开始在各类招聘网站上搜集大厂的招聘信息,尤其会对照里面的招聘要求找差距。这时候我发现大厂很少招专门的功能测试人员,他们更倾向于招聘全栈测试人员。所谓全栈测试人员指的是既要做功能测试、性能测试,还要参与自动化测试方案与效率工具链的开发。并且有些具体的岗位还要求熟悉大数据、安卓、IOS平台,掌握一门或多门主流编程语言。
瞧瞧,大厂的高薪果然并不是那么好拿的啊。做测试不仅要会找BUG,还要会编程,懂架构熟悉平台。显然我在外包公司的工作内容已经不能满足大厂的招聘要求了。这时候我购买了网课,跟着老师学习java+selenium自动化测试框架;又购买了一些大数据方面的书学习大数据的主流技术;与此同时,我找到领导要求从功能测试组换到自动化测试组。就这样半工半学了半年多,我开始给大厂投简历。我第一次面试是TX,当时挂在终面白板coding环节了,那是一道中等难度的去重算法题,由于我之前一直在学习框架的原理、基本业务代码的编写,忽略了算法的学习,所以挂了。自那之后我开始在力扣上刷算法题,花了两三个月的时间基本上把基础题和中等难度题都刷了一遍,又找大厂的同学帮忙内推,这一次果然得到了幸运之神的垂青,我顺利通过面试拿到了offer。
如今入职大厂已经三年有余,在一线大厂的互联网测试团队,测试工程师需要对整个产品质量负责。具体说来就是从需求初审、需求终审、测试用例的设计,测试环境的搭建、测试用例的执行,UAT验收,回归验收,项目上线、线上监控、ABtest等整个流程都会参与其中,并辅之以接口自动化测试和CI/CD持续交付等来提高测试效率。UI自动化因为项目变动频繁且考虑到ROI,我所在的组只做了核心功能的用例。线上监控和日志平台也是用的自研的系统。另外各种环境部署都配合Docker,也慢慢由Mesos迁移到K8S。
你要问我在大厂和外包最大的区别是什么?我想应该是平台和环境吧。以前在外包大家都只专注于自己手头的业务测试,基本上是“工具人”的状态,由于项目时间紧张,除法自己利用业余时间学习,否则外包公司很少会给你职业发展上的指导。而大厂给了你更大更好的平台,周围的同事素质也都很高,和他们交流碰撞能有很多新的思路和想法冒出来,并且基于大厂的业务需求和海量数据,你可以让这些想法真正地落地,收获职业上的那种成就感。
【经验教训】锚定目标不放松,功夫不负有心人。在大厂这几年,我除了收入的提高,专业上的提升,还顺利考上了985高校的非全日制研究生,也算是了了一桩心愿吧。这些都是曾经在国企当文员或者在外包公司干测试时,想都不敢想的事情。所以,我还是建议同学们有机会去大厂看看!
作者:咖啡猫
文章来源:51testing软件测试原创文章