IT行业职业分析.docx
- 文档编号:12408725
- 上传时间:2023-04-18
- 格式:DOCX
- 页数:25
- 大小:34.64KB
IT行业职业分析.docx
《IT行业职业分析.docx》由会员分享,可在线阅读,更多相关《IT行业职业分析.docx(25页珍藏版)》请在冰豆网上搜索。
IT行业职业分析
IT行业职业分析
1.程序员
程序员(英文Programmer)是从事程序开发、维护的专业人员。
一般将程序员分为程序设计人员和程序编码人员。
必备技能:
(1)熟练开发工具
做为一名程序员至少熟练掌握两到三种开发工具的使用,这是程序员的立身之本,其中C/C++和JAVA是重点推荐的开发工具,C/C++以其高效率和高度的灵活性成为开发工具中的利器,很多系统级的软件还是用C/C++编写。
而JAVA的跨平台和与WEB很好的结合是JAVA的优势所在,而JAVA即其相关的技术集JAVAOne很可能会成为未来的主流开发工具之一。
其次,能掌握一种简便的可视化开发工具,如VB,PowerBuilder,Delphi,CBuilder,则更好,这些开发工具减小了开发难度,并能够强化程序员对象模型的概念。
另外,需要掌握基本的脚本语言,如shell,perl等,至少能读懂这些脚本代码。
(2)熟知数据库
很多应用程序都是以数据库的数据为中心,而数据库的产品也有不少,其中关系型数据库仍是主流形式,所以程序员至少熟练掌握一两种数据库,对关系型数据库的关键元素要非常清楚,要熟练掌握SQL的基本语法。
虽然很多数据库产品提供了可视化的数据库管理工具,但SQL是基础,是通用的数据库操作方法。
如果没有机会接触商业数据库系统,可以使用免费的数据库产品是一个不错的选择,如mySQL,Postgres等。
(3)了解操作系统
当前主流的操作系统是Windows,Linux/Unix,熟练地使用这些操作系统是必须的,但只有这些还远远不够。
要想成为一个真正的编程高手,需要深入了解操作系统,了解它的内存管理机制、进程/线程调度、信号、内核对象、系统调用、协议栈实现等。
Linux作为开发源码的操作系统,是一个很好的学习平台,Linux几乎具备了所有现代操作系统的特征。
虽然Windows系统的内核实现机制的资料较少,但通过互联网还是能获取不少资料。
懂得网络协议TCP/IP。
随着技术的发展,软件与网络的无缝结合是必然趋势,软件系统的位置无关性是未来计算模式的重要特征之一,DCOM/CORBA是当前两大主流的分布计算的中间平台,DCOM是微软COM(组件对象模型)的扩展,而CORBA是OMG支持的规范。
XML/WebServices重要性不言而喻,XML以其结构化的表示方法和超强的表达能力被喻为互联网上的“世界语”,是分布式计算的基石之一。
(4)不要将软件工程与CMM分开
大型软件系统的开发中,工程化的开发控制取代个人英雄主义,成为软件系统成功的保证,一个编程高手并不一定是一个优秀的程序员,一个优秀的程序员是将出色的编程能力和开发技巧同严格的软件工程思想有机结合,编程只是软件生命周期中的其中一环,优秀的程序员应该掌握软件开发各个阶段的基本技能,如市场分析,可行性分析,需求分析,结构设计,详细设计,软件测试等。
(5)需求理解能力
程序员要能正确理解任务单中描述的需求。
在这里要明确一点,程序员不仅仅要注意到软件的功能需求,还应注意软件的性能需求,要能正确评估自己的模块对整个项目中的影响及潜在的威胁。
(6)模块化思维能力
作为一个优秀的程序员,他的思想不能局限在当前的工作任务里面,要想想看自己写的模块是否可以脱离当前系统存在,通过简单的封装在其他系统中或其他模块中直接使用。
这样做可以使代码能重复利用,减少重复的劳动,也能使系统结构越趋合理。
模块化思维能力的提高是一个程序员的技术水平提高的一项重要指标。
素质要求:
(1)团队精神和协作能力
(2)文档习惯
(3)规范化的代码编写习惯
(4)测试习惯
(5)学习和总结的能力
(6)拥有强烈的好奇心
2、系统分析员
系统分析员(systemanalyst)是对大型、复杂的信息系统建设任务中,承担分析、设计和领导实施的领军人物。
要做好与客户之间的关系,同时对客户的需求要正确的理解,要选择合适的开发技术,同时做好与客户间沟通交流,学会说服对方。
要求:
(1)基本功
好的系统分析员都是从优秀的程序员中产生的,坚实的编程功底、丰富的经验是今后做系统分析的基础。
没有对系统本身进行过透彻剖析过,很难领会到其中一些难以言述的精华。
合理的知识结构。
语言能力、文字表达能力、技术的全面性等是对系统分析员的基本要求。
(2)思想
全局观念是系统分析员必须具备的观念。
如果系统分析员设计时太注重细节,往往会陷入在某个问题上纠缠不清的泥潭,系统分析员要有面向用户的思想。
系统分析员应当有能力将自己扮演成用户,来了解要交付的项目看起来像什么样式,感觉像什么,从而了解用户的想法并挑选出合理部份去开发。
从这个意义上说,系统分析员才能获得有意义的见解去引导他的开发组成员。
系统分析员头脑中要对项目结局有一个清楚的认识,并保证项目不偏离方向。
系统分析员要有根植于技术,高于技术思考问题的思想。
纯粹的程序员通常对最终结果考虑的不是很多,当一种新的技术在市场上出现时,他们对能否按时交付的考虑就比较少,而强烈希望他们的计划能够建立在新的技术之上。
因此,系统分析员的想法和行动要像一个用户,又要能够站在技术的高度,成为真正的用户、程序员之间的代言人。
(3)任务难度的预测能力
系统分析员要具备快速的任务难度预测能力以及具备快速确定开发小组人员构成和任务划分的能力。
昆虫自然会长出翅膀,而思想却需要长期的浸润。
要做到这点,需要大量的思考、学习。
设计远比编程重要。
当今软件业的发展,各种开发工具的出现,编程已经不是什么问题,程序员的工作某种程度上讲是将别人现成的东西拼凑堆砌起来。
系统分析员要清楚的认识到,如今大多数程序员没有学会怎么去整体的了解一个系统,有些甚至不了解编程(这不是说他们不会写代码)。
可视化的开发工具加五花八门的控件,程序员可以偷点懒了,基于技术,跳出框架。
基于现有技术结合用户需求思考问题,设计时跳出框架。
(4)准备工作
统一的各种文档模式,这其中包括今后软件变量、字段命名规则。
基本素质:
(1)必须理解和明确系统建议、建设单位的经营管理目标及战略发展方向。
(2)要能与组织管理高层一起涉及确定信息系统建设的长期目标,并进行必要的分解。
(3)要在详细调查的基础上,正确判断组织内部现状和外部条件,进行可行性分析。
(4)能够根据现实条件确定组织信息系统开发策略。
(5)应具备选择适宜方法和工具并培训开发人员的能力。
(6)善于沟通,妥善协调决策者、开发人员与业务人员的观点,达成共识。
(7)了解信息技术发展,并能建立适合业务需求的技术模型。
(8)具备一定的行政管理能力,能够恰当调度人、财、物等要素,完成开发目标
3、硬件工程师
硬件工程师HardwareEngineer职位要求熟悉计算机市场行情;制定计算机组装计划;能够选购组装需要的硬件设备,并能合理配置、安装计算机和外围设备;安装和配置计算机软件系统;保养硬件和外围设备;清晰描述出现的计算机软硬件故障。
从业要求:
1.熟悉电路设计、PCB布板、电路调试,能熟练使用PROTEL等电路设计软件;
2.熟练应用常用电子元器件,熟练检索各种元器件材料;
3.掌握常用的硬件设计工具,调试仪器仪表的使用方法;
4.2年以上硬件产品的开发工作经验,熟悉嵌入式系统的硬件及软件开发;
5.工作态度积极,责任心强,良好的沟通与团队配合;
6.独立设计过完整的电子产品,能读懂英文产品规格书;
必备知识:
1.基本知识;
2.硬件总体设计;
3.硬件原理图设计技术;
4.硬件PCB图设计;
5.硬件调试;
6.软硬件联合调试;
4、软件工程师
软件工程师英文是SoftwareEngineer,是从事软件职业的人员的一种职业能力的认证,通过它说明具备了工程师的资格。
软件工程师是从事软件开发相关工作的人员的统称。
它是一个广义的概念,包括软件设计人员、软件架构人员、软件工程管理人员、程序员等一系列岗位,工作内容都与软件开发生产相关。
能力要求:
.NET方面的开发
⒈熟悉.net开发体系,熟悉C#ASP.NET
⒉熟悉SQLServer,Oracle数据库开发
⒊以上要求至少3年开发经验。
⒋具有企业管理系统项目经验。
5.了解企业ERP及财务管理软件(用友,金蝶)者优先。
6.善于沟通,能独立撰写方案。
为人诚实,善于学习,做事认真负责,积极主动,具有敬业精神,有团队精神
JAVA应用程序开发
技能要求:
熟练使用Struts2+Spring+Hibernate
掌握Jquery
掌握Java
熟悉Oracle
掌握xml/webservice
掌握OOD、OOP
基本文档写作能力
web、数据库方面的开发
⒈计算机或相关专业本科以上学历;
⒉有4年以上开发经验,有良好的代码编写习惯,熟悉软件开发规范;
⒊熟练掌握ASP,NET;等编程语言,熟悉.Net开发环境,理解.NetFramework,理解并能熟练使用WebService、O/Rmapping、Remoting、多线程等技术;
⒋热衷于互联网WEB开发,热衷于钻研最新的前沿技术,精通XML,Javascript,CSS,AJAX等WEB前端技术;
⒌熟练的技术文档编写能力,熟练使用Rose,PowerDesign,Visio等建模和设计软件,有一定的架构设计能力;
⒍精通SQLserver数据库技术,了解数据库性能调优者优先.
C#项目开发
⒈计算机专业本科以上学历,一年以上C#/ASPNET开发经验,熟练使用SQL数据库,有欧美项目开发经验者优先;
⒉大学英语四级以上,具有较强的听、说、读、写能力,尤其是听、说能力;
⒊工作认真细致,踏实肯干,具有较好的团队协作精神和沟通能力;良好的逻辑思维,能够承受一定的工作压力并可以按时完成工作且保证质量
php项目开发
⒈使用PHP语言开发互联网应用程序;
⒉网站产品和网站功能模块的开发与维护;
⒊与页面设计师协调沟通,编写部分Javascript和HTML;
⒋参与底层MVC框架的编写与维护。
5、网页美工
网页美工是精通美学,photoshop(PS),FLASH,dreamwaver(DW)等一网站制作软件的网络人员,且必须具有良好的创意和一定程度的审美观。
必要时需要一定的策划知识。
为网站所有的页面画出来并用DW和css排版出来。
页面必须清晰简洁,还要适宜后台调用。
职能:
图形设计,即传统意义上的“美工”。
不是单纯意义上美术工人的工作,而是软件产品的产品“外形”设计。
交互设计,主要在于设计软件的操作流程、树状结构、操作规范等。
一个软件产品在编码之前需要做的就是交互设计,并且确立交互模型,交互规范。
用户测试/研究,这里所谓的“测试”,其目标是测试交互设计的合理性及图形设计的美观性,主要通过以目标用户问卷的形式衡量网页设计的合理性。
【技能解析】网页美工负责整个网站的前台设计,界面设计、规划整个网页的布局。
可以使用ps进行界面效果图的设计,AI辅助设计LOGO、以及网标。
所以作为网页设计师掌握的重要工具就是photoshop软件。
掌握技能:
基础美术:
素描(石膏几何体、静物写生);色彩(色彩构成、简单色彩静物写生)。
三大构成:
色彩构成、平面构成、立体构成
Photoshop网页配色及排版设计;Illustrator网页设计;Dreamweaver网页制作软件
设计注意事项:
有一定的ps功力。
要有创意,有自己独到的想法。
要心细。
多看别人好的作品,多与人交流想法,取长补短。
要实用,网民使用方便,为整个网站目标服务。
审美能力
网页设计就相当于平面设计,网页设计师可以将平面设计中的审美观点套用到这上面来(其区别是动态网页的制作是平面设计不能达到的,它是一种审美方式的延伸),所以平面设计上的审美的观点在网页设计上非常实用。
6、网站维护工程师
随着网络的不断普及,各种类型的网站如雨后春笋般的出现,网站维护工程师的需求也在不断的扩大,管理和维护网站以及根据需求完成网站信息的更新和信息资源的整合成为他们的分内之事。
除此之外,精通CSS、HTML等语言,熟悉数据库应用,有一定美工基础能独立进行网站设计和制作的人才也是各大门户网站争抢的“香饽饽”。
职业要求:
教育培训:
计算机或相关专业,大专及以上学历。
相关专业证书包括:
CCNP、CCIE认证。
工作经验:
熟悉网站前台相关技术,熟悉web2.0相关技术;精通TCP/IP协议、OSI参考模型;熟悉HTML、DHTML、CSS、Javascript、ASP、JSP等web页面开发语、photoshop/Flash/Dreamweaver/Fireworks/等网站相关软件工具和数据库技术;具备较强的学习能力。
7、高级软件工程师
培养目标:
1.具备软件开发工作所需的知识和技能,编码熟练度和规范性达到一定要求;
2.具备一定的项目能力(包括调试能力、文档编写能力、测试能力等)和综合技术素质(包括对软件生命周期的理解、对设计模式的理解、必备的行业知识和经验等);
3.扎实掌握客户端技术、面向对象技术、三层架构。
职业要求:
教育培训
计算机、电子、通信、信息工程、自动化等相关专业,大专以上学历。
工作经验
三年以上的软件开发经验;
具备扎实的计算机软件基础,熟悉汇编语言和数据结构,并对软件工程有较好的理解;
熟悉.NET/Java/C++/VB/Delphi等常用开发语言中任意一种;
有Oracle、SQL-SERVER或DB2等数据库上的开发经验,熟悉SQL语言;具备良好的沟通能力,较强的分析、解决问题、领悟、归纳和逻辑推理能力和撰写开发文档;
具有良好的计划性,团队精神,能承受工作压力并充满热情。
8、互联网软件开发工程师
互联网软件开发工程师又称为web开发工程师,是进行网站应用服务、模块设计等网站建设工作的专业技术人才。
随着web2.0时代的到来,网站的个性化则意味着精而专,网站之间的分工更明确,而且网站的个性化不是原来的网页个性化,而是服务个性化。
这就要求互联网软件开发工程师拥有精专的技术,为网站提供更好的个性化应用服务。
职业要求:
教育培训:
计算机或相关专业,大专及以上学历。
工作经验:
深入理解面向对象的程序设计思想;
了解网站整体构架设计和网站项目开发的流程;
熟悉JavaScript、Ajax、XML、CSS及PHP等Web开发技术;
熟悉MySQL/SQLServer或oracle数据库;
熟悉Linux环境开发经验,具备Linux系统常识;
熟悉代码编写规范;
具有较强的逻辑思维能力、独立工作能力和良好团队精神,能很快适应新的环境,自学能力强。
9、数据库工程师
数据库工程师(DatabaseEngineer),是从事管理和维护数据库管理系统(DBMS)的相关工作人员的统称,他属于运维工程师的一个分支,主要负责业务数据库从设计、测试到部署交付的全生命周期管理。
数据库工程师的核心目标是保证数据库管理系统的稳定性、安全性、完整性和高性能。
在国外,也有公司把数据库管理员(DatabaseAdministrator[1],简称DBA)称作数据库工程师,两者的工作内容基本相同,都是保证数据库服务7*24小时的稳定高效运转,但是需要区分一下数据库工程师和数据库开发工程师(DatabaseDeveloper):
1)数据库开发工程师的主要职责是设计和开发数据库管理系统和数据库应用软件系统,侧重于软件研发;
2)数据库工程师的主要职责是运维和管理数据库管理系统,侧重于运维管理。
技术能力:
数据库工程师以技术为基础,通过技术保障数据库提供更高质量的服务。
数据库工程师工作的职责及在业务中的位置决定了数据库工程师需要具备更加广博的知识和深入的技术能力。
在数据库环境的管理与维护中,技术任务可归结成许多不同的分类。
下面列出了一名数据库工程师应掌握的一些技能:
1)理解数据备份/恢复与灾难恢复
恢复已损坏的数据库是每一个数据库工程师应掌握的最重要的技能。
数据库工程师需要完全理解数据库所有可能的备份与恢复方法,以及不同备份方法与不同恢复策略的对应关系。
此外,数据库工程师还需要与业务部门合作,一起确认业务需求,明确用户能够容忍的数据丢失底线。
此外,业务用户还需要确定在系统故障情况下,他们的业务能够维持多长时间。
理解这些需求可以帮助数据库工程师开发出一个满足业务用户要求的备份/恢复方法。
一个优秀的数据库工程师要定期测试备份与恢复流程,保证他们有能力恢复业务数据,满足企业所规定的业务数据丢失与恢复要求。
2)工具集的使用
所谓工具集,指的是一组用于执行不同数据库工程师任务的脚本。
这个工具集应该包含不同的小代码片段,它们可以快速诊断问题或执行一个特定的任务。
这些工具脚本应该按数据库工程师的活动类型归类,如备份、索引维护、性能优化、容量管理等。
由于总是会执行新任务、发现新问题或找到其他人开发的好用脚本,因此一个优秀的数据库工程师会不断地给这个工具集增加新脚本。
此外,他还应该了解网上哪里能够找到一些免费的工具和脚本。
一个好的数据库工程师知道什么时候可以利用其他人编写的脚本,从而节省自己的时间和改进自己的工具集。
3)知道如何快速寻找答案
数据库每天会面临各种各样故障的挑战,从硬件到网络,从性能压力到程序bug,数据库工程师都要从容应对,一一排除。
即使是数据库大牛,也不可能是无所不知的,因此每个数据库工程师一方面需要不断修炼自己,积累操作系统、网络、硬件、存储系统、分布式计算等理论基础,另一方面还要有快速寻找新问题解决方法的能力。
如果一个数据库实例不能按预期方式运转,那么快速寻找新问题的解决方法也是一个重要能力。
一个好的数据库工程师知道如何快速地在网上查找一个未知问题的解决方法。
此外,他们也可能已经知道了一些非常不错的网站,也知道业界专家会提供一些好建议,同时知道什么时候应该忽略一些不好的建议。
你可能想象不到,确实有一些建议不值得参考。
4)如何监控和优化数据库性能
对于任何数据库产品,性能都尤其重要,它会直接影响产品的响应速度和用户体验。
对于一个数据库工程师来说,性能优化一般需要占用50%的工作时间,因此数据库工程师需要知道如何监控和优化数据性能。
以SQLServer举例,性能是一个关键的问题,因此数据库工程师需要知道如何修复故障和监控性能问题。
有许多第三方性能监控工具可以帮助数据库工程师优化性能。
如果数据库工程师只使用第三方工具,而不会使用SQLServer自带的原生工具来监控性能,那么相信很快就会出现问题。
虽然使用第三方工具来监控性能也很不错,但是数据库工程师一定要理解SQL自带的一些原生工具,如SQLServerProfiler、DatabaseEngineTuningAdvisor、DynamicManagementViews、系统/扩展的存储过程、ExtendedEvents等。
许多第三方工具实际上在使用这些底层的原生工具。
因此,理解这些自带的原生工具将有利于增强数据库工程师使用第三方工具的经验。
5)研究新版本
在技术领域中,没有什么是一成不变的。
每隔两三年,主流数据库厂商都会发布一个大版本的更新。
数据库工程师应该紧跟新版本所作的修改,它们可能有许多变化方法,最好的方法是迟早介入这个过程。
测试版开放后马上下载和安装,尽快掌握第一手使用经验。
一名好的数据库工程师总是走在学习排头兵,总是会第一时间安装和测试新版本。
这样他们就可以尽早理解新特性,然后提出一些合理的新建议,帮助组织更好地利用新版本数据库。
6)理解代码最佳实践方法
数据库工程师应该了解如何编写高效的代码。
有许多糟糕的编码实践方法会导致拙劣的性能。
一名好的数据库工程师要能够理解和识别这些糟糕的编码实践方法,知道如何修改这些烂代码,让它们变成高效代码。
此外,他们还要记录下写代码的最佳实践方法,并且将这些实践方法分享给其他人。
7)持续不断地学习
数据库及其组件涉及面非常广。
数据库工程师很难理解一个技术的方方面面。
数据库工程师需要持续学习如何管理数据库。
这个学习过程有很多方法。
其中之一就是参加正式培训。
但是,并非人人都有这样充裕的事件和金钱,也并非人人都能够放下手头工作专门出去参加正式的培训。
但是,还有许多其他方法可以获得培训,而且大多数还是免费的。
一名好的数据库工程师一定要订阅一些定期发布数据库新技巧和新文章的社区网站。
此外,他还应该加入一些用户组织,可以在周末参加一些当地的免费沙龙活动。
8)数据库安全性
安全性是一个热门话题。
数据库工程师应该完全掌握如何实现数据库的安全访问。
他们应该理解操作系统身份验证和数据库身份验证的区别,以及它们各自的使用场合。
他们应该理解如何使用数据库角色来管理不同类型用户的安全配置。
他们应该理解连接数据库的端口与协议。
此外,他们还应该理解如何加密整个数据库,或者加密一个数据库中一个表的某一个字段,同时理解关于加密数据的各种问题。
9)数据库设计
决定数据库性能的一个关键问题是数据库设计。
数据库工程师需要理解关于数据库设计的各个方面。
他们要能够理解设计好坏的区别。
他们需要理解为什么使用正确的外键约束、主键、检查约束和使用数据类型能够保持数据库的数据完整性和实现高效的数据查询与更新。
10)索引设计
数据库索引是提高应用程序检索和更新数据速度的重要环节。
数据库工程师需要知道索引的工作原理。
他们应该知道聚簇索引和非聚簇索引的区别,知道这些索引的物理存储方式。
数据库工程师应该知道如何在执行计划中使用这些索引。
他们应该理解如何找到索引的使用统计、理解索引碎片及如何发现丢失的索引。
他们应该知道如何维护索引,以及索引统计信息对于查询引擎的重要作用。
11)容量监控与规划
数据库往往要使用大量的资源,包括CPU、内存、I/O及磁盘空间。
数据库工程师应该理解如何监控数据库所需要的不同主机资源的用量。
他们应该能够理解这些资源在不同时间的使用情况,以及利用历史使用数据来规划未来的容量需求。
在监控过程中,数据库工程师应该能够预见到容量规划会在将来什么时候出现问题,然后采取必要的措施保持数据库不会因为容量限制而出现中断。
12)数据库许可证
不同的产品有许多不同的许可证授权方式。
而且,同一款产品本身又有许多不同的版本。
数据库工程师应该理解所负责的数据库版本的不同授权模式。
他们应该能够提供指导如何通过合理购买授权来减少数据库总拥有成本,以及如何合理利用授权方法来降低未来版本的升级成本。
13)尽可能实现自动化
数据库工程师每天都需要执行许多的日常任务。
其中一些任务需要每天执行,而另一些则每周、每月或每年执行。
一名好的数据库工程师需要理解如何高效地安排自己的时间。
其中一种方法是建立工作流程,这些日常任务的自动执行。
通过实现日常任务的自动化执行,数据库工程师就可以用更多的时间去关注于数据库环境管理中遇到的严重问题。
你具备的特质越多,作为数据库工程师的你就越优秀。
成为一名成功数据库工程师的关键是不断地学习与提高,努力去掌握更多关于如何管理和维护数据库环境的知识。
性格要求:
自信心:
足够的自信心能够帮助数据库工程师在重要紧急时刻果断下决定,而不是不知所措地看着事故发生。
好奇心:
几乎所有的数据库系统都在不停地更新,但并不是所有的更新都有技术文档,对于优秀的数据库工程师来说,好奇心是必须的。
没有好奇心和求知欲的数据库工程师总是等待别人来告诉他们答案。
自我驱动:
自我驱动对每个人都是很重要的,对数据库工程师尤其如此。
数据库工程师要能想办法使问题出现,而不是等待问题的出现。
自驱力强的数据库工程师常常设法取得或者自己写一些必要的脚本来监控包括数据表大小(TableSize)、表空间使用(TablespaceUsage)等项目,这些项目如果被忽视,他们将遇到麻烦。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- IT 行业 职业 分析
![提示](https://static.bdocx.com/images/bang_tan.gif)