竹笋

首页 » 问答 » 环境 » 关于程序员职业规划的思考
TUhjnbcbe - 2023/3/18 19:43:00

一、前言

职业规划这个词,最早是从刚毕业就开始听老师讲,但那个时候对一切都充满好奇,初生牛犊根本停不下来仔细的思考下职业的路。但是截止到现在已经工作6年,这期间换了几家公司,也换了几个方向,甚至换了一门语言。。。

看起来似乎没什么问题,但是自己却变得越来越焦虑,焦虑下一份工作的方向,焦虑自己不能指导新同学业务的发展和演进,焦虑自己的视野不够宽广,不能站到足够的高度去俯瞰团队做的事情。。。

程序员职业规划

带着焦虑和疑惑去寻找答案。向从业多年的大佬请教过,也跟身边的朋友屡次聊到深夜,到底该怎么走才是正确的,或者适合自己的路呢?没有绝对的定论,但是一些探讨的结果还是应该被记录下来的。

二、思考内容

1、“深耕”某个领域

我们在看那些大牛的自我介绍,除了光鲜的履历,一般都会有一句话,“深耕xx10年”,这个深耕是代表人家一直从事相关领域,在这个领域积累了足够多的经验。俗称从0-的过程。

我们在就业前期,每次重新找工作可能都会涉及到方向的转变,企业也会看在你还年轻的份上,给你这个转换方向的机会。但是随着年龄和资历的提升,一直做从0-1或者1-10的事情,那么就会有一个结果。

1)去一个新公司,从事自己做过的方向0-10

2)同事们可能是一直从事这个方向,经历了0-或者0-

3)那么相对来说,不管是当领导,还是掌握核心业务,一开始我们就会输在起跑线

以上的思考警示我们,不要一直换方向做捡了芝麻丢了西瓜的事情。身为一个技术人员,对新技术和陌生领域的渴望都会很强烈,但是频繁的因为新方向和新领域而跳槽,那么带来的后果就是,这个人看起来什么都做过,经验很丰富,但是真正擅长的方向一个都没有。

那么在后续的找工作中,一些要求在某个领域“深耕”五年或者十年的岗位,基本与你无缘,而这些岗位恰恰是最适合年龄30+的你。不然呢,还去和那些工作1-5年的新同学竞争吗,除了经验丰富一些,大家的都是有0-10的水平,为什么不要年轻小伙子而花大价钱招你呢,年轻小伙子性价比多高啊。

2、“深耕”的是方向,不是纯技术

什么是纯技术,是两耳不闻窗外事,一心只做底层的程序员。这些程序员,可以理解为内功深厚,不管是哪个领域都可以搞,但是涉及到“业务”的地方可能又是知识盲区了。并不是说做纯技术不行,只是针对大部分程序员来说,都是做“业务”出身,没那么多机会去做纯技术。

什么是“业务”,是支撑实际业务发展的能力,是知道公司的发展方向以及未来战略方向,并通过不断的技术演进去提供相应的能力。俗称“CURD”

比如:

通过从0-1的技术框架实现mvp产品支撑公司业务初期的探索。(单体架构)

通过1-10的技术演进,支撑公司产品用户量递增带来的压力。(soa架构)

通过10-的业务模块拆分支撑公司产品越来越复杂的业务体系(初级微服务)

通过-的服务治理和全链路检测,基础能力建设来保证公司产品的稳定性。(成熟微服务体系)

是的,以上这些是我对技术业务的理解,我们要“深耕”的就是这块。技术架构的演进离不开产品体系的业务,我们经历这个过程,明白公司产品所在领域的发展过程和趋势,可以为后来新公司的相关产品提供成熟的建议和指引,这就是“深耕”带来的意义。走到这一步,只要是在这个领域,不管是去哪里都能混个专家当当了。

3、不要忘记了自己的基本盘是什么

这个也是朋友给我的建议,让我能在“技术诱惑”中明白自己的优势和基本盘,感谢我的朋友。

身为前端,基本盘是cover各种前端需求的能力,加分项是懂后端语言或者有后端开发经验。

身为后端,基本盘是cover各种服务端需求的能力,加分项是懂前端或者懂c++等偏底层的语言。

如果一个前端工作了3年之后,有机会转后端去了,那么相比同龄的后端,你的优势是什么?人家从毕业就做后端,三年后端经验。而这个前端呢,可能有三年前端经验1年的后端经验,对于后端岗位来说,当然是3年后端的竞争力更大一些。

对于后端开发人员来说,也是这个道理。**可以提升自己的加分项,但是尽量不要忘记自己的基本盘是什么。**当然,一心想换方向也可以的,毕竟我们能开心的工作是最好的。

4、提升软实力

技术成长到一定程度,基本上可以cover所有的需求,但是然后呢?要如何继续往上走呢,比如成为一个领导,比如成为一个团队负责人?

记得曾经看过的一篇文章,说阿里对p9的要求是有一年的战略预判,可以为业务的发展提供方向。我们不是p9,也不需要那么高瞻远瞩,但是基本的一些软实力还是要掌握的。

个人理解的软实力包括:

(1)业务能力

熟悉公司的业务或者所处领域的业务,了解上下游部门的业务,可以思考如何通过技术演进来支撑或者反推着业务前进。

(2)表达能力

这里的表达能力体现在如何清晰的表达自己的想法,我们不能总是低头写代码,学会表达自己,哪怕是通过写文档画图表达你的技术牛逼,写ppt表达你的高瞻远瞩,会议发言表达你的心思缜密,会议总结表达你的善于总结,都是ok的

(3)沟通能力

了解团队的成员并去和他们积极沟通,给他们想要的或者规划前进的方向,终极目的是可以充分发挥团队的战斗力,俗称为团队赋能,从而去实现你对于团队的一些规划和目标。

1)项目管理方面

沟通能力也意味着推动能力,push上游不要阻塞,push下游不要延期,push技术需求的落地,push团队目标的前进等等。见过太多埋头技术的同学,腼腆且寡言,面对跨团队的项目合作处处碰壁,或者暗自委屈。或许让自己的脸皮变厚,少考虑“人情”多按照规矩办事会轻松很多。

2)团队赋能方面

重要的是分析团队的属性。比如:

大厂的团队比较成熟,那么你需要做的是跟踪观察和做出适当建议即可,不需要过多干涉。

反之如果是团队成熟度低,可能团队成为的能力没那么强,那么你就需要有强大的专业能力可以直接给与指导,解决难题。

(4)向上管理能力

本来对于什么是向上管理一直不太理解,一直到跟一个大佬聊天,大佬说自己是如何向上管理的呢,不外乎就是换位思考,做领导想看到的事情,汇报领导想知道的事情,帮领导完成他的战略目标。听起来很简单,可惜我们年轻的时候总是太过自我,反而会忽略这一点。但是社会总会教会我们什么是人情世故。

三、结语

想到哪里写到哪里,这只是博主的一些思考,也许不对,也许片面,但至少代表此时此刻自己的一些想法。希望能践行自己的思考和结论,过几年再回头看看此时是否太过幼稚。

————————————————

作者:铁柱同学

来源:

1
查看完整版本: 关于程序员职业规划的思考