手记

如何才能从程序员到架构师?

1 引言

小团队一般 10 人左右,其中常常是技术最牛的人做架构师(或TL)。所以,架构师在广大码农中的占比大概平均不到 10%。而架构师也可以分为初级、中级、高级三档,江湖上真正高水平的软件架构师就更少了。

所以,大部分(超过九成的)码农干上许多年,还是做不了架构师,这是什么原因造成的呢?

2 说个阿里高级研究员

章文嵩,滴滴出行高级副总裁,CCF杰出工程师,成名作LVS。

LVS项目里,章文嵩是程序员,也是架构师。

LVS第一版章文嵩花两星期完成,根据首批用户反馈,这个demo“集配置简单、稳定可靠、[可扩展性]于一体”。这环节是程序员最擅长:明确做什么,怎么做,再埋头做出来。

虽“配置简单、稳定可靠、可扩展”已可过滤相当比例程序员,但真正体现架构师综合素质,是在这两星期之前、之后。

3 两星期前

发现LocalDirector太贵,需几万美元,即:

3.1 基于对痛点和需求的理解,决定做什么是有价值的

项目里需要做什么事情绝不仅是PM决定,架构师要有自己判断。架构师本身就是要在需求和技术之间trade off,一门心思搞技术很难成优秀架构师。

判断达到LocalDirector类似的效果并不难,即:

3.2 对所能取得的预期效果和投入成本,有准确判断

基于对底层机制的深刻理解,对关键技术路径和关键技术问题有准确的判断。不少项目最终没有达到预期,架构师能力不达标是主要原因。Meta倾全公司之力打造的元宇宙平台Horizon在很长一段时间内只有半个身子,现在想来依然搞笑。

LVS技术方案受Berkeley MagicRouter论文启发,即:

3.3 良好技术视野

这不是做出正确技术选型的必要条件,但帮助无疑是巨大的。对于程序来说更多是How, 但对于架构师而言What和Why更加重要。另外能google就不要baidu。

决定基于Linux开发,这是

3.4 对技术发展趋势的判断

将近30年前,Linux远没有如今服务器领域的霸主地位,选择基于Linux开发并促成LVS进入Linux内核是远见的。又比如七八年前,在K8s/Mesos/Swarm调度系统三国大战中押注K8s的架构师也是有远见的。对趋势的判断,会直接影响团队的产出甚至是项目的成败。

4 两星期后

在Linux Kernel邮件列表里广而告之。每天会收到很多邮件,有的是用户使用心得,有的是用户的修改建议,好的建议我就会采纳,这样LVS得到不断的丰富和完善,即:

4.1 自我推销和服务意识

NB的技术和产品不是自己PPT写出来的,是用户用出来的。从0到90%简单,从90%到100%难,剩下这10%靠的更多不一定是技术。

LVS很快聚集来自世界各地的问题解决高手和技术专家,他们一起为LVS的优化添砖加瓦][凡是对LVS有贡献的人,其名字都会被章文嵩写入项目历史中,即:

4.2 技术威望和技术领导力

不管谁加入,章文嵩都遵照自己的技术原则和方法论,掌控LVS的发展路径,什么东西做,什么东西不做,什么东西怎么做。同样不管是谁加入,也都会得到同等的尊重。不是所有开源项目都有如此优秀的领导者,如Rust。

章文嵩经常参加Linux的会议,章文嵩和Netfilter的作者Rusty Russell在酒吧相谈甚欢,即:

4.3 social能力

额…不是架构师必备技能,但确实是提升个人影响力的有效方法。

5 为你总结好的借口

一般原因是,一般程序员根本对接不到需求方,信息缺乏,得到的工作任务根本都是设计好的离散零碎的小模块。至于模块如何组织,为何这样组织,缺乏信息,缺乏时间,缺乏动机思考。

而且99+%的程序员不喜欢和需求方打交道,而不是没有机遇。

X 总结

也许你说,这些都不是程序员应该特别关心,而我只是想成为一个架构师,不是要成为章文嵩。如果你有这种想法,那么有可能单纯程序员更适合你。

也许你说,据我观察XX架构师也就运气好。也许他确实次次运气爆棚,也有可能是他在你不注意的地方把问题化于无形了。一般来说,云淡风轻的架构师还是要比哭爹喊娘的架构师段位高的。

也许你会说,现阶级固化,没上升机会了。只能说一夜暴富的机会越来越少了,但码农成长为架构师的通道从来没有也不可能关闭,是不会关闭,因为大多数根本没这钻研能力。

0人推荐
随时随地看视频
慕课网APP