📚 深度分析 IT 职业发展路线,做一个透彻的打工人
创建时间:
2021-08-02 16:19 星期一
一、前言
俗话说,“男怕入错行,女怕嫁错郎”,如果你是互联网/IT 那恭喜你,入对行了,因为:
- 互联网/IT 行业薪资是第二,仅次于金融行业
- 薪资排名前列的岗位都是互联网/IT 行业。
好的行业是个好的开始,混的如何,就要看自己的努力了。
二、职业发展路线
“打工人,打工魂”,优秀的打工人需要时刻思考自己的打工路线图(职业发展路径),做一个有规划、有目标、有追求的打工人。
结合上述两张图,程序员发展路线还是比较丰富的,仔细对比上面两幅图,可以发现一条比较专业路线
初级程序员(工程师)---> 中/高级/资深程序员(工程师)---> 系统架构师---> 初级/高级技术经理----> 技术(研发)总监--->CTO
接下来,本文从薪资、技能、职责、岗位特征等角度一一总结每个阶段。
三、初级程序员
3.1 基本特征
计算机、软件相关的童鞋毕业后,大部分会应聘程序员岗位(程序猿、程序猿),英文名 coder/programmer,大家常自嘲叫码农的阶段。
这个角色核心职责:把需求或产品实现为用户可用的软件产品,白话就是:敲代码,从各种 Hello world
开始。
此角色为执行级别,因为经验较少,一般需要求助别人,或与别人一起完(ban)成(zhuan)一个任务。大部分公司会安排一个师傅/老手带你。
3.2 职责(示例):
- 参与需求分析、设计、评审工作;
- 执行上级主管安排的工作任务,对负责模块进行数据库表设计、接口文档设计与开发、核心功能开发、冒烟测试 d 等;
- 对自己负责的工作质量进行把关,主动进行技术与业务知识总结;
- 负责项目的日常开发维护工作等
- 对线上产品出现的较为重大的故障进行分析、排查并且解决或协助解决问题,使产品恢复正常使用。
- 完成上级安排的其他工作
3.3 任职要求示例(以 Java 为例):
- JAVA 基础扎实,熟悉 JSP/Servlet、spring 、spring mvc 等;
- 熟悉 html、css、Jquery、Ajax 、Javascript 等前端技术; 熟悉 SQL 语法 、oracle 数据库;
- 熟悉 SQL 语法 、oracle 数据库;具有良好的问题分析、解决能力和沟通表达能力,积极主动,具备一定抗压能力;
- 具有良好的问题分析、解决能力和沟通表达能力,积极主动,具备一定抗压能力;
- 为人诚恳、诚实、积极、负责;
- 有 1 年以上经验或优秀应届毕业生;
3.4 成长
此阶段大概要经历 3 年,主要是打基础的为主,积累自己的开发经验,掌握开发技巧,熟悉开发流程,也同步锻炼自己的综合素质,比如:总结汇报、演讲、资源协调等等。
在这个阶段,如果你发现自己不适合做开发,可以转向技术之外的岗位:测试、产品、售前等
这个阶段的薪资水平:3K~10K 之间,不包括大厂哦~~
四、中/高级/资深程序员
4.1 基本特征
如果你在开发岗站稳脚,不出意外,你会一直往这条路上走下去,随着开发技能、业务经验、公司年限的增加,公司会给予你升职加薪的机会,你得职位也会从低-> 高-> 资深 这样的路径成长,至于所需的时间和你平时的积累努力是分不开的。
4.2 职责(示例):
- 主要有核心技术方案设计、封装组件、核心功能/逻辑代码开发、技术评审等工作
- 负责后端的模块设计和开发,并负责完成核心代码;
- 完成模块的设计、编码、测试工作,编写各类技术文档等;
- 支持解决各项目中提出的定制需求,协调人员及进度控制,把控产品的研发质量;
- 配合前端开发人员进行程序调试测试,最好也能掌握基本的前端开发技巧;
- 能够按照负责人的要求进行系统程序设计和数据库设计;
- 指导中初级软件工程师完成工作任务。
4.3 任职资格示例(以 Java 为例)
- 掌握 JAVA 语言,熟练使用 servlet、JDBC、多线程、网络、IO 等技术,熟悉常见算法及数据结构,有良好的编码习惯;
- 熟练使用 Spring, Spring Cloud 等开源主流框架,了解框架设计思想及其实现原理;
- 熟悉 Linux/Unix 系统,熟悉 Oracle、SQLServer、MySQL 等关系型数据库,SQL 功底扎实;
- 熟悉 Reids、MongoDB 等 NoSQL 数据库。
- 具备良好的识别和设计通用框架及模块的能力
4.4 成长
这个阶段,你不仅可以完成任务,开始注重代码的质量,能够写出工业级的代码。
你的经验可胜任模块级的系统设计,承担完成较为复杂的技术,能有效的自我管理,有帮助别人快速解决问题(trouble shooting)的能力。
此阶段你需要经历到 7、8 年左右的体验,中间要经历一段深刻自我历练的过程。
有时给人致命一击其实是心里的小蟊贼。一般人在 5 年前后遇到一个门槛,碰到天花板 + 彷徨期,或者你打心眼里不再喜欢编程,可尝试转为其它角色,如产品经理,售前售后支持等岗位,也不失为好选择。
当你做到中高级程序员,基本上组织也会让你当个小组长/主管之类的岗位,让你管理几个小组员,你的思维就要从个人思维转向团队思维了,要多思考团队何去何从。
当我们熬过这段儿,就会“山随平野尽,江入大荒流“,渐入佳境矣。
工资范围:10K~30K
五、系统架构师
5.1 基本特征
到了架构师级别,想必你已经学会降龙十八掌,可登堂入室,成为一位准(lao)专(you)家(tiao)。
我们大喊声:“单打独斗,老衲谁也不惧!“,遂开始领导一众技术高手,指点武功,来设计和完成一个系统,大多是分布式,高并发的系统架构平台。
架构师的任务是为公司产品的业务问题提供高质量技术解决方案。可能每条产品线都设置了架构师,也可能多条生产品线的的后端是由一个架构师设计的平台提供。
5.2 职责(示例)
- 需求分析:“知彼”有时比“知已”还重要。管理市场,产品等的需求,确立关键需求。坚持技术上的优秀与需求的愿景统一,提升技术负债意识,提供技术选项,风险预判,工期等解决方案。
- 架构设计:在产品功能中抽取中非功能的需求,由关键需求变成概念型架构。列出功能树,分层治之,如用户界面层、系统交互层,数据管理层。达成高扩展,高可用,高性能,高安全,易运维,易部署,易接入等能力。
- 功能设计与实现:对架构设计的底层代码级别实现。如公共核心类,接口实现,应用发现规则、接口变更等。
- 负责核心系统的架构设计,重构、优化现有的技术架构,及关键架构设计的落地实现;
- 承担业务重点、业内难点的技术攻坚,主导核心组件/服务的编码和上线;
- 负责架构和质量意识的布道,驱动研发过程的改进和交付质量的提升。
- 项目售前支持,在技术方面配合客户立项及标书规范的制定、规划设计方案、商务报价、合同相关条款等事宜;
- 不断优化架构设计的全局性和前瞻性,推动周边系统和相关团队完成系统架构落地,解决业务发展遇到的架构问题,持续提升系统平台能力。
- 强烈的自驱力和责任感,面对复杂业务问题,可以从业务和技术多角度推进,最终达成目标;
具体也可以参考:百万年薪架构师综合职业技能
5.3 任职资格示例
- 本科或以上学历,6 年以上工作经验,3 年以上系统架构设计经验;
- 掌握微服务框架、分布式架构、缓存、日志、消息等大规模集群技术;
- 熟悉虚拟化以及 Docker、kubernetes 等容器技术,有 3 年以上云计算设计经验者优先;
- 熟悉掌握 Nginx/ElasticSearch/Redis/RabbitMQ 等中间件;
- 主导并参与过大型项目的系统设计与研发;
- 深刻理解大数据处理(流计算、分布式计算、分布式文件系统、分布式存储等相关技术和实现方法,有架构和设计实践经验;
- 熟悉大数据解决方案包括 Hadoop、Spark、Storm、机器学习、深度学习等大数据解决方案;
- 精通 java、scala、python 中的一种或多种语言;
- 对数据敏感,有严谨的工作思路,良好的沟通能力,和团队合作精神;
- 高扩展性、高性能和分布式系统的实践及运维经验者优先;
- 有大型数据仓库实施、大数据平台数据开发经验,熟悉数据中台业务者优先。
- 有阿里、腾讯、字节等国内外大型互联网企业工作经验优先。
5.4 成长
成为架构师至少要 6~8 年,经历大大小小的项目。
架构下一步可以继续往技术方向深度发展,也可以往技术管理岗发展。
薪资范围:20K~40K
六、技术经理
6.1 基本特征
技术经理坦率的讲,就是从高级程序员开始分化而来,一部分同学选择继续专研技术,往纵向发展,一部分同学打算觉得未来管理这条路很好,主动选择开始转型管理这个方向,于是才有里技术主管或者经理经理这个称谓。
我还是以阿里为参考,阿里的 M 代表管理方向,你可以通过下图可以清晰的看见 P 系列和 T 系列对应的级
这个时候你就非常清晰了,技术经理本身就是从资深工程师发展而来,很多公司的技术经理根本没有从一线研发做起,大部分就是一个项目经理,带带项目为主,根本无法胜任刚才我讲到的技术经理的工作。
6.2(示例)
- 负责开发团队的日常管理,制定开发计划、任务分解、工日评估、任务安排等;
- 负责开发团队的人员培养,制定培养计划,形成人才梯队;
- 对团队所承担的项目开发进程负责,从技术上对团队提供指导;负责项目的软件开发工作及相关的技术问题的跟踪和解决;
- 参与公司软件产品或项目的关键性需求分析,以便于能对项目技术、框架选型做出相对比专业的决定;
- 深入了解公司基础平台,编写符合自身软件产品或项目的编码规范、技术文档、系统设计文档 ;
- 跟踪技术发展潮流,为公司新基础平台提供合理建议,在未来产品或项目中使用上;
- 完成直接上级安排的临时或其它工作。
- 从架构、框架层、平台层等技术方案设计;技术推广、技术视野、新技术引进等维度上制定;
6.3 任职资格示例
能力方面
- 组织能力
- 技术架构能力
- 业务分析能力
- 项目管理能力
- 沟通表达和讲演能力
- 培训下属的能力
- 风险承受能力
- 团队技术引领能力
意识方面- 组织能力建设意识
- 提高团队和个人绩效意识
七、技术总监
如果一个研发团队超过 20 人,有多条产品线或业务量很大,这时已经有多个技术经理在负责每个业务,这时需要一位技术总监。:
7.1 职责(示例)
- 根据公司战略规划与年度工作计划,制定中长期技术规划,提升公司的 IT 竞争力;
- 负责制定公司技术管理体系,包括技术规范、业务流程、项目管理、考核机制等;
- 全面有效管理研发项目的实施,保证项目的进度和质量控制,并确保项目目标的按期实现;
- 负责研发项目的技术选型、整体框架设计评审、核心代码开发评审,制定合理的技术路线,解决系统建设,开发效率,运行质量,用户体验中的问题;
- 主导技术难题攻关,持续提升核心功能的性能,解决各类潜在系统技术风险,保证系统的安全、稳定、快速运行;
- 负责技术团队的建设与管理,包括培训指导、考核等,全面提升团队技术水平
7.2 任职资格示例
- 本科及以上学历,计算机及相关专业;
- 全栈开发者,6 年以上后端开发或系统架构师工作经验, 4 年以上技术团队管理经验;
- 丰富的产品分析和设计经验,有技术战略推动能力;
- 有较强的信息规划能力,对信息技术发展有较强的敏锐度,对公司信息化技术发展提供决策性的建议;
- 具备较强的团队管理能力、项目管理能力、队伍培训能力,丰富的团队管理经验,有 PMP 经验或证书为佳。
八、CTO
8.1 基本特征
首席技术官,英文名 Chief Technology Officer。是与 CEO、COO、CFO 同级的领导者,是技术和业务融合的领袖。
国内与国外对 CTO 的定义有些许不同。
美国对 CTO 的职责是设计公司三年内的产品和服务的技术发展方向,较少参与技术团队的日常管理和项目管理事务。基本是前瞻性的策略思维,比如 Google 的谢尔盖.布林一直保持对技术方向的敏锐,比如无人驾驶汽车,人工智能等走向。
在国内,CTO 大部分则偏重于研发管理,相当于技术总监的 Plus 版。它相当于美国互联网公司常设的工程师副总裁 +CTO 的工作并集。但总体事情比美国的 CTO 层次低,大部分 CTO 的是领导技术团队开发各类产品,解决技术问题,管理不同的项目,排期交付。还有一部分的职能类似于架构师或总工程师,作为技术侧的权威,为下一步的发展方向 做研究探讨,为 CEO 提供建设型决定参考。
8.2 职责(示例)
- 结合公司战略规划,协助公司总裁挖掘企业信息资源、制定企业信息化战略、合理布局
企业信息化、评估信息化对企业的价值等;- 负责信息流、物流、资金流的整合,完成信息系统的选型实施,收集研究企业内外部的
信息,为决策提供依据,负责公司整体 Oracle 全面的集成云平台和云服务的实施与推行情
况;- 协助企业完成业务流程重组,运用信息管理技术重建企业的决策体系和执行体系。不仅
要推动企业信息化的软硬环境优化,而且要为集总裁当好参谋,与各高层管理者一起促进企
业内外部商务环境的改善;- 负责信息系统建设及正常运营使用,包括建立信息系统体系及相关管理制度、规范及业
务流程、标准工具,并提供关于信息技术的相关咨询、培训,推动并监督信息技术资源的建
立及充分利用;- 负责研究和拟定公司未来三至五年信息化建设战略规划,落实公司信息化建设计划;跟
进各信息化作业实施进度及质量,对信息化投入产出负责;推进信息化变被动为主动,推进
加强公司信息化建设。- 利用互联网技术进行快速数字化转型,做到制造数字化、管理数据化,并运用这些数字
手段让企业战略做出完整的决策;- 负责公司各信息系统、网络、服务器等软、硬件的正常规范运作,确保健壮性、可靠性;
实现企业办公信息化,业务信息化,仓储物流信息化;- 负责公司整体信息安全体系建设、推动和实施、检核监控;为公司提供更专业的信息安
全服务;- 负责对子公司的信息管理工作进行指导与稽核,确保地区信息化工作的顺畅;
- 负责部门内部人员和团队的建立,储备培养信息化体系的梯队人才;
- 负责完总裁交办的其它各项工作事务。
8.3 任职资格示例
- 全日制本科及以上学历,计算机、信息管理、通信工程相关专业,精通 JAVA,懂.NET;
- 精通现代企业经营管理,有较丰富的企业管理经验,有大型食品制造企业大数据系统建
立经验优先考虑;- 10 年以上信息化管理相关工作经验,综合性集团公司背景优先考虑; 有知名企业公司
相关岗位任职经验优先考虑;- 熟悉移动互联、物联网、大数据、O2O 等发展趋势,对综合型业务集团信息化建设有全
局的认识,对行业的新技术如大数据/人工智能有一定的研究及经验;- 掌握基本的 IT 软件开发技术工具,有国内外主流 ERP 系统上线实施管理经历优先考虑;
- 熟悉 OA、ERP、CRM、WMS 等常用信息系统,熟悉用友、SAP、Oracle 等项目实施与管理
经 fffgg 验;- 独立组织实施过大型企业 IT 项目,熟悉企业内部信息系统的架构、运作和管理;
- 具备丰富软件系统分析、软件系统架构经验;
- 具备较强的数据安全意识,保证公司信息数据安全。
8.4 成长
CTO 做的事情,是商业、产品、技术、管理、团队相平衡的综合统管,公司的技术研发方向与重点商业化的结果负责,激励员工,营造工程师文化。
而技术总监主要是协调团队内部各个资源,引入工具,和方法提升工作效率。
技术经理角色相对具体,绩效考核,产品落地,执行优胜劣汰的规则。
正像《少有人走的路》,每个人的成长路径都不同,但无一不是兴趣与使命驱动——无论你是程序员,技术经理,还是在 CTO 的角色。大家一起发挥潜力,去迎接不期而遇的挑战与胜利后的曼妙风光。
九、附录:企业各职位英文缩写
简称 | 释义 |
---|---|
GM(General Manager) | 总经理 |
VP(Vice President) | 副总裁 |
FVP(First Vice President) | 第一副总裁 |
AVP(Assistant Vice President) | 副总裁助理 |
CEO(Chief Executive Officer) | 首席执行官,类似总经理、总裁,是企业的法人代表 |
COO(Chief Operations Officer) | 首席运营官,类似常务总经理 |
CFO(Chief Financial Officer) | 首席财务官,类似财务总经理 |
CIO(Chief Information Officer) | 首席信息官,主管企业信息的收集和发布 |
CTO(Chief technology officer) | 首席技术官 类似总工程师 |
HRD(Human Resource Director) | 人力资源总监 |
OD(Operations Director) | 运营总监 |
MD(Marketing Director) | 市场总监 |
OM(Operations Manager) | 运作经理 |
PM(Production Manager) | 生产经理(Product Manager)产品经理 |
CAO | Art 艺术总监 |
CBO | Business 商务总监 |
CCO | Content 内容总监 |
CDO | Development 开发总监 |
CGO | Gonverment 政府关系 |
CHO | Human resource 人事总监 |
CJO | Jet 把营运指标都加一个或多个零使公司市值像火箭般上升的人 |
CKO | Knowledge 知识总监 |
CLO | Labour 工会主席 |
CMO | Marketing 市场总监 |
CNO | Negotiation 首席谈判代表 |
CPO | Public relation 公关总监 |
CQO | Quality control 质控总监 |
CRO | Research 研究总监 |
CSO | Sales 销售总监 |
CUO | User 客户总监 |
CVO | Valuation 评估总监 |
CWO | Women 妇联主席 |
CXO | 什么都可以管的不管部部长 |
CYO | Yes 什么都点头的老好人 |
CZO | 现在排最后,等待接班的太子 |
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于