程序员的瓶颈

核心提示点击上方“CSDN”,选择“置顶公众号”关键时刻,第一时间送达!本文来自作者 王鹏 在 GitChat 上分享 「程序员跳槽时,如何正确做好职业规划?」。经常听一些同学说:不知道下一份工作该去哪类公司做些什么,我的职场人际一团糟老板不重视我

点击顶部“CSDN”,选择“置顶微信官方账号”

关键时刻,第一时间发货!

本文来自作者王鹏在GitChat上的分享《程序员跳槽如何做好职业规划?」。

经常听到一些同学说:不知道下一份工作要做什么样的公司。我的工作场所一团糟。我的老板不注意我。我现在长得很慢,想再换一份工作。看不到公司的发展前景,所以很迷茫。其实这一切的迷茫都是来自于没有做好职业规划或者你根本没有职业规划。

今天从以下几个话题和大家分享我的职业规划小技巧,欢迎大家踊跃提问。

为什么要做职业规划?

先说第一个话题。为什么要做职业规划?

首先我们要知道什么是职业规划,也就是如何不断选择适合自己发展的工作的过程。

职业生涯规划实际上是一个连续的、系统的、有计划的职业乃至人生的过程。职业规划也叫“职业规划”。职业规划的好坏有时会影响我们的一生。

其次,我们需要知道职业规划的原则是什么。

偏好:只有喜欢这个东西,才有可能坚持下去遇到强大的对手;遇到极其困难的情况也不会放弃;不会在有巨大诱惑的时候动摇。擅长:只有做自己擅长的事,才能做好;有能力做好,才能解决具体问题。只有做好自己最擅长的事情,才能比别人做得更好,才能在竞争中脱颖而出。实现价值:你要认为这件事足够重要,完成后带来的价值足够吸引你,值得你去做,否则,你就完成不了你有能力做的事情。长期发展:首先你得有机会去做。如果有机会做,你得有足够的市场和成长空间空这样的职业才能起步。所以,我们经常会听到一个人说自己很幸运。大学毕业后,他去了一家公司,然后跳槽去了另一家公司。公司发展的很好,35岁之前就实现了财务自由。这背后的职业规划本质一定是基于偏好、擅长、实现价值和长远发展的原则,而不仅仅是表面的运气。

因此,建议同学们不要仅仅为了薪资、地点或公司知名度而选择新工作。按照以上四个原则,越见面越般配,直到期中也不会迷茫未来何去何从。

最后我想说,其实在每个时间节点看过去的自己,会发现自己对整个行业甚至自己的了解都是有限的。所以,规划并不真的等同于照本宣科,而是驱使自己走向自己应该成为的样子,变得更好。

程序员的职业发展道路有哪些选择?

下面说第二个话题。程序员的职业发展道路有哪些选择?

程序员一般的发展方向主要是几类:技术专家、架构师、技术管理、管理、产品。

接下来,我将通过实例,与大家分享以下四条不同的发展道路,以及适合走这四条道路的人的三个关键词。

第一类是程序员-高级开发者-技术专家路线。

我们来举例说明一下。有一位Z先生,2012年从湖北工业大学毕业,然后去了搜狗当工程师。工作两年后,他跳槽到了另一家名为小麦公社的公司,当时是一家蒸蒸日上的创业公司,担任B端高级开发者。

后来去了英国树做B端高级技术开发,今年2月加入杭州阿里巴巴。我也曾作为技术专家负责过B端商户的后台部门。他的职业规划最大的亮点就是找到了自己想专注的领域,并坚持到现在。

第二类是程序员-高级开发人员-架构师。

我们再举一个例子。H先生2011年毕业于北航,之后选择创业做SAAS平台。当时他是前端的负责人。两年后,他选择加入搜狗,担任高级前端工程师。后来去了音悦台当建筑师。目前,他在一家初创公司担任前端架构师。职业规划最大的亮点是对前端领域各个方向的洞察,然后负责几条产品线的架构设计。

以上两条技术路线有什么区别?我们应该如何选择它们?

技术专家,偏理论研究,对某一个或某几个相关专业领域有深入的了解,并能通过提供思路直接或间接解决这些领域的各种问题。

建筑师偏爱工程实践,不同于技术专家,他需要一种专业和多种能力。提供解决问题的方案不是它最重要的价值,它的价值在于选择性价比最高的方案。

举个例子,其实你可以把技术专家和架构师的区别比作科学院院士和工程院院士。你要做一个语言识别,这是理论,你要做一个Siri,这是工程。你更擅长语言识别还是Siri?

有的同学可能会说,我的终极目标只是成为一名优秀的程序员,那么我想知道你能做到以下三点吗?

写出来的程序不需要格式化,也很标准。我见过很多程序员写代码,连空 case的使用都不规范。从上到下,感觉就是一堆乱七八糟的人物组合。好的节目应该像诗一样,在格式的约束下追求优雅。写出来的程序没有无用的代码,别人来审核也找不到,也无法在保持同样可读性的情况下进一步细化。保持可读性和效率之间的平衡。通常,我们优先考虑可读性,但是对于频繁执行的部分,可以牺牲可读性来保证效率。但是,需要写足够多的评论。评论不应该谈代码的目的,而应该谈他们在写代码的时候是怎么想的。我见过有人用自己的想法重写一段代码来提高可读性。因此,这段代码的目的是尽可能简洁。这实际上是一件有点糟糕的事情。如果还是做不到以上几点,明天就好好表现。暂时什么都不要想,因为做一个优秀的程序员是技术路线的根本。

先说第三类,也就是管理路线:程序员-高级工程师-技术经理-技术总监-—CTO。

让我们看另一个例子。Q先生,30岁成为某知名自行车共享公司CTO。先说他的职业规划。2009年,从首都管理贸易大学毕业,加入一家创业公司,担任移动终端工程师。两年后,他以RD高级工程师的身份加入360,随后加入新浪微博担任移动终端部技术总监,随后加入易信担任技术总监,并于去年7月加入自行车共享公司担任CTO。

他的职业规划最大的亮点是在核心业务上一直进阶到技术管理,最后成为一名优秀的管理者。

说到这种管理路径,就要解释一下技术管理和管理的区别。技术管理以物为中心,管理以人为本。技术管理的主要工作是保证事情能够按时保质完成。管理层需要考虑团队的士气、稳定性和阶梯。

最后是第四类,也就是技术到产品:程序员-高级开发-产品技术-产品经理-产品管理。

在这里,X先生带来了一个海龟码农成功转型为产品经理的故事。2009年毕业于美国著名工科院校普渡大学,之后回国在外企做了五年的开发工程师。2014年,他有幸加入腾讯。当时腾讯面试了七轮,拿到了T1-2的工程师offer,月薪1W2,基本是刚毕业一年左右的应届毕业生水平。

腾讯主营手机QQ红点系统两年了,他从来没有抱怨过。他还给我们看了所谓的“红点”,其实就是手机QQ上不同界面旁边的红点引流。

QQ手机流量每天活几亿,但只有1%左右的用户会去点击那些界面比如游戏、商城、音乐等。红点主要是吸引那些有强迫症的用户点进来引流。

从最初红点数量的提升,到后期根据不同属性设置不同的红点,再到后期与其他产品的合作,比如JD.COM商城,再到红点的竞价排名...

腾讯养了一个团队做这么一个小功能。对于BAT这样的大公司来说,一个小模块和功能的改进就能带来巨大的利润。很多人常年在做一个小模块的重复性工作,很难独立完整的做项目。里面有很多闲人。

所以工作两年后,X也想做点商业化的东西。他向部门主管反馈,但他的想法没有得到支持。他也尝试过在其他内部部门求圈,但未能成功转岗,于是想通了,不想在腾讯继续慢慢升职。他从腾讯出来的那一年是2016年3月,T2-3。

然后他加入了一家投资公司,入职做产品经理。两年后,他已经成为高级产品经理。

他的职业规划最大的亮点是经过深思熟虑后立即决定和行动,毫不犹豫,而机会往往更容易留给有准备、有勇气的人。

说到技术到产品等职业规划路线,我们来谈谈开发到产品经理需要锻炼哪些能力:

1.商业思维

开发人员过去常常与机器打交道。当一个产品经理给了一个需求,他就按照那个需求去做。他从来没想过他为什么要做,做这个需求想达到什么目的,也没想过你开发的App,你做的程序的老板是怎么用它赚钱的。这是你转行做产品经理首先要锻炼的能力,培养你的商业思维,培养你发现用户需求的能力。

产品经理站在用户的角度考虑产品,以用户为中心。所以技术人员转行做产品经理,要摆脱技术思维,多想想用户的使用习惯,多想想产品的商业目标。

2.通讯技能

程序员给别人的印象一般是木讷、沉默寡言。难怪,程序员是和机器打交道,而不是卖和人打交道的工作。他们不需要说太多话,也不需要太多眼泪。

产品经理的工作是和很多部门打交道,比如运营、技术、设计、营销等部门。在展示产品时,你应该清楚地向他们传达你的需求。产品推出时,需要给客服培训,这就需要你有很强的语言组织和表达能力。

3.文档能力

程序员的工作就是编码,代码是用英文写的。只有在评论代码和写产品说明书的时候,他才能写中文,写的东西都是琐碎的。

如果让一个程序员就某个话题写一篇文章,我想大部分程序员可能会无所适从。

产品经理在工作中要写很多文档,比如业务需求文档,市场需求文档,产品需求文档,产品说明书,文档表达能力在工作中很重要。

4.项目管理能力

一个好的产品经理需要一定的项目管理能力。要按照正常的步骤,规定的时间,保质保量的推送要上线的产品。这涉及到整体管理、时间管理、团队管理和需求管理。

整体管理:包括从分析规划到产品开发到产品上线运营再到迭代优化的产品管理全过程。时间管理是指对项目的进度进行规划、监控和跟踪,把握关键时间节点,确保产品按照规定的时间上线。

团队管理:产品经理需要协调很多部门,包括技术、设计、营销、运营。产品经理是一个未经授权的领导,你大多需要通过自己的影响力和沟通能力来协调项目的所有成员,所以你需要相应的团队管理能力。

需求管理:包括各部门的需求反馈,自己收集的需求,需求的变化,需求的跟进等。

那么,你觉得你在以上四种能力上有天赋吗?如果你有才华,你愿意放弃技术,去做产品经理,那就是趁早,这是一个原则。

好了,这就是我们的第二部分,程序员的职业发展道路有哪些选择?我希望你能及时入座。

如何根据自身优势做好职业规划?

接下来说第三个话题,也是关键的核心话题。如何结合自身优势做好职业规划?

这个问题其实需要我们做好两件事,一是如何在众多程序员中提升自己的竞争力,二是如何保持方向感。

先说如何提升竞争力。

1.拓宽业务场景

我们会在很多场合听到对“精钻”这个词的赞美,包括在职场上。我们经常听到前辈教导我们在工作中要精益求精,但其实万里挑一是一种可取的方式,但不是我们职业发展的必经之路。

尤其是对于那些未来职业发展规划是进入明星创业团队担任技术负责人的程序员来说,在之前的积累过程中,寻找机会接触各种业务场景,尽可能地寻找解决方案,可能是一条更可行的路径。

这里的业务场景分为大业务场景和小业务场景。大的商业场景是不同的细分行业,比如电商、内容、视频、分享平台等等。

我建议程序员在做工作选择的时候不要被自己原来的子领域限制太多,认为自己在电商公司之后就一定在电商公司。

实际上,尝试不同领域的公司,了解技术实现的异同,对于程序员对技术有更深入的理解是很有帮助的。

尤其是现在的行业发展日新月异,一个人15-20年的职业生涯很难有某个细分领域处于蓬勃发展的状态。如果后面出现新的细分市场,复合背景积累的经验会帮助程序员快速切入新的细分市场。

小型企业场景指的是同一家公司中相同技术的不同业务领域。比如算法方向可以分为排序、推荐、NLP、图像识别和用户行为研究等。攻关某个领域是发展路径,跨越某个领域也是发展路径。这就需要程序员自己抓住机会,不断跳出自己的舒适区去承接新的业务和需求。

比如曾经有一位陈老师,在BAT公司做了6年的程序员,方向是算法。由于过去六年公司业务的快速增长,陈老师在不同的团队参与过项目,所以在广告、排名、推荐、NLP、用户行为研究方面有一定的经验,但没有做过深入的研究。

他自己在跳槽时也表达了对此的担忧:“业务需要的地方,他什么都能做一点,什么都不行。”

然而出乎意料的是,这种背景很受中小互联网公司的欢迎。几经面试,陈老师终于拿到了一家一直在D轮融资的公司的算法负责人的Offer,工资也有了很大的提升。

如果没有这样的机会,你可以在某一方面非常精通,然后在其他方面有所了解,把自己培养成“T型”人才。

2.把握职场节奏

职场有个时间标准:3年。3年内,工作内容和职级必须有质的变化,可以通过升职或跳槽来实现。

就业前三年,主要工作内容是打好基础。此时基本处于“完成上级交办任务”的阶段。

但在这个过程中,员工不能只是完成任务,而是要不断思考上级为什么要分配这个任务,这个需求是怎么来的,是用来解决什么问题的,有没有更好的解决方案等等。

未来3年,也就是我职业生涯的3-5年,作为一个程序员,我需要达到一个小领导的水平,也就是带领一个小团队负责某个模块或者功能的RD。这个时候,上一阶段积累的经验和各种关于解决方案的想法就会凸显出来。

这个时候,程序员作为一个小团队的领导者,就需要更加关注上下游的逻辑,可以形成一个完整的逻辑链。

程序员工作5-8年,已经成为技术总监,可以独立负责某个产品的研发,可以从0-1阶段成功推广产品。此时,应更加注意不同部门之间的合作和沟通,以确保研发进度的及时交付。

同时,多关注一些产品设计方面的东西,会有助于进一步的推广。

最后一个阶段,也就是工作10年以上,达到RD总监或更高职位会是一个比较理想的状态。对于这个层面,要求对整个行业有清晰深入的判断,能够感知未来技术发展的方向,提前布局公司。

3.训练复合技能

程序员除了编程,还要尽量培养其他技能,比如说说,写等等。这样一方面可以给程序员提供一些兼职的机会,比如做技术相关的直播课程讲座,写参考文章或者书籍等。

类似的机会在提供报酬的同时也会增加员工的知名度和行业影响力,更有甚者,在社交媒体上发表了

 
友情链接
鄂ICP备19019357号-22