與其他互聯網熱詞一樣,”全棧“程序員也是英譯過來的,英文全文是:Full-Stack Developer,你想啊,中國人民怎么會用客棧的棧、堆棧的棧來形容工程師呢?
談論一個概念,首先得給伊個定義,一般來說,全棧工程師就是指技術多面手,掌握多種技能,能夠獨立完成 non-trivial application 的人。愛掏網 - it200.comnon-trivial 怎么解呢?就是有一定復雜度的,具備一定規模的意思。愛掏網 - it200.com基于此,我和我的程序員朋友們,對全棧工程師的認識是:在技術棧的各個領域都能夠做到出色的工程師。愛掏網 - it200.com有了這個標準,我和程序員們面面相覷,發現沒有一個是全棧工程師。愛掏網 - it200.com技術領域浩如煙海,更新換代之迅猛如炸雷不及掩耳,別說盜鈴了。愛掏網 - it200.com互聯網短短 20 年的發展,累積的技術信息已經不是我們終其一生能夠消化的了,知道尚不可為,何以做到出色?
但是,這個標準稍稍降低一點,早期的程序員差不多就都能叫全棧了。愛掏網 - it200.com2001 年左右我們開發 B/S 產品,用來展現 UI 和數據的程序代碼中混雜了 Java、HTML、CSS 和 JavaScript,根本不可能把前端和后端拆開編寫,而后端業務邏輯本身就是 Java 實現的,你不寫誰寫?懂了業務邏輯和算法還不行,你得把數據存數據庫和文件系統吧,什么?你不懂 SQL?我靠那你還是程序員嗎?你不能每次和數據庫交互都讓一個進程去敲門吧,數據庫招你惹你了?這時候就得有個連接線程池。愛掏網 - it200.com異常得統一處理吧,得支持集群吧,給用戶部署了得能自動擴展吧,沒測試怎么辦?你自己寫的代碼寫的業務邏輯寫的界面,你不保證正確性誰保證?……
總之在那個年代,每個程序員差不多什么都得會點,但有的人在這個領域強一些,有的人在那個領域出色一些,不一而足。愛掏網 - it200.com
現在看來,那時候我們應該叫全沾工程師,什么都會點,能解決問題,但是單個人,除了自己擅長的技術,在其他領域,都沒能做到出色。愛掏網 - it200.com
如果這個標準再降低一點,比如說把「non-trivial」去掉,隨便做個 Application,那就容易多了,一個零基礎智力正常的成年人去培訓班培訓幾個月,差不多就能做出一個網站、一個移動 App 還包括后端,或者一個數據挖掘的展示頁面。愛掏網 - it200.com但這個范圍僅僅局限在會上,和做好、出色,差距明顯。愛掏網 - it200.com可以看做是入門級的工程師,只不過和前端工程師、移動開發工程師、Java 工程師相比,什么技術都懂一點點而已。愛掏網 - it200.com
這種工程師,我們可以把他們叫做全站工程師,基本上,進入企業之后,都得有老師傅帶著,手把手教,練習和實戰,才能做「non-trivial」的項目。愛掏網 - it200.com為啥叫全站呢,意思就是老師傅講東西的時候,都在旁邊站著。愛掏網 - it200.com
有沒有真正的全棧工程師?有,比如菲爾普斯在游泳層面勉強算全棧,奧運會咔咔拿 7 枚金牌,你服不服?你說我也會四種泳姿……您那叫會,會和做好,差著幾十個二把刀。愛掏網 - it200.com當然了,二把刀也沒什么不好,至少比拿根兒木頭杵著強多了。愛掏網 - it200.com鼓勵大家在立足本職成為專家的基礎上,成為一個認真的二把刀。愛掏網 - it200.com
什么是程序領域的全棧工程師呢?我覺得云風算是游戲領域的全棧工程師,他自幼編程,在語言層面對匯編、C、C++、Lisp、Java、Python、Lua 都有深入的理解,使用起來如臂指使,對游戲領域的策劃、引擎、協議和服務端架構也是駕經就熟,最新開源出來的 skynet —— 基于 Lua 實現的網絡游戲服務器框架,極具參考和實用意義……但是云風不做 Web 游戲啊,他對 JavaScript 的評價是:javascript 真是門惡心的語言!
我認識一個全棧朋友,也是一個編程奇才,他對操作系統、編程語言、數據庫均有透徹的了解,學習新技術只能用迅猛來形容,每次技術選型之后,他就會趴在辦公室里敲敲打打幾天,然后丟給我們一個用新語言實現的框架,告訴我們,用!一用之下,幾乎沒有 bug。愛掏網 - it200.com這樣的人,可稱全棧。愛掏網 - it200.com他們并不是在編程領域樣樣精通,而是在需要的時候能夠在極短的時間內達到常人需要長時間練習才能達到的水準。愛掏網 - it200.com
正如我在書中寫到,高手并不是懂得多,他們只是學得快而已。愛掏網 - it200.com
現在 那朋友,早有了自己的公司,估計技術也做的少了,現在想起他那訓疾如風的鍵盤指法和閃電般的學習速度,還是讓人一聲嘆息。愛掏網 - it200.com
整體來說,我覺得程序員們沒必要去追逐什么「全棧工程師」,在工作和生活中,花 200% 的時間讓自己在擅長的領域成為超越 80% 的人,然后,需要學什么就去學什么,一味追求大而全,反而會適得其反。愛掏網 - it200.com
這就如同很多游戲中的稀缺技能點一樣,玩家永遠加不滿所有的技能樹,如何有策略的使用有限的技能點來解決對應的問題,成了每個玩家必修的課程。愛掏網 - it200.com
現實生活中,亦是如此!
為了學習工作與休閑娛樂互不沖突,現新建圈【碼農茶水鋪】用于程序員生活,愛好,交友,求職招聘,吐槽等話題交流,希望各位大神工作之余到茶水鋪來喝茶聊天。愛掏網 - it200.com群號:582735936
了解更多