菜鸟的架构师之路

一个刚刚从学校毕业的、致力于投身编程事业的年轻人,在投递了N封简历之后,终于如愿以偿得到了第一份编程的工作。如果他在求学期间没有积累过项目经验,那么可以说这就是他职业的起点,他青涩的编程之路开始了。

可能他一开始会满腔抱负、意气风发的按照自己的方式完成小头目交给自己的一些练手任务,然后懊恼的发现小头目对这些看似能够完成任务的代码大摇其头,指指点点;然后在真正进入项目之后,又会被各种不知道从哪里冒出来的bug和漏洞搞得晕头转向......

这些问题一方面和这位菜鸟程序员缺乏经验有关,但是在过来者看来,造成这些问题的一个主要原因正是在于,这位程序员没能看到问题的本质。

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

问题的本质是一个致力于成为架构师的程序员,需要尽可能的参加大的项目开发,尽管积累1000个小项目的经验也是很好的程序员,但好的架构师必须参与更大的项目,哪怕数量不多。从中我们能解读到一个信息,大的项目意味着学科跨度的增大,所需要学习的跨领域知识必然也足够大,也就更有利于程序员向架构师晋级。

架构师就相当于一支球队的主教练,如何将自己布置的战术交到执行的球员,也就是开发人员的脑袋里,是关乎胜利的关键。那么怎样才能成为一名能说会道的程序员呢?

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

作为一名卓越的程序员,架构师肯定不欠缺开发方面的知识。从架构到方法论,从数据处理到安全监控。可以说IT开发层面上,架构师可以做到炉火纯青的地步。但是这仅仅是一名卓越程序员的能力级别,离架构师那还有很大的一段距离。

铁打的程序员,流水的技术。程序员的开发生涯可能长达几十年,但一门技术的平均寿命却不长。因此作为程序员们的技术领袖,架构师必须有很好的技术前瞻性,要先于大家了解到最新的技术。

外功是从外部获得最新技术信息,那么内功就是自己的逻辑思维能力和接受能力。再新的技术,其实也与以前的技术有结合。这也是为什么我们说架构师首先是卓越的程序员,也就是这个道理。

人们往往发现优秀的数学家、物理学家以及软件架构师有着很多相似的素质,甚至往往能够一人精通这好几个领域(比如UML之父James Rumbaugh ),其中很重要的原因就是这个抽象思维的能力。架构师在接到商业需求之后,最主要的工作就是将其转化为技术需求。

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

当架构师对整个系统分析完毕,有一些架构师喜欢昏天黑地的奋斗几天,然后写出一本厚厚的架构书扔给程序员。在此之后就不做过多的交流与沟通,“具体实现?那是程序员的事情,我怎么能去干涉他们呢?”其实在这里,这位架构师就犯了错误,他并没有将自己真正融入开发团队中,而是以一种高高在上的救世主姿态出现。其实架构师未必就是神人,很多错误还是要大家一起来研究来解决的。

这里就会出现一个常见的问题“架构师是不是一个只会夸夸其谈,只会忽悠下面人而对软件开发了解不多的人?”更尖酸的问题还在于架构师连一段代码都不会写。相信这是一定的误解,就好像银行的高层管理人员,要更多的从宏观的角度考虑问题,尽管他们点钞的能力肯定不及下面的柜台人员。事必躬亲的诸葛亮,最后的结局还是国破家亡,过多的干预细节忽视整体,绝对是要打败仗的。架构师学习更多跨领域知识,也是为了在接受一个项目时,能更快更准确的找到解决问题的 “命门”。

架构师的沟通方向与项目经理相比,还是有一定的区别。比如项目经理有很大一部分时间需要与客户进行沟通,进一步弄清需求。而架构师的沟通主要在于开发团队内部,一种纯技术上的沟通。这也是作为技术领路人的架构师,最日常的工作。

有人谈到技术高手与架构师的区别就在于,架构师不光是着眼于现在,不仅仅局限于开发细节,比如如何调用,如何并发等等。而是跳出三界外,考虑一下面向未来问题和潜在风险的应对之道。

架构师身为一名技术领袖,需要通过发散知识的光芒来统御开发团队的。如果只是对本行业知识做到烂熟于心,那还仅仅是一名熟练工的水平。要想晋升更高的层次,还需要跳出“只缘身在此山中”的困惑。例如在目前国内架构师,至少有网络领域为依托,物流金融证券等熟知越多越好,这个是应用级别。比如南天的金融平台研发部门,但是这个成不了底层平台架构师。再往上走,很多公司的研发人员不是精通计算机,可能是物理极为精通,比如中软研发声纳软件部门很多人对数据信号极有研究。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值