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