程序员如何提升自己横向能力?

发布于: 18 小时前
程序员如何提升自己横向能力?

问题的起源?

最近在和团队内几个小伙伴进行聊天时发现,当问到自己总结一下最近一年或者半年的成长这个话题时,大家给出的答案都是,我又学习了什么样的技术,对某个开发技术又精进了等此类的回答。当我们聊到横向能力的有哪些变化时,大家给出的答案和理解都有所不同。

聊天的过程中有一个小伙伴向我咨询是该先针对某项技术进行深入研究,还是该综合横向能力去发展?此时就聊到对横向能力理解,小伙伴理解的横向能力是指学习市面主流的框架,中间件,新的语言等。这与我理解的横向能力却有很大的差异,下面谈谈我对从事软件开发小伙伴应该具有横向能力的理解。每个人的认知和观点都不同,此处不讨论对与错,只简单说说我的看法。

首先聊一下自己的工作经历

毕业以后我从学校回到合肥,加入了一家初创公司,算是进入了软件开发这个行业。说一下这个初创公司,全职员工4人,兼职员工3人,公司的创始人都是技术出生,所以整个公司的技术氛围比较浓厚,我在这个公司工作了三年半。现在看来,在这个公司的三年多经验,仍在我现在工作中发挥重要的作用。初创公司的好处就是任何岗位都是处于人力缺失状态,可以让你有很多的机会承担不同岗位的工作,给你带来工作挑战和压力的同时,也会让你快速的成长。我从一个实习生加入公司,角色也由初级开发,中级开发,高级开发,项目主管,客户现场负责人,到产品业务线负责人,工作内容也由单纯的技术开发,到技术管理,项目管理,客户需求管理,以及到全面业务线管理,涉及了从项目启动,实施,维护等全流程经验。

后来我加入了现在的公司,最初应聘的岗位是软件开发工程师,入职后被调整到一个大数据组,做内部创新项目孵化,当时的情况是我一个人需要承担从开发到上线的相关的事宜,庆幸的是之前的工作经历让我熟悉整个项目研发周期内的流程工作,经过紧张的几个月时间,带着两名实习生顺利推出孵化项目。接着所在团队调整为公司前瞻方向的团队,业务发展需要,我开始组建开发团队。随着业务的发展,我的工作内容由之前的研发慢慢转变为关注技术管理,工作集中在产品研发流程改进,质量改进,IPD体系落地建设,团队组织建设,人才培养等,与我最初的工作经历又完全不同。

我对横向能力的定义

在我看来,我的本职工作是一名Java开发工程师,我把我在本职工作方面的能力成长都归为专业能力,剩余的我归为综合能力也就是我所理解的横向能力。例如开发技能的掌握的成熟度,开发技能的拓展,架构能力的提升等等我统一归为我的专业能力提升,而随着团队的需要额外掌握的项目管理,需求管理,研发技术管理或者产品设计,客户沟通等等我统一归为横向能力的提升。

清楚自己需要扩展哪些横向能力,定义合适的计划

随着工作的年限增长,所遇到工作的内容和工作当中的人和事都会影响着自身制定的一些计划,在不同的阶段,都会有不同的想法。可能在刚开始自己还给自己制定了一个好的规划,例如工作三年,工作五年我要达到什么目标,技术达成什么要的水平,收入达到什么样的水平等等。

我们在制定要目标后,要告诉自己你在向目标努力的时候,需要扩展自己的哪些横向能力。例如从初级程序员到高级程序员,你需要补充沟通能力,技术管理,需求管理等;当你需要着手独立管理项目时,你需要补充招投标商务能力,财务能力,项目管理,客户管理等;当你转变为业务线负责人时,可能你需要关注人员沟通,组织协调,应急处理等。所以当你有了明确的目标以后,你需要知道自己欠缺的哪些,然后去提升。

如果制定好的规划不去想通过哪些途径完成,就会变成的空想,时间长了以后,就会变得过一天是一天,不在去主动的寻找机会,主动的提升自己动力也慢慢消失。所以在给自己做计划时,需要明白自己想要什么?最简单的一个原则,你在离你下一个目标时,找出你觉得你欠缺的能力去补充。有时候我们需要刻意的去学习一些知识,通过看书,看帖,网上的大牛文章,请教同事和领导,都会让你有很多的收获。另外在定计划时候,建议不要定太长的计划,一般我会定一个月、两个月,最多不要超过半年,自己找出最想做的3-5件事就可以了。

有人会有这样的疑问或者说是困惑,在团队中可能短时间无法确定自己的下一个目标,这种情况下,我的建议是给自己假设一个情景,例如现在有一个新的业务线需要组建新的团队,自己能否去新的团队承担比现在更多的职责,我现在是一个中级开发,我能否过去承担一个小团队的负责人;我是一个高级开发我想尝试下项目经理,是否能够独立带领项目团队。当我们经常给自己假设目标时,每隔一段时间,你就会有新的挑战,自然而然的就去学习不同的知识。通过自己给自己设定一些具体的假设目标,这样会使得自己的规划在具体实现时有具体的抓手,而不至于无从下手。

慢慢的做,不用急于求成

当明确好我们自己的下一阶段的能力提升目标,也进行了相关能力的理论知识学习,如何去实践,把理论真正的变成自己的经验。我自己的理解是:慢慢去实践,不用着急。不要想着一次性就能把事情做好,一口吃个胖子。当你在跨专业做一些事情的时候,往往也是打破自己传统认知,有时候也会有自我否定的过程。当你在实践的过程中,不断的尝试,不断的出错,不断的进行复盘,你才有可能把这些理论知识,变成自己的横向能力。

在整个我们的角色转变的过程中,会出错,会让你紧张,压力大,产生焦虑,甚至于觉得自己没有能力做好,想要放弃。给我印象很深刻是事情是在我工作的第二年被公司派往客户现场进行驻点项目实施,这次的转变是我从来没有过的,在客户的现场不仅需要完成本职的开发任务,更多的是客户交流,如何做好客户管理,怎么样处理应急问题。在开始的被客户怀疑能力,应急响应能力差,甚至于被投诉,到最后客户主动的表示好感,最终通过客户的推荐,后续又接到了很多的合同。

这些只有自己去做,去经历过,你才能知道如何使客户怎么样才能慢慢对你从怀疑到肯定,也会大大提高如何服务好客户方面的能力。今天回过头去看,每转换一个角色,你的抗压能力就会有大幅度增长,会让你的自我调节能力也得到很大的提升。有些能力的提升必须要经过一定的时间,必须要经历过一点的坎坷和困难,所以需要对自己有信心,相信自己。

每一个阶段,做好该做的事情

在职业发展的过程中,不是所有人都能得到很合适的机会,去做一些与当前工作角色内容的不同的事情或者说能有机会去尝试一些新的岗位和工作。或者是有了机会去到新的岗位工作,但是却不是自己计划目标内的理想岗位。有时是事情的发展促使你做了岗位转变,例如人力缺失,团队人员离职,需要你去补位做相关的工作;有时是领导需要你做出转变来应对团队发展的需要。

我曾经经历过的岗位转变或多或少都存在以上的因素,但是给我带来了很多不同角色的应对事情以及处理问题的能力。所以当你觉得现在的工作内容可能不是你理想内容,千万不要有抵触或者消极的心态,更应该提高自己的眼界和格局,去突破自己的舒适圈。千万不能被自己所谓的规划和固执的思想所困住。

珍惜每一个阶段,做好该做的事情,你的能力自然而然的就会多面开花。

主动出击,而不是等待安排

在我看来所有的能力提升,都需要自己主动愿意承担更多的角色,你才有机会去锻炼自己的能力,才有机会去挑战下一个目标。大家通常说机会是给有准备的人的,在我看来不仅仅是这样,机会更多的是给愿意主动出击的人。往往有时候机会不是别人给你的,而是自己主动争取的甚至有时候需要自己主动的去创造,只有你愿意走出第一步让别人发现你的能力,你才能体现出来你的能力。

所以想要能力有快速的提升,先改变自己,从团队中站出来,主动出击吧。

PS:本人经验有限,文笔有限,只写自己的想法,不论对错,交个朋友。首发在团队博客,写给团队小伙伴。

发布于: 18 小时前 阅读数: 11
用户头像

Boss.Guo

关注

做该做的事情,做想做的事情,就够了。 2018.10.17 加入

软件开发行业小学生

评论

发布
暂无评论
程序员如何提升自己横向能力?