Ibm大型机目前并不太为人所知,但它确实是一种行业,并且在IT领域里还是属于高端的行业。从事该行业的人属于职业人士,同医生、律师类似,需要经过严格而系统的学习,需要建立一套全面而深入的专业知识体系,是属于科学家或工程师行列的。ibm大机本身就是一套大型的知识库,任何人都不可能成为一个大机的“全能专家”,它的分工是相当的细化,这点也同医生的分工类似。
初次接触大型机的人应该能对大型机的历史由来、应用领域、如何入行等有一个大体上的了解。
总的来说,按当前国内市场上划分,可以分成AP和SP两个大类。AP(Application Programmer)翻译成中文就是应用程序员的意思,主要是做应用开发的;SP(System Programmer)是系统程序员的意思,主要研究大机操作系统本身的管理配置等。简单地说,就是开发和系统两个大类。
做开发,关键在算法,也就是你的编程能力,在于一个人能做或不能做;做系统,关键在经验,看你所掌握的知识含量,在于一个人做得长做得短。
开发方向上历来需要的人都是相对很多的。大机上的开发主要是对银行的金融产品,信用卡等之类的项目进行应用软件的开发,也就是通常所说的写程序。写程序,其实在哪里都一样,关键是算法。因此,只要你C语言学得好,做大机开发也不难。
大机上的开发,目前国内主要用的COBOL语言,一种很古老的,基于商务运算的编程语言。该语言同C语言类似,主要也是面向过程的语言,不过也可以面向对象。此外有些地方用到的还有PL/1语言,该语言格式上比COBOL更灵活,同C的风格更加相似。主机上也可以编译C和Java的,但用得不多。
大机上的开发往往是和数据库、中间件联系起来的。所谓中间间,就是介于操作系统和应用程序之间的一种子系统。数据库最常用的是DB2,此外还有IMS;中间件最主要用到的应该是CICS。DB2是关系数据库,同其他关系数据库一样,在编程中主要用到SQL语句。CICS是一种在线交易系统,最常见的如银行的ATM自动取款机程序,一般就是通过CICS进行开发的。DB2和CICS中用到的一些命令语句通常是以EXEC SQL(CICS)...END-EXEC的方式嵌入到COBOL等高级语言内的,COBOL是宿主语言。
因此,做开发,主要需要学习的是:COBOL(或PL/1),DB2,CICS,当然还要了解一下JCL和VSAM,主要是提交作业和读写文件时用到。还是一句话,关键在算法,在你的逻辑思维能力。这种能力一般是一开始就注定了的,决不是你工作得越久就越强。随着年龄增长,编程能力往往还会减退。
开发这块,同其他的开发类似,招的人多,上手也快,但要辛苦一些,而且是吃青春饭的。做开发往后面发展,必须学会转型,要么往管理方向发展,要么往系统方向发展。
另一块就是做系统了。做系统,除了对以上开发所学的东西要有所了解外,另外要学的东西还有好多。
目前做系统,国内主要分以下三类:
一、在IBM研发部门做系统的研发
做系统的研发,只能是在产商(IBM)的研发部门做,如IBM CDL,IBM CSDL等。做研发,简单的说就是对大机操作系统及其运行在上面的一些中间件进行研究和升级,以发布最新的版本,是接近底层的。此外,研发和测试也是分不开的;
二、在IBM服务部门及外包公司等做系统的维护;
做维护这块分工是最细的。从职能上,就我所了解,可以分为以下几类:
OP(Operator),操作员。有负责监控系统的,监控常用的工具是Tivoli(前身是OPC)和Control-M(第三方产品,非IBM出产),此外记录监控信息常用Manage Now工具;有负责安排执行作业(作业相当于为完成一件任务而执行的一系列操作)流程的,主要也需用到Tivoli工具;有负责对数据集进行操作的,主要是提交下相应的JCL编写的作业(job);等等……作为操作员,需要掌握ISPF的基本操作,此外再根据项目不同学习相关工具(如Tivoli)的基本使用或相关知识的基本应用就行了。OP提供的一般是一线支持。
SP(System Programmer),系统程序员。主要是负责对系统一些环境变量的设置。需要掌握较深入的JCL,掌握JES(作业管理),SMS(存储管理),REXX(系统编程脚本语言)等等。系统程序员我所理解的也是分为好多类的,比如CICS系统管理员,就主要负责对CICS的一些环境变量进行设置。SP提供的应该是二线支持。
SA(System Analyst/System Administrator),系统分析员/系统管理员。二者缩写一样,但内容不一样。对这二者不是太了解,只是感觉前者是对系统的运行状况和性能进行分析,后者是对整个系统的运行进行管理。
DBA(Database Administrator),数据库管理员。这个概念其实不局限于大机,这里所指的主要是运行在大机上的DB2(或IMS)数据库管理员。
从方向上分,就更多了。有做存储的,有做网络的,有做MQ的,有做Websphere的,有做RACF的,做DB2的,做CICS的……这些方向是一个横向的概念,通常所说的从OP到SP则是一个纵向的概念。不同的方向涵盖于OP和SP的过程之中。(这里所说的SP不是单指系统程序员这个分工,而是做系统方向一个较高层的概念)
三、在银行和大型国企做系统的管理。
银行里的划分还是很细致的,可参考如上。而在一些国企里(如武钢)则好像不太细致,里面人不多,但各方面都要会一点,有点像私人诊所或私人律师事务所。
系统这块,学的东西很多,主要看你的知识含量,即你知道多少。以上列举的虽不用全学,但比如即使单单的JCL,要学得深入,就有好多东西要学。系统方向,招人少,学习周期长,但同时也不容易被取代或淘汰,可以一直做下去,并且做的时间越长越值钱,这点同医生又有点类似了。
最后,还是一句老话:“行行出状元”。把工作当成一项事业,而非饭碗;把所学视为一门科学,而非工具。
|