专访 | 阿里前辈李智慧:如何培养架构思惟,我把20年的架构经讲给你听

引言程序员

就程序员而言,往后的职业发展能够走3个方向:专攻技术深度、转团队管理、晋升架构师。面试

我相信成为一名优秀的架构师,是大多数技术人的追求。但资深架构师的出现概率仅约为0.3%,若是想在3-5年后稳坐金字塔尖,除了扎实的代码功底和项目积累,如何有意识地培养技术广度和架构思惟能力,是你当下应该付出更多精力的。习惯了架构思惟,你能够从更高的层次、更高的角度去思考你如今作的事情,作出更正确的决定。数据库

北城码农邀请到前阿里技术专家李智慧老师聊聊他的架构师成长经历和思考。编程

若是你有如下三个疑问,建议花5分钟通读。架构

1.什么样的人适合作架构师?转行的人有戏吗?框架

2.架构思惟在工做中有什么做用?懂架构是否是就万事大吉了?分布式

3.架构的核心思想都有哪些?工具


嘉宾介绍oop

李智慧,曾任阿里巴巴技术专家,Intel大数据架构师,拥有20多年编程与架构经验;设计开发过阿里巴巴的分布式存储系统Doris、阿里巴巴印度站、基于Hadoop的大数据仓库Panthera等;参与过Apache Spark的开源开发,对Spark架构代码进行过多处优化。有5项分布式系统发明专利;是畅销技术书《大型网站技术架构:核心原理与案例分析》的做者,该书被若干高校选为计算机类专业教材;更是各大技术峰会的常邀嘉宾。学习


如下为专访内容整理

IT君:您是如何走上技术这条路的呢?还记得拿到第一个Offer的场景吗?

李老师:我大学不是学计算机,可是在学校里第一次学软件编程的时候,我就有一种似曾相识的感受,感受和编程有某种缘分,这种感受时隔多年,我依然可以回忆起来,我以为,对于编程,我多是有一点天分的。可是当时懵懵懂懂,也并无太多的思考和规划,第一份工做是在一家国营企业作电工。

工做两年之后,有一次陪一个朋友去当地人才市场,看到有家公司展台前面冷冷清清,过去聊了两句,原来在招程序员,对20年前一个内蒙古小城而言,程序员绝对是一个新鲜事物,难怪冷清。我试着和面试官聊了两句,可能他们实在是找不到人,虽然我既没有编程经验,又不是学计算机,可是他们仍是对我表示了极大的兴趣。对我而言,最有兴趣的是,他们开出的薪水条件要比我当时的薪水高好几倍。

可能他们实在是拿不许要不要录用一个电工作程序员,最后给我提了一个要求,让我在一周以内,用Delphi写一个仓库管理软件。之前我在学校学过汇编语言,后来自学过C语言,Delphi语言仍是第一次据说。离开人才市场就去书店买了一本Delphi编程的书,用一天时间把书看完,又借朋友的电脑用两三天的时间把软件写出来,就这样从一个电工走上了软件技术之路。

如今回想这段经历,最大的感觉是不少机会都是你毫无准备的时候来临,而且不会给你过久的时间去证实本身。若是你故步自封,或者被惰性牵制没有去突破,那机会就会离你远去了,你又进入了另外一个轨道重复的等待机会。


IT君:后来您的职场是如何发展的?给你们介绍一下您的成长里程碑。

李老师:在前面这家公司工做了近两年,开发企业管理软件,主要逻辑就是对数据库增删改查。时间一长,就以为没有挑战,枯燥无聊,比在国营企业还无聊。可是怎么脱离这种困境?

当时想去北京试试机会,可是了解了一些状况之后,以为去北京也是作同样的事情,只是换了个地点,工做自己并无什么改变。因而最后决定报考计算机专业的研究生,提升本身的知识水平,再去寻找更好的工做机会。

我当时报考的是北京工业大学人工智能专业,复试的时候却通知我被调剂到汽车专业了。因而就读了三年汽车专业硕士,毕业的时候才发现,汽车行业就业状况很不乐观,薪水还不如我三年前在内蒙古作程序员的水平,(这里给你们提个醒,选对行业相当重要)就试着投了几个软件开发的职位,很快收到几个offer,薪水也很是满意,因而继续去作程序员。

当时是在方正作一个对日外包项目,这是一个10亿日元的合同,方正专门成立了一个部门作这个项目,因为项目比较重要,部门里几个高手都被派往日本客户现场,国内则是包括我在内几个新招来的人,你们都对这个项目只知其一;不知其二。

当客户对系统总体架构提出了一些要求,我仔细研究了这些要求后,就很主动去找项目总监问:这些架构须要一些框架和工具支撑,业界彷佛没有知足要求的技术方案,咱们打算怎么作?项目总监看了我一眼说,那就你来作吧。

因而我就在没有任何准备和经验的状况下,成了这个项目的架构师,带领其余几个新同事开发了一套符合客户要求的技术框架。后来部门的高手从日本回来,部门也扩大到近两百人,虽然这个技术框架并不完美,有各类问题,可是你们没得选择,只能基于这个框架开发整个系统。开发过程当中遇到重要的技术问题,都要过来找我讨论,遇到跨层次,跨模块的技术决策,则必需要我拍板后才能统一执行。

此次主动研究和“临危受命”的经历,让我第一次体验到作架构的乐趣,经过技术手段影响项目和团队,使本身的技术审美体如今系统的各个方面,将本身的技术倾向和技术理念渗透到团队全部工程师的意识当中,并由此而引导项目走向成功。

如今看来,当时本身的技术水平比较局限,开发的框架也有很多问题。可是就是在那个时候,我顿悟了关于架构的自我意识,关于技术的做用力,关于技术管理的思想。虽而后来我得到了更多关于技术能力的提高,可是在架构的思想上,我并无太多超越十几年前的本身。后来看了一些架构方面的书,遇到一些优秀的架构师,恕我愚钝,至少在架构的本质思想上,彷佛也没有超越这个高度。


IT君:您如今做为CTO或者首席架构师的角色,站在这个高度,最大的挑战是什么,对本身还有什么要求?

李老师:我面临的最大的挑战是如何创新,如何超越本身。

我有一个悲观的理论:任何奋斗的人,都将以失败结束他的奋斗史。这句话听起来很主观,事实上是能够证实的:一我的若是经过努力得到成功,他必将继续努力以期得到更大的成功。可是人必然有自身的局限,而历史又有他自身的进程,随着成功难度的不断提升,普通人将会触及他我的能力的天花板,而最杰出的人将会触及历史进程的天花板,最终全部努力奋斗的人都将遭遇到最终的失败,越是不甘心,越是失败到怀疑人生。

大概在五六年前我意识这一点后,我就再也不单纯的追求成功,再也不追求更高的职位,更高的薪水,甚至再也不追求事业的成功,由于我自身的能力水平若是就是这样一个高度,那么我越快的获得这些成功,我就越是接近最终的失败。我更关注的是,在当下的事情中,我如何得到更高的能力提高,如何提高我能力的天花板,以推迟我最终失败的到来。

而提高本身惟一的手段就是不断地创新,创新彷佛是一件高风险的事,很容易失败。可是这些失败都不是最终的失败,对于创新者而言,无论是否失败,都将对世界和自我得到新的认知,将自身的天花板抬高了一点点。

可是无论如何,人的体力、精力、意志力都有尽头,终会有一天连创新也创不动了,我将会坦然面对那一天,而在此以前,我将乐此不疲地和本身玩一个猜谜游戏:下一个提高我天花板的事情在哪里?


IT君:您曾在阿里任技术专家,带过的项目很是多,能够给你们分享一次印象最深或收获最大的项目吗?

李老师:在加入阿里巴巴第二年的时候,由于前面工做比较出色,我被安排参与另外一个部门的一个重要项目,担任这个项目的架构师。

我在阿里巴巴以前并无互联网的经验,加入阿里巴巴第一年作的也是通用的技术框架,和互联网应用关系不大。刚加入项目组的时候,项目成员对我报以极高的指望,我本身也感受良好,作了一个庞大而浮夸的规划,在项目启动会上慷慨陈词,博得一片掌声。

可是很快,因为对互联网产品业务和技术方案都缺少足够的经验,我发现本身根本没法驾驭系统的技术方向。不过当时我已经骑虎难下,为了解决问题,我引入了更加复杂的技术方案,却使整个局面更加失控。这时候公司也看出我能力不足,安排了另外一个架构师进入项目,他加入项目组后,很快就扭转了局面,项目步入正轨,而我则黯然退场。

此后大半年的时间我都夹着尾巴作人,低调的作一些具体的开发工做,同时大量学习互联网相关的技术和业务,特别是公司内的项目代码和文档。后来又成功作了几个项目,从新赢得了同事的尊重。

此次项目经历让我深入的意识到:架构师是技术团队的研发核心,掌控着项目技术发展的方向。后来在其余一些地方我也看到一些陷入泥潭的项目,缘由和现象多种多样,可是有一个就是:架构师失去了对项目的技术掌控,架构师本身也迷失在项目之中。


IT君:您认为架构设计的核心思想都有哪些?实践中须要注意什么?

李老师:所谓架构就是总体与部分的关系、以及关键细节的设计。架构的核心思想便是如何把握总体与部分的关系,如何设计关键的细节。可是架构是无必定之规的,即便是一样的需求,在不一样的场景之中,都会有不一样的难点、重点、关键点。不一样的架构师会有不一样的理解,甚至同一个架构师在不一样的时间也会有不一样的理解,进而产生出千差万别的架构设计。

实践中,架构师必定要把握住问题的关键,必定要找到一个能够牵一发而动全身的关键点,在软件设计和开发过程当中,只要把握住这个关键点,就能够驱动项目和团队向既定的目标前进。相反,若是架构师找不到关键点,眉毛胡子一把抓,早晚会迷失在各类问题和复杂的关系之中。

听说乔布斯有一种能力叫作“扭曲现实力场”,表面上看这是一种现场表现能力,其实背后的本质是从新定义问题的能力。任何问题都有多个方面,大多数人只能看到一面,乔布斯能够看到问题的其余面,甚至是它的反面。无论是问题的那一面,其实都是问题本质的呈现,反映了问题的本质特征。

当乔布斯用人们历来没想到过的视角,向他们展示问题的反面的时候,他们会以为事物彷佛变得跟之前不同了,一切都有点光怪陆离,现实被扭曲了。从问题的反面解决问题,解决方法和路径也会彻底不一样,全部参与的人也都会所以而受益。

架构师在技术领域也须要拥有这种扭曲现实力场,看到其余人看不到的问题的另外一面,从一个不一样的视角把握住问题的关键,带领项目走向成功。

IT君:谢谢李老师的分享!

李老师在专访的最后建议:每位软件工程师都应有本身的职业规划。对技术人来讲,软件架构师就是一个很不错的职业方向。你可能会问:那么应该如何成为软件架构师?须要巩固强化哪些知识点呢?建议你先从了解架构开始,多尝试用架构思惟考虑和解决问题,在实践中练习作架构,最终成为架构师。

由拉勾教育和李智慧老师共同研发的《阿里前辈的架构经》首发!详情点此查看

相关文章
相关标签/搜索