热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

大龄程序员出路

目录背景路径一:横向发展成为高阶程序员,甚至技术专家路径二:转型技术管理路径三:转型产品经理路径四:转

 

目录

背景

 

路径一:横向发展成为高阶程序员,甚至技术专家

路径二:转型技术管理

路径三:转型产品经理

路径四:转型项目经理

路径五:选择创业

总结 

参考



 


背景

2020年春节冠状病毒肆虐华夏大地,特别是湖北省武汉市尤为严重,随着疫情的不断蔓延,友邦全力支持和神州儿女八方支援武汉,有俄罗斯,日本和一些东南亚国家相继伸出援助之手,身在美国李开复,哈佛8剑客科学家等仁人志士爱国人士,相继回国支援武汉。相信在不久将来国人一定能战胜病毒,还武汉,中国,世界一个无病毒之武汉,中国,世界。

疫情持续肆虐,各大公司相继多次出台春节后职场人员推迟复工时间,毕竟人命关天 ,但是人也要吃饭,也要生活,公司更需要生存,所引各大网络媒体相继爆料复工后,相继会出现裁员潮流,以求生存下来。

程序员就是吃青春饭的,HR在招聘时非常在意程序员的年龄,稍微大龄点的程序员直接都会pass。所以大龄程序员一旦离职找工作就会变得艰难,面对年龄很多程序员都表示束手无策。


 

假设你已经从事程序员这个工作有一段时间,对这个行业有了一定了解,也许你觉得你已经是这一领域的大牛,也许你觉得你还有很多不足,但是不管你当前的位置如何,你都面临着一个同样的问题:接下来自己该怎么走?

换句话说,你要考虑的不是某个函数的代码怎么写,也不是接下来一个项目流程图怎么画,你要考虑的是,未来 10 年、20 年,你该何去何从。

这就是职业规划,恭喜你,如果你能够考虑到这个层面,意味着你开始认真思考自己的人生了,这是一个好的开始。

程序员的职业发展路径并不单一,甚至要比其他职业有更多选择,你可以选择在程序员的道路上持续走下去,也可以转到管理岗位,也可以选择成为产品经理或者项目经理,这些职业发展路径都是程序员这个职业的延伸,你需要付出一些努力,也要接受一些改变,但是绝不是从零开始。

接下来,我们就分别介绍这些不同的发展路径。

 


路径一:横向发展成为高阶程序员,甚至技术专家

 


成为更高阶的程序员,这是最直接的发展方向,也是大部分程序员的选择,这就像是一个游戏,通过不断完成更有挑战的任务,获得级别的提升。

每个成熟公司都会有级别划分,比如,刚招募的大学毕业生是「初级软件工程师」,工作一两年之后,会被提升为「软件工程师」,再工作几年,会被提升为「资深软件工程师」,当能力和影响力进一步提升,成为「首席软件工程师」……我这里只是举了一个很粗略的层级晋升制度,实际上每个公司的层级数量要多得多。

这样的晋升制度,是程序员职业生涯的一部分,但不是全部,等级制度只是为了方便管理,一个「资深工程师」头衔的工程师未必能力就比「软件工程师」更高,这一点我们首先要有清晰认识。当然,我们应该努力提升自己,向更高级别迈进,因为这样我们在团队中可以获得更大的话语权,也可以获得更多的薪水,但是,我们不要买椟还珠忽略了关键,职业发展并不只是与资历和金钱相关,更多的是关于你的能力和影响力,这很重要。

如果你身处成熟型公司,你需要去阅读一下公司对各个级别程序员的职业要求,如果你找不到,就去找管事的 HR 要,公 司 HR 必须对每个级别的要求有一个明确定义,这种定义将指导你如何提高各方面的能力和影响力。

如果你身处创业型公司,或者你所在公司真的拿不出像样的级别定义,那么,可以参考下面的级别定义:

初级程序员,掌握基本的编程技能,但是需要别人的辅导才能完成给定的任务,不能独立自主完成项目。程序员应该尽早超越这种状态。
中级程序员,能够独立完成一个特定领域的项目,知道如何安排优先级,知道如何处理预料不到的情况,靠谱完成任务。 -
资深程序员,可以融会贯通各个领域,不光可以完成任务,还能够影响一个团队,帮助整个团队完成任务。
首席程序员,不光可以影响一个团队,还可以影响一个公司或者大部门,可以对程序员团队的工程策略进行指导,保证整个大团队都按照最合适的实践方式前进。
合伙人级别程序员,这可能是程序员职业的顶点了,你的影响不只是一个公司范围内,而是整个行业范围内,你的工作是开辟新的领域。

要注意,并不是说在互联网上吵吵的网红就是这种级别,能达到这种级别的是 Linux 这种开创某个领域的人。
从上面的级别描述可以看出,每一个级别有两个关键元素,一是「能力」,另一个是「影响力」,能力代表你一个人能做什么,影响力代表了你能够让别人做什么,以及你能够影响多少人。

程序员段位的成长,其实就是提升自己「能力」和「影响力」的过程。根据上面级别能力和影响力的描述,你可以衡量你目前居于什么级别,就知道自己下一步应该到什么级别,对应发展自己相关的能力和影响力。比如,你此时只是「中级程序员」的水平,就应该有目的地培养自己影响其他人的能力,着眼点就是自己所在的团队,不只是自己要做好,也要让自己的组员能做得更好,当你达到这个目标,你才能升级为「资深程序员」;当年你成为「资深程序员」,你就需要考虑更进一步提升自己的知识储备,影响一个大部门甚至整个公司。

坦白地说,并不是每个程序员都会攀到最高阶程序员的级别,判断自己是否适合沿着这条路一直走的方法很简单,就是问自己一个问题:我愿意从事编程工作到多大年纪?

对于这个问题,我个人的回答,还有很多工作到很高阶程序员的回答,都是一样的:我愿意编程到退休。因为我们有这样的热情、有这样的信心,所以才有动力在这条路上一直走下去。

不过,你的回答可能是「我只想编程到 30 岁」,或者「我会编程直到被提拔为经理」,这样的想法完全是没问题的,毕竟认识自我、根据自我需求选择不同的职业道路,是对自己的一种负责。接下来,我们就要介绍除了攀登程序员高峰之外的职业路径。


路径二:转型技术管理


和其他任何职业一样,程序员也是需要被管理的,而管理程序员的最佳人选,当然就是曾经从事过程序员工作的人,有这样的需求存在,不少程序员转型去成为管理者也就不足为奇了。此时此刻,你抬头看一看你的直接上司,他很大概率就是从程序员转过来的管理者。

我在创业公司的时候,担任的是管理者的角色,其实我更愿意当一个程序员,之所以去做管理,一个主要的原因,就是因为我发现团队并不是自然而然完美运转的,这时候作为经验更丰富的我,就很自然觉得有责任站出来,把团队塑造成更好的形态,这就是成为管理者的初心。开始管理之后,我很快发现,管理的世界就是处理各种各样意料不到的情况,很难安心下来自己编程,但是,如果把工作心态从「我要做好」改成「我要让大家做好」,一切就很顺畅。从结果看来,我作为管理者做得还不错,在两年的时间里,产品总是能够按时上线,团队也没有一个人员流失。

一个程序员看自己是否适合成为一个管理者,主要就看是否不满足于只做好一个人的事,是否有带领其他人取得更大成绩的意愿。

从程序员转变为管理者,决不是编程比其他程序员编得更好就行,自己做程序员,和管理程序员完全是两码事。目前行业还是普遍缺乏对管理能力的培训,所以,一些公司会让一些出色的程序员仓促成为管理者,但是实际上他们没有准备好,这样给团队和个人都会带来很多问题。所以,如果要转型成为管理者,请先问自己这几个问题:

我是否更愿意处理琐碎的管理工作,而不是长时间专注在编程上?
我是否更愿意帮助别人完成任务,而不是事必躬亲自己完成? -
我是否认为只有团队成功,才是真的成功?
只有你对上面三个问题的回答全部都是肯定的,你才从态度和心理上做好了成为管理者的准备,因为成为管理者之后,真的大部分时间都在处理琐碎的工作,你没有多少时间亲自动手编程了,因为总会发生各种各样的意料之外的事情,处理这些事情才是管理的常态;而且公司评判你工作是否做得好的标准,完全看你所领导的团队的业绩,你一个人编程能力如何已经不重要了,做程序员的时候,你的成功就是你自己的成功;当你成为管理者的时候,你的成功必须是整个团队的成功。

千万不要因为觉得「当经理赚得更多」或者「当经理就是人上人」就去做管理者,没有做好必要的心理准备,你会失望的。

上面说的还只是成为管理者的态度,只是进入这个新角色的敲门砖,并没有涉及管理能力。管理学有很多公开课程,更多在实践中去学习,不过,有一条管理的精髓请记住:没有放之四海而皆准的管理方法,管理的奥义就是具体情况具体分析,不同的场景用不同的管理方法。


路径三:转型产品经理


雷军在小米的第一定位不是 CEO,而是首席产品经理,从马云的名言,「成功的企业一定是靠产品、服务的完整体系」可以看出,在互联网行业,产品经理的作用是非常重要的。雷军本人也是程序员出身,但是他很快不满足于只是实现别人给的需求,而是要自己亲自来定义产品应该如何表现,很显然他找准了自己应该走的道路。

判断自己是否适合成为产品经理,就看自己是否不满足于别人设计出的产品,对于怎么设计产品有自己的认识。

产品经理的职责是定义产品需求,在我国 IT 圈中,流传着很多产品经理和程序员水火不容的故事,这些故事并非意味着这是相克的两种岗位,这些冲突是因为两个位置上的人互相不理解。从这个意义上说,程序员转型为产品经理具有天然的优势,因为他们更懂技术人员的思维,在和程序员的交流沟通中,更能照顾到程序员的体会。

业界曾有这样一个故事,产品经理和程序员打起来了,因为产品经理给 iOS 程序员提了一个功能需求「识别手机壳的颜色」,这样缺乏技术常识的需求,很容易激怒程序员,从而引发冲突。而一个有程序员经历的产品经理,具备基本的技术思维,绝不会犯这种错误。

如果要转型为产品经理,思维方式必须完成下列转变:

程序员关注的是「怎么做」,产品经理需要回答「为什么要这么做」;
程序员追求技术的卓越,产品经理要把给用户带来的价值放在首位;
程序员看到的是具体实现方式,产品经理看到的是市场的风向。 坦白地说,适合当产品经理的人是少数,在你选择转型为产品经理之前,需要看自己是否能够完成上述的思维转变。



路径四:转型项目经理


项目经理和产品经理的责任不同,虽然在我国有些企业中,这两个角色很可能落在一个人身上,但是这并不是一个合理的做法,因为产品经理负责「做什么」,项目经理负责「以什么进度做」,如果一个人身兼两职,相当于一个人既当裁判又当球员,会制定出不合理的计划进度,也更容易和程序员产生冲突。

程序员转型为项目经理,需要具备这些方面的能力:

组织会议的能力;
协调多方进度的能力;
编写工作进度报告的能力。
我在微软工作的时候,有一个美国同事做项目经理做得很出色,后来我们知道她还是斯坦福毕业,在大学学的也是计算机科学,我们就很诧异,问她为什么不选择程序员职业而选择当项目经理,她的回答是:「我就是喜欢把事情安排得井井有条啊。」这句话给我的印象特别深,如果一个人要判断自己是否适合当项目经理,主要就看是否有意愿把团队的工作安排得井井有条。

如果你有很大的热情把团队的工作组织起来,而对于深入钻研技术没有多大兴趣,那项目经理是一个不错的转型选择。


路径五:选择创业

基本上算是重新起航,重新设定自己的目标,要有做回初心的心态。

直接选择创业,切换的更加彻底,直接从打工者变成了老板,同时身上担负的压力也会变大。而且创业属于低概率的事件,成功与否需要具备天时地利人和,里面还掺杂着运气的成分,所以能走通这条路的少之又少。绝大部分还是继续回到自己以前擅长做的岗位上来,继续发光发热。创业风险属于最高的,也是最难转型的。

程序员都有老去的那一天,提前给自己的做好铺垫,是每一个程序员都要去想去做的事情。继续玩转编程人生还是做个华丽转身,就看大家如何去做了。


总结 

铁打的能力流水的职场,只有不断的提升自己技能,并且居安思危,做到自律,自爱,自信,自强,就永远不会有职业天花板,人生不在给自己设限。


参考

http://www.imooc.com/article/279518

https://blog.csdn.net/weixin_43570367/article/details/103913267


推荐阅读
  • 本文探讨了Web开发与游戏开发之间的主要区别,旨在帮助开发者更好地理解两种开发领域的特性和需求。文章基于作者的实际经验和网络资料整理而成。 ... [详细]
  • RedHat 系统下配置国内 YUM 源以替代官方收费源的方法
    本文详细介绍如何在 RedHat Linux 中安装并配置 YUM 包管理器,并通过使用国内镜像源来解决因未购买官方服务而导致的更新源限制问题。 ... [详细]
  • 本文详细介绍如何在 Windows 环境下安装 Ubuntu 12.04 版本的 Linux 操作系统,包括必要的软件下载、配置步骤以及注意事项。 ... [详细]
  • JavaScript:简洁与复杂之间的平衡
    本文探讨了在编写JavaScript教程时,如何在保持内容简洁的同时,确保初学者能够理解并应用实际开发中的复杂问题。文章通过具体示例分析了不同层次的JavaScript代码实现。 ... [详细]
  • 本文探讨如何利用Java反射技术来模拟Webwork框架中的URL解析过程。通过这一实践,读者可以更好地理解Webwork及其后续版本Struts2的工作原理,尤其是它们在MVC架构下的角色。 ... [详细]
  • LCUI 2.1.0 版本现已推出,这是一个用 C 语言编写的图形用户界面开发库,适合创建轻量级的桌面应用程序。此次更新包括多项修复和功能增强,并正式宣布将启动 Android 支持的开发计划。 ... [详细]
  • 随着技术社区的发展,越来越多的技术爱好者选择通过撰写博客来分享自己的学习经验和项目进展。本文将介绍一个具体案例,即将一套原本运行于Windows平台的代码成功移植到Linux(Redhat)环境下的过程与挑战。 ... [详细]
  • 本文提供了在 Kali Linux 2020.01 x64 版本上安装 Docker 的详细步骤,包括环境准备、使用清华大学镜像源、配置 APT 仓库以及安装过程中的常见问题处理。 ... [详细]
  • 华硕主板BIOS更新指南(图文)
    本文详细介绍了如何安全有效地更新华硕主板的BIOS,包括准备工作、具体步骤以及注意事项。BIOS是计算机基本输入输出系统的关键组成部分,负责初始化硬件并加载操作系统,定期更新BIOS可以增强系统的稳定性和兼容性。 ... [详细]
  • 初探Java编程:从入门到实践
    本文旨在为初学者提供Java编程的基础知识,涵盖程序、算法、流程图的概念,以及JDK环境的配置和Eclipse的使用方法。 ... [详细]
  • 作为一名跨专业考生,最近在备战研究生入学考试的计算机编程部分。虽然没有编程基础,但通过九度在线教育平台的机试教程逐步学习,进展顺利。直到遇到贪心算法相关的题目,特别是浙江大学2012年的一道机试题——《加油还是不加油》,才遇到了挑战。本文将分享我在解决这一问题过程中的思考与学习体会。 ... [详细]
  • Ubuntu GamePack:专为游戏爱好者打造的Linux发行版
    随着Linux系统在游戏领域的应用越来越广泛,许多Linux用户开始寻求在自己的系统上畅玩游戏的方法。UALinux,一家致力于推广GNU/Linux使用的乌克兰公司,推出了基于Ubuntu 16.04的Ubuntu GamePack,旨在为Linux用户提供一个游戏友好型的操作环境。 ... [详细]
  • EasyMock实战指南
    本文介绍了如何使用EasyMock进行单元测试,特别是当测试对象的合作者依赖于外部资源或尚未实现时。通过具体的示例,展示了EasyMock在模拟对象行为方面的强大功能。 ... [详细]
  • 众包(Crowdsourcing)是指将任务分发给广泛的社区成员完成,而非由组织内部人员独力承担。这一模式在软件测试领域尤为突出,通过结合网络与云计算技术,形成了强大的众包测试机制,对传统测试流程产生了深远影响。 ... [详细]
  • OBS (Open Broadcaster Software) 架构解析
    本文介绍 OBS(Open Broadcaster Software),一款专为直播设计的开源软件。文章将详细探讨其技术架构、核心组件及其开发环境要求。 ... [详细]
author-avatar
乐土网6868
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有