程序人生 - “全棧”這個概念坑害了多少開發者

“全棧”這個概念坑害了多少開發者

技多不壓身,這麼一個傳統觀念充斥着每一個行業希望進取進步的人們,當然包括了互聯網行業。作爲互聯網行業“技多”的頭號標籤就是“全棧”,作爲公司之中的技術負責人,“深度”和“廣度”哪個更爲重要,一直是一個爭論不休的話題。最近我和朋友也對此有些爭論,這裏反跟大家分享一下。我們先看看:

全棧的定義是什麼? 度娘給出的答案是:

全棧工程師,也叫全端工程師,英文Full Stack developer。是指掌握多種技能,並能利用多種技能獨立完成產品的人。

相信很多人不認同此觀念,但是不得不說,絕大多數的開發者都以此爲目標。近段時間在工作中,頻繁的與同事聊到這個話題,也讓我深思了一下。

 

何爲“全棧”工程師?

以實現一個電商APP作爲例子:

  • 使用Java之中的maven項目管理,以Spring + SpringMVC + MyBatics作爲服務端框架,以RestFULL形式提供API接口。數據存儲使用MySQL,使用Redis作爲緩存加速。剛開始可能由於不夠熟悉運維,設備雲服務都在阿里雲和七牛上購買現成的。將整個需要製作的需求全部理清楚,API接口開發完畢之後。可以開始書寫前端和客戶端邏輯了。
  • JavaScript對於每個後端的開發者都是一個較爲頭痛的問題,好在與朋友諮詢過,前端頁面使用Google的AngularJS作爲MVVM框架,使用Bootstrap作爲UI,使用Gulp作爲整個項目的打包工具。調用之前自己封裝的接口,終於能夠出現一些商品展示頁面了。
  • 這個時候開始書寫客戶端了,Android客戶端開發之中在github上淘了一些華麗的第三方控件,使用OkHTTP、Retrofit作爲網絡框架,EventBus作爲整個APP中的事件流傳遞系統。配置使用Gradle並使用第三方的360加固保護自己的APP。iOS開發使用AFNetworking作爲網絡框架,JSONKit來解析協議之中傳輸過來的JSON。等~

左青龍,右白虎,老牛在腰間,龍頭在胸口。人擋殺人,佛擋殺佛的不叫全棧工程師,而是一個公司之中的救世主。他憑藉一己之力,減少了公司內部的溝通成本,人員招聘成本,幫助畫餅的CEO,把餅變成了現實。對於這樣,我只能說“請收下我的膝蓋~!”。

然而,這樣的人存在嗎?

根據格拉德威爾的10000小時定律,希望熟練的掌握前端、後端、客戶端方向的知識內容,每天都花時間來專研也得花10年左右的時間。大多數自稱爲“全棧”的工程師,都停留到這個方向我“略懂”的境界。至於具體如何實現,如何讓架構更時候後面階段的模塊化開發,那就真不知道了。

 

什麼公司會招聘“全棧”?

國內的公司基本很少在自己的招聘JD上書寫自己需要招聘全棧工程師,很多CTO的職位所描述的也不是對一位“全棧”的要求。。Facebook的一位員工就曾在OSCON上說他們只招聘全棧工程師,這樣很多瞭解很多方便技術的人才都歡欣鼓舞。然而,“全棧”指的不是掌握不同方向的技術,在Facebook工作的朋友之前就和我說過,自己曾是一位做推薦系統方向的專家,然而由於Facebook部門內部的人員變動,自己卻要扛起整個部門系統架構的事情。隨着公司業務的發展,每個缺少人力的方向都會得到補充,這裏的“全棧”所指的更多是,在業務需要的時候迎難直上的自我學習能力與責任擔當能力。並不是讓一個人親手的完成公司內部的業務,這從時間成本、精力成本都不現實。這樣的“全棧”工程師纔是Facebook所真正需要的。

對於創業公司來說,“全棧”工程師無意是一個香餑餑,因爲這麼一個人對於創業公司來說,能夠解決很多的招聘成本。鄙人的朋友小B,在大學的時候學習過Java,畢業之後現在一個初創公司使用Python寫過1年的網頁後端,後面發現公司的業務發展需要,自己又轉頭回去從事Java的開發。近兩年由於iOS的大力發展,工資待遇也不錯,自己又轉行去做了iOS APP的研發。自稱自己爲“全棧”,從起頻換更換技術方向來說,我並不認爲他在之前的那幾個方向都擅長,反而模糊了自己的定位,弄不清楚自己想要什麼。對一個企業來說,我招聘Python工程師、iOS工程師、Java工程師,他都能算是中級(也許還算不上)。這個時候,除了跳槽去一個不懂技術CEO的初創企業之中扛大旗,其他也別無他法。

 

錨定自己的目標,培養自己的“一技之長”

如同我們公司的CEO一樣,公司初創的時候,自己得做PR、市場、金融產品採購、企業註冊、工資發放、融資、產品需求確定、以及掃地阿姨。但是,HR+市場+財務+PM+掃地阿姨 ≠ CEO,只要CEO的事情他們沒有做好,其他方向他做的再好那也是百搭。一個牛逼的人,能夠在需要他的時候承擔一些之前沒有從事過的工作。反過來,一個每個方向都做得得心應手的技術小能手,卻未必是一位牛逼的人。

希望奮鬥在一線的年輕工程師不要迷信“全棧”的歪理邪說,把自己的精力都投入到學習井噴式的“新技術”之中。明確自己的目標是什麼,系統架構師? or 客戶端安全專家? or 推薦系統大神? 每個方向都感興趣就等於沒有興趣,“略懂”足以能夠幫助你在後面的工作中減小你與別的工程師溝通的成本,“深究”一門技術才能然自己的眼界變得更寬。畢竟技術在進步,時間不等人,錨定目標,才能不斷的接近目標。最後,給大家幾個建議:

  • 嘗試與別人溝通自己的想法——不做困在籠子裏的孤鳥
  • 學會閱讀英文文檔——拒絕閱讀英文意味着永遠只能接受別人的二手資料
  • 要做思維遷移——IT技術本質是相同的,打好技術才能以不變應萬變
  • 對自己負責——所有你發現的問題,都是你的問題
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章