為什麼你應該先成為全棧工程師

Bugtags發表於2016-01-11

讓我覺得我應該再寫一篇文章站在全棧工程師的理由是,一本書《浮現式設計》和一個單詞 Re-Practise。

似乎這是一個新的思考,儘管在那之前我已經寫了一篇《全棧工程師的思考》,只是事隔半年之後,我又有了一些新的感觸。這半年來,除了增長了一些軟技能,如溝通、表達 、英語,以及一點點的技術提升之外,並沒有什麼太大的變化。

每天我們似乎都在重複前一天的工作,生活似乎就像是一潭死水,日復一日地新增新功能,修復舊 Bug。讓我們覺得生活過於無聊的原因,怕是因為現有的專案已經很穩定,不會有太大的變化 ——不會有關鍵人員的離職,不會產生大的 bug。

所以自然而然地,我們就不需要更多的技能能幫助我們成長。

個人的全棧

從個人的角度來說全棧似乎沒有多大實際意義。以我的角度來說,我之所以選擇全棧這條路線,不僅僅因為只研究一個東西太枯燥無聊——即使我可以成為這領域的大牛,更何況我對成為大牛一點興趣都沒有。並且我可以站在一個新的高度來看世界。

說到這裡我突然就會有一種疑惑——你一直往某一個領域鑽,只是因為你的工作需要吧!

這就變成了一個更有意思的話題,如果你並不是真正喜歡這個領域,那麼你會對這個領域作出怎樣的貢獻?僅僅是讓大家知道你對這個領域瞭解比較深?

而且還有一點特別有意思的是,你現在覺得你會為之奮鬥許久的技術棧,並非是你的真愛。因為你還沒有機會好好看看這個世界,這個世界到底是怎樣的.到底會有怎樣有意思的人、事。只是因為你過去熟悉這個領域,你就選擇了這個領域。你聽從了別人的片面之詞就做了一個決定,而並沒有自己好好地去做一個嘗試。

記得還在學校的時候,我曾經花了很多時間去繞過 Java 語言——用 Python、JavaScript 來完成大部分的想法(不是計算機相關專業)。等到了工作,我發現讓我受益最大的語言是 Java ——因為 Java 是一門很完備的語言。我從 Java 上並沒有學到一些特別有用的東西,但是我從其相關的書籍上學習到了太多的東西.幾乎所有的和軟體工程相關的書籍,都以 Java 作為示例,當然還有一些C++。Python、JavaScript 則是可以滿足我的創造欲。

對了,是不是又想到了木桶效應。木桶效應還有很扯淡的一點是,只考慮到了板子的長度,而沒有考慮到容器的大小。

如果你有更多的板子,你所能容納的水量就是多。相似的,如果你有更多的技術棧,那麼你的容量也就更大的。並且當你開始提升某一個長板時,剩下的長板也可以很容易提升。

全棧的優勢無非就是學習能力和思維能力,同時帶來更廣闊的視野。

團隊的全棧

在一個大型的網際網路公司,這種全棧一點意義都沒有。他們並不需要你有著良好的程式碼能力、架構能力,又或者是全域性思考的能力。你只需要把你手頭的那一點點技術細節完美實現即可,要知道 0.1% 的效能提升,可能會帶來幾百萬刀的效益。相比於這樣精分職責的團隊,你只需要好好精通手上的技術棧即可.要知道那可是好幾十個 0.1%。

團隊裡面的人會擁有相同的技術棧,討論著相同的知識。儘管存在能力上的差異,但是如果一個人員離職,由於其崗位所帶來的價值,也會帶來相似能力的人員。對於大的網際網路公司來說,不會存在太多的問題。

然而作為一個小的團隊來說,這個問題就變得很嚴重,在有時似乎是難以承受的。這似乎也就是結對程式設計得以在國外流行開來的原因,儘管結對程式設計會增加程式設計時間,也會在一定程度上減少 Bug 的數量。而事實上,結對程式設計帶來的優點並非是這樣的,而是分享業務知識。

這就意味著在一個敏捷團隊裡,你不得不全棧。看上去似乎有點被逼無奈的樣子,但是實際上大型網際網路公司也是如此,你不得不成為專家。

而事實上,大部分的人都不會只在一個領域裡工作。 enter image description here

相關文章