百度首页 | 百度空间
 
查看文章
 
[转载]谈谈软件从业学习方向(1)——作者:同济大学软件学院JacksonWan
2008-03-25 16:48
关于企业计算方向

        企业计算(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级2+2班一位同学,当初放弃保研,看准在花旗软件做大型机并且非常努力,还未毕业,公司便派她到国外参加一个项目的开发,成了项目骨 干,我觉得她当初选择是完全正确的(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等著名网站。应经常访问这些网站,以了解市场对人才的具体需求,早做准备。
        以上对企业计算领域的观点,供大家参考。虽然观点未必正确,但确是直言不讳。总之,每个人的脑袋都长在自己脖子上,每个人都应有自己的判断。
      还要注意,我以上纯粹是从将来就业的角度谈问题。如果您将来准备到国外读书,则应重视基础课,像C,Assembly,OOP, Discrete Math,Data Structure,Opeating System,Database Principle,Network, Software Engineering, Compiler,Digital Circuit,Computer Graphics, Computer Component and Architecture 等基础课,在国外大学IT专业中一般都能找到相同课程,若国内学过,到国外读书时一般可申请免修一部分。但我也想提醒同学,如果您将来毕业时万一申请国 外大学不成,不得不去找工作时,若只将精力花在这些IT专业学生都会的基础课上(传统IT教育模式),未掌握一些像J2EE等技能型技术,是不容易找到 一份工作的,我们已有同学有这样的教训。从找工作的角度讲,企业关心的不是您学过什么课程,而是关心您能做什么,有什么技能,能做什么项目。

关于游戏软件方向

      将游戏软件人才称为数字媒体软件人才可能更好听些,包括游戏软件策划(最缺游戏策划的人)、游戏软件美术设计、游戏软件程序设计等多方面的人才,对软件学院,游戏软件程序设计当然是最合适的了。
      游戏软件人才的确目前很缺,听说很多游戏软件公司苦于没新人才补充,特别是没有高手补充,不得不相互挖人才,以至将游戏软件人才身价越抬越高。网上说日本教 育部刚刚批准成立了日本第一家专门培养四年制游戏软件人才的本科大学。其实国内很多大学,特别是软件学院都有搞游戏软件人才的设想,但目前很少有做成的, 主要原因是找不到能上游戏软件课的教师,听说有个学校只能花很大的价钱从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的解释器上(KJVM是SUN早期为演示J2ME在 嵌入式系统应用而开发的一个虚拟机),所以将在KJVM上运行的J2ME叫KJava。尽管SUN说今后不保证支持KJVM,将开发新的更高性能的 J2ME虚拟机取而代之,但由于KJava出现较早,很多早期的手机游戏软件都将KJVM假想成J2ME虚拟机的标准了,所以目前有大量的KJava手 机游戏软件存在,而且还在用KJava继续开发。特别是日本的手机游戏软件由于开发较早(像叫什么docomi的日本最大的电信运营商手机游戏搞得很 火),多是基于KJava的。所以目前市场上在招聘手机游戏软件人才时,很多要求掌握KJava。有关J2ME请到Sun的网站上找资料。
      另一类 手机游戏是BREW平台,BREW是美国高通公司(Qualcomm,CDMA核心技术都是该公司开发的,有无数移动通信技术专利)发明的,据说可编译成 二进制代码,那当然快了。主要的开发语言是C/C++。但迫于被指责为较封闭的压力,目前Qualcomm已推出BREW平台上的J2ME虚拟机(但可想 像那将是怎样慢的速度)。Qualcomm搞定了很多手机制造商签定BREW授权许可协议,最狠的是Qualcomm与中国联通绑在一起大堆基于BREW的手机游戏,所以有些公司招聘时要求掌握BREW也就不奇怪了。
        去年00级2+2班毕业答辩时,有一位同学讲的是在公司做的KJava游 戏(那是一家日本游戏软件公司),还一位同学讲的是另一家公司做的BREW游戏,看来不同的公司有不同的选择。将来谁会更火,我估计随着手机硬件资源的不 断提高,不会在乎一个JVM的开销,J2ME应更有前途,毕竟它是更开放的。
        (3)专用游戏机:如电视游戏,XBOX等,我不太了解,不过这些游戏也太偏了。
        同学可看服务器\\10.60.36.148\public files\Intern Documents(学生实习资料)\大宇资讯股份有限公司,该 文件夹中有著名游戏公司发来的对网游和手机游戏的人才需求,很有代表性。从中我们可看出,游戏公司对人才的需求主要是以下技术:
        (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作品,那将有多强的竞争力,所以最重要的是现在就要行动,实践,实践,再实践。
        关于游戏方向,虽然我院一直想做,但可惜暂时还找不到这方面的师资,不过,我们计划与这方面的有名公司合作,让公司的技术人员来上课(最好能在我院搞个开发 基地),有可能谈成的。对游戏软件开发有兴趣的同学,在目前情况下,可自已钻研一下相关知识(比方,可考虑将DirectX作为Windows程序设计课 的课程项目),将来可拿出自己的作品来,同样可找到这方面的好工作,我们00,01级同学都有这样的例子。目前,会VC++的人本来就不多(现在很多年轻 人都去追时髦的Dot Net来了,VC++因难学,所以人就少),会DirectX的人就更少了,这正是我们的机会。


类别:我的收藏 | 添加到搜藏 | 浏览() | 评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码:
 

     

©2008 Baidu