一、前言
当你从运维测试或者其他技术角色转型去做软件开发的时候,你将面临的最大障碍将是人们对你的固有看法(即:你在一家公司里承担了某个角色的工作,人们会把你总是看作成这个角色的成员,全然不顾你的技能和你的成长,尤其是当你当前的能力已经超越了从前的角色的时候,这通常令人很沮丧)。
本文接下来就让我们来谈一些实现从非开发者的技术角色转型为软件开发者的策略,希望这些策略对你有所帮助。
二、从其他技术角色转型为软件开发者策略
2.1、用行动来支撑你的语言
中国俗话说的好"光说不练假把式","站在岸上学不会游泳",如果你真的想成为一个软件开发者,只是靠嘴上说说是不会实现的,需要你脚踏实地的朝着既定的目标去实践行动起来才会有所收获。
那么该如何制定目标并为之实践呢? 如下是一些思路供你参考:(可以向你需要转岗的部门相关人员或HR了解(如要成为该部门人员或能够得到升职,需要做到什么,具备什么技能,然后根据这些要求列出对应的计划清单,根据清单去执行,先把这些要求技能内容都掌握熟练)。
当你具备所需技能后就可以把目标公之于众了(把你想要转型的目标尽可能地广为人知(让你的同事们都知道你渴望加入开发团队;直面你的老板,开诚布公地告诉他,你想要转型成为软件开发者【在你向你的老板公开你的目标的时,一定要记着告诉他你当前在测试领域积累的经验对你未来转入程序员角色之后会给公司带来的好处。告诉他如果你能转入开发岗位,公司会从中得到什么好处】)。
2.2、寻求机会
不要期待有人会主动给你分配开发的任务。相反的是你要发挥自己的主观能动性(即使在你目前的角色中也要努力寻求机会去做一些编程工作),比如:向你的老板申请一到两份简单的任务;问一问有哪个bug需要你去修复。
2.3、自己创造机会
在实际工作中,有时候即使你不停地询问,你依然无法得到从事软件开发工作的机会;这时候你得去为自己创造机会。你可能需要自己去找寻那些你可以做出贡献的领域,并且不会妨碍到任何人,也不会为了问问题而占用他人的时间 ;这些机会往往就是那些我称之为"脏活累活"的任务,都是些没人愿意去做的事情(也许是去调试一个没人能搞清楚的惹人讨厌的bug,也许是为API函数编写文档,或者开发一个工具以使其他人的工作变得更轻松)。
2.4、利用自己的时间
如果你真的想在软件开发方面获得机会,你就必须多付出一些,利用你自己的业余时间来推进你的转型历程(即使你在工作时间里被赋予完成一些软件开发任务的工作,你也应该付出一些额外的、不计报酬的时间用于完成另外一些软件开发任务。这样做将有利于加速你的转型历程。为了完成额外的项目,你愿意早早上班,或者下班后留下来加班)。
2.5、遇水叠桥
从运维测试角色转型成为软件开发者,有一个很好的方法就是找到一个可以将你置于这两个角色之间的"桥梁"工作(如:对许多测试人员来说,自动化测试工作恰恰就是一座再好不过的桥梁。如果你能够开始承担测试自动化任务,那么你将有机会编写自动化测试脚本以代替手动测试。说服你的老板让你做自动化测试工作,通常要比说服他让你成为一个初级开发者要容易得多)。
这是一种双赢的结果:与你而言,可以获得宝贵的、真实场景下的编程经验;与公司而言,可以享受自动化测试带来的好处,整体上提高组织的效率。
从许多其他技术工作中都可以有效发掘出类似的转型成为软件开发者的"桥梁"机会(如:运维人员可以选择成为工具开发者,也可以轻松获得开发者的位置,他们可以使用运维技能,编写处一些脚本来自动完成某些任务或者开发自动化工具造福所有人)。
努力发掘可以将现有技能和经验有效运用在开发工作当中的途径,努力创建属于自己的"桥梁"工作。
三、考虑换一家公司
上面谈到的内容,都是基于一种假设(即:你所在的公司允许测试人员或者其他技术角色转型为本公司的软件开发者。然而在现实中,这种假设往往并不成立)如果你的公司属于这种情况,那么你就应该试试从一家公司的测试人员转型成为另一家公司的开发者。
需要注意的是:即使你不能转型成为本公司的软件开发者,你也应该尝试着在你目前的工作岗位上锻炼自己以获得开发经验,这样你就可以在向另一家公司申请软件开发职位时把这段经历写在简历中(即使你利用自己的业余时间开发了一些帮助你完成工作的工具,你也可以把它作为真正的开发工作经历写在自己的简历上,借此将极大地帮助你获得自己的第一份开发工作)。
最后就是:"冰冻三尺非一日之寒",坚持不懈地学习,持续不断地提高自己的技能,孜孜以求寻找各种机会、创造各种机会,你终究会梦想成真【耐心和毅力是关键】,祝愿各位都能够有所收获,寻找到自己的事业。