4

我很久没写代码了,但我是个好架构师

 3 years ago
source link: https://www.cnblogs.com/siyuanwai/p/14680592.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

我很久没写代码了,但我是个好架构师

这篇文章还是架构师大刘的故事。

故事之前先说个题外话,最近到了金三银四跳槽季,有不少读者问我一些简历、面试的问题,这些问题大部分在之前的一篇硬核文章里都写过,传送门在这里:

最全干货:从写简历,到面试、谈薪酬的那些技巧和防坑指南

非常全面的一篇程序员找工作的干货文章,基本涵盖了求职的整个流程,最难得的是除了经验,还有很多需要的坑。还没看过的读者,推荐看一下,肯定有帮助。

题外话结束,故事开始。

俗子胸襟谁识我?英雄末路当磨折。莽红尘何处觅知音?青衫湿!

作这首词的本是近代女英雄秋瑾。说的却是蔑视世俗、不畏挫折磨难的壮志雄心。此时,大刘却亦有戚戚然焉。

大刘是个架构师,随着工作的日益繁忙,已经逐渐离开了在一线写代码的工作。但是在离开一线的时候,也不免听到了一些不和谐的声音。

  • 什么架构师不写底层代码,不知道还有何用……
  • 什么架构师成天不写代码,以后肯定废了……

这些靡靡杂音不绝于耳,大刘难免就有了上面的情绪。

架构师无论从何角度来讲,本质就是一位技术专家。那些架构师们因为公司的发展和职责的扩充,有的离开了一线,有的尚未离开一线。但是,无论在不在一线,

都不影响一位技术专家的核心价值。

有某些理论说,技术专家吃技术饭的,技术是个手艺活,几天不练就手生。但是这套理论和实际不一样的是,这套“手艺活理论”,并没有考虑现实里的公司对架构师本人的核心价值定位。

之所以这样说,是因为“手艺活理论”,只定义了技术问题就是手艺活能解决的问题,认为技术问题都是靠写代码搞定的。这就跟产品经理告诉你“这个需求很简单”一样可笑。

架构师不写代码不会成为公司吃干饭的——要说明这个,首先得先说明下架构师的核心价值在哪里。

有些人糊里糊涂过日子,分不出来啥叫核心价值啥叫附属价值。刚入行,拿着还算可以的薪资,以为这就是他们一辈子的状态。素不知这其实就是个温柔乡,慢慢把人套牢,然后到了中年,一切轰然崩塌,那时候,后悔也晚了。

价值这东西,放在现在打工人身上,就是你能给公司带来多少利润。就拿技术举例,你给公司开发出个新产品,公司盈利了,你就体现了你的价值。

更进一步,如果你给公司弄出了新的产品,公司预估时间为一个月,你半个月搞定了,给公司了个小 suprise,你不仅体现了你应有的价值,你还买一送一,给了公司一些小小的快乐,那么就创造出了更多的价值。

以你给公司创造出了更大价值为前提,咱们看个公式:

你实际创造的价值 = 你本来就应该给公司挣的钱 + 你优秀的能力让公司意外赚(省)的钱

从这个公式你就可以看出来了,价值这事儿得分成两个,一个是公司需要你为公司挣钱的价值,一个是你自己能力可能比同行优秀,多搞出来的价值。

第一部分就是核心价值。那个你比同行优秀或者公司让你搞产品,你不仅搞了产品,你还把地板给扫干净了的价值是一些附带的,是附属价值。

OK,知道这事儿了,咱们就得嘀咕嘀咕架构师这事儿了。大刘郁闷在哪里?本来架构师开不开发代码,这事儿不是判断架构师够不够格的标准。

但是呢,有些人可能从小土里刨食儿惯了,出来搞些码农的事情,觉得不敲代码了,就不配搞技术。手里拿着在 2.14 还亲密接触的键盘,在互联网上苟且的发表着一些阴阳怪气的意见,这就很让人不待见了,也很容易误导后来的年轻人。

公司为什么需要架构师?鲁迅先生说过

公司里本来没有架构师,系统复杂了,也就有了架构师。

架构师这岗位不是地里长出来的,是有需求创造出来的。

看到了吧,架构师的核心价值出来了:专门用来搞定公司复杂的系统的。当然,资本家的事儿能叫剥削吗?那叫帮你成长。为了帮助架构师的成长,所以架构师的责任链条又拉长了:

从搞定一个复杂系统 -> 搞定所有的复杂系统 -> 搞定所有系统 -> 所有技术你都做主了吧

于是,架构师也是拥有自己的血泪成长史的。

好了,话题扯远了,说回来。

公司需要搞出复杂的系统产品来运营,需要复杂的技术链条来运维,需要复杂的工具来加快产品开发速度……这些事儿,其实都是架构师要关心的。

在这些里面,编码就是其中一小部分工作,架构师忙不过来了,自然要放弃编码,去考虑别的问题。

架构师编码编的好,那是他高级程序员做的到位,但是这是所有技术工作中的很小的一部分。

假如大刘编码做好了,上线无 Bug 了,但是精力没顾上整体技术架构,也没顾上整体的系统分析,比如

  • 业务数据需要高可用还是高一致?
  • 在线运营的系统运行了很久了,是不是要搞代码重构了?

因为大刘深入了编码细节,疏忽了更重要的,出现了判断问题,那大刘的核心价值就被损害了。就算他写代码写的全程丝滑,但整体系统却没搞的到位,对公司来说就是损失,这个架构师就不合格。

现在一些新入行的年轻人,一边编写着代码,一边被人灌输架构师必须写代码,不写代码,他就是伪架构师,这是完全的以偏概全。架构师其实挺难当的,上面说过,随着你干的活变化,很可能架构师一下子就把公司的技术活全捞来负责了。

很多有技术追求的人,他们很想当架构师,但是又不知道该怎么学习。根据大刘自己的经验,你得先培养自己的三种能力:

1. 快速分析问题的能力

因为架构师有一个很重要的工作,就是负责解决公司的系统问题,很多系统的问题其实解决不难,但是定位非常困难,所以,定位问题能力就需要有意识的训练。定位问题的能力需要能快速梳理整体流程,然后准确的找到流程中断的地方,那个地方很可能就是问题点。当然,多见识各种系统问题也是必须的。

2. 快速学习的能力

架构师其实负责的工作很杂,几乎任何技术工作,你都能扯上架构师。架构师就是技术工作的主负责人的各种备胎。但是,架构师也是人,他也不是万事通。为了能完成这些备胎工作,架构师就得能够快速学习,对一些新鲜领域能快速技术调研给出结论,对一些不熟悉的技术领域能快速的深入学习然后找到瓶颈并解决。而且,平时也得多关注技术领域,持久化,快速化的不断学习。

3. 快速资源调配的能力

快速资源调配的能力则是因为很可能运维、开发、测试他们面临了一些技术问题,需要这些人一起配合搞清楚。比如网络问题,很可能运维、开发、测试都是互相埋怨甩锅,这时候,就需要架构师们快速确定问题,调配人员,看如何把存在的技术问题给干掉。

看到了吧,上面哪个都不是干写代码可以搞定的事情,所以,架构师这事儿,真的不能光看什么写代码。

架构师嘛,不写代码不寒碜。


你好,我是四猿外。

一家上市公司的技术总监,管理的技术团队一百余人。

我从一名非计算机专业的毕业生,转行到程序员,一路打拼,一路成长。

我会通过公众号,
把自己的成长故事写成文章,
把枯燥的技术文章写成故事。

我建了一个读者交流群,里面大部分是程序员,一起聊技术、工作、八卦。欢迎加我微信,拉你入群


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK