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

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

我们来讲一个故事,一位旅行者路过一个烈日下的工地,所有人都在那儿汗流浃背地搬砖。

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

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

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

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

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

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

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

卓越的程序员

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

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

职级要求

职位要求

初级开发工程师

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

职位要求

中级开发工程师

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

职位要求

高级开发工程师

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

原文地址:https://www.cnblogs.com/shyshy/p/11054875.html

时间: 2024-10-12 02:39:11

优秀架构师是怎么炼成的?的相关文章

1天讲座,成为优秀架构师

1小时,学会架构设计:1天讲座,成为优秀架构师 歡迎參加:高老師的<1天講座,成為優秀架構師>講座課程. 地點:台北.上海.新加坡. 索取報名表:[email protected](請註明上課地點) 交流學習:學員可參與<兩岸三地交流>相互學習.無盡成長 主講人:高煥堂 (台灣T型架構師論壇.主席) ~ End ~

优秀架构师必须掌握的架构思维

一.抽象思维 如果要问软件研发/系统架构中最重要的能力是什么,我会毫不犹豫回答是抽象能力.抽象(abstraction)这个词大家经常听到,但是真正理解和能讲清楚什么是抽象的人少之又少.抽象其实是这样定义的: 对某种事物进行简化表示或描述的过程,抽象让我们关注要素,隐藏额外细节. 举一个例子,见下图:你看到什么?你看到的是一扇门,对不对?你看到的不是木头,也不是碳原子,这个门就是抽象,而木头或者碳原子是细节.另外你可以看到门上有个门把手,你看到的不是铁,也不是铁原子,门把手就是抽象,铁和铁原子是

直击架构本质:优秀架构师必须掌握的几种架构思维

介绍 架构的本质是管理复杂性,抽象.分层.分治和演化思维是我们工程师/架构师应对和管理复杂性的四种最基本武器. 最近团队来了一些新人,有些有一定工作经验,是以高级工程师/架构师身份进来的,但我发现他们大部分人思维偏应用和细节,抽象能力弱.所以作为团队技术培训的一部分,我整理了这篇文章,希望对他们树立正确的架构设计思维有帮助.我认为,对思维习惯和思考能力的培养,其重要性远远大于对实际技术工具的掌握. 由于文章内容较长,所以我把它分成两篇小文章,在第一篇<优秀架构师必须掌握的架构思维>中,我会先介

优秀架构师需要培养的四种架构思维

一个优秀架构师必须要培养四种架构思维:抽象.分层.分治.演化. 架构的本质是管理复杂性,抽象.分层.分治和演化思维是架构师征服复杂性的四种根本性武器. 掌握了抽象.分层.分治和演化这四种基本的武器,你可以设计小到一个类,一个模块,一个子系统,或者一个中型的系统,也可以大到一个公司的基础平台架构,微服务架构,技术体系架构,甚至是组织架构,业务架构等等. 架构设计不是静态的,而是动态演化的.只有能够不断应对环境变化的系统,才是有生命力的系统.所以即使你掌握了抽象.分层和分治这三种基本思维,仍然需要演

什么是软件测试架构师?

转:https://www.cnblogs.com/henryhappier/p/3216921.html 软件测试架构师是一个新职位,但确实是一个非常必要的职位,主要有几点: 1. 根据V模型.广义测试概念等,(静态)测试的越早,发现缺陷越早,越有利于产品的质量.加快产品开发周期.降低企业的成本.更重要预防设计出现严重的缺陷,如果设计出现缺陷,在系统集测试发现问题时,所造成的返工将是可怕的.这就需要对设计进行复审.评审,而在这过程中,需要测试人员参与. 2. 对于当前系统越来越复杂,不管是J2

架构师成长之路(3)--如何成为架构师(方法)

前言: 哲学家常思考的问题:" 我是谁?"" 我从哪里来?"" 要到哪里去?不只是哲学家,我想每个人都有自己对这三个问题的认知. 如果我们要成为架构师,我们自己要面临的三大问题: 找准自己定位:我是谁?在哪里? 怎样做好架构师:我要做什么? 如何搭建架构师知识体系:我该怎么做? 这里面就是做事方法论:目标(我要做什么),方法(计划)(我该怎么做),  执行/行动   1.走正确的路 如果想成为一个架构师,就必须走正确的路,否则离目标越来越远,正在辛苦工作的

.NET 高级架构师 WEB架构师 ------走正确的路

本人也是coding很多年,虽然很失败,但也总算有点失败的心得,不过我在中国,大多数程序员都是像我一样,在一直走着弯路,如果想成为一个架构师,就必须走正确的路,否则离目标越来越远,正在辛苦工作的程序员们,你们有没有下面几种感觉? 一.              我的工作就是按时完成领导交给我的任务,至于代码写的怎样,知道有改进空间,但没时间去改进,关键是领导也不给时间啊. 二.              我发现我的水平总是跟不上技术的进步,有太多想学的东西要学,Jquery用的人最近比较多啊,听

ArchSummit全球架构师峰会2017年深圳站 漫谈

自去年6月跳槽到某CDN厂,从偏向移动端开发又回到了专注后端,关于做一个移动应用独立开发者的计划暂时搁置,但是如马云所讲: "梦想还是要有的,万一实现了呢".去年下半年辛苦加班加点干活,但是却乐于其中,随着团队规模扩大,现在负担小多了.不仅仅是涉及时髦的大数据技术,而是体会到了很多非纯粹编码的道,不再死守XX编程语言,毕竟产出效率为王,更何况虽然是在大公司内,但实际也可看作是创业部门,除了极个别领域,大部分是业务驱动产品开发,技术仅仅是作为落地的工具,技术随着产品演化到某个阶段也会随着

(转)WEB架构师成长之路之一-走正确的路

本人也是coding很多年,虽然很失败,但也总算有点失败的心得,不过我在中国,大多数程序员都是像我一样,在一直走着弯路,如果想成为一个架构师,就必须走正确的路,否则离目标越来越远,正在辛苦工作的程序员们,你们有没有下面几种感觉? 一. 我的工作就是按时完成领导交给我的任务,至于代码写的怎样,知道有改进空间,但没时间去改进,关键是领导也不给时间啊. 二. 我发现我的水平总是跟不上技术的进步,有太多想学的东西要学,Jquery用的人最近比较多啊,听说最近MVC比较火,还有LINQ,听说微软又有Sil