流行技術我該學哪樣?--給剛進入IT的朋友的一封信

上幾回塗鴉寫了幾篇博文,沒想到引發你們很大的反響。在這裏,首先謝謝各位的厚愛。也接到許多來自學生朋友和剛出校門1-2年的朋友的郵件和QQ交流。
有人說,我寫的太意識流,看了不少當年流行的技術,都被看暈了,不知道如何去選擇本身適合的技術。
有人說,說的有些隨意,不夠嚴謹,有些地方有偏見,沒有真正去查數據論證。
確實是,由於只是本身偶爾心得體會,就在網頁上直接敲的文字 ,只是但願給你們能拋磚引玉,給你們介紹個點和方向,真正看好一項技術,紮實去鑽研一項技術,必需要嚴謹的閱讀,調試,論證。
另外,本身的偏見也來自於本身的工做專業所限。筆者從出道至到現在,15年了,一直工做在企業管理軟件行業,從未跑出這個圈子。因此有的朋友問我關於互聯網創業的、網絡遊戲的、嵌入式開發的、互聯網技術的,筆者只能根據本身多年的從業經驗來個我的見解,也說不上獨到與創見,可能還不對。因此,在寫博的時候,確實有些偏見。這是脫離不了的。每次寫技術眼光的文章,老是從企業管理軟件開發的角度上去看問題,去思考解決問題。並且本身多年從事的是C/S的開發,因此一些論調和角度讓開發B/S的朋友頗感難解。
不說這些了。此次寫博,是爲了彌補第一篇博文帶來的缺憾。第一篇博文發表後,許多朋友但願我能整理整理,把當今流行技術能有個架構體系出來,這些你們好清晰認識。
我是作架構師出身(若是有人立志但願成爲架構師,我也會根據你們的反響和需求來寫一些關於架構的文章),雖然如今已經脫離架構,身在CTO位置,通常關注產品戰略發展、開發過程管理、產品Framework、IT行業發展變化、新產品新應用新盈利模式、客戶行業變化、競爭者變化。但對如今的流行技術仍是在一直跟蹤。雖然不少技術不能應用到產品開發中(畢竟做爲公司賴以生存的產品和競爭策略,不能隨意選擇技術和改變技術),可是一個產品的生命週期,你們都知道在業界通常都是5-8年一代產品(開發期、導入期、成長期、成熟期、衰落期。若是有感興趣的朋友但願能詳細瞭解這些,我能夠另外他日起一篇博文給你們介紹,這是一個CTO必需要具有的,有對CTO成長感興趣的能夠一看)。下一代產品用什麼技術,這種技術是否成熟,何時該開發下一代產品體系,何時相關的技術能成熟,如何選擇合適的切入點,是每一個CTO都要思考的。因此這麼多年,一直在關注着。
那我就把我臨時畫的一個圖分享給你們。算是對第一篇博文《2007年技術回顧》的整理。
 
 
從這張圖能夠看到,我把業界你們看得眼花繚亂的技術作了架構分層。每個技術都在各自的層次上面適合發展,並且都是爲了彌補本層現有產品和架構的問題。
但願作架構師的朋友注意了。你無論何時,不論是學習.net,WINDOWS,SQLSERVER,必定要有架構的思路。要分層,從點到線,從線到面,從面到體系來橫豎切分。
並且一個產品架構,也每每是這麼多層,並且在應用軟件架構上,也就是:表現層、業務層、數據層。其餘咱們都是利用的中間件和VM和OS的現成技術,咱們自己通常無須深刻。而表現層、業務層、數據層,層與層之間都有接口層,而不是硬性接口,不然就成鐵板一塊了。通常架構經驗不足的架構師,每每容易出現這樣的毛病,層是分開了,本身沾沾自喜,覺得這個架構是頗有擴展性的。但具體一應用,就發現很硬,動不了。這就是缺少接口層的緣由。
可是這樣表現的圖,你們好像還不解渴。由於不少朋友是剛出道,選擇什麼纔有錢途,才能好找工做。這纔是你們關注的問題。想當架構師,那是遙遠的夢。先把溫飽問題先解決了。
我通常都是這樣告訴同窗或朋友們的:
若是你的學歷和能力,只能進入通常的軟件公司或集成公司,那麼選擇微軟的技術體系不錯。由於微軟體系,網上不少學習資料,並且大量的企業應用是用微軟技術開發的,並且不少公司也用微軟技術。因此公司多,你好找工做。微軟的技術通常固定:C#+Asp.net+SQLSERVER+Visual Studio。
若是你的學歷和能力,能進入作大型企業應用的公司,那麼你就選擇JAVA的技術體系。由於如今大型企業,基本都用JAVA開發。你能夠從eclipse、structs、hibernate、WebService、Tomcat、Apache、JBoss、POJO、Oracle開始學習,而後再學習WebLogic、WebSphere、Portal技術、工做流技術。
若是你想進入互聯網公司或web2.0創業公司。那麼通常Php、Mysql、Apache、Ruby on Rails、Python是你的學習目標。
若是你想進入手機開發,那麼Symbian和C++(Nokia,市場份額最大)、J2ME(android產品,google發佈,還未正式生產,但筆者認爲頗有前途)、Windows Mobile(微軟,好開發,從開發思路到工具到語言,都是你所熟悉的)。這三類都會三者鼎立,誰也不會把誰幹掉。至於5年以後,就很差說,至少5年內,是手機時代,是手機無線時代,每一個廠商都在爭搶這一塊將來最有錢途的肉。
若是你想進入目前煊赫一時的網遊公司。作服務器端,你得C++過硬、網絡傳輸技術過硬、併發線程處理、瞭解Linux編程要和了解windows編程同樣深刻。若是你想作客戶端,那麼圖形圖像處理算法你得首先過關。固然,如今不少引擎、工具、AI包、材質庫、腳本減小了很多客戶端編程的難度。
若是你想進入如今已經將來10年內一直很熱的嵌入式編程,那麼C++,並且你的單片機編程你得過關。中國是世界第一製造大國,並且這種局面在5-10年內也很難改變。製造,過去比誰的工人成本低。可是如今材料和人工的增加,使製造壓力巨大。就只能提高本身的製造能力。製造高尖端的產品,就須要高尖端的流水線。並且,中國的電子產品也愈來愈強大,日本產品從最初的獨霸中國,漸漸變成了中國國貨的天下。在手機上、數碼相機上、家電、冰箱、DVD、空調、汽車、交通、醫療、數控,等等,不少領域須要嵌入式編程。就連我們的嫦娥一號也是嵌入式編程的典範。華爲、中興這些通訊設施也是嵌入式編程範圍。
固然,你也能夠劍走偏鋒。過去是Notes編程,隨着國產OA的興起,Notes編程漸漸衰退。可是,中國如今大型企業都在上線ERP,並且大多用的是Oracle或SAP的ERP。這些ERP產品,都提供了客戶化定製編程開發環境,提供了完備的應用API。大型企業應用ERP,都須要定製化開發,大量缺少這類人才。可是,市面上這些學習資料都很是少,這是個難題。
另外,如今的外包也很是熱,各地創建外包園,就跟當年創建軟件園同樣羣起。想進入外包公司,首先日語或英語須要過關。我們國家的外包,通常來自日本和歐美。在開發中,通常也是三種語言的主流:C++、C#、JAVA。
因此,從以上分析來看,C++、C#、JAVA,都是當今的主流。都在各方面都應用很廣。你選擇哪一類都會有不少的機會和空間。但若是你學了C++,又怕之後碰不到C++的工做,還要學C#,還要學JAVA,那麼你終將一事無成。
不要怕,鑽一門足矣。
不過,擁有了一份技術技能,你能應聘進入一家公司。可是,一家軟件公司如何管理,你是否適合這種管理,你在這個團隊中能扮演什麼角色,你在公司中奮鬥的路徑是什麼,我會在下一篇詳細介紹軟件公司管理的時候給你們講到。
我是工做2年後就跳一次,而後加15%的薪水呢,仍是有計劃的發展個人IT職業呢?仍是我就混一混,很差玩我就換行業呢?
你的路,你本身把握。
但,千萬不要本身玩本身,很差玩。
 
後記:
此文以被CSDN網站做爲CTO專訪發表。更詳細的內容能夠看
相關文章
相關標籤/搜索