本文想告訴大家如下兩個觀點。
1 很多IT小公司的技術總監,論能力其實也就是相當於大公司的高階程式設計師。
2 程式設計師在職業發展過程中,絕對應該優先考慮進大廠或好公司。如果僅僅停留在小公司,由於小公司可能無法接觸到值錢的技術,所以哪怕做到小公司的技術總監,依然可能會遇到大齡危機。
我見過不少小公司,比如某軟體園裡有很多棟樓,有些軟體公司可能也就佔一個或多個樓層,甚至只佔了幾個房間,這種公司一般也就十幾號開發,頂兩天也就一百多個開發,這類公司的不少技術總監,能力上和一般的開發有什麼差別呢?
1 一定是非常熟悉業務,比如公司做的一個電商物流系統,技術總監一定會知道每個模組的邊邊角角細節,不過熟悉某個公司的業務知識在跳槽時對自己的幫助並不大。
2 熟悉各種專案管理和測試工具,比如git,maven,gradle,postman,同時知道專案在開發完成後如何確保質量,如何釋出到產線上。這些技術點可能不少大廠程式設計師不會認為什麼,但在不少小公司裡,能做熟這些工作的人並不多。
3 知道各種元件的基本用法,比如知道微服務元件或容器的各種用法,但相比於大公司,這些小公司的技術總監真有不少只會用api,只知道基本的配置。
4 大公司的技術總監,往往需要架構方面的技能,比如能根據業務,搭建能應對高併發,能確保高可用的系統架構,同時需要搭建監控系統確保系統能正常執行,如果出了問題,大公司的技術總監往往要兜底,即別人排查不了的問題自己要頂上。但小公司的技術總監更多的職責是管人,即會多承擔專案經理的角色。
下面我就說說我見到的不少小公司技術總監的一些情況。
1 本人的一個朋友,在某軟體園開了一個接外包單子的公司,開發人數是20多號人。這個公司用的技術是spring boot系列,比較偏重於單機版,不怎麼用到分散式元件。
其中的技術總監,平時的工作時和客戶去談需求,然後把需求拆分成若干個模組讓手下人開發,由於小公司的技術棧並不複雜,也就用到spring boot+資料庫,外帶些logback寫日誌等的元件,所以一些剛畢業的程式設計師,只要在大公司裡呆個2,3年,都能達到這個程度。
2 本人也見過在一個某開發區公司的技術總監,這個公司是做外貿業務的,開發人員大概有10個20個人,用到的是java技術棧。
這位技術總監,平時更多的承擔的是產品+專案經理的角色,論java技術,一些比較普遍redis叢集或spring cloud alibaba元件叢集,他都認為很高深。給本人印象比較深的是,當時本人給他們系統搭建了一個基於nacos雙節點的服務治理叢集,一個節點失效了另一個節點能頂上去,這位技術總監就認為這是很稀奇的事情了。
3 某個開發區內某小公司的技術總監,要搭建公司的業務架構,本人參與了一些,也瞭解了小公司裡搭建架構的具體做法。
具體包括,先搭建好git程式碼環境,然後為每個機器安裝好IDEA+Gradle環境,找個伺服器搭建Oracle資料庫,同時確保每個開發人員都能用客戶端連到資料庫上。業務架構層面,就用spring boot控制器+service+repo層,同時寫了些通用性的方法,比如連資料庫和寫日誌的通用方法。
當然必要時再會引入redis和kakfa等元件,是先找個伺服器安裝好元件,然後寫一些通用性的方法告訴底下人怎麼用。在專案開發好以後,這位技術總監還要負責把產品部署到伺服器上。
從上述的描述裡大家可以看到,不少小公司的技術總監,平時乾的更多是產品+管人+系統部署維護+日常修bug的活,或者說更多幹的是打雜的事情。要說乾的活裡包含多少技術含量,這倒也未必。不過這些技術總監可能雖然在當下公司不可或缺,甚至是威風凜凜,但如果要跳槽,會發現自己真可能缺乏必要的競爭力。
1 按21年22年的行情,我見過的不少小公司技術總監,年薪基本沒有過40w的,一般也月入3w就不錯了,畢竟小公司盈利能力有限,抗風險的能力也有限,一般給不了高薪,但如果去大公司,一個30歲的程式設計師要個月薪3w問題不大。
2 要做到技術總監,哪怕是小公司,一般也要35歲左右了,這樣的年紀再去跳槽,技術上又沒核心競爭力,雖然掌握些管人和產品方面的技能,但要去大公司真不容易。
3 再說這些技術總監跳槽時能展示什麼技術呢?大公司所要的雲,容器,高併發或叢集等,由於小公司基本上沒有必要花錢使用,所以有些小公司的技術總監論技術真沒什麼競爭力。
寫到這裡,本人想說的是,程式設計師在職業發展過程中,固然要走技術路線,比如要多掌握架構或其它方面的的值錢技能。但是如果只在小公司之間輾轉,薪資也能會提升,職位也可能會慢慢累積到技術總監的級別,但如果只在小公司發展,薪資和發展空間一定會受限。原因也好理解,小公司未必有值錢技術的使用機會,而小公司更加會偏重業務。
所以,比如有3年工作經驗的程式設計師,當下公司的規模不大,在跳槽時,如果遇到小公司高階職位和大公司低階職位的選擇時,應當毫不猶豫地選大公司,甚至在選跳槽公司時,應當目標就該定位大公司。至於怎麼選,怎麼準備大公司的面試,怎麼過大公司的面試,本人有太多的文章,這裡就不想繼續展開了。
本人最後想說的是,大齡程式設計師,比如35歲以上的程式設計師,跳槽時對方優先看大公司經歷,再看值錢技術在專案裡的使用情況,再看有沒有值錢技術(比如叢集架構雲等)的排查問題搭建環境方面的能力。而哪怕在大齡時做到了一些小公司的技術總監,如果缺乏些大公司的經歷,遇到本公司有變故時,跳槽找工作時真可能不僅僅是薪資大減的問題,真可能是連簡歷都沒人收了。