对于职位的一些个人看法 .......
目录
1.初级程序员(PG )
2.中级程序员(SE)
3. 高级程序员(SSE)
4.技术经理(TL)
5.技术总监(VP)
6. 首席技术官(CTO)
7. 架构师,软件架构师(SA)
1.初级程序员(PG )
也叫Junior Programer ,初级程序员的主要职责
- 能独立完成一些简单编码任务,如功能开发,接口开发
- 能在指导下能够承担一些比较复杂的设计任务或者开发任务
走出校园后的三年是程序员的门槛, 这个阶段会淘汰一些不适合写代码的人,以及一些迷茫过后不愿意在此行业发展的人。 在这个阶段,开始知道如何团队协作;在这个阶段,开始了解软件工程并参与其中;在这个阶段,开始养成自己的编码习惯和处理问题的思维以及方式;在这个阶段,积累大量的开发经验。在这个阶段培养员工会花费很大代价,因此很多公司更愿意直接招募有2-3年工作经验的开发人员
2.中级程序员(SE)
也叫 Software Engineer ,中级程序员的主要职责
- 独立完成需求拆分,程序设计,编码实现,程序测试,线上部署等工作
- 能够熟练使用常见的技术框架,并应用到项目中
第二个门槛一般是五年。一些人除了完成工作在空余的时间基本不会研究别的东西,这些人年纪大一些就会被更年轻的人替换掉。一些人在三年里处理写代码还研究一些新技术,扩展自己的技术栈。在技术方面可以独挡一面。所以这个阶段重点是坚持学习
3. 高级程序员(SSE)
也叫Senior Software Engineer, 高级程序员的主要职责是:
- 实现复杂功能,编写核心代码。
- 处理线上 bug,解决技术难题。完成系统优化
- 独立完成负责需求拆分,独立完成模块设计系统设计
4.技术经理(TL)
也叫Team Leader 技术经理的主要职责:
- 人员管理:团队搭建、人员招聘、人员培养。
- 项目管理:确保项目的按时交付,建立管理机制;
- 任务管理:开发任务分派。开发工作量评估、分派,最大化资源利用率;
- 质量管理:代码质量提升。Code Review、编码规范、线上 bug 分析;
核心能力竞争力:
1. 熟悉软件工程:把握软件研发的关键流程例如:需求分析,产品设计,软件研发,产品验收等环节,明确关键的角色为此负责,比如需求分析和产品设计必须经过产品负责人的审查,软件设计,编码和测试必须经过技术负责人和对应模块负责人的审查等等。
2. 提升工作效率:让大量重复性高的环节自动化,包括文档工具,需求卡片的自动化状态流转,选择 IDE 和代码审查工具,构建自动化测试流水线和基础设施等。将重复性高的工作自动化来提升效率。
3.重视代码审查:代码是软件研发环节最核心的交付物,也是工程师之间需要协作的关键之一。作为架构师需要能够发现并且持续优化涉及代码审查的环节,这方面 Google 的代码审查实践给我们提供了非常好的参考。
5.技术总监(VP)
或者叫技术VP (Vice President of Technical ),确保工程团队中的每一个人成功,解决成功过程中遇到的问题,将压力档在技术团队之外, 技术总监的主要职责是:
- 搭建公司技术平台部,统一技术栈,(之前的空降的一个CTO并不支持统一技术栈,并砍掉了相关的计划,我不太理解,如果看到文章的你了解原因,请帮我解惑)
- 建立产品研发体系,让技术团队可持续性地快速交付;
- 管理和协调多条产品线,打造明星产品;
- 建立技术壁垒,形成技术竞争力;
- 财务管理:人员投入,原生设计, 设备等项目费用,
- 战略发展:CETO ,市场VP等其他人员沟通讨论战略
几点核心能力:
1.理解业务:技术的核心是为了让业务获得成功,架构是技术的核心之一,所以架构师一定要加强对业务的深入理解,了解业务的痛点,偏向业务的架构师甚至能够预测业务的发展趋势,提前在业务需要的技术方向进行适当的准备。
2.提炼需求:很多时候用户提出的需求未必是真正的需求。面对需求,要养成多思考的习惯。思考需求的场景是什么,思考需求背后需要解决的问题是什么,来帮助我们识别并解决真正的需求。
6. 首席技术官(CTO)
CTO(Chief Technology Officer) 的主要职责是:
- 技术赋能商业。敏锐的商业洞察、深入的产业研究、参与公司战略规划,技术引领业务增长,通过技术和产品实现战略落地。
- 技术趋势研究。思考未来 3~5 年的技术发展趋势,以及新技术发展给企业带来的机遇和风险,为企业提前布局。
- 技术治理体系。持续的过程改进、高效的研发流程、稳定的交付质量、高可用的系统。
- 组织与文化。建设学习型组织、自我完善型组织,建立符合企业特色的文化氛围。
- 技术愿景:规划技术愿景
7. 架构师,软件架构师(SA)
Software Architect软件架构师的主要职责是:
- 业务架构设计和实现。根据业务规划和应用场景,设计切合当前业务要求,并且具备一定前瞻性的应用架构、类、接口、业务抽象及业务建模等。
- 架构设计和实现。识别非功能性需求,如性能、可扩展性、安全性、高可用及易部署等。
- 系统重构设计
上一篇:Intellij IDEA 双击启动报错ClassNotFoundException