技术之外的工程师另类成长指南
转载:https://www.cnblogs.com/imyalost/p/14733408.html
前言
今年是我从事软件测试工作的第七年,之间经历过实体零售、银行、互联网电商等行业,遇到过不少挫折和挑战,也遇到了不少好的同事和领导,总归还是收获满满。
之前读了一本书:《软技能:代码之外的生存指南》,读后触动挺大的,一直想写写自己在技术之外的一些成长经历,或者说对于职场生存和职业规划方面的思考和看法,拖沓很久,终于还是写出来了。
另一个角度看“级别”
可能很多同学对这点都有很深的印象,近几年各大招聘网站挂的岗位,都是高级/资深/专家什么的title。
但比较尴尬的是,大部分公司,内部没有一个很规范的岗位能力模型,导致面试后的定级,基本都是面试官根据自身的理解和标准来定级。
我自己最近也面试了将近100位候选人,从自己的角度来看,很多候选人不符合我所招聘岗位的要求。
当然,我招聘的是偏技术岗(性能、测试开发、中间件相关),但不能说候选人没有达到某个“级别”,只是说他不适合我招聘的岗位。
但是在业务测试方面(比如金融支付、电商订单、供应链进销存等)可能很匹配。这点也引发了我对“级别”定级的思考。
业内划分
一般来说,业内大体的划分模型,会综合学历、技术能力、工作年限、大厂履历、项目经验以及沟通表达能力来做定级,大体如下面的表格所示:
PS:这里以软件测试工程师岗位为例!
岗位定级 |
匹配定级条件 |
|||||
学历专业 |
技术能力 |
工作年限 |
是否有大厂履历 |
项目/业务经验 |
沟通表达/逻辑思维 |
|
初级 |
\ |
\ |
应届/1年以内 |
\ |
\ |
\ |
中级 |
\ |
\ |
1-3年 |
默认升一级 |
\ |
\ |
高级 |
\ |
\ |
3-5年 |
默认升一级 |
强匹配度 |
\ |
资深 |
\ |
\ |
5年以上 |
默认升一级 |
强匹配度 |
\ |
测试专家 |
\ |
\ |
5-7年以上 |
\ |
强匹配度 |
\ |
这里针对上述六点专门做个说明:
1、学历专业
现在业内基本默认是本科学历起步,大厂基本强制卡985/211学历,专业最好是本专业。当然,除非你特别优秀,否则学历会成为职场生涯后期的一个桎梏(针对大多数人而言)。
2、技术能力
对测试同学来说,通用的技术能力大概如下几点,会的越多,技能越熟练,实战经验越多加分项越多。
- 测试流程(需求-评审-编码-测试-预发-验收-上线)
- 接口测试(用工具算是入门,用开源框架或者自己魔改二次开发造轮子算熟练)
- 自动化测试(UI很鸡肋,移动端可能好点,跑兼容;做的最多的还是API的自动化,近几年单测&代码覆盖率的占比多了起来)
- CICD(貌似这几年Devops、Testops啥的挺火,然而没几个玩的好的)
- 代码能力(这个不好判断到底什么程度才算好,看面试官自己如何定义)
- 其他基础技能(协议、操作系统、数据库)
- 题外话:性能、安全比较特殊点,也比较小众,路越走越窄,不适合大多数人!
3、工作年限
参照上面的表格,基本没差,当然有些大厂自己有自己的定义,比如阿里的P,现在还是硬通货。
4、大厂履历
同样,参照上面的表格和上一个topic的回答。
5、项目/业务经验
举个例子,电商企业,更倾向于有电商业务经验的,因为可以快速适应,降低学习成本,形成即战力。
6、沟通/逻辑思维
这个基本就是看面试时候的表现了,思维清晰,条理明确,举一反三的候选人,谁都喜欢。
技能之外
看完了上面的划分,下面来谈谈我自己对不同“级别”的工程师的一些理解和看法。当然,按照顺序由初级到资深,我觉得这是另一种成长的过程,可能需要转变一下思维。
安排我做什么?
一般刚入职场的同学,都处在这个阶段,都是被动接受阶段。师兄或者领导安排工作,有什么做什么。
我能做点什么?
这个阶段就到了问题驱动阶段,可以理解为在工作中发现哪里存在不足或者效率低下或者存在风险的点,自发想办法去解决这些问题。
在这个过程可以获得一些心理上的满足感和同事领导的认同感。这是一个好的现象,已经开始潜移默化的变强了。。。
我要做点什么?
一般这个阶段,我将之定义为向前一步阶段。基本都是3-5年经验以上的同学,有了一定的职场经验和积累,对未来也有一定的想法,会自发的想做一些事情来获得更多的物质或者其他方面的回报。
我想做点什么?
职场到了一定阶段,追求的除了物质,可能就是自己的一些想法能否借助公司的资源实现了。
俗话说好风凭借力,有一定“野心”的同学,这个阶段我建议主动出击,借助一定的公司资源,做一些即能收到认可又可以塑造个人品牌的项目,对职场发展和跳槽以及物质回报,都会有很大的好处。
跳槽要关注哪些方面
关键字:大公司、宽赛道、技术文化、降维打击!
大公司
作为互联网从业者,我还是建议大部分同学有机会的话,在职场生涯前期,尽可能去大公司,优势如下:
流程制度
大公司(业内大厂、细分赛道头部公司等)一般来说在流程制度方便比较完善和规范,对于职场新人或者没有大厂经验的同学来说,能快速的了解到,如何正确规范的做一件事。
新人培养
大公司一般在新人入职后,会有专门的新人落地机制,有师兄带你快速适应相关流程和技术栈,以及比较多的业务串讲,疑问一般都会有问有答,可以快速的熟悉适应。
技术建设
大公司一般来说都会有更完善的基础技术建设、更复杂和多元化的业务技术架构,当然,还有造轮子的机会。
关于基础技术建设,这里举几个例子:
- 较为完善友好的监控告警体系;
- 较为方便快捷的服务发布/回滚/灰度/CICD机制;
- 岗位职责划分较为明确(甩锅踢皮球也不少,比较心累);
薪酬体系
相比于中小型公司,大公司在员工定级、晋升路径、薪酬体系方面比较完善,你会有比较清晰的晋升认知。
PS:大公司不太好的地方在于,一个萝卜一个坑,对于有想法有野心的同学,会有点煎熬,而且技术能力&业务能力不再是唯一的晋升标准。
与优秀同行
大公司相对来说整体员工水平能力更好,大牛更多,有更多的机会和更优秀的人共事,从他们身上学到好的点。
宽赛道
业务深度
这里的业务深度指的是业务的复杂性和依赖性更多,可以了解到很多细节的东西,也许对转行产品有一定帮助。
举个例子:电商业务中,基本的几个业务模块有会员体系、增长营销体系、支付金融体系、商家体系、商品体系、供应链体系等。
大家可以用一些小众的电商APP和天猫京东等对比看看,反推下其中的业务逻辑,会发现很多有意思的不同点。
业务广度
至于业务广度,一般到了一定规模,大部分公司都会走上业务扩张拓展的道路。
以我司来说,最开始只有社区相关的业务,后来不断扩展,有了交易、洗护、95分、直播以及跨境海外等相关业务。
当然,交易业务可能会不断拓展品类,不同的品类也会有不同的业务逻辑在内。
接触范围
我之前也待过传统线下零售企业,小公司也待过,日常接触的同事基本都是研发运维产品。
大公司的话,接触的人从事的岗位,可能会更宽泛,比如技术、产品、业务、运营、客服、营销、线下团队等。
我个人认为这对职场发展是有一定好处的,最起码认知盲区会小一点,这点因人而异吧。
技术文化
对于做技术的同学来说,大部分应该都更喜欢技术氛围浓厚,扁平化的企业文化。
扁平化
扁平化意味着沟通协调高效、汇报体系没那么复杂、自我诉求的表达更容易满足。当然,规模越大,汇报层级越多,务虚、部门墙、向上管理、职场PUA可能更多。
技术氛围
至于技术氛围,以我曾经待过的某家小公司为例,除了写用例测试,就是发布上线,其他没了,你能很快的感受到工作的枯燥乏味。
而大公司或者说技术氛围较为浓厚的公司来说,code review、复盘、内部分享、线下沙龙、外部大会等学习机会相对来说会更多一些,至于能否学到或者有所成长,见仁见智。
降维打击
这里为什么会提到降维打击呢?一些同学在大厂工作久了,基本就没什么上升空间了。
这个时候,去二线城市或者二线企业,你之前在大厂累积的一些务实或者务虚的东西,就派的上用场了。也算变相的延长职业生涯吧,这点是比较辛酸的。
说白了,能去大厂的毕竟少数,大部分人还是在中小企业或者外包来回流浪,不断内卷。
人是如何不断变强的
4月17号受某家企业邀请,做了一次线上直播分享,其中分享的最后一个topic就是:测试同学如何持续成长。下面是我当时画的一个思维导图,供参考:
思维转变
首先,成长是一个状态和过程,而不是结果,这需要先做到思维上的转变。
学习实践
对于技术同学来说,保持持续学习的状态,快速学习并且大量的实践,是错不了的。
短期内应该学习那些可以快速变现的技能,比如工作中遇到一个问题,去找解决方案并且实践解决,这就是一个快速变现的过程。
长期来说,应该学习那些不变的知识。互联网行业技术迭代太多,很难样样精样样通,但万变不离其宗,操作系统、数据结构、算法、网络协议、数据库等相关知识,几乎没怎么变化。
获得反馈
学习是需要获得反馈的。实践过程中,遇到了问题,自己尝试去看官方文档、逛论坛社区找解决方案,解决问题后,你收获的就是正向反馈。长此以往,你会发现你累积了很多的知识。
这里说个反例,我大概17年学python时候,尝试用python来做自动化相关的事情。那会儿python处在2.7和3.5版本的交替阶段。
安装过程就不说了,很多市场上的教材都是2.7的,3.5相关的资料比较少,怎么办呢?自己想办法解决呗。不断解决问题,请教别人的过程中,我对python的熟悉程度,也算学习进度还行。
当然,那个阶段python&自动化比较火热嘛,很多测试群的同学都在学自动化,有的卡在了工具安装环境搭建,有的卡在了框架怎么用,怎么定位页面的元素,有的卡在了不会集成jenkins,
不会用allure来出报告,总之到了最后,真正掌握这一套的测试同学,并不多。
总结复盘
我自己近几年一直在坚持一个习惯,每次学习完,解决了某个问题,都会写博客或者笔记记录一下问题以及解决过程及解决方案。
每半年会复盘总结下自己目前学习掌握的技能知识,哪里需要加强,哪里学的已经可以满足工作所需,下一阶段我要学习什么。
相对来说短期目标比较清晰,长期坚持下来,也就有了较为长远的规划,自己也在这个过程中收获了很多工作以外的东西。
输出搏新
上面说到了写博客,我大概是16年6月28号开通了博客园,写下了自己的第一篇博客。
最开始只是作为学习笔记的,后来关注的人多了起来,我自己也专职做了性能测试,就写了很多性能测试&全链路压测相关的博客,貌似看得人还不少。
大概19年8月份开通了公众号,最开始都是从测试群微信群引流的关注,自己也没特意做一些推广拉新关注,现在也有了5000+的关注,没怎么掉粉。
后来在掘金、开源中国、infoQ、知乎等技术平台也尝试了多渠道运营,效果貌似不咋地,但也学到了一些运营拉新相关的知识,聊胜于无吧。
为什么要说博新这个词呢?因为后来我发现,写技术博客,做分享是有钱可赚的(可能比较俗)。
比如微信公众号,我写的比较好的文章我会设置付费阅读,每个月有广告点击费,偶尔还有商业推广打赏等其他外快收入,好歹每个月喝咖啡的钱有了。
坚持久了,个人品牌慢慢建立起来了,有人找我做付费技术咨询,也有人找我做技术分享(有的纯帮忙有的花钱邀请)。长此以往,我也看到了技术&工资之外的未来可能性。
最后
当然,上面扯了这么多,不是说大家一定要写博客,做分享。而是提供一个参考,一种另类的技术人成长指南,与君共勉。