一、什么是职业规划?
职业规划其实就是对职业生涯乃至人生进行持续的、系统的、计划的过程。职业生涯规划的好坏有时会影响我们的一生。
人生是需要计划的,没有目标就是失去方向。人生最重要的就是方向。而职业规划其实是人生规划的一部分。
没有人生规划,就谈不上职业规划。反之,没有人生规划的职业规划,也是水中浮萍。
职业规划
二、程序员职业规划的特殊性和必要性
程序员职业规划的特殊性和必要性
随着我国软件行业的飞速发展,互联网行业的不断升温,计算机专业毕业的小朋友们变得炙手可热起来。尤其是2008年之后,互联网和软件行业进入了野蛮式的发展中。程序员的职业规划就显示出其特殊性和必要性。
1.行业火热,从业人员不断积聚,准程序员们源源不断的入坑
小良周围有很多朋友,找不到工作就去培训,学计算机编程。俨然是考公考研之外的第三大路。别的不说,小良的好几个程序员朋友都是学体育的。也许体育老师教数学还是个笑话,但体育专业来编程却一点都不奇怪。如此多的从业者一定会加剧行业内的竞争,没有好的职业规划,很容易在前行的道路上失去方向。所以所,程序员在职业刚开始时,就做好职业规划是很必要的。
2.程序员职业的特殊性,职业积累相对差,需要不断的通过学习编程技能强化自己
如果说有什么职业是需要学到老,可能所有职业都是。但如果有什么职业是必须不停的学到老,那一定是程序员。不同于老师、医生、律师这些随着年龄就会提升价值的职业,程序员的职场生涯是耀眼但短暂的。这几乎是唯一一个比拼学习能力的职业。注意,这里的学习能力不是学到多少技能。而是学习的速度。
计算机技术更新换代太快,编程语言也在不断变化,新的技术层出不穷。软件市场对程序员的要求就是速度,学习的速度。这也是为什么很多人感慨,35岁的程序员很难再找到合适工作的原因。不是你的能力和学到的知识技能不行,而是,已经35了,不能像20岁那样通宵学习了,不能再像小伙子一样一心只工作了。家庭不允许,身体也不允许了。这是一个35岁就老了的职业。
正是基于以上两点,程序员的职业规划就显得特变必要。
三、程序员的职业规划-基础篇
基础篇
了解了职业规划和程序员职业规划的重要性后,我们来看看程序员职业规划的方向。
1.两年的时间夯实好编程基础。结硬寨,打呆仗。
基础
程序员一点点从初级升到资深开发,少的用1年半,多的用3年,有一点是不可避免的:靠学习,靠时间的堆砌。曾国藩有句名言:结硬寨,打呆仗。
程序员这份工作,大佬也全是靠时间磨出来的。这是一定的,少则一年半,多则三年。没有这么长时间的水磨式的学习,就不能说是一个资深开发。有很多人工作七八年甚至十年,勉强算上项目经验,也只是中、高级程序员的水平。再往后的职业途径就暂停在这里,就是因为编程基础没有夯实好。
所以,初级程序员刚开始工作最重要的一点,前两年,不要乱花渐欲迷人眼。踏踏实实扎根技术夯实自己的代码能力。这是将来实现职业腾飞的最关键的一步。这是所有0前面的那个1。遗憾的是,快节奏的软件职场很多人从不重视这一点。如果您有幸看到这一点,切记切记。
2.提升自己的软实力,软实力让你更专业
软实力
软件开发最重要的一个特点就是协同工作。说白了,这是一个集体协作的任务。在具备了一定编程能力后,就可以在职场干的如鱼得水。但如何使你更专业?不是使用高深的算法和数据结构。而恰恰是容易被忽略的软实力。
- 1.沟通和表达能力
沟通和表达能力是需要在工作中不断地实践的,在脑力不断碰撞的协作编程中,如何更快的读懂别人的需求,如何更准确的描述清楚自己的困难,如何将复杂的业务场景用程序流程的思路来外放,这些都离不开沟通和表达的能力。
尤其是在一帮技术宅面前,沟通和表达显得如黄金般璀璨。这样的人在搞技术的眼中是不屑的,但在不懂技术的老板眼中,是闪耀的宝贝。
- 2.独立解决问题的能力
解决问题的能力不是去请教别人。因为在初期接触一些问题时,你对它是0概念的。这点在软件行业是特别普遍的一种现状。你甚至根本不清楚你到底不清楚什么。
独立解决问题的能力正体现在这里,在长期解决问题的过程中,你已经形成自己的方法论,能迅速定位新的问题的症结点在哪里,哪些是自己熟悉的模块,哪些又是新的需要摸索的模块,哪些是必须去请教的模块。然后有的放矢的去解决。职场不是教师,庞大的脑力设计是不会有人一点一滴的去给你讲解的。所以,在程序员这个行业中,独立解决问题的能力是非常重要的。
- 3.其他能力
项目管理能力,协调能力,抗压能力,甚至是推诿的能力,这些其他的软实力因为没有上述两点重要,我把它们统称为其他能力
虽然程序员的职场充斥着编码,技术,新科技。但恰恰是这些(上述三点)非专业的软实力,帮助你在职场(尤其是非技术的领导和同事面前)表现出自己专业的能力。
四、程序员的职业规划-提升篇
提升篇
两年的基础夯实后,你就可以根据自己的个人特点,选择不同的发展路线了。一般来说,你可以有如下几种方向选择:
- 产品
- 技术
- 管理
- 其他
我们一一进行阐述:
1.产品方向:程序员–>高级开发–>产品技术–>产品经理–>产品管理
产品经理
虽然是做技术,但程序员的工作中,是不可避免的会与业务和需求打交道。专注一个行业去编程会使自己在该行业的业务经验变得充分。是除编码之外的一个强大的软技能支持。它对你的职业影响甚至远远大于技术本身。尤其是作为程序员,从程序的角度去理解和阐述业务问题以及详细需求,是整个软件开发行业内最值钱的工作。
如果专注、认真,3年就是一个软件开发某业务领域的专家了。这是产品经理必备的条件,转型产品经理可以让你弯道超车。更大的发挥自身的价值。而且,作为一个技术出身的产品经理,视角和多年的编程,都会给你在新的职场中带来巨大的竞争力。
2.技术方向:程序员–>高级开发–>技术专家路线(或架构师)–>技术总监(管理)–>CTO(管理)
架构师
这是程序员走技术路线最正的职业路线。从始到终,都以技术为中心。因为软件开发的行业特殊性,需要不间断的一直学习。比拼的也不是学到的技能,而是学新技能的速度。如果你的学习能力特别强,又对技术很感兴趣,那么,请心无旁骛的研究新的技术吧,BAT的大厂需要这种人才,35岁前做的好应该可以实现财务自由。
我本人也是特别羡慕这样的人,这是程序员中的真正的精英,是一条最简单的职业路线,却也是最难实现的。当然,CTO是究极目标,一般在进阶到技术总监就可以挥霍人生了。
3.管理方向:程序员–>高级开发–>项目经理–>项目总监–>CEO
项目经理
程序员都有这样一个特点,讨厌技术以外的任何事。觉得那些事情可有可无往往还耽误时间。但随着工作年龄的增加,新的编程技术的发展,要学的技能会越来越多,如果本身已经感觉到一定程度的吃力,那协调之程序员好好干活,保证项目进度和质量,这条路几乎成为所有中庸的程序员的不归路。
项目管理和程序员的日常工作息息相关。项目经理的职场抗风险性肯定远大于一般的程序员。这是软件开发行业正真的骨干。我国能在软件行业取得飞速发展,也正是由于有庞大的项目经理群体。
项目经理不仅统管项目的需求、开发、测试、投产。还要管理项目的立项、招标、议价、验收等方面。项目就是项目经理的孩子,既需要掌握技术领导程序员工作,有需要了解业务和产品制定需要,还需要和商务把控验收,是真正的万金油。但又是每一个项目又必不可少的岗位。这往往是大多数人的归宿。如果你综合实力特别强,还有项目总监和CEO的晋升渠道。
五、程序员的职业规划-转型篇
转型篇
以上我们讲述了程序员的职业路线,不同的程序员往往会做出不同的选择。那么,我们在选择的过程中,有哪些中心思想要把握呢?本篇我们从行业环境角度,阐述下程序员职业转型的问题。
转型的四点根本思路:
1.技术转架构
技术转架构其实方向并没有发生变化,那为什么还要单独写在这里。因为有一个很大的大众误区。程序员要一门心思的学习工作,提升自己的技术能力。但技术能力需要提升到哪个程度?这就是技术转架构的意义所在。
学海无涯,任何一个哪怕是微小的方向,也值得个人去终身学习,当技术积累到一定程度后,你可以有两种选择
- 1.适当拓宽自己的的宽度,在一个定向生态内根据自己的优势方向整合场景。成为某个大方向的架构师。做到的不仅仅是专精,还能关联上下游的场景。同时强化自己的管理和文档能力,加入管理元素的技术专家如果在扩宽的研究维度,基本已经是架构师了。
- 2.继续保持自己的深度,并且继续深入钻研。基本在自己的研究领域,已经是独一无二的大拿了,就好比阿里的达摩院,称之为科学家也不过分。这类技术专家,终身都在某一方向研究和学习。
2.技术转管理
程序员转型管理,需要很强的沟通能力和细致的观察能力,同时,管理也分一线与二线,一线是直接管理,需要经常直接参与员工的工作,二线是间接管理,通过管理低级别的管理者来完成任务目标。
不过无论是哪种管理者,都需要做到兼听则明,不能偏听偏信,如果是一个不喜欢沟通的人,转管理就是团队的灾难。
做管理,需要你有自己的理念,并且坚持它,这是日常管理工作的升华,是一套行之有效的方法论,甚至带着强烈的个人色彩。并不是书本中的理论知识,更不是所谓的认死理。
管理是一门学问,要结合自己所长,结合工作实际情况,将个人的力量外放到集体。同时要需要不断的学习来完善自己的体系。是一门没有标准答案的终身学问。
3.传统转互联网
传统行业要转型互联网,传统职业也要转型互联网。
总是说互联网思维,那互联网思维到底是什么?小良认为,根本就是2C。我们来详细阐述几点,并讨论其对个人转型的指导作用:
- 1.干掉中间商,用户驱动产品
整个互联网所谓的扁平化都是在干掉中间商。打破行业间的壁垒。未来的服务也一定是最热的行业。因为它们是最基础的提供方。中间的一堆都是互联网思维的打击方向,所以,个人在转型时,如果可选的情况下,一定要向下,2C。越往下走越具备生命力。
- 2.快速迭代,敏捷开发
互联网思维中,讲究的是一个快字。思维快,落地快,消亡快。最大的问题都是没有时间。个人在转型时,对于行业时间的判断,一定要精准。如果转型后成型需要大量的时间,那即使成功转型,也已经错过了市场和时机。
- 3.“免费”经济,优质服务
互联网思维中,盛行一种免费文化,何为免费?就是不收费。但通过优质的服务(往往是用户间的类比和差距感),最近风风火火的庆余年版权,也是套用的这个思路。个人转型时,免费模式和优质服务也是重要的参考标准。
4.彻底转行,转换人生
除了上述比较中正的职业规划外,还有一些其他不错的选择。比如如果你从事金融软件行业,可以尝试进入银行科技,证券甲方。如果你从事医疗软件行业,可以进入医院科技,如果你从事政府相关软件行业,可以去事业单位科技岗。传统的企业稳定性坑定比互联网公司大很多,当然,相应的待遇可能会略有减少。
如果您风趣幽默,懂各自软件,像现在很火的自媒体,网络直播,就是个不错的选择。除此之外,分销和微商也可以尝试。如果您有小众的爱好或者渠道,还可以做电商。愿意聊天和分享,还可以做滴滴打车的司机大叔。以上这些,我身边都有做的很好的人,如果您的编程技能很不错,还可以作为独立的开发者,自己给自己当老板。
六、程序员的职业规划-方法篇
方法篇
好的职业规划,一定有好的学习方法。小良很纠结要不要 写这一章节。还是当成自己的优质经验分享给大家,千人万法,如果你有更好的办法欢迎留言讨论。
1.番茄学习法
择一个待完成的任务,将番茄时间设为25分钟,专注工作,中途不允许做任何与该任务无关的事,直到番茄时钟响起,然后在纸上画一个X短暂休息一下(5分钟就行),每4个番茄时段多休息一会儿。
番茄学习法
2.平衡单分析法
列出几个可能的选项,一般三到五个,然后判断利益得失,得失在根据自定义的纬度,如自我、他人、物质、精神等。
选项上列完表之后,打完分之后找重点、关键点,可以加权,就是可以乘1至5,计算得分,最后累加。
决策平衡单
3.学习的仪式感
仪式,它是使某一天与其他日子不同,使某一时刻与其他时刻不同,学习也需要仪式感。我自己的在学习时,为了仪式感,会做两点:
- 1.收拾书桌,书桌一定要干干净净,越大越好。
- 2.红蓝黑三支笔,平放右上角。
- 3.使用XX学习法。
七、程序员的职业规划-个人篇
个人篇
1.真我,知行合一
知行合一
终于写到了个人篇,说实话,每当有人问我程序员该如何规划自己的职业生涯时,我总会说,最重要的是自己。你想成为怎样的人,你就会做怎样的规划。
你得有一个清晰的人生规划,才能有一个清晰的职业规划。可以不是很具体很长远,但是要有明确的目标:成为一个什么样的人。你是一个什么样的人。
这里分享一则小良的干货:知行合一。你是什么样的人,不取决于你的内心想法(人往往自我狡辩)。知行合一,如何找到真我,就通过你的所作所为。你是什么样的人,就会做什么样的事。你做什么样的事,就是什么样的人。
找到真我,再在真我的基础上进行职业人生规划。
2.更新技术,踩上技术趋势,两年夯实期,莫见异思迁。
从业之初,需要耐得住寂寞。好好利用好两年的夯实期去扎实自己的基础。不管未来的方向如何,只要还在软件行业内,这都是最宝贵的财富。只有通过了洗练的程序员才是成熟的程序员。才可能有更好的发展。
3.树立个人品牌
个人品牌也是十分重要的,一个技术男一定要在日常将自己职业能力展现出来。最好的方式有两种:
- 1.博客
通过博客记录下自己艰难求学的过程,记录下自己工作中处理问题的点点滴滴。这些不仅是自己的财富,也是让别人认识自己的一张窗口。
- 2.github
除了文字,自己的代码和开源项目也是十分重要的沉淀。现在开源软件和分享已经成为软件行业不可获取的一部分了。这不仅是程序员最高级的玩具,也是自己成果的最好展现。可以在github或者码云上将自己的代码分享,不仅可以不断的提高自己,还能收获志趣相投的朋友。
4.通过团队找寻自己真正的价值
软件开发是一项脑力协作工作,单枪匹马是完不成软件开发的。分享和协作才是软件开发永恒的命题。积极与同事或者伙伴相处,在团队中发现自己的问题和不断地完善自己,通过团队寻找自己真正的价值。
八、结语
加油
科技的发展日新月异,职场的变化也捉摸不定。没有不变的定律,只有变换的人生。你想成为什么样的人,就会追寻什么样的职业。在追寻的过程中,努力和求索如同蚌病成珠。旅途是最美丽的风景,希望你在程序员的人生中精彩纷呈。