技術,是不是越新越好?我覺得,值得商榷

準確的說,這篇文章應該叫做:轉行做IT,入門學的技術是不是越新越好?

其實新技術與舊技術,在我看來就是一個度的問題,舊的技術,像java的,不能放棄,新的技術,像python,你也不能不會,不是嗎?所以啊,在看這篇文章的時候,建議保留自己的想法,可以在評論區說出你的想法

因為你真正入門之後,新技術老技術,都是“通”的,從老技術遷移到新技術,一般也就幾天的事兒,隨你的便。學也罷,不學也行——只要工作上還沒追到這一步來。


我個人而言,是比較貪婪的,經常開啟“延遲加載”模式,瞭解個大概,用的時候再說。和周圍的朋友聊天,老人好像都這個樣子,“看見新技術就打了雞血一樣”的,還是年輕人居多。

好了,我來說說新人的問題。因為這個問題我被問了很多次。然而,不是問“我該不該學最新的”,而是“xxx技術是不是最新的?”生怕一不小心就學了一個“過時”的技術,那還怎麼了得?!


我和幾個小朋友聊過,問為什麼他們會有這種想法,歸納起來,大致有以下幾個原因:

  1. 舊的技術已經被淘汰了,學了等於白學
  2. 找工作的時候,怕人家單位用的全是新技術,還要再學一遍
  3. 新技術更“高級”一些,學新技術才能學到更多的東西

這些想法我覺得都是錯誤的。至少,是值得商榷的。


我首先來告訴大家一個事實:

  • 絕大多數的公司,正在使用的,都是“舊”技術;
  • 而且公司越大,技術越舊;
  • 越是核心的功能,越是使用的“舊”技術。


為什麼呢?

你猜!

道理很簡單,兩個原因:

  1. 歷史代碼。代碼不是一天就寫完的,越是大公司,歷史代碼越多,寫這些代碼的時候,根本就沒有現在這些新技術,只能是“舊”技術啊。生成環境的代碼,也不是也不是說改就能改的,改出問題來了咋辦?牽一髮而動全身,很多歷史代碼,後面的人碰都不敢碰——尤其是核心代碼,出問題了咋辦?深水炸彈啊!這鍋誰敢背?
  2. 新技術風險。即使是我們從頭開始一個項目,也不宜立馬上就上新技術。這方面,越是大公司越謹慎。通常都是等別人先雷區踩一遍了再說,即使採用新技術,也是從最外圍最不核心的功能模塊開始,逐步逐步的迭代展開。順便多說兩句,大公司的技術線是非常非常廣的,什麼“為什麼淘寶(不)採用vue.js”之類的問題,明顯就是在“開黃腔”(外行話),像淘寶這樣的大公司,估計啥技術都在用,不信的去看看他的招聘啟事。


相反是一些創業型公司,或者一些小公司,沒有任何歷史包袱和風險意識(當然,新技術風險對他們這種項目的傷害也不大),才會風風火火的上馬新技術。

當然,任何事情都有例外,比如google這種大牛,連開發語言都是他自己搗鼓出來的,我等蝦米也只有膜拜的份!

但即使這樣的牛逼公司,哪怕用自己的新技術,摔坑裡的也不少。比如微軟啦,這些年搞出來的東西,就我知道的,SliverLight,WebForm上的Ajax控件啊,還有啥?WPF,現在咋樣?

所以技術好不好,不是看它新不新;更進一步,(企業)採用何種技術,也不是看它好不好。而是什麼?看它合不合適。

當然,這是企業的決策問題,那對於我們個人,尤其是準備入行的新人來說,應該怎麼選擇呢?

事關重大,我只是建議,最後怎麼選完全看你個人哈!不要最後到QQ群裡來罵我約架啥的——不約。(`へ´*)ノ


採用新技術入門,不是說不行,但至少至少有以下幾個問題。

第一,眼光夠準。別傻不拉幾的學了一年半載的,學成之後這技術已經掛了。至於“那些技術有發展前途?”不要問我,這麼複雜的問題我答不出來的。我只能告訴你,風險和收益成正比,哈哈,怎麼賭,自己決定吧。

但這個問題其實不是很大。畢竟,功不唐捐,知識到一定的程度,都是相通的。

除非你倒了八輩子血黴,學了一個偏得不能再偏的技術,if...else....,類庫調用,環境配置,開閉原則等等這些,都是放之四海而皆準的。過渡起來也不是你想像的那麼難。

第二,找到優秀的教學資源。這個才真的是一個大問題,既然是一門新技術,掌握它的人就很少;即使勉強掌握了,深入的人也不多。

因為技術是需要沉澱的,是需要時間來沉澱的。我轉行做IT馬上就十年了,自覺還是比較上進的,也不過才有些許感悟,但還是有很多不解。

我經常想,世界上最殘酷的就是時間,時間有限;但最公平的,也是時間:要達到一點的境界,你必須花時間來“熬”;但只要你不虛度,它也總會給你留下一些東西。

第三,避免根基不牢。其實幾乎所有的“新技術”,都是對“舊技術”的改良,或者更直接一點:封裝。

新技術“封裝”了舊技術的細節,呈現一個更便利的接口,以方便用戶調用而已。這種封裝當然是非常必要的,我們誰都不願意再從二進制和彙編開始學起。然而,技術是有連貫性的。

觀今宜鑑古,無古不成今。一味追趕新技術,根基不牢,還是很容易出問題的。比如Linq問世之後,很多新人就不會寫sql;JQuery出臺之後,很多新人就不理解原生JS……實際開發中,還是很被動的。

這裡我特別要強調一點,這並不是(不是,不是,重要的事說三遍)說我們學技術就一定要從最底層開始,這又從一個極端走向了另一個極端,完全沒有這個必要。

實際上這還是一個“度”的問題。太新的技術,通常還不能解決現有的所有問題,還是需要和舊技術配合,就好像還有一個“過渡期”一樣。

寫到這裡,可能有些同學會問,那要新到什麼程度,或者舊到什麼程度,才合適呢?唉呀,這真是個好問題啊!


分享到:


相關文章: