职业规划并非易事,多角度思考才能找到方向

职场话题 0 40

好吧,这篇文章已经欠了好久,今天来补一补。

职业规划并非易事,多角度思考才能找到方向

主要也是因为自己也是一直没想清楚,从打算想写这个到后面思考的一段时间,其实自己的感受和思路也发生了很大的变化,前期因为各种不顺利就比较容易偏激,现在慢慢冷静下来了,也能从多个角度来看问题了,思路就一直在变化中。所以职业规划这个东西,真的不是这么好规划的,今天我写的,大家也就权当是个参考了,为了避免写成心灵鸡汤,有些可能会写的比较无奈,但是我始终坚信,鸡汤除了补一补是没有实际用处的,所以该面对实际的还是得面对实际。

然后说个前提,因为我们都知道人跟人的差距是很大的,所以我今天写的不是针对那前 5% 智商特别高,学啥都特别快,坐一趟飞机就能掌握一门语言的人,当然也不是那种体力特别充沛,一天就只需要睡 4 个小时,第二天就可以神采奕奕的人,这两种人不是不需要规划,而是我这种水平哪里轮得到去规划他们。

今天说的是智力和体力都在大众平均水平上下波动的人,通俗的来说,也就是普通的程序员。下面就从几个常见的范畴来讨论这个问题:

大厂还是进小公司

这个问题我觉得没什么可讨论的,条件允许的话,尽量进大厂。有人会说进了大厂可能只是螺丝钉,每天干着重复的工作,没有机会接触到核心的内容,进了小公司,有可能从头开始跟着公司一起成长,能接触到的面也比较广,这个论点有没有错,当然也没有错,也很有道理,但是就像我说我们不讨论智商前 5% 的人是一样的道理,任何事情,都是一个概率。

理性的分析,小的创业公司,真正成功的概率有多少,基本跟摸彩票的概率差不多吧。虽然进大厂有说到的做螺丝钉的问题,各种中台技术也非常成熟了,但是你进去了,至少机会还是多很多,我就从这几个方面来说:

那么你说,我的技能上可能暂时还进不了大厂怎么办,折中的办法是,挑选流程清晰,规范的小公司,技术负责人看起来至少要条理清楚,也就是整个研发流程不那么乱的公司,至于后面能不能发展,很多时候也不是技术决定的,就赌赌你的人品吧。

选择什么语言

虽说程序员是应该不受限于语言的,但是大多数人也不可能频繁的更换开发语言,大多数可能是有一门最擅长的,然后也兼容会其他语言。毕竟每门语言入门都是容易的,但是要精通还是要经历深度的学习和实践的考验的,如果拿自己只是刚会的语言,和这个领域里已经经验很丰富的人去竞争程序员的职场规划,也是没什么竞争优势的。所以那门擅长的语言的选择其实也是很重要的,这决定了你在这个行业里的生命周期。

我记得我刚实习的时候,主管让我在两个项目里选一个,一个就是 Java 的,一个是 Unix 下 C++ 的,当时 Java 其实出来没几年,懵懂无知的我选择了 Java,只能说是运气好,并不是当时我有什么过多的想法,单纯因为 Java 比较简单而已。

事到如今,虽然大多数人都觉得 go 会替换 Java,但是我基本可以打赌,至少在未来十年内,Java 依然会是大型互联网公司的首选语言。具体原因我就不在这里阐述了。

那么问题来了,选择语言的标准究竟是什么,你们会以为我说选新的吗?no!我要说的,是,当当当,选简单的!其实我当年还是很想选 C 的,心里总是觉得学好了 C,学其他语言不是很容易吗?但是当时只是从职业化的角度去考虑,毕竟去公司不是学习的,是要产出的,万一选了个 C++ 的,搞砸了,那不是对初入职场的人来说不太好么。

事到如今 C 依然是最烧脑的语言,也不是说他没有应用场景了,但是从实际的就业来说,其实机会真的不是那么多,不是写 C 的人有问题(一般选择 C++ 的大多还是程序员了里顶尖的一批),而是整个生态圈的问题。

越是复杂的语言就越极客,这会导致进入的人变少,整个圈子就是几个高智商的人在玩儿,而这样的人的特点就是满足自己极致的发挥就好了,很少去考虑打造整个生态圈和工程体系。而只有入门简单的语言,才会有大量的开发涌入,这时候开发队伍层次不齐,大多数公司或者团体就会考虑打造底层框架,打造生态圈,打造工程体系,让基础的开发人员只要关注业务编码就可以了,而由于大多数程序员的涌入,招人也相对容易,价格也相对便宜,这才是企业要的东西,所以会发现越看不上的语言,发展的还越好(比如 JavaScript 能发展到今天的地步,是很多人大跌眼镜的一件事情,这里没有贬低 JavaScript 的意思,只是相对来说脚本语言的入门门槛还是相对低一些)。

有人就出来反驳了,那世界上最好的语言 PHP 呢,呵呵,你也不要看不上 PHP,人家发展的也很快,现在的性能也不错,而且很多小公司的技术栈还是 PHP,对老板来说,还是最实际的选择,虽然被调侃为世界上最好的语言,但是人家基本上也是可以经久不衰的,而且你要是用 PHP,业余时间找个兼职做做其实比 Javaer 还是容易一点呢。

所以我个人比较偏激的选择就是选择简单的语言,不要去选择太复杂的语言。

选深度还是选广度

这个不好一刀切程序员的职场规划,还得看你自己的能力和兴趣,如果就是对技术感兴趣,对业务和管理兴趣不大,那就选深度。如果对业务和管理更感兴趣,那就选广度。如果都可以,那么就看经济情况,牛市选广度,熊市选深度。好吧,最后这条这个建议其实挺没意义的,毕竟不论是深度还是广度都需要时间去积累,你无法判断等你积累好了,经济形势是个什么形式了。

就目前比较糟糕的经济环境而言,构架师会比技术总监需求量更大。但是不论哪种选择,我建议大家要不惜一切大家在 35 岁以前走上构架或者管理的岗位,如果 35 岁以后还是一般写代码的,不论经济形势如何,大概都是很麻烦的事情,毕竟中国的国情不同于国外,996 还是个常态,同样都是写代码,找年轻的不好么,35 岁以上就一定要有核心的竞争力,要不是技术特别牛,要不就是综合能力特别强,反正你光只能写一般的业务代码是肯定完蛋了。

另外就是两点小建议:

职业规划到底要如何规划

按照上面几条的建议,如果你刚毕业,或者还年轻,我会比较建议如下的职业发展:

选择大路货的语言先入门,学好基础的数据结构和算法,努力进入大厂。

在工作中不要只满足完成手头任务,业余时间多学习核心的代码库,不要太在意此时的工资和加班时间,只要能多方面的学习和了解就去做,争取在 1-3 年之内至少把你所处的产品线的所有业务和技术流程都搞明白,对使用的中间件技术也尽量的吃透搞明白,总之就是多学习,只要能学到新知识就不要错过。

三年之后选择你的方向,走构架方向还是走业务管理方向,并根据方向选择不同的学习路径,多实践,多尝试。不管哪个方向,最终极的目标就是对整体流程的熟悉度

3.1 比如你偏业务和管理的,你得搞清楚你的系统需求为什么是这样的,各个环节之间是怎么配合的,为什么能够运营成功,后期的维护流程是怎样的,技术上是怎么配合的,独立的服务之间是怎么组合的,这就需要除了完成技术功能,了解技术构架,还得多跟产品,运营人员沟通

3.2 如果你是偏构架的,那就要了解一些难度很高的技术场景,比如大促,整个环节,各个中间件是怎么配合的,各个部分的优化是怎么做的,而不是只了解其中一块。

持续学习吧,学习新的框架,学习新的语言,学习新的业务,毕竟这个市场变化太快,不学习就是淘汰。

题外话一:要不要 996

我的建议就是只要能学到新东西,不要介意 996,如果是重复劳动,就悠着点吧,控制一下节奏,留出时间来学习和锻炼身体。

题外话二:跳槽如何选择 offer

按照上面的建议,在毕业前几年,以学习东西为主,所以尽量以发展机会为主,薪资次之。后面几年,就要多考虑把你的经验变现了,能选择到薪资不错的又有发展前景的公司固然好,但是毕竟概率太低,实在不知道怎么选,就考虑毛爷爷多的,毕竟真的 35 或者 40 岁以后下岗了,有积蓄还是很重要的。

题外话三:面对焦虑怎么办

确实,现在的职场人士,不仅仅是程序员,都很焦虑。不过这里要心灵鸡汤一下,你焦虑,是好事,说明你遇到了困难,遇到困难就能逼迫你去学习和成长。

反而你每天都觉得工作已经可以安排的紧紧有条,可以抽时间健身,幸福生活的时候,你得警惕,毕竟中国还是个高速发展的时期,你活的太舒服,未必是好事。

但是又要反过头来说,即使你再焦虑,也记得要锻炼身体,毕竟工作做不完,不管 35 岁以后是什么状态,留一个好的身体永远是不错的选择。

题外话四:未来程序员这个工种会如何进化

对于这个话题,我个人比较悲观,未来将有一大批平庸的程序员被市场淘汰。随着云计算的兴起,底层的构架和基础中间件都可以通过购买服务获得(比如我之前需要一个图片比对服务,要是自己做不知道要耗费多少人力物力,结果去阿里云,百度云找找,现成的都有,便宜,效果还好,你猜老板会怎么选择)。

所以未来的程序员要不就是往底层基础架构发展,提供基础服务(你得先掂量一下,有没有搞人工智能,算法,基础设备的能力),要不就是整合能力特别强,迅速的能整合各个基础服务,懂业务,懂运营,分分钟能利用已经打造好的轮子拼出业务系统来。

再加上 SAAS 的崛起,可能未来企业对于程序员的需求是真的会越来越小。

所以程序员的竞争力在哪里,要不就是你有别人不具备的技术能力,要不就是你有综合的业务和技术整合能力,根据你自己的特点,选择吧,骚年~

还有,再补一句,以上各种都是针对打工,如果你的想法是创业,那就另说了。

相关推荐: