公司项目缺乏挑战,怎么持续提升专业能力?

Q:我所在的研发团队,负责的产品技术上没有什么挑战,近期看来也不大可能发展成有规模的大产品,在这种情况,我该怎样持续提升自己的专业能力

A:这个问题,是在中小公司工作的开发人员都会碰到的,很普遍。

这里我想先说一点,专业技术能力必须在实践中提升,实践的环境决定了你成长的天花板。

你做的项目规模小,难度低,没挑战,你自然成长得慢。你做的项目,规模大,难度高,挑战大,你自然成长得快。所以想要持续提升专业能力,最有效的策略是做有规模、有难度的项目。

如果当前的工作环境,看不到出现大规模高难度项目的机会,那换一下环境,可能是更好的选择。

当然,环境没那么容易改变,每个人都去做大规模的项目,都去做高精尖的研究,也不现实。很多时候,你还是只能做自己手上的这个项目,那怎么提升自己呢?

可以从三个方面入手。

第一方面是项目经验。

你可能会觉得,自己做的是一个小产品,好像比较难积累高端的项目经验。的确如此,你做的不是高端项目,就没办法拥有千万级并发的项目经验,也不可能在下次求职的时候,满足招聘方这方面的要求。这个要认,放弃掉幻想就好了。

事情的另一面是,你做小项目,会有更大可能,成为这个项目的负责人,进而拥有操盘经验。

就是说,当你负责的项目是普通的中小型项目时,你有机会经历项目的各个环节,从需求调研、市场分析、立项,到组建团队研发,再到上线、售后,你都能经历,同时你会产品部门打交道,跟客户打交道,跟售后、测试、客服团队打交道。这样一来,你就更容易掌控全局。相较于做大项目技术人员,这就会是一个明显的优势。因为做大项目的技术人员,往往可能负责项目中很小的一个模块,只见树木不见森林。

所以,你现在可以发力的一个方向是,努力往上走,让自己的负责范围更广,积累整个项目的操盘经验。

拥有了操盘经验之后,你就会去琢磨产品对客户意味着什么,对公司意味着什么,对团队里的每个人意味着什么……这样你慢慢会有更系统的思考,久而久之,会形成系统思考能力,拥有系统思考经验。

这是从项目经验这个方面来看,做中小型项目的好处,可以积累操盘经验和系统思考经验。

第二方面是要练好单杠。

什么是“练好单杠”呢?

就是助小项目,让自己在某一个专项技能上得到充分的锻炼。

具体来讲,有三类策略。

第一类策略是花式应用。

中低端的项目,或者规模比较小的产品,往往不需要太高深的技术。这种情况下,个人还想持续提升,就可以走花式应用的路子。

一个在多个模块都会用到的功能,我是不是可以用不同的方法实现?在这个模块,用这种方法实现,在另外一个模块,换一种方法实现。这样你就得到了不同的锻炼。

实现同一个类,这个版本我用这种API组合,下个版本我迭代一下,换一种更好的API组合。这样你就能实践更多的API。

这就是花式应用,尽可能变着花的锻炼某种技术中的知识点。

第二类策略是持续优化。

你可以从各个方面优化,比如如何让性能变得更好?比如代码设计能不能更优雅?比如程序能否更健壮一些?

原则就是,基于某一些细小的点,做更深入的研究和实践。这样子你会持续提升。

第三类策略是理解原理。

可以看一些原理性的书、课程,或者直接去研读源码,努力理解日常所用技术的底层原理。理解了原理,反过来你可以更好的运用这种技术。

另外,你还可以根据自己的项目特点,对用到的开源框架做一些改进。改进或优化一个开源框架,能够有效加深你对它的理解,可以极大提高你的技术能力

以上是练好单杠的三类策略:花式应用、持续优化、理解原理。

那些从小公司小项目中突围出来的人,多数都是因为练好了单杠,在某个专项技术上有了深厚积累,才找到了更好的机会。

第三个方面是横向拓展。

这块也有三种策略。

第一种策略是关注你所用技术的新应用新发展。

有时候公司的项目,使用是几年前的技术栈,迟迟不更新。尤其是一些业务型的公司,只要软件在客户那里不出大问题就不应用新技术。你想把JDK版本升一下,你想把那个开源框架的版本升一下,领导会说,只要不出事儿,千万不要动。这样就会出现一个问题,你一直在用陈旧的技术组合做项目,等你离开公司到市场上找机会的时候,就会发现目标岗位要求的技术自己从来没有用过。这是个蛮大的问题,妨碍你获得好的工作机会。

所以你需要关注所用技术的新应用新发展,跟上技术趋势

第二种策略是每年学一门新技术。

比如,每年学一门新的编程语言,或者每年学一种新的技术框架。注意,你不一定要把新技术运用得非常熟练,不一定要达到精通的地步。

每一种编程语言,每一种技术框架,背后都有一整套的思维模式,比如C语言背后的思维模式和Java就不一样,Java背后的思维模式和Golang也不一样。 所以你在学一门编程语言,学一种技术框架的时候,不仅仅是在学技术本身,同时也是在学这种技术关联的思维,可以习得看待技术或工作的新视角新模式。

这就是为什么你每年都要学一些新东西的原因——你要着学习新技术持续拓展你的思维模式。

第三种策略是构建技能组合。

你在工作当中用到了技术A,它通常和哪些技术组合在一起?它能不能和更多的技术组合起来,形成新的工具箱?这个工具箱,能不能解决更复杂的问题?

这些都可以勤加考虑。

即便你找到的技能组合,眼下的工作中用不到,也不要紧,你可以自行设计一个新的项目,业余时间做一做。这样的话,你对所用到的技能以及相关技能,可以有一个全面的认识,你的技能体系会更加完整。

以上是横向拓展的三种策略:关注所用技术的新应用新发展、每年学一门新技术、构建技能组合。

好啦,这就是想要持续提升专业能力的三个努力方向:积累项目经验,练好单项技术和横向拓展。当你不得不持续做缺乏挑战的项目时,可以试着用用它们,一方面可以避免自己成长停滞,另一方面,也可能因此找到更好的工作机会。

声明:本文观点仅代表作者观点,不代表MBA智库立场。
2+1
安晓辉

微信公众号:安晓辉生涯(ID:programmer_sight);作家,职业规划师。

取消收藏
工作环境  目标  岗位  技能  能力