当前位置:首页 » 新媒体运营 » 正文

程序员职业发展路线,程序员职场发展全路径

4895 人参与  2021年12月03日 10:25  分类 : 新媒体运营  评论

大多数程序员都不懂得如何规划自己的职业生涯,他们大抵知道程序员晋升路线是初级、中级、高级、管理……当问到自身规划时,大多数人总是从学好语言、算法,多做项目等回复

不同发展阶段的程序员

在程序员的职业生涯中,一般会分为三个阶段:初级程序员、中级程序员、高级程序员。

不同阶段的程序员对应不仅仅是工作经验的区别,更重要的是所掌握能力、所处环境,以及需要思考方向等区别。

  • 初级程序员一般是职场早期、打基础的时期

在这一阶段,初级程序员最重要的三点是:

必须懂技术,有至少一技之长;
必须建立起属于自己的人脉;
必须有韧性,具备失败了再战的能力,没有失败,何以谈成功。

第一点很容易理解,当了解自己所处岗位之后,就需要迅速搞清楚自己这个岗位需要的专业知识、技能。刚开始可能仅限了解,慢慢还需要精通。

除此之外,IT行业一向有日新月异的特点,技术更迭迅速,需要程序员了解的技术就越多。

迄今为止,关于软件开发我最常被问到的问题就是:“我该怎样入门XX技术?”

在生活中,真正开始做某事的最大障碍无外乎“如何起步”。其实并不难,比如你想学一项新的编程语言,找资源学习语言的基础知识,有一定了解之后,就可以开始尝试着用它去解决一些实际问题。

除了通过”学-做-学”的方式获取技能,在知识量无比丰富的当下,筛选知识也十分重要,那些被你判定为仅需了解的知识,只需要浮光掠影般地做一下全景式扫描,以便遇到的时候不至于不知所措。

第二点是建立人脉,这是一件任何一位寻求工作的人都应该做的事情,尤其需要做好这一点。

确保你积极参加社区活动,如参加技术会议、加入开发者组织等。努力与那些不同公司(你可能想在这些公司里找到一份工作)的人建立良好的人脉网络。

最后一点,作为一个初入编程世界的新手,你会遇到职场早期的迷茫,甚至各种不成功的尝试......

比如不知道如何运用自己所掌握的技能,看不懂别人的代码,改不好Bug、不懂新技术、不会拆解需求......

千万不能被这些挫折打倒,如果一打就趴下了,开始怀疑自我,这样会在职场后期品尝退缩带来的无奈,和对他人成功的羡慕嫉妒恨。

要开始调整自己的心态,提升自己的适应和整合能力,而不仅是关注自己的技术和韧性的打造。

初级程序员这个阶段会根据每个人的适应性、态度、个性等原因,大致在步入职场后的~年。

“脚踏实地,仰望星空”这句话特别适合这个阶段的程序员,一方面要勤勤恳恳的写代码,积累编程经验,另一方面还要时刻关注行业动向,根据市场大环境及时提升自己。

这个阶段越往后走就会越顺利,~年其实很快,但程序员完成新手的蜕变,需要在短短几年内拥有可观的技术储备和基本的职场生存经验。

  • 中级程序员一般是职场飞跃期、规范化的时期。

这个阶段的程序员,就不只有技术这一张底牌了。经历三五载的蜕变,程序员逐渐在职场稳住脚跟,这个时候,技术并非最重要的了。

在这一阶段,中级程序员最重要的三点是:

必须善于与人相处、学会和同事、老板的相处之道;
必须学会管理团队;
必须有全局观、会整合资源。

很多人会觉得程序员的工作很单纯——和电脑打交道,但到了中级程序员阶段,你的工作远远超过编写代码。

事实上,在长期的职业生涯中,你所能取得的最重要的成就受软技能因素的影响比受你所编写的代码的影响更大,例如,如何与同事相处,如何沟通你的想法,如何与老板打交道,如何要求加薪,如何处理绩效考核,甚至如何着装。

当然,这并不意味着即使你的代码写得再糟糕,只要做一只趋炎附势的应声虫就可以侥幸成功,而是说,在做技术领域工作的时候,你不得不仔细关注其中的社会动力学因素。

除此之外,这个阶段的程序员往往开始逐步晋升为领导者,有小团队要带领。那么,成为一个高效能的领导者就非常关键了。

只有一种方法能够成为高效能的领导者,那就是以身作则

太多的“领导者”想坐在象牙塔里高高在上地指挥他们的军队。作为一个真正的、以身作则的领导,你必须自愿在前线、在战场上身先士卒,自愿去承担一些困难的、枯燥的甚至是你的团队里没人愿意去做的工作。向他们表明:即使是最单调乏味的任务,你也能做出高品质。

和初级程序员相比,中级阶段的程序员已经逐步脱离单项技能的输出了,需要依靠团队协作或者带领团队完成更具挑战性的任务。因此,需要拥有全局观和整合能力

你不必掌握所有技术,但是必须不断完善自己的技术知识体系,这才能把任务和意图尽可能清晰和简洁的分享给团队其他人。

理想状态就是告诉团队成员目标是什么,而不需要告诉他们如何去做,也不必让他们去执行你的每一个细微决策。

你也可以明确制定一个操作规程,任何人都可以遵守规程来完成某些类型的任务。流程图或检查表在这里都能起到非常好的作用。

可以看出,中级阶段的程序员在初级阶段的基础上,增加的都是非技术的难题。这个阶段根据每个人情况的不同,时间长短从五年到十年、十五年不等,也是最能拉开差距的阶段。

如果你有着超出同龄人的专业技能、社会关系、资源等,这个阶段的程序员应该着力于如何将自身优势放大。

  • 高级程序员一般是职场转型期、突破的时期。

大多数中小型公司在向上晋升和发展方面都存在实际的限制。

作为一名软件开发者,你不可能比公司的发展通道最高级别还要高,而且,那个所谓的“最高级别”可能根本也没有高到哪里去。

但在像微软、苹果、IBM、谷歌、Facebook、惠普这样的大公司,上限可能会高出许多。这类公司往往需要最优秀的技术人员,所以大公司为这些技术人员量身定做出专门的技术通道。

通常,在这类大公司里,可以选择技术型职业发展通道,也可以选择走上管理通道。你必须从中做出抉择,如果你想要走上管理通道,那就得放弃自己的编码技能,你也可以选择坚守在技术通道上,一直编码到他们告诉你再也不需要你编码了。

所以,这阶段的程序员,最重要的两点是:

必须做好取舍,在管理通道和技术通道中做抉择;
必须敢于打破技术的“天花板”,开创新起点;

如果你选择走上管理通道,你可能会成为一名开发者经理,然后可能是一名部门经理或项目经理,再然后,如果你能一直获得晋升,你可以一路做到高级管理职位,如开发总监甚或是首席技术官(CTO)。

有些公司把这个角色称为研究员(Fellow)或者技术院士(Technical Fellow)。

担任这个角色的软件开发者是某一领域内的杰出专家,领导研究工作,是公司智囊团的成员,或者参与非常复杂或者极高优先级的项目。

这类角色还可能涉及指导整个组织内的开发者的工作。作为软件开发总监甚或是首席技术官,还要做出各种技术性和非技术性决策。

如果你选择了技术通道,你可能会从高级开发者转去做架构师,然后再晋升为研究员或者高级研究员。(每个组织都有自己的技术和非技术职业发展通道,但在职位和职位名称上往往不尽相同。)

但是,如果你达到了“玻璃天花板”还想继续有所突破,那你就不得不做出抉择:坚守技术通道,还是转去管理通道。

程序员职场发展全路径


事实上,如果你没能在一家拥有先进技术路线的大公司工作,你甚至可能都没得选择。进入管理层可能是你能够得到晋升的唯一选择——要么转去做管理工作,要么自己选择退出。

一般来说,软件开发者不管选择了哪一条特定的职业路径(也许不止一条),最终都会遇到所谓的“玻璃天花板”。

这个玻璃天花板实质上就是一个极限,限制了你在职业发展路径上可以前进多远,限制了你作为一个软件开发者可以得到的最高薪酬。

无论你有多优秀,总有一天你会到达这个顶点,你再也无法前进了。但是,总有办法绕过或者穿越这个玻璃天花板。

你可以选择不再为别人工作。如果选择做一个自由职业者,你的玻璃天花板要宽敞许多,尽管作为一个自由职业者你可以Z多少钱仍然有一个实际存在的限制,因为你仍然需要用时间来换钱。

如果选择做一名企业家,那就完全没有上限了,但你的收入也可能是甚至是负数。

任何一种选择都可以让你穿越玻璃天花板。

如果你依然坚守职业开发者的道路,那你可以在打造个人品牌和自我营销上加大投入,这样你可能凭着自己的声望就能找到一家公司,让你的薪酬远远高于平均水平。

还有另外一种方法。你可以寻求加入一家大公司,进入它的管理通道或者技术轨道。

以上的内容都希望能够促使你规划自己的工作方向。如果你想在事业上阔步前进,那你就需要清楚地知晓你该往哪个方向前进。

因此,仔细思考一下:

你想成为怎样的软件开发者?
你想永远都做职业开发者吗?
如果是,那你想做哪个领域的开发者:Web开发者、移动开发者,还是云开发者?
还有,你的职业生涯的终点在哪里?最终,你想做一名架构师吗?
还是说,你只是想一直编码、一直都在做一些很酷的事情,永远都不要操心自己该往哪个方向前进?
你想让自己的职业发展得尽善尽美吗?

如果是这样的话,那你最好现在就开始寻找拥有高级技术发展通道的公司。

无论你决定做什么,最重要的是:你需要做出决策,并且为此做出计划

即使你做出了选择,你也不必死守在一条通道上一成不变,你可以不断调整改变计划。但是,你应该至少制订一些计划,否则你会在自己的职业生涯中漫无目的地随波逐流。

程序员的自我提升

程序员的职业生涯有着常规的发展阶段,每一个阶段的提升,势必会在职位上、薪水上、社会资本上、个人成绩上有所变化。

这样的变化并不是随着时间发展自然而然的效果,而是需要程序员有闯劲有毅力的前进,既要脚踏实地,进退有度,以提升知识和技能为主,又要看清局势,了解未来趋势,为在阶段末期实现跨越做好准备。

所以,程序员要能掌控自己的职业生涯,这项自我提升的方法是必不可少的:

、高效开发

这些是程序员必须要知道并且掌握:编程语言、源代码控制、测试、持续集成、Web开发、HTML、CSS、设计模式、数据库、调试、方法论、Scrum、敏捷……(这一串长长的列表我还可以继续延伸)

这个世界很疯狂,技术发展日新月异,昨天还是新鲜而又热门的东西今天就“人老珠黄”,关键在于要让你的技能跟得上时代。

、制定计划

为了推进你的职业生涯发展,让你的技能跟得上时代,你需要量身定制计划。作为制订计划的开端,请确保你下载一份本书附带的“软件开发者技能评估”的工具。使用该工具做个自我诊断,找出你最需要改善的技能。

、阅读博客

作者发现,在编程的世界中保持与时俱进的最佳方法之一就是每天清晨花分钟左右的时间阅读编程方面的博客。

在某种程度上,这其实相当于让其他人为你做了许多工作。通过阅读其他软件开发者的博客,你可以深入洞察编程世界里最新的和最重要的技术,你甚至还可以学习一两项新技术。

通常情况下,如果某项技术拥有举足轻重的地位,你会发现总有人会在博客上写文章讨论它。

博客还让你有机会一览软件开发世界中的难题,你可以不必亲自动手就可以知晓这些问题的破解之道。

、读书

程序员还应该一直保持手不释卷的习惯,尝试选择你将从中受益最多或者具有持久价值的书籍,挑选与你目前正在从事的工作直接相关的书是不错的选择,因为这样做你能获得的将是即得即用的价值。

挑选有关软件开发方法论或者设计模式和体系架构方面的书也是绝佳的、永不过时的选择。

、挑选一样新东西去学习

不管你对当前的技能是多么驾轻就熟,也不管你的教育背景有多么深厚博大,你总是要去学习新东西。

针对你要去学习的内容定一份计划,这样当你完成了一样新东西的学习之后,你就可以接着去学习下一样了。定期评估你现在的技能,定期校正你的学习方向,这样就可以明确确定你应该学习哪些新东西,以及你的学习内容的优先级与顺序。

到后面,你会惊奇地发现,只要你每年都投入大量的时间去学新东西,那么在一年的时间里你就能学到相当多的新技能。你甚至可能想在自己的日历上明确地安排每周的学习时间。

不过,要注意一点:不要去学那些你永远都不会用到的东西。

、保证学习的质量

如果你想勇立潮头,那你就必须持续学习。就像我之前说过的,在当今的环境中,科技发展的速度极快,而且我不认为在短期内有降速的可能。

你并不一定要按照我的体系来学习,但你确实需要某种有利于快速学习的体系。

、参加活动

另外一个可以让你在变幻莫测的软件开发领域中保持与时俱进、脱颖而出的方法,就是参加活动。

所谓“活动”可以是会议,可以是编程训练营,也可以是非正式的聚会,甚至也包括像微软这样的公司展示他们新技术的活动。

你可以在一个活动上花上一整天时间,观看一些演示介绍,了解一种新技术或者新工具的工作原理和应用方法,你既不必阅读大部头的整本书,也不必费力阅读使用教程。

仔细观看有人向你演示某种新技术,观看他们向你展示的代码示例,通过这种方法接触到新技术的速度要比其他媒体快得多。

、阅读新闻

阅读新闻,特别是与编程相关的新闻。浏览Hacker News或者Proggit之类的网站,或者订阅与编程或技术相关的新闻推送服务,都是不错的主意。

这些网站可以了解编程世界里正在发生的事情,比如行业趋势,比如越来越多的人在使用某一种特定的变成语言或技术,这可以帮助规划未来,审视需要在哪些方面改善自己的职业生涯。

阅读关于你感兴趣的东西的有针对性的新闻信息可以是一个很好的方式,保持你对领域内正在发生的事情了如指掌。

、大量编写代码

能够让你的编程技能与时俱进的最显而易见的方法莫过于自己编写程序,而且是经常编写程序。

你编写的代码越多,你的编码技能就越不可能变得生疏。因此,一定要确保你每周(最好是每天)都花一些时间写代码。

要想做到每天编写代码,有一个很好的方法,就是一直致力于开发小规模的项目。选择一些你想要去学习的新技能,然后使用这些新技术或者编程语言开发一个小规模的项目。要确保项目的规模足够小,以便于你可以切实完成它。

、不要让自己太安逸

记住,无论你眼下的工作岗位或者工作氛围多有保障,都不要过得太安逸,这很重要。

一些在同一家公司里工作了年的程序员,他们觉得自己的工作岗位很安定,所以没有必要保持他们的技能与时俱进。因为他们的工作很有保障,所以他们觉得生活很不错、很安逸,没有必要去学习任何新东西。

然后,当意料之外的裁员突然发生时,他们会在一瞬间被抛入劳动力大军中,看着自己落后于时代年的技术与技能,他们很快就会意识到自己之前的错误。

所以,不要让这种事情发生在你身上。制订一个积极进取的计划来保持你的技能与时俱进。

本文链接:https://www.woshiqian.com/post/71086.html

百度分享获取地址:https://share.baidu.com/code
程序员职业发展路线  

我是钱微信/QQ:5087088

广告位、广告合作QQ:5087088

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

       

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。