做者:
四火
全棧工程師的發展前端
在系統全面的大公司,全棧工程師並無一個穩定的發展職位。我無比贊同知乎那個帖子裏面這樣的一句話:數據庫
一個真正的全棧工程師,目標只有一個:創業。服務器
聽起來有些悲涼,但事實就是如此。任何一個方向頗具深度的工程師,都有但願爲本身在那個特定的領域贏得本身的一席之地,是權威,也是技藝精深的專家。可是對於所謂的「全棧」而言,不少狀況下根本就稱不上優點,你會寫數門程序語言,會設計 API,會寫前端代碼,會作手機 APP,甚至會切圖,會和用戶溝通,可是假若在這些方向都難說有哪一項足夠強大,那全面性又能在大公司的晉升線路上謀得什麼?機器學習
可是創業的小公司就徹底不是這樣了,你不能期望有 DBA、技服、產品經理、美工、前端設計師、服務器工程師、操做系統管理員……無數角色,你只能有那麼少得可憐的幾我的,每一個人都必須是全才,搞得定各類事情,經驗豐富、視野廣闊。出了問題,一我的就能夠搞定,而每一個人,均可以彼此備份。學習
這也是「學習能力」在全棧工程師中扮演無比重要角色的緣由。畢竟,在全面的工程師,也不可避免地涉足本身不熟悉的領域,快速學習而且把問題搞定,在這樣的過程當中體現本身的價值。spa
全棧工程師擁有更廣闊的視野和更普遍的學識。全棧工程師能夠從更高的角度去看待問題,這比某個領域的專家,更不容易作出錯誤的決策。操作系統
事實上,軟件工程原本就是一個複雜的事情,須要工程師掌握和學習的知識不少。在我前一家公司,有這樣一個故事,好幾年前,公司嘗試給軟件工程師分檔,甚至依此使用不一樣的僱傭實體:讓來自子公司A的最優秀的工程師設計了程序,再讓來自子公司B的平庸工程師去實現。最後這個方案完全失敗了,兩家子公司的工程師被迫合併,這也證實了,軟件工程是一項複雜的腦力勞動,想像流水線工人那樣,把整個環境簡單地切分紅若干個過程,而後經過簡單勞動完成,是不可能的。你能夠舉出不少外包、內包公司中上述的例子,可是在我看來,這只是對勞動力的壓榨而已,別期望這樣的形式能作出什麼偉大的產品來。設計
最後,我想用一個無比簡單的詞來描述全棧工程師,確定不夠準確,但也足夠直接——視野!前端設計
縱使目標再大,人的精力有限,於我來講,早些時候遠大目標隱約是「成功的軟件工程師」這個樣子,可是目標是須要逐漸細化的。這些年我漸漸對本身的定位和將來有了一個清晰一點的認識。確實我有很強的觀點,以爲軟件工程師須要有足夠的全面性,在《我眼中的工程師文化》中我也說「工程師文化,不是隻有權力的一面,它對工程師的要求,是每一個人都要足夠能幹,都要作許多的事」……產品
可是,全面性不表明沒有專精、沒有方向。深度和廣度統一的問題已經有許許多多過往的人和我說過了,不存在一個在某一領域精深的牛人可是知識卻很窄,也不存在一個博學大師可是卻沒有一個本身擅長的領域;而方向更是不可迴避的問題,之前和朋友開玩笑總結了幾類工程師的發展方向,就像打怪升級同樣,有數據庫專精、有前端專精、有語言設計專精、有機器學習領域專精,甚至還有企業流程諮詢專精、敏捷實踐專精的……領域劃分實在是太寬闊了,就看技能點數如何分配。