结合自身16年的软件研发经验,谈谈程序员在职业规划中不同阶段的职责和责任,欢迎大家批评指正。

  • 程序员(0-3年)

这个角色职责是把需求或产品实现为用户可用的软件产品。此职位为执行级别。另外因为经验较少,一般需要求助别人,此阶段大概要经历3年,程序员的职责如下:

  1、负责公司运营系统的设计与开发工作

  2、运营数据处理和分析

  • 高级程序员(3-5年以上)

高级程序员就是我们说的工程师。此时你的能力开始增强,这与你平时的学习积累是分不开的,开始注重代码的质量,能够写出工业级的代码。你的经验可胜任模块级的系统设计,承担完成较为复杂的技术,能有效的自我管理,有帮助别人快速解决问题的能力。此阶段你需要经历到7、8年左右的体验,中间要经历一段深刻自我历练的过程。一般人在5年前后遇到一个门槛,碰到天花板,或者你打心眼里不在喜欢编程,可尝试转为其它角色,如产品经理,售前售后支持等岗位,也不失为好选择。当我们熬过这段儿,就会渐入佳境。高级程序员定义软件功能、做开发计划推进和管理。可以带几个帮手把产品规划的功能实现,你是团队中的骨干,遇到难题也是你亲自攻艰克难。一个高级程序员,他的职责很清晰:

  1、负责产品核心复杂功能的方案设计、编码实现

  2、负责疑难问题分析诊断、攻关解决

  • 项目经理(5-8年以上)

人生就是不断上升的过程,你已经到达经理的层次了。如今的你,需要不断提高领导力,需要定期召开团队会议讨论问题。首先我们要更加自信,在工作中显示自己的功力,给讲话增添力量。如:“本次项目虽然有很大的困难,我们也需苦战到底。项目经理有时候也可能叫系统分析员,一些小公司可能会整个公司或者部门有一个技术经理。项目经理承担的角色主要是系统分析、架构搭建、系统构建、代码走查等工作,对于项目经理来说,着重于技术方面,你需要知道某种功能用哪些技术合适,需要知道某项功能需要多长的开发时间等。同时,项目经理也应该承担提高团队整体技术水平的工作。你需要和大家站在一起,因为人们也都有解决问题的能力,更需要有以下的能力与责任:

  1、任务管理:开发工作量评估、定立开发流程、分配和追踪开发任务

  2、质量管理:代码review、开发风险判断/报告/协调解决

  3、效率提升:代码底层研发和培训、最佳代码实践规范总结与推广、自动化生产工具、自动化部署工具

  4、技术能力提升:招聘面试、试题主拟、新人指导、项目复盘与改进

  • 技术总监(5-8年以上)

如果一个研发团队超过20人,有多条产品线或业务量很大,这时已经有多个技术经理在负责每个业务,这时需要一位技术总监。

技术总监的职责:

  1、组建平台研发部,与项目经理共建软件公共平台,方便各条产品业务线研发。

2、通过技术平台、通过高一层的职权,管理和协调公司各个部门与本部门各条线。现在每个产品线都应该有合格的技术经理和高级程序员。

  • 首席架构师(7-10年以上)

需要分离管理族和专业族了。你会发现,这个阶段你的研发团队已经超过100来人了,需要有人专注来做架构规划、设计、日常维护。不能让技术总监和项目经理又做管理又做技术一股脑都扔给他们,你就等着总结果产出。这是不对的。需要从技术总监和项目经理身上剥离职责了。让技术总监和项目经理偏项目管理(管理族),把各个模块之间的架构设计工作,独立出一个岗位,就是架构师,来负责。每个产品线都有架构师,在技术平台部门也有技术平台的架构师。那么,技术平台和业务产品线的架构互动,就是首席架构师在衔接了。让技术平台架构能够和产品业务系统的架构互相促进和支撑,就是首席架构师的份内之事。架构师的职责是:

1、架构分析:从功能性需求中识别出需要增加的非功能性需求,好满足性能、可扩展、解耦/集成、安全、可运维、高可用、易部署、易更新。并且识别完非功能型需求,还要做技术选型、技术架构风险识别、技术实现工作量评估

2、架构设计与实现:非功能性模块的架构设计、接口设计、代码实现。所以需要的是有代码实现能力还要有架构思维的工程师,不需要画PPT的工程师

3、业务架构设计与实现:需要对跨系统的接口进行识别、实现、维护,需要对能写成公共代码类库的进行分析、识别、接口设计、实现、变更维护。

4、重构:架构师需要经常做问题分析、非模板性和公共类库代码检查,以发现代码腐烂程度,以发现还有哪些代码没有做很好的架构与精心的代码设计。

  • CTO(10-15年以上)

首席技术官,英文名 Chief Technology Officer,是技术和业务融合的领袖。国内与国外对CTO的定义有些许不同。美国对CTO的职责是设计公司三年内的产品和服务的技术发展方向,较少参与技术团队的日常管理和项目管理事务。基本是前瞻性的策略思维,比如Google的谢尔盖.布林一直保持对技术方向的敏锐,比如无人驾驶汽车,人工智能等走向。

在国内,CTO大部分则偏重于研发管理,相当于技术总监的Plus版。它相当于美国互联网公司常设的工程师副总裁+CTO的工作并集。但总体事情比美国的CTO层次低,大部分CTO的是领导技术团队开发各类产品,解决技术问题,管理不同的项目,排期交付。还有一部分的职能类似于首席架构师或总工程师,作为技术侧的权威,为下一步的发展方向 做研究探讨,为CEO提供建设型决定参考。

CTO的职责如下列表:

  1、技术愿景:识别新技术、利用新技术、整合新技术、驱动新技术。驱动商业战略、驱动产品战略

  2、技术架构:建立主营业务中的技术架构与实施模式,建立技术体系标准

  3、流程制度:建立高质量,高效率的技术团队。健全的项目管理体系;完善的员工能力发展体系

  4、知识培训:建立以研发内容为主的知识库管理体系、技术分享与技术文化的体系

  5、业务支撑:与其它部门的沟通协作,如HR、市场、BD、财务、客服等提供技术管理接口;在产品技术层面能够领先于业内同行

  6、影响力:在公司内部与行业中具备一定影响力与口碑

  7、视野&格局&执行力:看待问题全面,具有强大的学习力,具备技术前瞻力,敏锐的市场嗅觉,战略落地的能力。

总结一下

每个人的成长路径都不同,但无一不是兴趣与使命驱动——无论你是程序员,项目经理,还是在 CTO 的角色。大家一起发挥潜力,去迎接不期而遇的挑战与胜利后的美妙风光。

数据科学家:大器晚成,是软件工程师成功的唯一捷径相关推荐

  1. 如何解决数据科学家、数据工程师和生产工程师的阻抗失配问题

    构建一个可扩展.可靠和高性能的机器学习(ML)基础架构并不容易.这比用Python构建一个分析模型要花费更多的精力. Uber已经为许多生产中的用例运行了其可扩展和不依赖框架的机器学习平台Michel ...

  2. 从菜鸟成为数据科学家的养成方案

    首先,各个公司对数据科学家的定义各不相同,当前还没有统一的定义.但在一般情况下,一个数据科学家结合了软件工程师与统计学家的技能,并且在他或者她希望工作的领域投入了大量行业知识. 大约90%的数据科学家 ...

  3. 一个数据科学家需要哪些核心工具包?

    作者 | Rebecca Vickery 译者 | 天道酬勤 责编 | 徐威龙 封图| CSDN 下载于视觉中国 数据科学家的主要作用是将机器学习.统计方法和探索性分析应用到数据中,来提取见解并帮助制 ...

  4. 12个数据科学家秒懂的瞬间

    所谓数据科学家就是比软件工程师更擅长统计学,比统计学家更擅长软件工程的人.–Josh Wills, Cloudera毫无疑问,数据科学是如今职场上最受追捧的技能之一.CNBC的一篇文章在综合考虑就业机 ...

  5. 感同身受!12个数据科学家秒懂的瞬间

    所谓数据科学家就是比软件工程师更擅长统计学,比统计学家更擅长软件工程的人. --Josh Wills, Cloudera云纪元 毫无疑问,数据科学是如今职场上最受追捧的技能之一.CNBC的一篇文章在综 ...

  6. 如何成为一名数据科学家?(二)

    联合编译:Blake.高斐 编者注:作者Alec Smith是数据科学领域中资深HR,之所以写这篇文章是因为经常被问到一个问题:"如何才能获得一份数据科学家的职位?" 不仅这个问题 ...

  7. 数据科学家访谈录 百度网盘_您应该在数据科学访谈中向THEM提问。

    数据科学家访谈录 百度网盘 A quick search on Medium with the keywords "Data Science Interview" resulted ...

  8. SparkSQL和Hadoop(面向数据科学家和大数据分析师)

    了解HDFS命令.Hadoop.Spark SQL.SQL查询.ETL和数据分析| Spark Hadoop集群虚拟机|完全解决的问题 你会学到什么 作为本课程的一部分,学生将获得在Spark Had ...

  9. 专访丨PingCAP创始人CTO黄东旭:开源是基础软件成功的唯一道路

    亚太CDN产业联盟 备受关注的Distributed Cloud|2021全球分布式云大会·北京站于4月7日隆重召开,分布式云是2021年全球十大重要战略科技趋势,利用分布式架构技术创新,连接边缘节点 ...

  10. 想成为一个数据科学家却不知道从何下手?这份路线图带你打开数据科学大门!...

    作者 | Jane 译者 | 火火酱 责编 | 徐威龙 出品 | AI科技大本营(ID:rgznai100) 你想成为一名数据科学家吗?你对数据科学了解很多,想知道关于数据科学天花乱坠的宣传都在讲什么 ...

最新文章

  1. python基础04
  2. 创业丨中国人工智能领域投资机构10强榜单
  3. centos6 64位服务器的基本初始化
  4. 关于css的text-indent首行缩进两个字符和图片缩进的问题
  5. 安卓应用用户数据_Android手机用户注意,你要知道的中国十大安卓应用商店
  6. Apache JMeter--网站自动测试与性能测评
  7. python 管道队列_关于python:Multiprocessing-管道与队列
  8. 计算机网络课程设计之简单 Web Server 程序的设计与实现
  9. python鼠标右键检测按钮_如何检测右键单击+左键单击
  10. 超实用,Spring Security+JWT+Vue实现一个前后端分离无状态认证Demo
  11. php无限极,PHP无限极分类
  12. 宽带安装人员将光纤网线卷了很大一圈,请问,这样做会影响网速吗?
  13. 中小企业数智化转型,这个百万级客户市场差点被遗忘
  14. android color列表,Android应用资源---状态颜色列表(Color State List)
  15. 【转】js中forEach回调同异步问题
  16. MYSQL登录和常见命令
  17. npm install 报错 npm ERR! errno ETIMEDOUT
  18. 南京地铁行业发展策略与运营建设规模分析报告2022版
  19. 21 个人所得税计算
  20. 谷歌负载均衡Maglev实现简析

热门文章

  1. Linux挂载逻辑卷
  2. It seems that scikit-learn has not been built correctly
  3. 分库分表之MyCat应用
  4. 通过实例学Python爬虫(一)——认识HTML网页与爬虫基础框架
  5. Android dp方式的屏幕适配工具使用(Android Studio插件方式)
  6. arduino as5048工作原理_普通精度应用的另一种选择——磁性旋转编码器
  7. python爬虫爬取图片详解_Python使用爬虫爬取静态网页图片的方法详解
  8. ASP中Split分割字符串函数的实例用法
  9. python爬取LOL皮肤
  10. 怎么做无线路由跟服务器一个网段,一个宽带装两个路由器怎么设置?