爲啥忽然想這個問題?前端
這陣子跟技術人交流,忽然引出了一個問題算法
對我的來講,到底是專才好,仍是通才好。固然就技術開發這個領域來說。數據庫
首先列一下名詞解釋編程
專才:就是指專一在某個領域/語言/平臺/職能上的開發者。後端
通才:天然不用說,就是你們最喜歡的全棧。固然全能的人是不存在的,因此說局部全棧會比較合理一點。比方Web全棧,就是包括了前端開發,後端開發,服務器運維,數據庫,架構等安全
而後固然還有APP全棧等。服務器
正方的角度是:實際工做中的事實是常常須要引用多種多樣的語言或者技術,也有不少中間件或者第三方組件,須要一我的身兼數職。架構
固然你也能夠說我須要用什麼語言的時候,就招一個這方面的專業人士,可是大多數狀況下沒有這麼奢侈,畢竟這個中間件可能只有1%的時間會用到,那麼另外99%的時間難道閒置這我的麼?或者非要想個項目把這我的力利用起來,那這個項目也夠雞肋了。運維
因此團隊內常常會有這類局部全棧的開發人員。編程語言
可是站在反方的角度上思考:
人的精力是有限的,只精通1門語言有點侷限性,精通兩門問題不大,時間充裕的,精通3門也OK。可是若是你非要精通5門或者10門語言,並且還要應用到實際工做中,那麼精力分散以後那些隱藏在語言深處的坑,你還有能力找出來麼?
全棧型的人才頗有用,面對不一樣的業務環境,都能找到合適的解決方案,而且開展工做。
專業型人才頗有價值,在屠龍這個任務上,一把屠龍寶刀跟瑞士軍刀作甚比較。
因此就應用場景來說,各有千秋。
「語言只是工具,重要的是思路」 批判專才的可能要站出來這樣說,但咱們這裏舉的語言例子,只是說爲了方便討論,由於專業型人才看你專業的方向而定的,若是你是專業的架構師,所謂「思路」就是你的專業方向,那麼哪種語言並沒什麼特別。
若是你是算法工程師,那麼用不用編程語言也沒區別。僞代碼照樣玩的溜。
那另一種狀況是,其實所謂全棧也不須要去深刻了解到語言的細節之處,只要學到能用的狀況就行,就能應付不少種狀況了,並且在學精通一門語言以後,再去學其餘語言其實也挺快的,大體相同,細節之處花點時間也能足夠。
應該以什麼標準來衡量本身的進取方向?
首先要問本身一個問題,本身的目標是什麼?
是想出來單飛,創業作一番事業,仍是想深刻某個技術,作這方面的專家?
又或者只是想用本身喜歡的技術開發一些有趣的程序?
而後再問另一個問題,這個目標上這兩種人才,你以爲最有優點的是什麼?
若是有些人對本身的目標早就明確,那其實沒有什麼困擾,對他來講,選擇這件事早就結束了。
可是更多的人是因工做而選擇,若是沒得選擇了,那其實也沒什麼好睏擾的。
這個問題對那些既有一些選擇權的人,又對目標有些迷惘的人來講,應當是比較有價值的。
最安全的方式是按照 T 型人才。就是其餘專業淺淺的學一層,可是在某一個垂直領域裏深刻挖掘。
而後咱們從新比較一下 所謂通才跟所謂專才。實際上是不是都錯了。
通才實際上是什麼都會一點,什麼也都不會的狀況,這樣其實很危險,由於若是職能開始細化,隨便找幾個專業型的人才就能替代你。
專才也其實很是危險,專一在屠龍一件事上,若是哪一天龍死光了,屠龍勇士可能連耕地都幹不了。
普京不是說了嘛,「打工是不可能打工的,這輩子都不可能打工的,我還能怎麼辦?根本找不到工做。只能繼續當總統維持生活這樣子。」
是否是相似的道理?(開個玩笑,哈哈哈哈)