同济大学软件学院院长谈择业—关于嵌入式方向


  
  1、关于企业计算方向 
    企业计算(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等企业计算领 
  域的最关键技能型技术课程都已学完了(但不知有多少同窗学得较深刻,未来找工做时会用到这些技能)。下学期咱们将在该领域中拟再开设XML与Web 
  Service技术、软件配置管理等课程。本学期开设的企业计算领域课程的确很少,但您应在空余时间将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或大型机等方面有些绝技您会有很大优点由于这些较偏的领域其技术变化是相对很缓慢的. 
  
    我还记得在2000年时我曾在业余时间与一位德国人合做面试一些IT人才到德国去那时德方各公司发来的需求有不少是SAP和IBM大型机的咱们在众多应聘者中最后也未找到一个在这方面有经验甚至是有一点经验的. 相反掌握流行技术的人因太多而不很值钱. 
  
    咱们的同窗未来找工做时不只要盯着国内市场还要有一种放眼全球的眼光,对搞软件的人您未来彻底可能到其它国家去工做. 
  尤为是在欧美、日本、新加坡等国家,对SAP(包括IBM大型机)人才的需求是很大的。毕竟比同窗见得多些提醒同窗未来多留意有学习这些绝技的机会一旦有机会建议当仁不让. 
  国内的人才市场可访问www.51job.com,国外的IT人才需求可访问www.hotjobs.com、www.workopolis.com、www.monster.com等著名网站。应常常访问这些网站,以了解市场对人才的具体需求,早作准备。 
  
    以上对企业计算领域的观点供你们参考.虽然观点未必正确但确是直言不讳. 总之每一个人的脑壳都长在本身脖子上每一个人都应有本身的判断. 
  
    还要注意我以上纯粹是从未来就业的角度谈问题. 若是您未来准备到国外读书则应重视基础课像CAssemblyOOPDiscrete MathData StructureOpeating SystemDatabase PrincipleNetworkSoftware EngineeringCompilerDigital CircuitComputer GraphicsComputer Component and 
  Architecture等基础课在国外大学IT专业中通常都能找到相同课程若国内学过到国外读书时通常可申请免修一部分. 但我也想提醒同窗若是您未来毕业时万一申请国外大学不成不得不去找工做时,若只将精力花在这些IT专业学生都会的基础课上(传统IT教育模式) 
  未掌握一些像J2EE等技能型技术是不容易找到一份工做的咱们已有同窗有这样的教训。从找工做的角度讲,企业关心的不是您学过什么课程,而是关心您能作什么,有什么技能,能作什么项目。 
  
  2、关于嵌入式系统方向 
    嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一。嵌入式系统用在一些特定专用设备上,一般这些设备的硬件资源(如处理器、存储器等)很是有限,而且对成本很敏感,有时对实时响应要求很高等。特别是随着消费家电的智能化,嵌入式更显重要。像咱们日常常见到的手 
  机、PDA、电子字典、可视电话、VCD/DVD/MP3 Player、数字相机(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让客户点菜,多显派头档次。我记得00级22班当年有一组同窗在学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月份建好后,您作了一些实验后就会以为看得见摸得着。还有同窗对A 
  RM汇编不感兴趣,觉得嵌入式开发用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永远不可能替代Wi 
  nCE,并且未来谁占份额大还很难讲,毕竟不少人更愿意接受MS的平台,就像各国政府都在大力推LINUX已好长时间,但您能看到几个在PC机上真正使用LINUX的用户据我观察目前在嵌入式平台上LINUX是叫得最响但仍是WinCE实际用得更多.嵌入式LINUX可能更多地是一些有长远产品计划的公 
  司为下降成本而进行长远考虑 二是微软亚洲研究院对正规高校软件学院WinCE课程的支持计划,咱们也很但愿未来正规高校软件学院能有同窗经过微软的面试去实习。WinCE和多媒体(如MPEG技术)是微软亚洲工程院目前作得较多的项目领域之一他们很须要精通WinCE的人。 
  
    总结关于嵌入式操做系统类课程,若您以为本身功底较深且能钻研下去,则可去学嵌入式Linux若您以为本身VC功底较好且想短平快地学嵌入式开发,则正规高校软件学院的WinCE课程是最好的选择。 
  
    (3) 嵌入式开发的其它相关软件课程 
  
    搞嵌入式若能熟悉嵌入式应用的一些主要领域,这样的人更受企业欢迎。主要的相关领域包括: 
  
    A、数字图像压缩技术:这是嵌入式最重要最热门的应用领域之一,主要是应掌握MPEG编解码算法和技术,如DVD、MP三、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上的MP三、DOC等竟然在download时均可被自动转换 
  成smartphone格式,真是爽。彻底可用Windows CE本身开发一些须要的程序download到本身的手机上。如今市面销售PDA智能手机火爆,MS老是财源滚滚。但我已发现国产的ARMLINUX手机出如今市面上,价格只1.2K。 
  
    在GOOGLE网上能搜索太多的关于嵌入式系统的讨论了,我刚发现一个http:www.embyte.com 很是不错,有不少有经验者谈本身的体会投入到其中的论坛中,你会切身感到嵌入式学习的热潮。 
  
    要么走ARMWinCE,要么走ARMLINUX,要么走ARMVXWORKS。每一个搞嵌入式的人均可选一条路,条条大路通罗马。 
  
  3、关于游戏软件方向 
    将游戏软件人才称为数字媒体软件人才可能更好听些,包括游戏软件策划(最缺游戏策划的人)、游戏软件美术设计、游戏软件程序设计等多方面的人才,对软件学院,游戏软件程序设计固然是最合适的了。 
  
    游戏软件人才的确目前很缺,据说不少游戏软件公司苦于没新人才补充,特别是没有高手补充,不得不相互挖人才,以致将游戏软件人才身价越抬越高。网上说日本教育部刚刚批准成立了日本第一家专门培养四年制游戏软件人才的本科大学。其实国内不少大学,特别是软件学院都有搞 
  游戏软件人才的设想,但目前不多有作成的,主要缘由是找不到能上游戏软件课的教师,据说有个学校只能花很大的价钱从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彻底外行,但上次听Squar 
  e 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等,我不太了解,不过这些游戏也太偏了。 
  
    从著名游戏公司发来的对网游和手机游戏的人才需求,颇有表明性。从中咱们可看出,游戏公司对人才的需求主要是如下技术: 
  
    (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做品,那将有多强的竞争力,因此最重要的是如今就要行动,实践,实践,再实践。linux

相关文章
相关标签/搜索