本文是IT職場人生系列的第十二篇。
最近移動互聯網很流行,很多人都在學習IOS、Android編程。這也引起一個入行、改行的潮流。
那么,作為新手、老手,應該怎樣選擇自己學習的語言和技術呢?
本人從早期編程以來,實際使用并開發過商業軟件的的語言有幾種:C,TurboC++,C++Builder,VisualC++6.0, ASP.NET/C#,中間有很多次選擇,配合為別人做的選型指導,寫一篇文章供大家參考。
### 新手,老手
無論一個技術多么地過時了,都有人在做,而且做的人都是老手。
舉個例子:若C++語言從業人數按時間排序分別是開始10萬,中間100萬,后來10萬,則開始的10萬中新老比例5:5,中間100萬新老比例90:10,后面剩下的10萬,新老比例1:9,那個1還是不識相的。
所以新手剛學編程,不要去學習舊的技術。不是說舊技術沒有前途,而是舊技術里邊全是高手,競爭激烈。這種激烈是一種“淘汰式”的而不是公平競爭的,進去的新人最可能被淘汰。
但作為老人,則有可能安心于舊技術。因為畢竟自己水平高,而且老舊技術隨著人員的退出,基本薪金還會上升。老人也不太怕技術徹底過時,因為老人的出路不是學習更新的技術,而是學習業務、管理,尋找非技術出路。
### 新技術,老技術
如果剛開始學習編程,最好學習新技術。原因包括這樣幾個:
1.技術和業務是同步的,新技術代表著新業務和新機會。
比如早期的Fortan是為了科學計算;中間的C是為了嵌入式;C++是為了Client結構的管理系統;Java/C#則為了基于Web的互聯網軟件;最新的一些語言和技術則是為了移動互聯網。
2.競爭少
由于新業務總是膨脹狀態的,而高手們又留在了老技術上,人才供求關系倒掛,剛開始比較好混。
即使那些水平一般的新技術程序員,也很容易找到工作。
3.每個技術都有其生命周期
如果學習了舊的技術,沒多久就得換了,得不償失。
### 淺技術,深技術
某些技術整體學習的難度不大,而更新的速度卻很快,稱之為淺技術。比如Flash,UI設計,IOS/Android上小型軟件,以及各種云的Client端的開發等。
另外一些技術則學習難度很大,更新較慢,稱之為深技術。比如數據庫,架構,各種云的Server端軟件。
淺技術者應該多創新,多學習,多進化,多了解客戶,多了解業務,要理解自己所學是要在眾多開發者中獨樹一幟,讓直接客戶更加喜歡自己。
深技術者應該多積累,多深挖,多做大系統,多做性能優化,多了解架構,做技術領域的佼佼者。
比如一個常見的誤區是有些原本做架構的程序員發現隨便一個Android開發者職位工資都比現在自己高,就可能貿然轉行。但實際上由于轉入了淺技術,高工資是暫時的;未來若干年后新人會越來越多,競爭會非常激烈,到時候就可能會發現還不如留在深技術上積累。
這件事情曾經發生過。在10年前的互聯網泡沫中,很多程序員轉行做網站(使用FrontPage或DreamWaver等),但后來因為這個行當太好學了,大量兼職人員、高中畢業生也轉過來了,造成很大沖擊。在互聯網泡沫后,網站建設變成一個藍領工作。
這里不是鄙視淺技術的開發者,或鼓勵淺技術的開發者向深技術轉行,而是說根據自己正在從事的技術的深淺,要采取不同的學習和進化策略。
比如如果還在做網站UI,就要不斷探索新網站的UI方式,不要停留在FrontPage上(應該不會了,呵呵);而如果做后端,哪怕當年最“落后”的C++也仍然值得繼續深入,不要三天兩頭地換。
本文的續篇位于:
IT職場人生系列之十五:語言與技術II
更多本系列文章:
IT職場人生系列之一:序言及找誰占卜
IT職場人生系列之二:大學生活
IT職場人生系列之三:第一份工作
IT職場人生系列之四:怎樣寫簡歷
IT職場人生系列之五:怎樣面試
IT職場人生系列之六:員工的公司觀
IT職場人生系列之七:學外語
IT職場人生系列之八:行業與公司類型
IT職場人生系列之九:消費觀(攢錢,繼續教育,買房)
IT職場人生系列之十:創業觀
IT職場人生系列之十一:找女友
IT職場人生系列之十二:語言與技術I
IT職場人生系列之十三:技術?管理?業務?
IT職場人生系列之十四:經驗積累
IT職場人生系列之十五:語言與技術II
IT職場人生系列之十六:入職(新手篇)
IT職場人生系列之十七:入職(高手篇)
點擊下載免費的敏捷開發教材:《[火星人敏捷開發手冊](http://blog.csdn.net/cheny_com/article/details/6616794)》

