為什么要成為全棧工程師
Is it reasonable to expect mere mortals to have mastery over every facet of the development stack? Probably not, but Facebook can ask for it. I was told at OSCON by a Facebook employee that they only hire ‘Full Stack’ developers. Well, what does that mean?
Full stack,翻譯過來就叫做全棧工程師。也叫全端工程師,是指掌握多種技能,并能利用多種技能獨立完成產品的人
全棧工程師是什么都會嗎?當然不是,全棧工程師是 什么都會,卻又什么都不會。
有人說了,你再牛逼,你懂五種技術,你能干五個人的活嗎? 當然不能。
那全棧有什么用?
有這么一句古老的箴言:如果你手里有一把錘子,所有東西看上去都像釘子。是說了一個人們很容易犯的錯誤 —— 為了使用自己現有的工具而忽視問題本身的需求,忘了更好地解決問題才是目的,有時候甚至為了使用工具而去制造問題。而社會發展的復雜性和動態性也決定了問題總會存在新特點和新要求,單一一種工具是永遠滿足不了所有需求的。
舉個例子,如果你只是后臺java開發人員,發現服務器壓力過大,你會怎么辦?優化個SQL?負載均衡?當然這些都是選擇,但拿一部分數據和運算到前端也許是更加合理和低成本的選擇。
對于一個團隊特別是互聯網企業來說,有一個全局性思維的人是非常非常重要的。
項目越大,溝通成本越高,做過項目管理的人都知道,項目中的人力是1+1<2的,人越多效率越低。因為溝通是需要成本的,不同技術的人各說各話,前端和后端是一定會掐架的。每個人都會為自己的利益而戰,毫不為已的人是不存在的。而全棧工程師的成本幾乎為零,因為各種技術都懂,在團隊協作中,與不同技術人員的溝通也會容易得多,你讓一個后端和一個前端去溝通,那完全是雞同鴨講,更不用說設計師與后端了。但如果有一個人懂產品懂設計懂前端懂后端,那溝通的結果顯然不一樣,因為他們講的,彼此都能聽得懂。
Facebook 的眾多海報當中,有一張寫的是「任何一個 Facebook 的問題,都不是別人的問題」。Facebook 的工程師,級別越高就需要保持越大的影響力。如何創造更大的影響力,就是尋找當前杠桿效應最明顯的問題來解決。有些問題你解決了的話,投入進去的時間每小時能換回來一千美元;有些問題你解決了的話,投入進去的時間每小時能換回來一百萬美元。
但是在企業中,如何快速發現并解決這些杠桿效應明顯的問題?那就是成為全棧。
技術發展,一種是縱向成為專家,一種是橫向成為全棧。兩個方向都沒有對錯,發展到一定成都都會相互溶合,就好比中國佛家禪修的南頓北漸,其實到了最后,漸悟與頓悟是一樣的,頓由漸中來。
全棧工程師不是全為了工作本身,而是為了方便實現自己的夢想。作對于他們來說不是負擔,而是一種樂趣;工作已融入了他們的生活,猶如空氣和水。
全棧工程師,是一群渴望上進、積極主動、務實肯干、想闖出一番天地的程序員。
他們內心深處不安于已掌握的技術和安穩的工作,他們非常樂意并且會主動去學習一些新技術,新框架,業余時間還會自己動手實踐一些小創意,寓學于樂。工作,學習,技術,小創意,已經成為了他生活的一部分,不斷主動的去學習,自然而然的就學會了多門技術,精通多種語言。
全棧絕對是自我驅動的過程。
最后,再來一碗雞湯,共勉。
我努力地工作,為的就是有一天當站在我愛的人身邊,不管她富甲一方,還是一無所有,我都可以張開手坦然擁抱他。她富有,我不用覺得自己高攀;她貧窮,我們也不至于落魄。