What do programmers, architects, technical managers, technical directors, and CTOs do?

​Programmer  

  Programmers, English name coder/programmer, people often laugh at themselves as the stage of code farmers. This role is responsible for realizing the requirement or product as a software product available to users.

  This position is executive level. In addition, because of less experience, it is generally necessary to ask others for help, or to complete a task with others.

  This stage will take about 3 years, and the responsibilities of the programmer are as follows:

  1. Responsible for the design and development of the company's operating system

  2. Operational data processing and analysis

  senior programmer

  Senior programmer scientific name engineer. At this level, the English name can be changed to engineer or developer. At this time, your skills begin to increase, which is inseparable from your usual accumulated efforts, congratulations~

  At this time, you can not only complete the task, but also start to pay attention to the quality of the code, and be able to write industrial-grade code.

  Your experience can be competent for module-level system design, undertake more complex technologies, be able to effectively self-manage, and have the ability to help others solve problems quickly (trouble shooting).

  At this stage, you need to experience about 7 or 8 years of experience, and in the middle you need to go through a process of profound self-experience.

  Sometimes the fatal blow is actually a little thief in my heart. Most people encounter a threshold around 5 years ago, when they hit the ceiling + hesitation period, or if you don’t like programming in your heart, you can try to change to other roles, such as product manager, pre-sales and after-sales support, etc. It is also a good choice.

  When we get through this period, "the mountains will follow the plains, and the river will flow into the great wilderness", and it will gradually get better.

  Senior programmers define software functions, do development plan promotion and management. You can bring a few helpers to realize the function of product planning. You are the "big hand" in the team, and you will overcome the difficulties yourself.

  So, a senior programmer, his responsibilities are very clear:

  1. Responsible for the scheme design and coding implementation of the core complex functions of the product

  2. Responsible for analyzing and diagnosing difficult bugs and solving key problems

  architect

  At the architect level, you must have learned to subdue the dragon and eighteen palms. You can join the WTO and become a quasi (lao) professional (you) home (tiao).

  We shouted: "Fighting alone, no one is afraid of the old man!", and then began to lead a group of technical experts, instructing martial arts, to design and complete a system, most of which are distributed, high-concurrency system architecture platforms.

  架构师的任务是为公司产品的业务问题提供高质量技术解决方案。可能每条产品线都设置了架构师,也可能多条生产品线的的后端是由一个架构师设计的平台提供。

  通过上面架构师的部分成果,总结其职责如下:

  1、需求分析:“知彼”有时比“知已”还重要。管理市场,产品等的需求,确立关键需求。坚持技术上的优秀与需求的愿景统一,提升技术负债意识,提供技术选项,风险预判,工期等解决方案。

  2、架构设计:在产品功能中抽取中非功能的需求,由关键需求变成概念型架构。列出功能树,分层治之,如用户界面层、系统交互层,数据管理层。达成高扩展,高可用,高性能,高安全,易运维,易部署,易接入等能力。

  3、功能设计与实现:对架构设计的底层代码级别实现。如公共核心类,接口实现,应用发现规则、接口变更等。

  技术经理

  人生就是不断上升的过程,你已经到达经理的层次了。如今的你,需要不断提高领导力,需要定期召开团队会议讨论问题。

  首先我们要更加自信,在工作中显示自己的功力,给讲话增添力量。如:“本次项目虽然有很大的困难,我们也需苦战到底。当然示先垂范,身先士卒,方能成功!”

  技术经理有时候也可能叫系统分析员,一些小公司可能会整个公司或者部门有一个技术经理。技术经理承担的角色主要是系统分析、架构搭建、系统构建、代 码走查等工作,如果说项目经理是总统,那么技术经理就是总理。当然不是所有公司都是这样的,有些公司项目经理是不管技术团队的,只做需求、进度和同客户沟 通,那么这个时候的项目经理就好像工厂里的跟单人员了,这种情况在外包公司比较多。对于技术经理来说,着重于技术方面,你需要知道某种功能用哪些技术合 适,需要知道某项功能需要多长的开发时间等。同时,技术经理也应该承担提高团队整体技术水平的工作。

  你需要和大家站在一起,因为人们也都有解决问题的能力,更需要有以下的能力与责任:

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

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

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

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

  技术总监

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

  技术总监的职责:

  1、组建平台研发部,与架构师共建软件公共平台,方便各条产品业务线研发。

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

  CTO

  首席技术官,英文名Chief Technology Officer。是与CEO、COO、CFO同级的领导者,是技术和业务融合的领袖。

  国内与国外对CTO的定义有些许不同。

  美国对CTO的职责是设计公司三年内的产品和服务的技术发展方向,较少参与技术团队的日常管理和项目管理事务。基本是前瞻性的策略思维,比如Google的谢尔盖.布林一直保持对技术方向的敏锐,比如无人驾驶汽车,人工智能等走向。

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

  CTO的职责如下列表:

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

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

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

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

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

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

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

  小结

  CTO做的事情,是商业、产品、技术、管理、团队相平衡的综合统管,公司的技术研发方向与重点商业化的结果负责,激励员工,营造工程师文化。

  而技术总监主要是协调团队内部各个资源,引入工具,和方法提升工作效率。

  技术经理角色相对具体,绩效考核,产品落地,执行优胜劣汰的规则。

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

【架构师小秘圈,坚持每天更新优质文章⬇️】

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326440983&siteId=291194637