1.2 学习Unix,可从事什么样的工作
对于一般人员来说,Unix是神秘的,这种神秘激发了人们投入她怀抱的渴望,同样也正因为这种神秘,融化了人们投奔她的决心,“如果加入Unix阵容,我将可以从事什么样的工作?”,这是试图拜倒Unix石榴裙下的帅哥哥们最想了解的问题。
其实,市面上流行的Unix书籍(含Linux书籍,下同),已经告诉了你们答案,虽然这些书籍多得“乱花渐欲迷人眼”,但不妨把他们分为3大类:
1.2.1 第一大类:Unix/Linux操作
类别:操作应用
学习内容:Unix/Linux的安装。
基本命令,包括文件系统命令、用户系统命令、IPC命令、网络命令等等;
工具应用,包括vi,wc,bc,awk等等,尤其是vi,必不可少!
Shell编程;
服务配置,包括安装服务器、防火墙、数据库等等。
工作规划:网络管理员、系统维护员。
工作单位:互联网公司,自带主机和网络设备的非IT公司
特点:工作技能相对容易掌握,工作范围相对分布广泛,工作岗位相对提供较多,工作工资相对比较贫乏、工作薪水相对不易增加。
如果掌握了Unix/Linux基本操作,你可以在公司中将有权使用服务器;如果掌握了Linux服务配置,你将可以谋求一个网管的工作;而如果更进一步,掌握了Shell编程和工具命令,那么你的工作将如鱼得水。
一般情况下,Linux适用于X86服务器,Unix适用于PowerCPU机器或小型机以上机型;X86服务器常用于架设网站和提供普通后台服务,大、中、小型机则提供高并发、大吞吐、高性能的关系国际民生或政治形象的后台服务;纯X86服务器操作员薪水微薄,供大于求,而小、中、大型机操作员却炙手可热,供不应求,如果你能熟练操大型机,那么恭喜你,你的下半辈子不用愁了,数钱数到手抽筋将是你真实的生活写照。
JoJo巴:朱老师,我要赚大钱,我想学大型机操作。
编程浪子:大、中、小型机一般只有不缺钱的单位才有,我把朱朱胡工作室卖掉可能都买不起大型机上的一个零件,从哪找大型机让你学!你还是好好学习Unix/Linux操作这个有前途的职业吧。不过如果你能招入那些单位就不不同了,不但可以整天模机器,说不定还会免费出国培训哦!
JoJo巴:大型机真这么牛吗?它与一般的PC机有什么区别?
编程浪子:首先呢,大小不同,大型机体积大,而一般PC机体积小。其次呢,价格不同,大型机特别贵,而一般PC相当便宜。再次呢,受重视程度不同,大型机豪宅住着,空调开着,UPS供着,人们管理大型机时小心翼翼的,一般人甚至碰都不能碰,说有多珍贵就有多珍贵。一般PC机吗,哎,不说了,同样是电脑,这差别杂那么大呢!当然,机器硬件不同,操作系统也不同。PC机一般随便就重启了,而大型机重启那绝对是一件记入史书的大事(史书就是放在机房中记录日志的一本小本子),每次重启都要事先计划、事中记录,事后总结,而即使这样,常常还有差错意外发生。有一次我和同事被派到帮助一个兄弟单位做项目,同事负责小型机的系统安装和管理。一天凌晨1点,他接到兄弟单位同事打来的紧急电话,“X老师,快点过来,机器熄火了,总是起不起来!再不来项目完不成了。”机器不能启动,这可以十万火急的事情,于是同事赶忙从美梦中惊醒,急匆匆地出发去机房了,过了1个钟头,我看他默默的回来了,郁闷地躺在床上一声不吭。“怎么了?什么问题?这么快就解决了?”我觉得很奇怪。同事很郁闷的回答:“没什么,他们忘记接电源了”。
1.2.2 第二大类:Unix/Linux下C语言应用编程
类别:C语言程序开发
代表作:《精通Unix下C语言编程与项目实践》
学习内容:文件系统编程、多进(线)程设计、信号处理、IPC对象与进程间通信、
套接字程序设计、数据库编程。
应用分类:普通开发和嵌入式开发
工作规划:程序员、软件设计师、系统分析师、系统架构师、数据库设计师。
工作单位:金融、通信、大型服务提供商、电子产品研发企业以及为这些行业服务的软件公司。
特点:工作技能相对难以掌握,工作范围相对集中分布,工作机会相对较多,工作工资相对比较充足,职业升级相对选择丰富,工作薪水相对容易增加。
一般分为普通计算机开发和嵌入式开发两种,,前者在速度快、内存大等资源相对丰富的计算机(比如PC机、X86服务器或小型机等)上开发软件,后者在速度慢、内存小等资源相比贫乏的电子产品(比如汉王、文曲星或手机等)上开发软件。
本笔记的教材《精通Unix下C语言编程与项目实践》就属于第一类,如果你期找一份Unix软件工程师的工作,那么就是这里了。
JoJo巴:使用Unix/Linux机器的企业必然需要Unix/Linux操作人员,但是不一定需要Unix/Liunx开发人员,那么是不是说Unix开发工作比Unix操作工作难找呢?
编程浪子:不是的!虽然Unix开发的绝对工作岗位数要比Unix操作的少很多,但是工作机会在整体上是受供求关系影响的,你要比较两种工作类型的绝对岗位数与合格待岗人员的比率。虽然此工作绝对岗位数有了一定的减少,但是Unix软件设计师对技能要求相对要高,培养一个合格的待岗人员相对要困难的多,从而合格待岗人员数量下级的更快,当分母减少的加速度高于分子时,比率值增加,所以工作机会不但未减少了,反而增加了。而且在一般情况下,普通Unix软件设计师的待遇要比普通Unix系统管理员的高很多,心动了吧。
JoJo巴:朱老师,我明白了,我的目的学Unix下的开发,所以我决定专攻第2类Unix开发,不学习第1类Unix操作。
编程浪子:不会Unix操作就进行Unix编程?我只能送你一个字,那就是“你太牛了!”(小飞:明明是4个字)。你的行为让我看到了传说中的空中楼阁,不学习第1类怎么能够学习第2类。我常常对我的学生说:“虽然你们是学软件的,但是硬件也要会!你总不能买根内存条回来都不会插吧,总不能机器都不会装吧。在你们的老板、同事、朋友眼里,你就是搞电脑的,如果他们的电脑有什么故障一般都会请你去修,他们家里的电脑网络会要(请)你去帮忙调通,他们购买或升级电脑也会要你去参考,总之只要不是硬件设备真的坏了,一定是你去维修,你总不能说你是专门编程序的,不会装机器吧!不会基本的硬件,你连电脑民工都不是。同理不会基本的操作,你连编程的资格也没有!除非你是学校只负责研究算法和写论文的教授。
JoJo巴:呵呵,知道。不过老师你讲的“电脑民工”是什么?
编程浪子:你的老板、同事、朋友请你帮忙修电脑、调网络、装软件、买PC甚至于做苦力搬电脑,但是又不给钱给你,你不就是电脑民工吗?每一个软件开发者都要有成为电脑民工的觉悟,这是不过避免的。
Unix软件开发工程师不仅可以进入专门的软件开发公司,为电子产品制作商、金融业、通信业开发软件,还可以直接进入这些软件需求公司。
编程浪子:其实,很多软件开发公司都长期在各家银行的软件开发中心驻留有软件开发人员,从事Unix开发工作。
1.2.3 第三大类:Linux操作系统开发和Unix/Linux驱动开发
类别:汇编语言和C语言程序开发
学习内容:汇编语言、硬件指令、设备文件、操作系统内核
应用分类:Linux内核开发和设备驱动程序开发
工作规划:软件设计师、系统分析师、系统网络师。
工作单位:硬件提供商、大隐隐于朝、中隐隐于市、小隐隐于野,随便在哪上班,却兼职开发开源软件。
特点:工作技能最难掌握,工作范围最为狭窄,工作机会最难提供,开源项目,工资薪水职业规划未知。
这又可分为两类,一是驱动程序开发,是Linux内核源码开发。前者可以进入一些硬件厂商,后者吗,可以去做开源,不过开源好像是没有工资的哦。
编程浪子:虽然做Linux内核没有工资,但还是很多去处的,比如到IBM公司开发AIX、开发CICS中间件,去德国开发SuseLinux等等,前提是你进得去。
本类要求特别高,一般情况下强烈不推荐加入本类学习,当然如果你真的能够胜任此类工作的话,那么恭喜你,你也一定能够胜任第2类开发工作,到时就不再是你找工作的问题,而是大量工作来找你,你不知道如何取舍的问题了。
编程浪子:综上所述:本笔记简单讲述第1类应用,专门为第2类应用,一笔带过第3类应用,所以欢迎广大渴望成为Unix软件开发工程师的读者追读本帖子。