软件开发工程师发展前景(资深工程师的5年工作感悟)
昨天晚上面试了一个工作五年的软件开发工程师,因为是当天最后一个,所以多问了几个开放性的问题,候选人自己正好也对自己之后的发展路线有不少的迷茫,我俩越聊越深,聊了将近两个小时。最后他非常真诚地说,不管这次是不是能应聘成功,都会对他今年的发展有特别大的帮助。
这个候选人面临的问题其实绝大多数人都会遇到,也包括当年的我自己:
经过初入职场的几年快速成长之后,都基本掌握了软件开发这个工种的基本套路:如何学习新知识、分析需求、解Bug、提升代码质量、排查线上问题。只要是软件领域的问题,都能发表一下自己的看法,再段位高一点的,开始慢慢地分析业务数据和用户行业,尝试着与产品撕B,甚至还能跟设计师讨论交互和视觉问题。
手头工作越来越熟的同时,看着周围那些比自己更年轻、更拼,甚至已经慢慢追上自己的后辈,对未来的迷茫也越来越大:走技术路线还是管理路线?技术路线的话,专注在哪个领域?管理路线的话,怎么能开始带人?怎么样让自己有更高的价值?怎么能增强自己的不可替代性?
以上,我统称为软件开发工程师的五年之惑。
软件工程在中国真正的大规模发展也就是最近十年几的事,这个行业太年轻,既让从业人员享受了高速发展的红利,也因为未来的路没有借鉴而忐忑。而不管是过去的高科技化,还是再如今互联网的996、35岁危机,年轻人都会被舆论带着,给这个行业,给自己,打上一个又一个的标签。而上面提到的“五年之惑”,有很大一部分正是来自这些标签。
我自己也碰到过这样的问题,庆幸的是突破了:
我在刚入行三年时,曾经有段时间陷入过自有怀疑,因为我发现,自己通过CSDN掌握了一个Android系统API的高级特性如何使用之后,刚打算沾沾自喜显摆一下,而隔壁刚毕业的学生碰巧也看过这个东西,我知道的他都知道,甚至因为英文比我好,爱读官方的API说明文档,还友好地纠正了我一个认识不到位的细节。
那时我就常常想,我目前所掌握的这些技能,全部是更年轻的人靠更多的时间更聪明的头脑,用比我更少的时间就可以做到的。软件开发这条赛道上,我所追求的不可替代性在哪里呢?
后来借移动互联网的人才红利,偶然机会进了业务高速发展中的互联网大厂,见到了之前从未想象过的优秀组织,做事务实、聪明而讲方法的同事,跟他们共事了两年之后,我突然发现自己充满了之前从未有过的自信。
不是对系统框架、API、中间件等基础能力更深入的掌握,也不是那些看似高大上的工作用语,而是面对软件开发领域中的任何问题,都可以从工具箱中找到对应的方案去应对。至于那些花样不断翻新、更新速度越来越快的中间件、开源框架、设计模式,每遇到一个新的,花上几个小时读读官方文档基本就清楚了它要解决的问题、适用的场景、基本逻辑、优缺点等,让自己的工具箱多一个选择。
干工作时,对老东西不再嗤之以鼻,对新东西不再莫名地恐慌,而是从需求源头开始,一步步地推衍到架构、资源、节奏,并根据各方反馈及时调整。
好了,看我说得有点高深莫测的样子,你以为那个时候我就很厉害了么?实际上还是个一线开发而已,只是大家都知道我能力强,需求方见面聊天都捧两句,称呼一声“技术大牛”而已。
直到一个新产品立项,我因为之前攒下的一点薄名而被推荐去组建技术团队开始,才慢慢走上技术管理的岗位,接触大量技术之外的信息。经过被各方一轮又一轮的信息灌输之后,从开始幼稚的应对到后来的驾轻就熟。
故事讲完了,接下来通过讨论两个经典问题,来剖析一下“五年之惑”:
第一、技术和管理路线。
这个问题就像很久以前的Java、C++哪个更好一样,在无数软件开发工程师的脑子中盘桓,事实上这是个绝对的伪命题。因为工作当中,我们自己能掌握的只有让自己的能力不断锤炼、提升,比如:
以做技术方案、Coding、排查问题为代表的技术实战;以分工、沟通、推动为代表的团队协作能力;在了解市场、客户、用户的基础之上,让做的事情更有实际价值的能力。随着参与的项目越来越多,复杂度越来越高,链条越来越长,环境的要求越来越高,这些能力都会不断成长。
当然,因为学校、学历、机遇、智商的不同,能力成长有快有慢:
有的人在一个又一个的小公司中重复地做着那些几个月一个的新项目,每天和CRUD奋斗;有的人一毕业就进入大厂的核心业务,哪怕线上只改几行代码都要考虑到未来的扩展,动手之前先得做一份几百、上千字,夹杂着需求分析、架构分析、性能分析,还有一些链路图、流程图,以及各种异常逻辑处理的技术方案;还有人进了个小公司,但几年间规模扩大了无数倍,被用户、客户们逼着,每天都要解决很多未知领域的问题,当有一天公司突然发通知说要上市了,才发现自己在不断解决问题的同时,已经摇身一变成了这个领域的专家,网上随便找个地方实名认证一下,说两句莫名其妙的话,都会被一堆人捧。
但说到底,个人能力是公司环境、个人奋斗互相影响的一个结果,而能否走到管理路线,成为传说中带很大团队的Boss,则纯粹是靠机遇了。
我跟一个小朋友聊天时曾经举过一个例子,把王思聪、孟晚舟放到跟我们一样的环境中,照样也得沿着一年初级开发、三年高级开发这样的路径来成长,但再之后的路径就不一样了。假如我有个爸爸叫王健林、马化腾、马云或者任正非,把我放到他的公司从最基层干起,一、两年升一级,每到一个新的级别之后,可能都要经历一次从一脸懵逼,到慢慢地勉强应对,再到最后的从容不迫,但工作十年之后做到真正的高管是完全没有问题的。
拿王思聪来说,毕业回国之后,老爸拿出几个亿让他练手,不管是关心娱乐圈子、玩电竞还是做直播,就算最后一地鸡毛,最终收获到的应对那类问题的经验可以让他变得越来越成熟。只要智商中等以上,练上十年变成一个成熟的投资人或者创业家是没有问题的。
回到软件开发这个领域,一年到五年这个阶段,是菜鸟成长为老鸟的机械性成长阶段,大家以同一个速度成长,但再那之后能不能变成高段位的“技术大牛”或者“管理层”,取决于环境和机会。所以,对身处其中,普普通通软件工程师一枚的我们来说,努力突破到更好的环境,或者争取到更好的机会是最重要的。
过去十几年互联网的调整发展造就了一个辉煌的产业,将大量幸运的年轻人推到了聚光灯下,而后面的成熟、衰退期阶段,那样的机遇会越来越少。我们要做的是寻找下一个新赛道,比如,产业数字化、全球化、新能源汽车等等。
第二、个人价值和不可替代性。
曾经的电工、土木建筑工程师也一样是社会的高薪人群,但都随着时代大潮,在聚光灯下提桶跑路,什么时候轮到软件开发工程师呢?我虽然对软件开发工程师这个工种的生命期很乐观,但这本质上依然是个经济上的供需问题。
没有人是不可替代的,我们能做的无非就是持续增强自己的竞争力:年轻时,选一个高潜的赛道,获得高溢价的待遇;五年之惑时,找一个好的平台让自己遇到更多更优秀的人,处理更的问题,成长为领域内的“技术大牛”。
步入中年时,如果有好的机遇成为大厂的中层、高层,或者中小公司的决策层,衣食无忧,家有余粮,不惧经济形势变化。如果一直没有机遇,混迹基层,在工作和生活之间努力寻找好平衡点,可以预见的将来,软件开发领域十年白银时代可以混饭吃是不成问题的。
至于传说中的铁饭碗,大众的真实生活中,那种人是不存在的。
本文来自网友投稿,如有侵权请发邮件给job969#foxmail.com删除,注明:https://www.969job.com/dongguan/7603.html