优秀架构师是怎么炼成的?

转:https://www.cnblogs.com/ljysy/p/11025583.htmlhtml

咱们来说一个故事,一位旅行者路过一个烈日下的工地,全部人都在那儿汗流浃背地搬砖。程序员

旅行者问第一我的在干什么,那人头也没抬地回答:“我在搬砖。”编程

旅行者问第二我的在干什么,这个匆匆抬起头认真地说:“我在砌墙。”安全

旅行者问第三我的在干什么的时候,那我的脸上充满了光彩,很自信地说:“我在盖圣玛利亚大教堂。”这个故事是否是像极了咱们从事软件开发工做的不一样阶段的不一样状态。每当听到从程序员到架构师的书或者文章时,咱们老是充满好奇,想从其中获取一些观点亦或是技能点,接下来咱们就详细讲讲一下,如何从程序员走向架构师。架构

首先咱们定一个基准点:架构师只是功底深厚的程序员,千万不要成为不会写代码的架构师。框架

架构师应该是立足于技术和业务之间的中间角色或者平衡点, 在针对业务深入理解的基础上,针对业务中存在诸多变数,挑选适合的技术架构和技术方案。能够这样说,一个架构师工做的好坏决定了整个开发项目的成败。运维

 

开篇的基准点:架构师只是功底深厚的程序员;编程语言

程序员从初级、中级、高级再到架构师,是一个不断经验积累的过程,可是在这过程当中咱们经常很迷茫,不只仅是面对技术繁杂的无力感,更重要的是由于长期埋没于代码世界的浩大的分工体系中,没法看清从业务到系统架构的价值链条,没法清楚定位本身在分工体系的位置,处理很差自身与技术、业务的关系所致。因此在程序员生涯中除了技术实力之外,其它软实力也不容忽视。如:主动学习、积累经验、控制注意力、超越自我。性能

卓越的程序员学习

 

对于一个卓越的程序员来讲,编程技能毋庸置疑是很重要的。可是,除了基本的编程开发能力,其余方面的能力也是体现一个程序员的能力的很重要因素。好比,问题排查能力、线上运维能力、项目管理能力、协调沟通能力等。

咱们先看IT市场对于一个不一样阶段的程序员的要求:

 

 

职级要求

职位要求

初级开发工程师

 

 

  • 综述:主动性,积极主动,可以主动了解相关业务需求,在上级的领导和监督下按期完成量化的工做要求;
  • 项目管理:不须要项目管理的能力,具有管理简单模块开发任务的时间点。
  • 开发语言技能及架构能力1.能独立处理和解决所负责的任务;2.根据开发进度和任务分配,完成相应模块软件的设计、开发、编程任务;3.进行程序单元、功能的测试,查出软件存在的缺陷并保证其质量;
  • 业务理解一、根据产品需求PRD理解简单模块的业务流程,根据业务流程书写相应的开发流程,可以根据本身的理解评估模块开发的时间点。
  • 影响一、能影响同级开发人员,获得项目组承认。

职位要求

中级开发工程师

 

 

  • 综述:独立性,根据项目具体要求、承担开发任务,按计划完成任务目标。
  • 项目管理:具有有必定初级难度的项目(如链路较短\模块复杂较低\风险较小\发布周期不紧)的PM的经验和能力。
  • 开发语言技能及架构能力一、理解产品文档,参与需求评审、需求分析、系统设计;二、负责确保项目的进度和质量;三、整理和提交相关设计文档,对负责的功能模块有自测习惯;四、对所负责的模块有维护责任,有问题及时解决。
  • 业务理解一、熟悉本身负责的业务模块,对业务模块的流程有独立的思考,产品设计时能给出合理有效的方案建议;
  • 影响一、能影响项目的成员,是团队内公认的主力成员之一;二、加分项:有良好的分享习惯。

职位要求

高级开发工程师

 

 

  • 综述:自主性,独当一面,能独立主导和推进项目及任务,在专业领域具有辅导他人的能力
  • 项目管理:具有有必定中等复杂度的项目(如链路较长、模块复杂度较高、风险较大、发布周期较紧、技术驱动等)的PM经验和能力。
  • 开发语言技能及架构能力一、能独立解决问题,可以负责重要业务模块的需求分析及设计实现。二、熟悉设计原则,可以在平常编码工做中恰当使用,优化原有设计(有实例支撑);三、熟悉编程语言、编码规范、安全规范,具有性能意识,代码具有高可读性;四、了解经常使用框架背后的原理。
  • 业务理解一、熟悉本身直接负责的业务,对业务产品具备独立沟通,完善业务需求;并识别方案的风险能力;关注本身参与项目的业务数据;二、可以在所负责的业务及产品上有独立的看法,能提出合理的建议,更有效的解决业务问题;
  • 影响一、能影响项目组或产品线的成员,是项目组或产品线公认的主力人员;范围:团队内。二、加分项:具有辅导他人的能力和技能,有良好的分享习惯。
相关文章
相关标签/搜索