`
给一理由先
  • 浏览: 24404 次
  • 性别: Icon_minigender_1
  • 来自: 衡阳
文章分类
社区版块
存档分类
最新评论

【转】不是每一个程序员都能够成为一个架构师

阅读更多
网络工程师培训:不是每一个程序员都能够成为一个架构师

不是每一个程序员都能够成为一个架构师——这是开发界广为流传的一个论调。架构师群体往往对这个言论表示默许,这不得不令广大入门不久的程序员们怀疑架构师们是不是隐藏了什么武林秘籍。程序员要修炼什么武功才能晋升为一个架构师?

架构师最怕程序员知道的十件事

艺术气质
管控能力
权衡取舍
内力
沟通能力
多领域知识
问题解决大师
技术前瞻性
抽象思维
卓越的程序员

每个好架构师都是一位出色的程序员

架构师,听起来是如此神秘的一个称号。尤其是在开发领域刚入门不久的菜鸟级程序员眼中,架构师都是高手,都是牛人,都是如此高高在上的存在。

不过,在搞了四、五年编程之后,程序员们往往早已失去了当年对这些“高级”职位的神秘感,  甚至会对自己所在项目的架构师抱怨不已,背后里称他们是一群水王。所以有江南白衣曾撰文述说:“国内的架构师到了三十岁以后很多就往理论上跑,而国外的架构师在往上发展的同时保持下面的编程体验,所以国内多水王,而国外则多大师。”

这就是我们今天这篇文章的论题:一个优秀的软件架构师,首先一定是一个出色的程序员。

这句话按照Fred George先生的话来说,那就是“不编程的架构师的职业生涯是短暂的”。他说这句话的背景主要是针对有些架构师的设计与实现有断层的问题而言的,因为如果架构师不去实践,只是想当然的认为“没问题,这个想法能实现”,那么对于项目的落实而言是个很大的隐患。支付宝架构师冯大辉也表示过,架构师是一个比较“虚”的岗位,主要的问题都在“落地”的过程中。

而一个架构师确认一个想法究竟能不能落地的最直接的方法,就是自己编写代码,尝试“实现一个系统最难实现的一部分”(Fred George)。看看Fred,他自己就是最好的示范:年纪一大把了,仍然每天都在编写代码。事实上,我们可以列举出一个长长的顶级架构师的列表,你会发现他们没有一个不是顶级的程序员。

我们可以列举出一个长长的顶级架构师的列表,你会发现他们没有一个不是顶级的程序员

不过这在逻辑上或许没有多少说服力,因为似乎这并不能证明一位资深架构师凭自己的经验感觉不能够知道一个想法能不能落实。如果你觉得上面这些只是某些西方老头儿对编程的古怪癖好,那么不妨看看eBay的架构师Randy Shoup先生是如何总结架构师在项目中的职责的:

1. 产品团队要做一个新产品,架构师开工了。架构师要帮助产品团队把可行性、技术需求以及权衡取舍等因素一一剖析清楚。
2. 技术需求出来了,架构师的主要工作开始了:设计整体的技术实现步骤。Randy在后面补充说“大多数成功的架构师都喜欢与其他团队成员一同完成架构和设计这一块的工作”,而认为自己应独自完成这个步骤则是新手架构师常见的误区。
3. 与开发团队一起,完成设计与实施的细节
4. 与开发团队和运维团队一起,完成部署的过程
5. 与运维团队一起,进行部署之后的维护和故障排除

在这个过程中,一个架构师至少有一半以上的工作是需要与开发团队一起进行的。按照Randy的描述,这是“一个架构师不能将实施细节抛之脑后”的体现。而且与开发团队一起工作,命令式的领导方式并不被推崇,一个架构师必须通过自己的个人影响力来对开发团队进行指导工作。而什么是影响力?说的直白一些,就是通过自己写代码以及和其他成员一起写代码,来指导团队成员实现每个架构细节的思路。

只要稍微思考一下,就会明白此举的重要性。如果一个架构师靠命令管理开发团队,告诉他们“要实现这个模块”,“要实现那个功能”,而团队也尝试照办。可是或许是架构师的要求太高了,或许是团队的开发实力不够,团队成员便会向架构师求助:您看这个我们不知道如何实现,您能否指导一下?架构师可能知道怎么处理,也可能没有仔细思考过这个问题,但又觉得自己做大事者不拘泥于小节也,于是一皱眉头扔下一句:这是你们的事,你们自己解决!


然后就是矛盾的开始了。架构师只觉得团队技术不够,而团队则对架构师愈发不满。项目黄了不说,开发团队中也会传出各种说法,比如说“此君其实是个一行代码也不会写的大忽悠!”

综上所述,便映证了Fred的那句断言:“不编程的架构师的职业生涯是短暂的”。一个架构师不仅要会写代码,还必须要能够写出自己设计的系统中最难实现的那段代码。这样他才能够放心的把“落地”的这个重担交给开发团队来做。


让我用Fred的这句话做为本篇的总结:“一个架构师的价值在于,他不仅能看到系统的美,而且能够在建造系统的时候能够把这些美创造出来。
是的,每个好架构师都是一位出色的程序员。

女性架构师优先?驾驭概念的技能是最高潜力

在近日对数位架构师进行采访的时候,编辑观察到一个很有意思的现象,那就是他们在提起一个假想架构师的时候会下意识的使用“she”或者“她”来指代。然而我们这次采访到的的架构师们却全都是男士,这似乎是一个比较难以理解的现象。

对高级架构师王翔先生的访谈似乎能在一定程度上解答这个现象的由来。在访谈中,王翔先生说到自己在特定情况下会优先培养女性做为架构师,因为“架构师在创造性、知识汇总方面根据个人经验似乎女性更适合。


无论王翔先生的个人经历是否常态,既然说男人来自火星而女人来自金星,那么这至少表明是否适合架构师一职与人的思维模式有很大关系。在这一系列的访谈中,所有接受采访的架构师们都一致的表示逻辑思维和抽象思维能力是一个架构师最重要的素质。eBay的Randy Shoup先生称拥有条理清晰的逻辑思维能力的人“就像稀有动物那样难找”。Fred George则表示“驾驭概念的技能,在我看来是每一个人最高的潜力”,并表示自己不太介意这样一个苗子在其他方面的技能和经验的匮乏,因为在他看来除了思维之外的其他因素都是可以培养的。



转载自:
http://www.netdigedu.com/jiagoubaike/11268.html
分享到:
评论

相关推荐

    系统架构设计程序员向架构师转型之路

    在这个过程中,持续学习、拓宽视野、提升沟通能力和业务理解,都将有助于程序员逐步成长为一名优秀的架构师。通过阅读"系统架构设计程序员向架构师转型之路.pdf"这本书,读者可以更深入地了解这个过程,获取实用的...

    软件架构设计:程序员向架构师转型必备(alin书签).pdf

    《软件架构设计:程序员向架构师转型必备》是一本旨在帮助程序员提升技能,迈向更高层次——架构师的著作。在IT行业中,架构师的角色至关重要,他们不仅需要掌握编程技术,还需要具备系统设计、项目管理以及业务理解...

    架构师害怕程序员知道的十项技能.ppt

    尽管架构师的工作更多地涉及到系统设计和决策,但成为一名好的架构师往往始于成为一名出色的程序员。编程能力是架构师的基础,因为这有助于他们深入理解技术细节,更好地评估技术选择,以及解决实际开发中遇到的问题...

    如何成为一名合格的架构师

    因此,每个渴望成为架构师的程序员,都应该不断提升自己的编程技能,增强与团队的沟通,同时保持对技术的热情和好奇心。只有这样,才能真正成为一名受人尊敬的架构师,用代码绘制出美丽的软件世界。

    IT程序员如何成为架构师共1页.pdf.zip

    首先,技术能力是成为架构师的基础。这不仅意味着精通至少一种编程语言,还需要深入理解计算机科学基础,如数据结构、算法、操作系统原理和网络通信。此外,对数据库管理、并发处理、性能优化以及安全性等领域的掌握...

    程序员如何提升为架构师

    4. **最终成为架构师**:此时已经掌握了大量的技术知识,并且能够从战略高度上规划整个系统的架构方案,同时还需具备良好的沟通协调能力。 总之,成为一名优秀的架构师是一个渐进式的过程,需要不断地学习新知识、...

    java程序员到架构师之路

    Java程序员到架构师之路是一个循序渐进的学习过程,涵盖了从基础编程技能到高级系统设计与管理的广泛领域。在这一转变过程中,开发者需要不断提升自己的技术深度和广度,掌握更多的软技能,以及对业务的理解。以下是...

    做人做事做架构师

    标题和描述均提到了“做人做事做架构师”,这一表述实际上...通过不断学习和实践,每一位有志于此的程序员都能够逐步成长为一名合格乃至杰出的架构师。在这个过程中,始终保持开放的心态,勇于接受挑战,是成长的关键。

    做人、做事,做架构师——架构师能力模型解析

    成为一名优秀的架构师,意味着你需要在“个人特性”和“技术技能”两方面下足功夫。在这个能力模型中,架构师的能力被分为“技术专业能力”、“人际关系能力”和“业务能力”三大核心。 首先,技术专业能力是架构师...

    系统架构师和程序员必读-《系统架构方法与实例》

    《系统架构方法与实例》是一本面向系统架构师和程序员的专业书籍,旨在揭开系统架构的神秘面纱,通过丰富的实例帮助读者深入理解架构设计...对于想要成为优秀系统架构师或程序员的人来说,这本书无疑是一份宝贵的资源。

    一个程序员的成长的六个阶段

    ### 一个程序员成长的六个阶段详解 ...每个阶段都有其特定的目标和要求,而跨越这些阶段则需要不断的学习、实践和反思。对于那些渴望成为顶尖程序员的人来说,持之以恒的努力和不断探索新领域的决心将是成功的关键。

    成为一个好的程序员需要的书.txt

    ### 成为一个好的程序员需要的书籍 对于任何想要在IT领域取得成功的人来说,了解并掌握正确的学习资源至关...通过阅读上述推荐的书籍,并积极参与到实际项目中去,相信每位学习者都能够逐步成长为一名出色的程序员。

    程序员的发展方向.txt

    例如,一个专注于后端开发的程序员可能会成长为一名优秀的系统架构师,负责整个系统的结构设计和技术选型等重要工作。 #### 二、项目管理路线 对于那些具备一定技术基础同时又善于沟通协调的程序员而言,转型成为...

    架构师之路

    【架构师之路】的描述揭示了成为优秀程序员和架构师所需的关键技能,特别是对面向对象的理解和应用。在IT行业中,架构师的角色至关重要,他们负责设计和指导软件系统的整体构造,确保系统的稳定、可扩展性和可维护性...

    程序员设计师PPT课件.pptx

    软件设计师是程序员进阶的一个重要方向,他们扮演着类似建筑架构师的角色,负责构建软件的结构和框架。在微软,比尔·盖茨曾担任首席软件设计师,这一职位象征着对技术发展方向的深刻洞察和领导力。对于程序员而言,...

    架构师在多元架构下的挑战与机遇-姜胜.pdf

    从初入行业的“小白程序员”到能够编写高质量代码并解决性能问题的“高级程序员”,再到能够实现代码模块化、功能高性能、系统高可用的“架构师”,最后成为具备理论体系、能应对复杂系统的“资深架构师”。这个过程...

    架构师感悟

    一个优秀的架构师能够设计出具有良好扩展性和稳定性的系统架构,从而支持产品的长期发展和升级。 #### 二、中国软件行业现状与挑战 - **国内现状**:在国内,许多企业更重视短期利益,往往忽略了代码质量和架构的...

Global site tag (gtag.js) - Google Analytics