做为程序员,在开发岗位上作了几年,特别是到了30岁,这个而立之年,咱们会来到一个重要的人生岔路口。就是管理和技术两个选择,一边专业路线,一边是管理路线。前端
在互联网的头部企业,对管理和技术是平等对待的,因此晋升会存在管理和技两个通道的程序员
既然有了选择,就会有人纠结,不知道是选择专业路线,仍是选择技术团队的管理路线。算法
这个选择是程序员人生中第一个大的选择,也是第一个障碍,倒不是说这个障碍是到底要不要选择管理,而更多的是对作管理的迟疑,怀疑到底能不能作好管理,作了管理以后,技术是否是就荒废了。微信
这种状态犹豫不决、摇摆不定的状态保持时间长了,最终会致使技术和管理都没作好,这是得不偿失的。markdown
为了解决这个问题,有必要分析程序员职业发展的路线到底有几条,分别须要具有怎样的能力,从而作到”手中有粮,心中不慌“网络
技术类上,是有两个方向:架构师和技术专家架构
架构师他的侧重点是在“广”上,他主要负责技术的总体和架构,在业务上,须要有很深的理解,有丰富的经验,甚至能作到“走的桥比你吃的盐还多”。在技术上,可以普遍涉略,掌握的技术知识越多,内力就越加深厚。框架
我以为架构师还须要三点必备能力,其一须要有极强的执行力,可以快速的给出合理的方案,推进技术落地。其二须要有极强的判断力,可以准确的找到复杂系统的疑难问题所在,就像武林高手,一眼就看出对方的破绽。最后还须要有极强的创新力,可以创造新的解决方案,解决现有技术难题。oop
因此从程序员到架构师的成长之路,总的指导原则是:积累经验,拓宽视野,深度思考(能够参考我以前文章《程序员进阶必备能力——深度思考》)spa
技术专家他的侧重点是在“专”上,这个就很好理解,就是在某个领域可以深刻,可以熟悉其背后运行原理。不一样的领域都会存在专家,例如:Java专家、前端专家、图像算法专家、Linux内核专家等等。专家相对架构师,更加专一,并不会考虑太多总体方案。
因此从高级开发成长为技术专家,主要是扩展领域内的技术宽度,提高领域内的技术深度。由于领域也不是特别窄的一个面,而是包含多个技术面。
举一个例子:Linux内核专家,要想成为Linux内核专家,须要掌握,Linux CPU调度、内存管理、进程管理、存储管理、文件系统、设备管理和驱动、网络通讯、系统调用、系统初始化等技术面。
在每一个技术面中,一样包含了不少技术点,这些技术都是知识盲区,因此须要提高技术深度。
管理也分为了两个方向,技术管理和职业管理。顾名思义,技术管理更加倾向于技术,而职业管理彻底抛开了技术,纯粹的商业方向。
**技术管理,**这个方向是程序员最天然的选择。大部分的技术管理者,在其从程序员转为管理岗位的时候,都是在领导或公司的要求下,被动的推到技术经理岗位上的,并不是是本身当初有强烈意愿、主动去选择管理岗的。而后走上曼曼打怪进阶的路线,从技术经理岗到技术总监,带领几十号人的团队冲关,而后到成为技术业务部和事业部的技术副总裁,至关于CTO了。
技术管理须要在业务上有较深的理解,在技术上可以根据技术发展趋势,进行技术规划。在产品上可以极强的洞察力,进行产品规划。在团队加上可以规划团队建设、组织结构等等,因此这是综合素质的要求。
职业管理
职业管理者每每更加关心于总体产品业务的团队,不限于技术团队。好比某个事业部的总裁,或者是某个业务部的总裁。你们每每都听过某某事业部空降了领导,这个领导就是属于职业管理者,他的移动性更增强,能力更加通用。这个方向是可遇不可求的,有些人一生都不可能触及到。这个就是天花板上的别人家的楼板,你说难不难?
创业这个方向上,通常是做为技术合伙人来参与,若是想要本身的创业公司可以成功,必须是全能型创业团队,在技术、产品、营销等方面不能有明显的短板。
我举一个真实的例子:个人上一家公司的直接领导,辞去技术总监的职位,做为一个技术合伙人建立了一个团队,主要提供物流解决方案。前几个月和他聊,公司已经在去年实现盈利1000多万,经过股权上操做,已经成为最大的股东,掌管着整个公司的前进方向。
说到这里挺可惜的,创立之初,当时极力的拉我入伙,被我拒绝了,理由是工资过低了,这个理由在如今看来简直好笑啊
项目经理
这个方向也是程序员比较常见,也比较天然的方向。项目经理其实一种组织整合能力。不一样于技术管理,这条路线走起来,几乎不须要任何外界依赖因素。
最须要关注的是进度、质量、人力、成本、风险。
那如何提高项目管理能力呢?
首先须要对项目管理知识框架有个大体的认识,避免在庞大的知识体系中迷失方向,好比:
范围管理:项目为什么老是作不完?范围管理要界定
风险管理:项目风险引起的问题、成因以及防范方法
沟通管理:作好项目沟通计划
质量管理:增强项目质量
时间管理:项目进度控制
成本管理:产品成品控制
等等
其次须要掌握项目计划、项目变动、项目进展报告、复盘等过程方法。
最后须要掌握跨部门协做,多维度沟通上进行增强。
产品经理
程序员转产品经理,须要作到技术思惟到产品思惟的转换。
技术思惟角度是从功能开始,而产品思惟的角度是从业务开始。
做为程序员,当要作一个项目时候,咱们最关心的是这个项目有哪些功能,而后考虑每一个功能如何实现;
而做为产品经理,当要作一个项目时候,咱们看重这个项目的业务场景是什么,解决用户什么问题
技术思惟角度是怎么去实现功能,而产品思惟角度是为何要这个业务。
从技术思惟的角度关注一个需求时候,老是先关注一个需求如何去实现,即HOW;
而从产品思惟上来关注一个需求时候,应该多问一下WHY,为何须要这个需求,多思考为何,从而找到需求或问题的本质。
技术思惟角度是向专家同样行动,而产品思惟角度是向小白同样思考。
做为程序员,咱们平常接触到最多的仍是技术人员,这些人通常来讲逻辑思惟都较强,擅长使用和处理各类软件,因此老是将这种形象代入到客户身上。
但做为产品人员思考时候,将用户想得越“小白”越好,假设他们是不懂电脑,不太会玩手机,甚至不会打字的人。
上面4个方向是程序员主要的职业发展路线,做为我的来看,若是能一直作本身热爱的工做和喜欢的角色,应该是最好的状态。
无论走那一条路,一些能力是共通的,好比:技术规划、团队建设、沟通、时间管理等。处于本身的选择,可能不会选择管理方向,可是不免在之后的工做中会和管理者打交道。管理做为一种通用的素质,但愿你们可以技多不压身。
总之,做为程序员,技术和管理,就像人的两条腿,全部的职业发展路线都离不开,毕竟一条腿是走不远的。
推荐阅读(干货)
另外,我把公众号的经典文章从不一样的角度理解。欢迎你们查看,以下:
一、关注个人原创微信公众号「pointers」,回复:【网盘】,还可得到pandownload复活版,下载速度60M/S。
二、给俺点个赞呗,可让更多的人看到这篇文章,顺便激励下我,嘻嘻。
做者:我袁吴范,一位物联网大厂技术总监,从业7年。从软件开发、高级软件开发、技术经理再到技术总监,从软件开发到高级软件开发只用了3年,从技术经理再到技术总监只用了2年。
热衷于分享职业发展、技术管理、职场晋升、技术成长等我的多年经验和心得。
关注公众号pointers,
转载说明:未得到受权,禁止转载