這篇文章還是架構師大劉的故事。
故事之前先說個題外話,最近到了金三銀四跳槽季,有不少讀者問我一些簡歷、面試的問題,這些問題大部分在之前的一篇硬核文章里都寫過,傳送門在這里:
非常全面的一篇程序員找工作的干貨文章,基本涵蓋了求職的整個流程,最難得的是除了經驗,還有很多需要的坑。還沒看過的讀者,推薦看一下,肯定有幫助。
題外話結束,故事開始。
俗子胸襟誰識我?英雄末路當磨折。莽紅塵何處覓知音?青衫濕!
作這首詞的本是近代女英雄秋瑾。說的卻是蔑視世俗、不畏挫折磨難的壯志雄心。此時,大劉卻亦有戚戚然焉。
大劉是個架構師,隨着工作的日益繁忙,已經逐漸離開了在一線寫代碼的工作。但是在離開一線的時候,也不免聽到了一些不和諧的聲音。
- 什么架構師不寫底層代碼,不知道還有何用……
- 什么架構師成天不寫代碼,以后肯定廢了……
這些靡靡雜音不絕於耳,大劉難免就有了上面的情緒。
架構師無論從何角度來講,本質就是一位技術專家。那些架構師們因為公司的發展和職責的擴充,有的離開了一線,有的尚未離開一線。但是,無論在不在一線,
都不影響一位技術專家的核心價值。
有某些理論說,技術專家吃技術飯的,技術是個手藝活,幾天不練就手生。但是這套理論和實際不一樣的是,這套“手藝活理論”,並沒有考慮現實里的公司對架構師本人的核心價值定位。
之所以這樣說,是因為“手藝活理論”,只定義了技術問題就是手藝活能解決的問題,認為技術問題都是靠寫代碼搞定的。這就跟產品經理告訴你“這個需求很簡單”一樣可笑。
架構師不寫代碼不會成為公司吃干飯的——要說明這個,首先得先說明下架構師的核心價值在哪里。
有些人糊里糊塗過日子,分不出來啥叫核心價值啥叫附屬價值。剛入行,拿着還算可以的薪資,以為這就是他們一輩子的狀態。素不知這其實就是個溫柔鄉,慢慢把人套牢,然后到了中年,一切轟然崩塌,那時候,后悔也晚了。
價值這東西,放在現在打工人身上,就是你能給公司帶來多少利潤。就拿技術舉例,你給公司開發出個新產品,公司盈利了,你就體現了你的價值。
更進一步,如果你給公司弄出了新的產品,公司預估時間為一個月,你半個月搞定了,給公司了個小 suprise,你不僅體現了你應有的價值,你還買一送一,給了公司一些小小的快樂,那么就創造出了更多的價值。
以你給公司創造出了更大價值為前提,咱們看個公式:
你實際創造的價值 = 你本來就應該給公司掙的錢 + 你優秀的能力讓公司意外賺(省)的錢
從這個公式你就可以看出來了,價值這事兒得分成兩個,一個是公司需要你為公司掙錢的價值,一個是你自己能力可能比同行優秀,多搞出來的價值。
第一部分就是核心價值。那個你比同行優秀或者公司讓你搞產品,你不僅搞了產品,你還把地板給掃干凈了的價值是一些附帶的,是附屬價值。
OK,知道這事兒了,咱們就得嘀咕嘀咕架構師這事兒了。大劉郁悶在哪里?本來架構師開不開發代碼,這事兒不是判斷架構師夠不夠格的標准。
但是呢,有些人可能從小土里刨食兒慣了,出來搞些碼農的事情,覺得不敲代碼了,就不配搞技術。手里拿着在 2.14 還親密接觸的鍵盤,在互聯網上苟且的發表着一些陰陽怪氣的意見,這就很讓人不待見了,也很容易誤導后來的年輕人。
公司為什么需要架構師?魯迅先生說過
公司里本來沒有架構師,系統復雜了,也就有了架構師。
架構師這崗位不是地里長出來的,是有需求創造出來的。
看到了吧,架構師的核心價值出來了:專門用來搞定公司復雜的系統的。當然,資本家的事兒能叫剝削嗎?那叫幫你成長。為了幫助架構師的成長,所以架構師的責任鏈條又拉長了:
從搞定一個復雜系統 -> 搞定所有的復雜系統 -> 搞定所有系統 -> 所有技術你都做主了吧
於是,架構師也是擁有自己的血淚成長史的。
好了,話題扯遠了,說回來。
公司需要搞出復雜的系統產品來運營,需要復雜的技術鏈條來運維,需要復雜的工具來加快產品開發速度……這些事兒,其實都是架構師要關心的。
在這些里面,編碼就是其中一小部分工作,架構師忙不過來了,自然要放棄編碼,去考慮別的問題。
架構師編碼編的好,那是他高級程序員做的到位,但是這是所有技術工作中的很小的一部分。
假如大劉編碼做好了,上線無 Bug 了,但是精力沒顧上整體技術架構,也沒顧上整體的系統分析,比如
- 業務數據需要高可用還是高一致?
- 在線運營的系統運行了很久了,是不是要搞代碼重構了?
因為大劉深入了編碼細節,疏忽了更重要的,出現了判斷問題,那大劉的核心價值就被損害了。就算他寫代碼寫的全程絲滑,但整體系統卻沒搞的到位,對公司來說就是損失,這個架構師就不合格。
現在一些新入行的年輕人,一邊編寫着代碼,一邊被人灌輸架構師必須寫代碼,不寫代碼,他就是偽架構師,這是完全的以偏概全。架構師其實挺難當的,上面說過,隨着你干的活變化,很可能架構師一下子就把公司的技術活全撈來負責了。
很多有技術追求的人,他們很想當架構師,但是又不知道該怎么學習。根據大劉自己的經驗,你得先培養自己的三種能力:
1. 快速分析問題的能力
因為架構師有一個很重要的工作,就是負責解決公司的系統問題,很多系統的問題其實解決不難,但是定位非常困難,所以,定位問題能力就需要有意識的訓練。定位問題的能力需要能快速梳理整體流程,然后准確的找到流程中斷的地方,那個地方很可能就是問題點。當然,多見識各種系統問題也是必須的。
2. 快速學習的能力
架構師其實負責的工作很雜,幾乎任何技術工作,你都能扯上架構師。架構師就是技術工作的主負責人的各種備胎。但是,架構師也是人,他也不是萬事通。為了能完成這些備胎工作,架構師就得能夠快速學習,對一些新鮮領域能快速技術調研給出結論,對一些不熟悉的技術領域能快速的深入學習然后找到瓶頸並解決。而且,平時也得多關注技術領域,持久化,快速化的不斷學習。
3. 快速資源調配的能力
快速資源調配的能力則是因為很可能運維、開發、測試他們面臨了一些技術問題,需要這些人一起配合搞清楚。比如網絡問題,很可能運維、開發、測試都是互相埋怨甩鍋,這時候,就需要架構師們快速確定問題,調配人員,看如何把存在的技術問題給干掉。
看到了吧,上面哪個都不是干寫代碼可以搞定的事情,所以,架構師這事兒,真的不能光看什么寫代碼。
架構師嘛,不寫代碼不寒磣。
你好,我是四猿外。
一家上市公司的技術總監,管理的技術團隊一百余人。
我從一名非計算機專業的畢業生,轉行到程序員,一路打拼,一路成長。
我會通過公眾號,
把自己的成長故事寫成文章,
把枯燥的技術文章寫成故事。
我建了一個讀者交流群,里面大部分是程序員,一起聊技術、工作、八卦。歡迎加我微信,拉你入群