相關閱讀 |
>>> 技術話題—商業文明的嶄新時代 >>> | 簡體 傳統 |
一、關于企業計算方向
企業計算(Enterprise Computing)是稍時髦較好聽的名詞,主要是指企業信息系統如ERP 軟件(企業資源規劃)、CRM 軟件(客戶關系管理)、SCM 軟件(供應鏈管理,即物流軟件),銀行證券軟件財務軟件電子商務/政務(包括各種網站),數據倉庫,數據挖掘,商務智能等企業信息管理系統.
企業計算領域對人才的需求顯然永遠是數量最大的因為這是計算機應用最多的領域. 搞這方面的好處是:
(1)人才需求量極大從事企業計算的公司在IT企業中占了大多數。除非在專業上一無特長一般在這一領域總能找到工作。
(2)這方面的入門門檻相對較低(如果你的軟件功底不是很深可考慮這一領域)
(3)這方面的大公司較多大公司要賺大錢所以多將精力花在企業計算業務上.如與正規高校軟件學院同學目前實習的CitiCorp、HP、IBM、SAP、NEC等公司都屬這一領域的公司。如果將來想到大公司找一份相對穩定的工作,從事這方面機會要大很多。
但從事這一領域的缺點也是明顯的:
由于這方面的入門門檻相對較低,雖然這方面的人才需求量是最大的,但將來競爭對手會較多。您會發現,即使他原不是學IT專業的人,也許他突擊幾個月后,做得照樣像模像樣。特別是當您年紀漸大后,您可能會發現,后面的年輕人可能很容易追上你的水平。如果您將來到國外去工作,你可能會發現從事這領域的人更多且高手如云。當然,若您在這一領域經過多年企業經驗,達到較高境界(如能設計軟件架構),則身價永遠是高的。國內在這方面人才領域的主要問題是,有經驗的高手太少,皮毛了解的人太多。
從事企業計算領域,最重要的技能型技術課程是
(1) J2EE架構與程序設計
(2) 大型數據庫系統(如Oracle)
(3) 基于UML的系統分析與設計。
如果說還有什么重要的技能,還可將XML與Web Service技術包含進來,若您在這幾個領域掌握較好,則不愁找不到工作。其中尤其以J2EE最為重要,目前J2EE已成為企業計算軟件開發的最主要平臺,也是正規高校軟件學院的最重要課程之一。
盡管該課程只能作為選修課,我們希望正規高校軟件學院同學無論將來想從事何種方向,都應學一下J2EE課程,至少可為將來找工作備一手關鍵功夫。包括想從事嵌入式或其它領域的同學,也是很有必要學一下J2EE的,畢竟J2EE是目前最重要的平臺之一,即使您將來不想從事企業計算領域,了解一下J2EE也是必要的,就像一門常識課程一樣。
其它與企業計算關系較密切的技能還包括: Dot Net架構與程序設計、軟件測試技術、軟件配置管理,該領域較高層次的技能包括數據倉庫技術、構件與中間件技術、設計模式等。像通信協議分析與網絡程序設計,Unix系統管理等也屬有些關系的課程。02級本學期開設的企業計算課程不多,主要是J2EE、Oracle/MSSQL、UML等企業計算領域的最關鍵技能型技術課程都已學完了。
您應在空余時間將J2EE,DB、UML等技術再深入地鉆研下去,一定要在某個領域有深入的掌握。只是跟著聽課,即使學了再多課程也是沒用處的,自己鉆研下去才是最重要的。只一個J2EE便是博大精深的,足夠你啃下去的,鉆研下去,您會發現你還要學的相關知識還有很多(包括EJB、XML、Web Service、Design Pattern等)。
雖然從事企業計算的人才很多,但以下企業計算領域無論國內外都屬稀缺人才:
(1) 掌握大型ERP系統,主要是SAP系統,包括SAP Basis(系統管理)或SAP ABAP(編程)或SAP功能模塊實施(特別是財務模塊FI的實施)。SAP顧問身價是最高的,而且非常難找。其它大型ERP系統,掌握PeopleSoft、Oracle Finacial、J.D.Edward、Siebel等大型ERP軟件系統的人也很值錢。這方面的人之所以身價奇高,主要是因為這些軟件很專業,特別大,很難有D版可學習,只有特大企業(如世界500強,90以上使用SAP)才用得起,而且必須有實際工作經驗才能掌握。如果是一個個人人都很容易有機會接觸的軟件,那么這方面的人通常就不會稀缺。如果大家將來有機會接觸學習這些大型ERP軟件系統的機會,建議毫不猶豫地抓住,那將捧上一輩的金飯碗。
在國外,會SAP的人特別值錢。物以稀為貴,這永遠是顛撲不破的真理。SAP的價值不僅是因為他是一個ERP軟件,而是其中體現的現代企業管理理念(如根據訂貨需求自動安排原料采購和生產計劃等)。一般500強公司絕不會像國內很多企業那樣,用J2EE從頭設計企業的ERP系統(即將是怎樣的人力投入,而且設計出來的系統怎么可能是完善的),一定都會使用SAP這樣成熟的ERP軟件。用不起SAP的公司可能會用J2EE設計ERP系統。
(2) 掌握IBM大型機技術的人,如S/390主機,MVS操作系統,JCL作業控制語言,COBOL程序設計語言,DB2關系數據庫或IMS層次數據庫,CISC中間件交易控制系統等IBM大型機專用技術。國內五大銀行,以及國外絕大多數銀行的后臺系統使用的都是以上平臺。IBM大型機號稱永不宕機而且平臺相對封閉(這樣最安全),所以這些要求在24*7環境中連續運行的關鍵應用(術語叫mission critical applications)都采用IBM大型機。
這方面的人才之所以稀缺,是因為會大型機的人都是老人(90年代以前搞IT的人),全世界新畢業的IT畢業生不可能再去學IBM大型機(這是一種相對“古老“的技術)沒有新人補上而銀行的系統必須維持下去而且銀行還要不斷開發新業務(如新的存款品種)雖然對IBM大型機人才的絕對需求量不很大但相對恒定銀行到哪里找這方面的新人很難找到. 若好找花旗軟件也不會花那么大的代價去培訓我們的實習同學了(去年培訓20多個人聽說公司就花了數十萬元培訓費). 如果您將來到國外找工作會IBM大型機可能是最好找工作的領域之一了而且保證找的都是大銀行等好工作我以前教過的計算機專業90-94級的一些同學凡是畢業后從事大型機開發的現多在國外一些很好的公司工作(有幾位同學在各國各公司跳來跳去簡直如履平地).
其實我覺得我們最幸福的同學就是在花旗軟件做IBM大型機銀行軟件的同學這樣的機會太難得了.正規高校軟件學院00級22班一位同學當初放棄保研看準在花旗軟件做大型機并且非常努力還未畢業公司便派她到國外參加一個項目的開發成了項目骨干我覺得她當初選擇是完全正確的,01級一位女同學剛剛也自愿放棄了保研機會去花旗做大型機,我們祝愿她將來也能有好的前景。其實像花旗軟件主動安排并鼓勵員工讀在職研究生,這樣開明的公司目前并不多的,在職讀研也是一種不錯的選擇,又不會失去自己喜歡的實習工作機會,能兼顧)讀書的最終目地還是為了工作. 如果您將來在國外找工作根本沒人管您是什么文憑國外企業絕不會花冤枉錢只會招有領域工作經驗能立即上手的人用最少的錢在限定的時間完成項目. 而在國內因為人力成本較低公司招聘一很多高學歷的人才盡管可能根本用不到這么高的學歷但國內的人力太便宜了為什么不高消費一下人才呢這樣公司的門面還要好看些。
(3) 其它如掌握數據倉庫技術的人在國內也很少. 目前最主流的數據倉庫平臺應是ORACLE的數據倉庫工具. 在國外會一些特殊數據倉庫的人如NCR/TEREDATA的人非常難找.
年輕人充滿熱情喜歡追逐一些熱門技術,這當然正確的畢竟學習SAP和大型機的機會畢竟不多畢業時先能找到一份工作是重要的. 但我相信隨著年紀的增長大家將來慢慢都會思考的掌握一項競爭對手較少的絕技的重要性將來如果自己到國外工作什么技術最好找工作(對搞軟件的人到國外工作或移民是最容易的也許您現在不想但我相信工作多年以后很大一部分同學可能想到國外闖蕩一下)你要考慮你今后一生的出路什么樣的絕技是最穩定最輕松最高收入的. 搞軟件的人當年紀大些時您可能更向住像搞醫學人的那樣能更多靠經驗吃飯而不須整天像年輕人那樣不得不去追逐不斷出現的軟件新技術這個時候也許您也許會發現如果您在SAP或大型機等方面有些絕技您會有很大優勢因為這些較偏的領域其技術變化是相對很緩慢的.
我還記得在2002年時我曾在業余時間與一位德國人合作面試一些IT人才到德國去那時德方各公司發來的需求有很多是SAP和IBM大型機的我們在眾多應聘者中最后也未找到一個在這方面有經驗甚至是有一點經驗的. 相反掌握流行技術的人因太多而不很值錢.
找工作時不僅要盯著國內市場還要有一種放眼全球的眼光,對搞軟件的人您將來完全可能到其它國家去工作. 尤其是在歐美、日本、新加坡等國家,對SAP(包括IBM大型機)人才的需求是很大的。畢竟比同學見得多些提醒同學將來多留意有學習這些絕技的機會一旦有機會建議當仁不讓. 國內的人才市場可訪問www.51job.com,國外的IT人才需求可訪問www.hotjobs.com、www.workopolis.com、www.monster.com等著名網站。應經常訪問這些網站,以了解市場對人才的具體需求,早做準備。www.uiok.net
以上對企業計算領域的觀點供大家參考.雖然觀點未必正確但確是直言不諱. 總之每個人的腦袋都長在自己脖子上每個人都應有自己的判斷.
還要注意我以上純粹是從將來就業的角度談問題. 如果您將來準備到國外讀書則應重視基礎課像CAssemblyOOPDiscrete MathData StructureOpeating SystemDatabase PrincipleNetworkSoftware EngineeringCompilerDigital CircuitComputer GraphicsComputer Component and Architecture等基礎課在國外大學IT專業中一般都能找到相同課程若國內學過到國外讀書時一般可申請免修一部分. 但我也想提醒同學如果您將來畢業時萬一申請國外大學不成不得不去找工作時,若只將精力花在這些IT專業學生都會的基礎課上(傳統IT教育模式) 未掌握一些像J2EE等技能型技術是不容易找到一份工作的我們已有同學有這樣的教訓。從找工作的角度講,企業關心的不是您學過什么課程,而是關心您能做什么,有什么技能,能做什么項目。
二、關于嵌入式系統方向
嵌入式系統無疑是當前最熱門最有發展前途的IT應用領域之一。嵌入式系統用在一些特定專用設備上,通常這些設備的硬件資源(如處理器、存儲器等)非常有限,并且對成本很敏感,有時對實時響應要求很高等。特別是隨著消費家電的智能化,嵌入式更顯重要。像我們平常常見到的手機、PDA、電子字典、可視電話、VCD/DVD/MP3Player、數字相機(DC)、數字攝像機(DV)、U-Disk、機頂盒(Set Top Box)、高清電視(HDTV)、游戲機、智能玩具、交換機、路由器、數控設備或儀表、汽車電子、家電控制系統、醫療儀器、航天航空設備等等都是典型的嵌入式系統。
嵌入式系統是軟硬結合的東西,搞嵌入式開發的人有兩類。
一類是學電子工程、通信工程等偏硬件專業出身的人,他們主要是搞硬件設計,有時要開發一些與硬件關系最密切的最底層軟件,如BootLoader、Board Support Package(像PC的BIOS一樣,往下驅動硬件,往上支持操作系統),最初級的硬件驅動程序等。他們的優勢是對硬件原理非常清楚,不足是他們更擅長定義各種硬件接口,但對復雜軟件系統往往力不從心(例如嵌入式操作系統原理和復雜應用軟件等)。
另一類是學軟件、計算機專業出身的人,主要從事嵌入式操作系統和應用軟件的開發。如果我們學軟件的人對硬件原理和接口有較好的掌握,我們完全也可寫BSP和硬件驅動程序。嵌入式硬件設計完后,各種功能就全靠軟件來實現了,嵌入式設備的增值很大程度上取決于嵌入式軟件,這占了嵌入式系統的最主要工作(目前有很多公司將硬件設計包給了專門的硬件公司,稍復雜的硬件都交給臺灣或國外公司設計,國內的硬件設計力量很弱,很多嵌入式公司自己只負責開發軟件,因為公司都知道,嵌入式產品的差異很大程度在軟件上,在軟件方面是最有“花頭“可做的),所以我們搞軟件的人完全不用担心我們在嵌入式市場上的用武之地,越是智能設備越是復雜系統,軟件越起關鍵作用,而且這是目前的趨勢。
從事嵌入式軟件開發的好處是:
(1)目前國內外這方面的人都很稀缺。一方面,是因為這一領域入門門檻較高,不僅要懂較底層軟件(例如操作系統級、驅動程序級軟件),對軟件專業水平要求較高(嵌入式系統對軟件設計的時間和空間效率要求較高),而且必須懂得硬件的工作原理,所以非專業IT人員很難切入這一領域另一方面,是因為這一領域較新,目前發展太快,很多軟硬件技術出現時間不長或正在出現(如ARM處理器、嵌入式操作系統、MPEG技術、無線通信協議等),掌握這些新技術的人當然很找。嵌入式人才稀缺,身價自然就高,越有經驗價格就越高。其實嵌入式人才稀少根本原因可能是大多數人無條件接觸這需要相應的嵌入式開發板和軟件另外需要有經驗的人進行指導開發流程。
(2)與企業計算等應用軟件不同,嵌入式領域人才的工作強度通常低一些(但收入不低)。搞企業應用軟件的IT企業,這個用戶的系統搞完了,又得去搞下一個用戶的,而且每個用戶的需求和完成時間都得按客戶要求改變,往往疲于奔命,重復勞動。相比而言,搞嵌入式系統的公司,都有自己的產品計劃,按自己的節奏行事。所開發的產品通常是通用的,不會因客戶的不同而修改。一個產品型號開發完了,往往有較長一段空閑時間(或只是對軟件進行一些小修補),有時間進行充電和休整。另外,從事嵌入式軟件的每個人工作范圍相對狹窄,所涉及的專業技術范圍就是那些(ARM、RTOS、MPEG、802.11等),時間長了這些東西會越搞越有經驗,賣賣老本,幾句指導也夠讓那些初入道者琢磨半年的。若搞應用軟件,可能下一個客戶要換成一個完全不同的軟件開發平臺,那就苦了。
(3)哪天若想創業,搞自已的產品,那么嵌入式是一個不錯的主意,這可不像應用軟件那樣容易被盜版。土木學院有一個叫啟明星的公司開發出一個好象叫“工程e”的掌上PDA,施工技術人員用該PDA可當場進行土木概預算和其它土木計算,據說銷路特好。我認識的某大學老師,他開發的飯館用的點菜PDA(WinCE平臺,可無線連網和上網),據他說銷路不錯,飯館點點PDA讓客戶點菜,多顯派頭檔次。當年有一組同學在學Windows程序設計課程時用VC設計了一個功能很強的點菜系統做為課程項目,當時真想建議他們將這個軟件做成PDA,估計會有些銷路(上海火車站南廣場的Macdonald便使用很漂亮的PDA給用戶點食品,像摸像樣的)。這些PDA的硬件設計一般都是請其它公司給訂做(這叫“貼牌”:OEM),都是通用的硬件,我們只管設計軟件就變成自己的產品了。
從事嵌入式軟件開發的缺點是:
(1)入門起點較高,所用到的技術往往都有一定難度,若軟硬件基礎不好,特別是操作系統級軟件功底不深,則可能不適于此行。
(2)這方面的企業數量要遠少于企業計算類企業。特別是從事嵌入式的小企業數量較多(小企業要搞自己的產品創業),知名大公司較少(搞嵌入式的大公司主要有Intel、Motorola、TI、Philip、Samsung、Sony、Futjtum、Bell-Alcatel、意法半導體、Microtek、研華、華為、中興通信、上廣電等制造類企業)。這些企業的習慣思維方式是到電子、通信等偏硬專業找人。由于正規高校軟件學院以前畢業生以企業計算為主,所以正規高校軟件學院與這些企業聯系相對較少。正規高校軟件學院正積極努力,目前已與其中部分公司建立了聯系,爭取今后能有正規高校軟件學院同學到這些企業中實習或就業。
(3) 有少數公司經常要碩士以上的人搞嵌入式,主要是基于嵌入式的難度。但大多數公司也并無此要求,只要有經驗即可。
正規高校軟件學院同學若學習嵌入式,顯然應偏重于嵌入式軟件,特別是嵌入式操作系統方面,應是我們的強項。對于搞嵌入式軟件的人,最重要的技術顯然是(實際上很多公司的招聘廣告上就是這樣寫的):
(1) 掌握主流嵌入式微處理器的結構與原理
(2) 必須掌握一個嵌入式操作系統
(3) 必須熟悉嵌入式軟件開發流程并至少做過一個嵌入式軟件項目。
正規高校軟件學院在嵌入式軟件方面最重要的課程包括:
(1) 嵌入式微處理器結構與應用:這是一門嵌入式硬件基礎課程,正規高校軟件學院用這門課取代了傳統的“微機原理與接口”課程(目前國內已有少部分高校IT專業這樣做了,因為講x86微機原理與接口很難找到實際用處,只為教學而已)。我們說過,嵌入式是軟硬件結合的技術,搞嵌入式軟件的人應對ARM處理器工作原理和接口技術有充分了解,包括ARM的匯編指令系統。
若不了解處理器原理,怎么能控制硬件工作,怎么能寫出節省內存又運行高速的最優代碼(嵌入式軟件設計特別講究時空效率),怎么能寫出驅動程序(驅動程序都是與硬件打交道的)很多公司招聘嵌入式軟件人員時都要求熟悉ARM處理器,將來若同學到公司中從事嵌入式軟件開發,公司都會給你一本該設備的硬件規格說明書(xxx Specification),您必須能看懂其中的內存分布和端口使用等最基本的說明(就像x86匯編一樣),否則怎么設計軟件。有些同學覺得嵌入式處理器課程較枯燥,這主要是硬件課程都較抽象的原因,等我們的嵌入式實驗室10月份建好后,您做了一些實驗后就會覺得看得見摸得著。還有同學對ARM匯編不感興趣,以為嵌入式開發用C語言就足夠了。其實不應僅是將匯編語言當成一個程序設計語言,學匯編主要是為了掌握處理器工作原理的。一個不熟悉匯編語言的人,怎么能在該處理器寫出最優的C語言代碼。
在嵌入式開發的一些關鍵部分,有時還必須寫匯編,如Bootloader等(可能還包括BSP)。特別是在對速度有極高要求的場合(如DSP處理器的高速圖像采集和圖像解壓縮),目前主要還要靠匯編寫程序(我看到過很多公司是這樣做的)。當您在一個嵌入式公司工作時,在查看描述原理的手冊時,可能很多都是用匯編描述的(我就遇到過),這是因為很多硬件設計人員只會寫或者喜歡用匯編描述,此時您就必須看懂匯編程序,否則軟硬件人員可能就無法交流。很多嵌入式職位招聘時都要求熟悉匯編。
(2) 嵌入式操作系統類課程
除了WinCE的實時性稍差外,大多數嵌入式操作系統的實時性都很強所以也可稱為實時操作系統Real Time Operating System.從事嵌入式的人至少須掌握一個嵌入式操作系統(當然掌握兩個更好)這在嵌入式的所有技術中是最為關鍵的了。目前最重要的RTOS主要包括:
第一類、傳統的經典RTOS:最主要的便是Vxworks 操作系統,以及其Tornado開發平臺。Vxworks因出現稍早,實時性很強(據說可在1ms內響應外部事件請求),并且內核可極微(據說最小可8K),可靠性較高等,所以在北美,Vxworks占據了嵌入式系統的多半疆山。特別是在通信設備等實時性要求較高的系統中,幾乎非Vxworks莫屬。Vxworks的很多概念和技術都和Linux很類似,主要是C語言開發。像Bell-alcatel、Lucent、華為等通信企業在開發產品時,Vxworks用得很多。但Vxworks因價格很高,所以一些小公司或小產品中往往用不起。目前很多公司都在往嵌入式Linux轉(聽說華為目前正在這樣轉)。但無論如何,Vxworks在一段長時間內仍是不可動搖的。與Vxworks類似的稍有名的實時操作系統還有pSOS、QNX、Nucleus等RTOS。
第二類、嵌入式Linux 操作系統:Linux的前途除作為服務器操作系統外,最成功的便是在嵌入式領域的應用,原因當然是免費、開源、支持軟件多、呼擁者眾,這樣嵌入式產品成本會低。Linux本身不是一個為嵌入式設計的操作系統,不是微內核的,并且實時性不強。目前應用在嵌入式領域的Linux系統主要有兩類:一類是專為嵌入式設計的已被裁減過的Linux系統,最常用的是uClinux(不帶MMU功能),目前占較大應用份額,可在ARM7上跑另一類是跑在ARM 9上的,一般是將Linux 2.4.18內核移植在其上,可使用更多的Linux功能(當然uClinux更可跑在ARM 9上)。很多人預測,嵌入式Linux預計將占嵌入式操作系統的50以上份額,非常重要。缺點是熟悉Linux的人太少,開發難度稍大。另外,目前我們能發現很多教材和很多大學都以ucOS/II為教學用實時操作系統,這主要是由于ucOS/II較簡單,且開源,非常適合入門者學習實時操作系統原理,但由于ucOS/II功能有限,實用用得較少,所以正規高校軟件學院不將其作為教學重點,要學習就應學直接實用的,比如uClinux就很實用。況且熟悉了Linux開發,不僅在嵌入式領域有用,對開發Linux應用軟件,對加深操作系統的認識也有幫助,可謂一舉多得。據我所知,目前Intel、Philip都在大搞ARMLINUX的嵌入式開發,Fujitum則是在自己的處理器上大搞Linux開發。目前在嵌入式Linux領域,以下幾個方面的人特別難找,一是能將Linux移植到某個新型號的開發版上二是能寫Linux驅動程序的人三是熟悉Linux內核裁減和優化的人。正規高校軟件學院在該嵌入式Linux方面的課程系列是:本科生操作系統必修課,然后是Linux程序設計選修課,最后是嵌入式Linux系統選修課。正規高校軟件學院在Linux方面目前已有較強力量,魏老師和張老師熟悉Linux開發,金老師和唐老師熟悉Linux系統管理。
第三類、Windows CE 嵌入式操作系統:Microsoft也看準了嵌入式的巨大市場,MS永遠是最厲害的,WinCE出來只有幾年時間,但目前已占據了很大市場份額,特別是在PDA、手機、顯示儀表等界面要求較高或者要求快速開發的場合,WinCE目前已很流行(據說有一家賣工控機的公司板子賣得太好,以至來不及為客戶裁減WinCE)。WinCE目前主要為4.2版(.NET),開發平臺主要為WinCE Platform Builder,有時也用EVC環境開發一些較上層的應用,由于WinCE開發都是大家熟悉的VC環境,所以正規高校軟件學院學過Windows程序設計課程的同學都不會有多大難度,這也是WinCE容易被人們接受的原因,開發環境方便快速,微軟的強大技術支持,WinCE開發難度遠低于嵌入式Linux。
對于急于完成,不想拿嵌入式Linux冒險的開發場合,WinCE是最合適了(找嵌入式Linux的人可沒那么好找的),畢竟公司不能像學生學習那樣試試看,保證開發成功更重要。根據不同的側重點,WinCE還有兩個特殊版本,一個是MS PocketPC操作系統專用于PDA上(掌上電腦),另一個是MS SmartPhone操作系統用于智能手機上(帶PDA功能的手機),兩者也都屬于WinCE平臺。在PDA和手機市場上,除WinCE外,著名的PDA嵌入式操作系統還有Palm OS(因出現很早,很有名)、Symbian 等,但在WinCE的強勁沖擊下,Palm和Symbian來日還能有多長正規高校軟件學院可能是全國高校中唯一一家開設專門的“Windows CE嵌入式操作系統“課程的學校,這主要是基于以下原因:正規高校軟件學院本身前面便有Windows程序設計課程,同學學過VC后再學WinCE非常方便自然,通過學習WinCE同樣也可了解嵌入式軟件的一般開發過程,對Linux有懼怕心理的同學也很合適。
很顯然,嵌入式Linux永遠不可能替代WinCE,而且將來誰占份額大還很難講,畢竟很多人更愿意接受MS的平臺,就像各國政府都在大力推LINUX已好長時間,但您能看到幾個在PC機上真正使用LINUX的用戶據我觀察目前在嵌入式平臺上LINUX是叫得最響但還是WinCE實際用得更多.嵌入式LINUX可能更多地是一些有長遠產品計劃的公司為降低成本而進行長遠考慮二是微軟亞洲研究院對正規高校軟件學院WinCE課程的支持計劃,我們也很希望將來正規高校軟件學院能有同學通過微軟的面試去實習。WinCE和多媒體(如MPEG技術)是微軟亞洲工程院目前做得較多的項目領域之一他們很需要精通WinCE的人。
總結關于嵌入式操作系統類課程,若您覺得自己功底較深且能鉆研下去,則可去學嵌入式Linux若您覺得自己VC功底較好且想短平快地學嵌入式開發,則正規高校軟件學院的WinCE課程是最好的選擇。
(3) 嵌入式開發的其它相關軟件課程
搞嵌入式若能熟悉嵌入式應用的一些主要領域,這樣的人更受企業歡迎。主要的相關領域包括:
A、數字圖像壓縮技術:這是嵌入式最重要最熱門的應用領域之一,主要是應掌握MPEG編解碼算法和技術,如DVD、MP3、PDA、高精電視、機頂盒等都涉及MPEG高速解碼問題。為此,正規高校軟件學院已預訂了一位能開設數字圖像處理課程的博士。
B、通信協議及編程技術:這包括傳統的TCP/IP協議和熱門的無線通信協議。首先,大多數嵌入式設備都要連入局域網或Internet,所以首先應掌握TCP/IP協議及其編程,這是需首要掌握的基本技術其次,無線通信是目前的大趨勢,所以掌握無線通信協議及編程也是是很重要的。無結通信協議包括無線局域網通信協議802.11系列,Bluetooth,以及移動通信(如GPRS、GSM、CDMA等)。
C、網絡與信息安全技術:如加密技術,數字證書CA等。正規高校軟件學院有這方面的選修課。
D、DSP技術:DSP是Digital Signal Process數字信號處理的意思,DSP處理器通過硬件實現數字信號處理算法,如高速數據采集、壓縮、解壓縮、通信等。數字信號處理是電子、通信等硬件專業的課程,對于搞軟件的人若能了解一下最好。目前DSP人才較缺。如果有信號與系統、數字信號處理等課程基礎,對于學習MPEG編解碼原理會有很大幫助。
(4) 嵌入式開發的相關硬件基礎
對于軟件工程專業的學生,從事嵌入式軟件開發,像數字電路、計算機組成原理、嵌入式微處理器結構等硬件課程是較重要的。另外,匯編語言、C/C、數據結構和算法、特別是操作系統等軟件基礎課也是十分重要的。我們的主要目地是能看懂硬件工作原理,但重點應是在嵌入式軟件,特別操作系統級軟件,那將是我們的優勢。
我們的研究生里有些是學電子、通信類專業過來的,有較好的模擬電路和單片機基礎,學嵌入式非常合適。嵌入式本身就是從單片機發展過來的,只是單片機不帶OS,而現在很多嵌入式應用越來越復雜,以至不得不引入嵌入式操作系統。另外,為追求更高速的信號處理速度,現在在一些速度要求較高的場合,有不少公司是將一些DSP算法,如MPEG壓縮解壓縮算法等用硬件來實現,這就涉及到HDL數字電路設計技術及其FPGA/IP核實現技術,這方面的人目前市場上也很缺。
(5) 題外話
另外,能寫驅動程序的人目前是非常緊缺的(驅動程序也可歸于嵌入式范疇),包括桌面Windows中的DDK開發環境和WDM驅動程序。公司每時每刻都要推出新產品,每一個新產品出來了,要能被操作系統所使用,是必須寫驅動程序的。寫驅動程序就必須掌握操作系統(如Windows或Linux)的內部工作原理,還涉及到少量硬件知識,難度較大,所以這方面的人很難找。想成為高手的同學,也可從驅動程序方面獲得突破。我可說一下自己的經歷,三年前我曾短暫地在一家公司寫過WinCE驅動程序(正是因為知道這方面的人緊缺,所以才要做這方面的事),盡管那以前從未做過驅動程序,應聘那個職位時正是看準了公司是很難招聘到這方面的人,既然都找不到人,驅動還得有人做,這正是可能有機會切入這一領域的大好機會。面試時大講自己寫過多少萬行匯編程序,對計算機工作原理如何清楚,簡歷中又寫著我曾閱讀完兩本關于Windows Driver Model的兩本英文原版書,寫過幾個小型的驅動程序練習程序(其實根本沒寫過,我們的同學將來千萬不要像我這樣,早練就些過硬功夫,就不至于淪落到我這等地步,就不用像我那樣去“欺騙”公司了,我這是一個典型的反面教材),居然一切都PASS(當然最重要的是筆試和面試問題還說得過去),這只能說明這一領域找人的困難程度。公司本就未指望找到搞過驅動的人,找個有相關基礎的人就算不錯了。做了以后,發現也并不是怎樣難的。其實搞驅動程序的工作是很舒服的,搞完一個版本就會空一段時間,只有等公司新的芯片推出或新的OS出現后,才需要再去開發新一版驅動,那時有將近一個月時間空閑著在等WinCE .NET Beta版推出,準備將驅動程序升級到CE .NET上,現在在軟件學院工作整日忙,無限懷念那段悠閑時光。
很巧合,最近本人無意中再次體會到了嵌入式的迷人之處。上周我那用了3年的手機終于不能WORK了。此次更新,除要求有手機常見功能外,最好有MP3功能(現在很多英語聽力都有MP3文件),最好有英漢詞典,最好還能讀WORD文檔。最后選了個滿足以上條件的最便宜的手機DOPOD 515(斬了我2.2K,但想想這也算自己對嵌入式事業的支持,這樣便也想開了),算得上最低檔的智能手機了。回來一查,手機的about顯示,本手機Processor是ARM,其OS是MS Smartphone(即WinCE .NET 4.2),這么巧合,簡直可做為學習嵌入式課程的產品案例了(等我們的WinCE課程開得有聲有色后,希望能從微軟研究院搞些Smartphone來開發開發)。有OS的手機果然了得,金山詞霸、WORD、EXCEL、REGEDIT等居然都有smartphone版的,PC上的MP3、DOC等居然在download時都可被自動轉換成smartphone格式,真是爽。完全可用Windows CE自己開發一些需要的程序download到自己的手機上。現在市面銷售PDA智能手機火爆,MS總是財源滾滾。但我已發現國產的ARMLINUX手機出現在市面上,價格只1.2K。
在GOOGLE網上能搜索太多的關于嵌入式系統的討論了,我剛發現一個http:www.embyte.com 非常不錯,有很多有經驗者談自己的體會投入到其中的論壇中,你會切身感到嵌入式學習的熱潮。
要么走ARMWinCE,要么走ARMLINUX,要么走ARMVXWORKS。每個搞嵌入式的人都可選一條路,條條大路通羅馬。
三、關于游戲軟件方向
將游戲軟件人才稱為數字媒體軟件人才可能更好聽些,包括游戲軟件策劃(最缺游戲策劃的人)、游戲軟件美術設計、游戲軟件程序設計等多方面的人才,對軟件學院,游戲軟件程序設計當然是最合適的了。
游戲軟件人才的確目前很缺,聽說很多游戲軟件公司苦于沒新人才補充,特別是沒有高手補充,不得不相互挖人才,以至將游戲軟件人才身價越抬越高。網上說日本教育部剛剛批準成立了日本第一家專門培養四年制游戲軟件人才的本科大學。其實國內很多大學,特別是軟件學院都有搞游戲軟件人才的設想,但目前很少有做成的,主要原因是找不到能上游戲軟件課的教師,聽說有個學校只能花很大的價錢從Korea找老師來上課,果真缺到此等地步
已有很多青少年沉湎于網游而頹廢的實例,好在還不至于上升到制造精神鴉片的高度,所以開發游戲軟件的人也不必每日慚悔(但開發兒童益智類游戲軟件的人是不需慚悔的),如果想想這是為發展民族軟件產業做貢獻,那反倒是一件有意義的事情了。不過聽一家游戲軟件公司的老板講,搞游戲軟件開發是非常辛苦的。
若想自己創業,搞搞游戲軟件是不錯的主意。現在網上網站或公司都在收購游戲軟件(特別是手機游戲軟件,因為手機游戲用戶可選從網站上download到手機上,不像網游那么復雜),按download次數分成或一次性收購的都有。我們的同學在校期間是否也可發點小財搞得好,說不定可賣到國外網站,直接掙$$$呢。
大致游戲分成以下幾類:
(1)PC類游戲,包括單機和網游。這類游戲開發平臺基本上都是基于VC和DitrectX(如DirectShow,DirectDraw,D3D等,DirectX資料可直接到MS網站上查)。DirectX和OpenGL是兩個主要的圖形標準,OpenGL跨平臺(Unix/Windows上都可跑),盡管很多搞研究的人對OpenGL贊不絕口,將DirectX罵得一文不值,但事實是,在Windows平臺上,DirectX是最快最方便的,所以在Windows平臺上的游戲還是DirectX當家。
(2)手機游戲:目前手機游戲主要開發平臺有兩類:
第一類手機游戲是J2ME平臺(Java 2 Micro Edition),J2ME本是為嵌入式平臺設計的Java,但由于Java生來就需要Java虛擬機(JVM)來解釋,所以在嵌入式產品很少用J2ME(太慢太耗內存)。但在手機游戲中J2ME倒有用武之地,我想這可能主要是Java可跨OS平臺的原因,因為手機的OS是千奇百怪的。我對J2ME完全外行,但上次聽Square Enix公司的人說,J2ME與我們同學學過的J2EE還是有較大差別的。據我所知,目前手機中用的較多的是KJava語言,KJava是運行在一種叫K Java Virtual Machine的解釋器上(K JVM是SUN早期為演示J2ME在嵌入式系統應用而開發的一個虛擬機),所以將在K JVM上運行的J2ME叫KJava。盡管SUN說今后不保證支持K JVM,將開發新的更高性能的J2ME虛擬機取而代之,但由于KJava出現較早,很多早期的手機游戲軟件都將K JVM假想成J2ME虛擬機的標準了,所以目前有大量的KJava手機游戲軟件存在,而且還在用KJava繼續開發。特別是日本的手機游戲軟件由于開發較早(像叫什么docomi的日本最大的電信運營商手機游戲搞得很火),多是基于KJava的。所以目前市場上在招聘手機游戲軟件人才時,很多要求掌握KJava。有關J2ME請到Sun的網站上找資料。
另一類手機游戲是BREW 平臺,BREW是美國高通公司(Qualcomm,CDMA核心技術都是該公司開發的,有無數移動通信技術專利)發明的,據說可編譯成二進制代碼,那當然快了。主要的開發語言是C/C。但迫于被指責為較封閉的壓力,目前Qualcomm已推出BREW平臺上的J2ME虛擬機(但可想像那將是怎樣慢的速度)。Qualcomm搞定了很多手機制造商簽定BREW授權許可協議,最狠的是Qualcomm與中國聯通綁在一起大堆基于BREW的手機游戲,所以有些公司招聘時要求掌握BREW也就不奇怪了。
去年00級22班畢業答辯時,有一位同學講的是在公司做的KJava游戲(那是一家日本游戲軟件公司),還一位同學講的是另一家公司做的BREW游戲,看來不同的公司有不同的選擇。將來誰會更火,我估計隨著手機硬件資源的不斷提高,不會在乎一個JVM的開銷,J2ME應更有前途,畢竟它是更開放的。
(3)專用游戲機:如電視游戲,XBOX,PS2等。
從著名游戲公司發來的對網游和手機游戲的人才需求,很有代表性。從中我們可看出,游戲公司對人才的需求主要是以下技術:
(1) 計算機圖形學,特別是3D編程與算法,包括DirectX 或OpenGL。開發平臺是VC/DIRECTX或KJAVA。
(2) 公司說,手機游戲因手機資源有限,必須對圖像進行壓縮,所以若有一些圖像壓縮算法知識比較好。像若能有MPEG壓縮算法較好,手機上采用的是比MPEG壓縮得更狠的一些特殊算法,但觸類旁通。
(3) TCP/IP Socket編程是搞網游開發的人必須掌握的。
(4) 人工智能知識:復雜游戲可能需要一些AI算法。
(5) 網絡與信息安全知識: 網游要防外掛。
一般游戲公司的網游服務器是基于Linux 平臺的,所以還提出了對游戲服務器端軟件工程師的技術需求(精通MSSQL、ORACLE、MYSQL等數據庫,精通Linux Programming,特別是Socket編程)。還有對維護游戲網站人才需求(ASP .NET和數據庫)。注意一條,最好有自己的游戲軟件作品,若您應聘時能帶一個DirectX作品,那將有多強的競爭力,所以最重要的是現在就要行動,實踐,實踐,再實踐。
轉載 2011-02-23 05:02:09
稱謂:
内容: