我想从事软件工程师的工作 但是没工作经验 而且对电脑还是不熟悉 怎...
软件工程师是一个需要极高耐心的职业,不知道你是兴趣还是确实对编程狂热,我见过太多想入这一行的人了,很多人的想法就是很帅很酷,工资高,有面子,但是真正开始学习的时候却发现实在是枯燥很困难,所有的热情都被磨灭,还白白浪费了很多时间所以我对想入这行的你一个小小的建议如果你是觉得软件工程师像电影中的黑客一样墨镜风衣超有个性,那趁早转行,别浪费时间如果你是为了生活而选择编程,可以选择编程语言开始入门,C++,php,java,.net,安卓都是当下比较火热的,每种语言都有它存在的价值,没有好坏之分,选择自己合适和感兴趣的就行.自学并不是不行,但是效率真的太低,建议自己找培训机构学习如果你是对编程痴迷到疯狂,那想咋学都行...
软件工程师要学哪些东西?
软件工程师要学习和掌握的东西:(一).NET方面的开发⒈熟悉.net开发体系,熟悉C# ASP .NET;⒉熟悉SQLServer,Oracle数据库开发;⒊具有企业管理系统项目经验;4.了解企业ERP及财务管理软件(用友,金蝶)者优先;5.善于沟通,能独立撰写方案。
为人诚实,善于学习,做事认真负责,积极主动,具有敬业精神,有团队精神。
(二)JAVA应用程序开发1.熟练使用Struts2+Spring+Hibernate2.掌握Jquery3.掌握Java4.熟悉Oracle5.掌握xml/webservice6.掌握OOD、OOP7.基本文档写作能力(三)web、数据库方面的开发⒈练掌握ASP,NET;等编程语言,熟悉.Net开发环境,理解.Net Framework,理解并能熟练使用WebService、O/R mapping、Remoting、多线程等技术;2.热衷于互联网WEB开发,热衷于钻研最新的前沿技术,精通XML,Javascript,CSS,AJAX等WEB前端技术;3.熟练的技术文档编写能力,熟练使用Rose,Power Design,Visio等建模和设计软件,有一定的架构设计能力;4.精通SQL server数据库技术,了解数据库性能调优者优先.(四)php项目开发⒈使用PHP语言开发互联网应用程序;⒉网站产品和网站功能模块的开发与维护;⒊与页面设计师协调沟通,编写部分Javascript和HTML;⒋参与底层MVC框架的编写与维护。
软件工程师一般指从事软件开发职业的人。
软件工程师是一个认证考试,具体地说是从事软件职业的人员的一种职业能力的认证,通过它说明具备了工程师的资格。
软件工程师的技术要求是比较全面的,除了最基础的编程语言(C语言/C++/JAVA等)、数据库技术(SQL/ORACLE/DB2等)等,还有诸多如JAVA SCRIPT、AJAX、HIBERNATE、SPRING等前沿技术。
此外,关于网络工程和软件测试的其他技术也要有所涉猎。
对于软件工程师,不太重视学历,但并不是对学历没有要求,重点关注项目的经验和学习知识的能力,能否利用软件工程专业知识来解决问题,根据岗位不同,对软件工程师的要求也有所不同。
具体能力要根据岗位和自己的兴趣爱好选定自己的职业规划方向,一方面要详细了解软件工程师的要求,可以关注企业的招聘信息;一方面自己要贮备通用的知识技能,广泛阅读相关的计算机材料对自己以后的发展大有帮助。
可以确定的是软件工程师的前途在未来的发展依然是不断升温的职业,比较需要有技术和良好前景的专业之一。
工作内容:1、 指导程序员的工作;2、 参与软件工程系统的设计、开发、测试等过程;3 、协助工程管理人保证项目的质量;4 、负责工程中主要功能的代码实现;5 、解决工程中的关键问题和技术难题;6 、协调各个程序员的工作,并能与其它软件工程师协作工作;7、还要编写各种各样的软件说明书,如:需求说明书,概要说明书等考试科目。
工程师是中级职称,考试的题目包括了计算机体系结构、软件工程、数据库、数据结构、编译原理等计算机学科的基础课程。
软件工程师要先学什么
先学C,再学C++,然后学VB, 现在流行的是Java,然后还有asp,jsp,php等学编程从基础做起!现在流行JAVA,可以直接学请一位好一点的老师,或找个学习班 简单的说,编程就是为了借助于计算机来达到某一目的或解决某个问题,而使用某种程序设计语言编写程序代码,并最终得到结果的过程。
计算机虽然功能十分强大。
可以供你上网、打游戏、管理公司人事关系等等,但是没有程序,它就等于是一堆废铁,不会理会我们对它下达的“命令”。
于是,我们要驯服它,只有通过一种方式——程序,这也是我们和计算机沟通的唯一方式。
那程序到底是什么呢? 程序也就是指令的集合,它告诉计算机如何执行特殊的任务。
打个比方说,它好比指导你烹调菜品的菜谱或指挥行驶一路到达目的地的交警(或者交通路标)。
没有这些特殊的指令,就不能执行预期的任务。
计算机也一样,当你想让计算机为你做一件事情的时候,计算机本身并不能主动为我们工作,因此我们必须对它下达指令,而它根本不会也不可能听懂人类自然语言对事情的描述,因此我们必须使用程序来告诉计算机做什么事情以及如何去做?甚至对最简单的任务也需要指令,例如如何取得击键,怎样在屏幕上放一个字母,怎样在磁盘中保存文件等等。
这么麻烦,连这些东西编程都要考虑!怪不得人家说编程好难!你错了,其实许多这样的指令都是现成的,包含在处理芯片中内置于操作系统中,因此我们不必担心它们工作,他们都是由处理器和操作系统来完成的,并不需要我们来干预这些过程。
上面讲到的计算机本身不会主动的做任何事情。
因此我们要通过程序的方式来让计算机为我们“效劳”。
而这个过程就是我们“编”出来的。
编程可以使用某一种程序设计语言来实现,按照这种语言的语法来描述让计算机要做的事情。
我们这里所讲的语法和外语中的语法完全两码事,这里讲的语法只是读你的程序书写做出一写规定而已。
写出程序后,再由特殊的软件将你的程序解释或翻译成计算机能够识别的“计算机语言”,然后计算机就可以“听得懂”你的话了,并会按照你的吩咐去做事了。
因此,编程实际上也就是“人给计算机出规则”这么一个过程。
随计算机语言的种类非常的多,总的来说可以分成机器语言,汇编语言,高级语言三大类。
电脑每做的一次动作,一个步骤,都是按照已经用计算机语言编好的程序来执行,程序是计算机要执行的指令的集合,而程序全部都是用我们所掌握的语言来编写的。
所以人们要控制计算机一定要通过计算机语言向计算机发出命令。
计算机所能识别的语言只有机器语言,即由构成的代码。
但通常人们编程时,不采用机器语言,因为它非常难于记忆和识别。
目前通用的编程语言有两种形式:汇编语言和高级语言。
汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。
它同样需要编程者将每一步具体的操作用命令的形式写出来。
汇编程序的每一句指令只能对应实际操作过程中的一个很细微的动作,例如移动、自增,因此汇编源程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识,但汇编语言的优点也是显而易见的,用汇编语言所能完成的操作不是一般高级语言所能实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。
高级语言是目前绝大多数编程者的选择。
和汇编语言相比,它不但将许多相关的机器指令合成为单条指令并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。
由于省略了很多细节,所以编程者也不需要具备太多的专业知识。
高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,如目前流行的VB、VC、FoxPro、Delphi等,这些语言的语法、命令格式都各不相同。
(1)解释类:执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器,但这种方式比较灵活,可以动态地调整、修改应用程序。
(2)编译类:编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行,使用比较方便、效率较高。
但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(*.OBJ)才能执行,只有目标文件而没有源代码,修改很不方便。
现在大多数的编程语言都是编译型的,例如Visual Basic、Visual C++、Visual Foxpro、Delphi等。
这个问题其实很简单。
前面我们讲到,程序是人与计算机进行沟通的唯一方式,因此我们要让计算机为我们服务,就必须有程序,而程序从哪里来?当然是由我们编写出来了。
或许你又会问到另一个问题:现在要什么程序有什么程序,我干嘛还要编程呢?这你就错了,现在的程序虽然很多,需要什么样的程序直接到网上不需要很长时间就可以找到类似的,而且有...
软件工程师主要学什么?
1.网络设备技术,这主要涉及网络的硬件建设,包括路由器、交换机、组局网、广网,这方面有代表性的是CISCO、NORTEL; 2.网络操作系统,这主要涉及操作系统的系统管理与网络管理,这方向有代表性的是WINDOWS 2000、UNIX、LINUX等; 3.网络数据库,这主要涉及应用于网络的数据库,这方面有代表性的是SQL和ORACLE等; 4.网络安全,大家不应把网络安全片面的想成对操作系统、应用系统的安全,其实安全问题在网络的各方面都存在,在这方面国内还没有出现比较好、比较全面的认证; 5.网络管理,这涉及一个局网、广网的综合管理、优化、计费等等,也没有一个综合性的认证; 6.网络应用开发,企业的网站的基本开发、互动性开发,技术有HTML、ASP、JSP、JAVA等等。
这六个方面都是企业信息化必备的因素,所以大家如果要补充自己的知识,可以从这六个方面去补充,自己还要作一个定位,是成为一个全面性的人员,还是专业性的人员。
不过如果能在这个方面打下扎实的基本功,那么再在工作中选择一个方向,会更加厉害。
总之,大家应分步确定自己的方向,然后努力在多方向充实自己 .
软件工程师职称评定的级别及标准
一、见习程序员(AP:assistant programmer) 1. 计算机相关专业毕业;英语通过国家四级。
2. 具有较强的学习能力,可以编写代码,达到公司的工作要求。
二、程序员(P:programmer) 基本要求: 1. 本科学历,半年以上工作经验;英语通过国家四级。
2. 达到工作承担要求;具有一定的沟通能力和工作责任心。
技术能力要求: 1. 负责编写代码,掌握一种主流语言/开发工具,一种主流操作系统,一种主流数据库。
2. 了解和掌握开发作业(PD设计、编码和测试等)的规范和技巧。
3. 所编写的代码质量较好。
4. 能够按照要求编写文档,文档结构条理清晰,内容详实准确。
5. 具有独立理解所担当模块的业务理解能力和问题阐述能力。
6. 能阅读**文技术文档。
三、高级程序员(SP:senior programmer) 基本要求: 1. 获得程序员资格1年以上;或满足程序员级别标准,2年以上相关行业工作经验。
2. 完成年度工作量指标;具有较强的沟通能力和责任心。
3. 所承担的项目满意度达到满意以上。
技术能力要求: 1. 精通一种主流语言及对应的开发工具;精通数据结构。
2. 具有较好的业务理解能力和技术调查能力。
3. 编写高质量代码并具有代码审查能力。
4. 具有详细设计能力。
5. 熟悉系统测试工具,对系统问题具有改善的能力。
6. 能够带领2个以上员工开展工作,成功领导过3个以上不少于5人月的项目/模块的团队项目。
7. **语达到*级水平或者具有同等水平,能够阅读*文资料,按照要求编写*语技术文档。
8. 了解质量管理体系和项目管理知识。
四、软件工程师(SE:software engineer) 基本要求: 1. 获得高级程序员资格2年以上;或满足高级程序员级别标准,4年以上相关行业工作经验。
2. 完成年度工作量指标;具有较强的客户沟通能力。
3. 担当过一个20人月以上的项目或累计超过60人月项目的技术负责工作。
4. 所负责的项目客户满意度达到满意以上。
技术能力要求: 1. 精通并熟练运用2种以上的开发工具,至少一种数据库知识,至少一种操作系统知识。
2. 能够很快完成新项目的技术调查工作,能够完成复杂算法的设计,能够设计可重用的和柔韧的软件结构。
3. 具有系统设计能力及系统提案能力。
4. 对系统或项目的技术框架有深入的认识和较丰富的经验。
5. 具有某一领域的行业知识。
6. 具有项目领导能力。
7. *语达到*级水平或者具有同等水平,能够阅读、编写*语技术文档,具有简单的口语沟通能力。
8. 掌握质量管理体系和项目管理知识。
五、资深软件工程师(SSE:senior software engineer) 基本要求: 1. 获得软件工程师资格2年以上;或满足软件工程师级别标准,6年以上相关行业工作经验。
2. 完成年度工作量指标;具有较强的客户沟通能力。
3. 担当过一个50人月以上的项目或累计超过100人月项目的技术负责工作。
4. 带领的项目客户满意度满意以上。
5. 完成年度培训工作。
技术能力要求: 1. 精通并熟练运用2种以上的开发工具,至少一种数据库知识,至少一种操作系统知识。
2. 具有整体系统设计能力及系统提案能力。
3. 具有较强的技术筹划能力、技术指导能力和处理疑难问题的能力。
4. 深入了解某一领域的行业知识。
5. 具有大型项目领导能力。
6. *语达到*级并相当于*级水平,熟练会话和编写*语技术文档。
7. 熟练掌握质量管理体系和项目管理知识,并能够推进软件开发过程改进。
六、主任软件工程师(CSE:chief software engineer) 基本要求: 1. 获得资深软件工程师资格2年以上;或满足资深软件工程师级别标准,8年以上相关行业工作经验。
2. 5年项目负责人以上经验,累计超过120人月的技术负责人工作。
3. 带领的项目客户满意度满意以上。
4. 完成年度培训工作。
5. 具有很强的沟通能力,问题判断与解决能力,创新能力。
技术能力要求: 1. 精通至少一种主流编程语言。
掌握至少一种数据库或至少一种中间件。
熟练掌握至少一种操作系统。
2. 熟练掌握软件需求分析/大型项目的策划。
3. 熟练掌握软件的系统设计。
4. 熟悉软件的高级项目管理和质量控制,具有分析和规避重大质量问 题的能力。
5. 精通至少一种部门项目相关的业务知识。
6. *语达到*级水平或相当于*级的水平,熟练会话和编写*语技术文档。
职称管理工作和相关标准将随着公司的发展而不断调整完善。
工程师:工程师指具有从事工程系统操作、设计、管理、评估能力的人员。
工程师的称谓,通常只用于在工程学其中一个范畴持有专业性学位或相等工作经验的人士。
工程师(Engineer)和科学家(Scientists)往往容易混淆。
科学家努力探索大自然,以便发现一般性法则(General principles),工程师则遵照此既定原则,从而在数学和科学上,解决了一些技术问题。
科学家研究事物,工程师建立事物。
科学家探索世界以发现普遍法则,但工程师使用普遍法则以设计实际物品。
工程师是职业水平评定(职称评定)的一种。
其下,有技术员,助理工程师等职称;其上有高级工程师,教授级高级工程师等职称。
当然,这也只是对从事工程建设或管理人员技术水平的一种标定而已。
按职称(资格)高低,分为:研究员或教授级高级工程师(正高级)、高级工程师(副高级)、工程师(中级)、助理工程师(初级)...
软件工程师前景
一,良好的编程能力。
编程能力直接决定了项目开发的效率。
这要求软件工程师至少精通一门编程语言,熟悉它的基本语法、技术特点和 API( 应用程序接口 ) 。
二,自觉的规范意识和团队精神。
随着软件项目规模越来越大,仅仅依靠个人力量已经无法完成工作,因此,现代软件企业越来越重视团队精神。
一般来讲,软件 企业中的程序员可以分为两种,一种是 " 游击队员 " ,他们可能对编程工具很熟,能力很强,编写的程序简洁高效,却缺乏规范和合作的观念;另一种程序员个人能 力不一定很强,但程序较为规范,合作意识良好。
第二种人更适合现代软件企业发展的潮流。
对于基础软件工程师来说,他们在企业中的角色决定了他们必须具有良 好的规范意识和团队精神。
三,认识和运用数据库的能力。
信息以数据为中心,因此与数据库的交互是必不可少的,了解数据库的操作和编程是软件工程师需要具备的基本素质之一。
四,较强的英语阅读和写作能力。
程序世界的主导语言是英文,编写程序开发文档和开发工具帮助文件离不开英文,了解业界的最新动向、阅读技术文章离不开英 文,与编程高手交流、发布帮助请求同样也离不开英文。
作为基础软件工程师,具有一定的英语基础对于提升自身的学习和工作能力极有帮助。
五,具有软件工程的概念。
基础软件工程师从事的工作相对于系统分析师和高级程序员要单纯一些,但是 他们仍然是整个软件工程中重要的一环,他们同样需要具有软件工程的概念:从项目需求分析开始到安装调试完毕,基础软件工程师都必须能清楚地理解和把握这些 过程,并能胜任各种环节的具体工作。
六,求知欲和进取心。
软件业是一个不断变化和不断创新的行业,面对层出不穷的新技术,软件人才的求知欲和进取心就显得尤为重要,它是在这个激烈竞争的行业中立足的基本条件。
软件工程师应具有较强的学习总结能力、需求理解能力以及对新技术的敏感性。
上述这些能力不可能凭空产生,而是通过培训和教育的过程逐步获得的。
目前,社会上的软件工程师培训很多,但良莠不齐。
有些好的培训,能够从知识到技能、 从技能到应用、从应用到项目,多层次多角度地对学员进行培训,不仅关注技术层面,同时关注项目规划的实施、团队合作、技术文档的编写等在认证培训过程中无 法顾及、但在实际工作中又不可或缺的能力的培养,可以使学员在理论上掌握和理解面向对象的软件工程方法和组件化的软件设计思想。
还有一些培训中心,针对软 件设计人员,通过对经典设计模式的理论实践,使学员掌握、运用其思考和解决问题的方法,总结技术经验,构造自己的设计模式库,使软件设计人员能系统地掌握 面向对象的方法。
与信息技术领域先进的基础理论教育相比,我国高校软件人才培养模式在实践技能的培养、 IT 前沿技术 的获取与沟通、具有国际水平和标准的软件项目开发等方面的培养存在极大不足。
为解决这一问题,有必要在高校推出 " 软件教育产品 " 的人才培养模式。
" 软件教 育产品 " 是一种培养中、高级软件人才的教育产品化解决方案,其根本目的可以归结为 -- 培养掌握 IT 技术发展方向、熟悉国际开发准则和标准,并且具有丰富项 目管理经验的高级软件项目管理人员。
" 软件教育产品 " 包含了教学方案的设计、课程选取与设置、教材的引进与二次开发、教学管理流程的监控、教学实践环节的 落实等等。
谈一谈软件工程师:你有几年工作经验,拿着多
展开全部 先学C,再学C++,然后学VB, 现在流行的是Java,然后还有asp,jsp,php等学编程从基础做起!现在流行JAVA,可以直接学请一位好一点的老师,或找个学习班 简单的说,编程就是为了借助于计算机来达到某一目的或解决某个问题,而使用某种程序设计语言编写程序代码,并最终得到结果的过程。
计算机虽然功能十分强大。
可以供你上网、打游戏、管理公司人事关系等等,但是没有程序,它就等于是一堆废铁,不会理会我们对它下达的“命令”。
于是,我们要驯服它,只有通过一种方式——程序,这也是我们和计算机沟通的唯一方式。
那程序到底是什么呢? 程序也就是指令的集合,它告诉计算机如何执行特殊的任务。
打个比方说,它好比指导你烹调菜品的菜谱或指挥行驶一路到达目的地的交警(或者交通路标)。
没有这些特殊的指令,就不能执行预期的任务。
计算机也一样,当你想让计算机为你做一件事情的时候,计算机本身并不能主动为我们工作,因此我们必须对它下达指令,而它根本不会也不可能听懂人类自然语言对事情的描述,因此我们必须使用程序来告诉计算机做什么事情以及如何去做?甚至对最简单的任务也需要指令,例如如何取得击键,怎样在屏幕上放一个字母,怎样在磁盘中保存文件等等。
这么麻烦,连这些东西编程都要考虑!怪不得人家说编程好难!你错了,其实许多这样的指令都是现成的,包含在处理芯片中内置于操作系统中,因此我们不必担心它们工作,他们都是由处理器和操作系统来完成的,并不需要我们来干预这些过程。
上面讲到的计算机本身不会主动的做任何事情。
因此我们要通过程序的方式来让计算机为我们“效劳”。
而这个过程就是我们“编”出来的。
编程可以使用某一种程序设计语言来实现,按照这种语言的语法来描述让计算机要做的事情。
我们这里所讲的语法和外语中的语法完全两码事,这里讲的语法只是读你的程序书写做出一写规定而已。
写出程序后,再由特殊的软件将你的程序解释或翻译成计算机能够识别的“计算机语言”,然后计算机就可以“听得懂”你的话了,并会按照你的吩咐去做事了。
因此,编程实际上也就是“人给计算机出规则”这么一个过程。
随计算机语言的种类非常的多,总的来说可以分成机器语言,汇编语言,高级语言三大类。
电脑每做的一次动作,一个步骤,都是按照已经用计算机语言编好的程序来执行,程序是计算机要执行的指令的集合,而程序全部都是用我们所掌握的语言来编写的。
所以人们要控制计算机一定要通过计算机语言向计算机发出命令。
计算机所能识别的语言只有机器语言,即由构成的代码。
但通常人们编程时,不采用机器语言,因为它非常难于记忆和识别。
目前通用的编程语言有两种形式:汇编语言和高级语言。
汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。
它同样需要编程者将每一步具体的操作用命令的形式写出来。
汇编程序的每一句指令只能对应实际操作过程中的一个很细微的动作,例如移动、自增,因此汇编源程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识,但汇编语言的优点也是显而易见的,用汇编语言所能完成的操作不是一般高级语言所能实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。
高级语言是目前绝大多数编程者的选择。
和汇编语言相比,它不但将许多相关的机器指令合成为单条指令并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。
由于省略了很多细节,所以编程者也不需要具备太多的专业知识。
高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,如目前流行的VB、VC、FoxPro、Delphi等,这些语言的语法、命令格式都各不相同。
(1)解释类:执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器,但这种方式比较灵活,可以动态地调整、修改应用程序。
(2)编译类:编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行,使用比较方便、效率较高。
但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(*.OBJ)才能执行,只有目标文件而没有源代码,修改很不方便。
现在大多数的编程语言都是编译型的,例如Visual Basic、Visual C++、Visual Foxpro、Delphi等。
这个问题其实很简单。
前面我们讲到,程序是人与计算机进行沟通的唯一方式,因此我们要让计算机为我们服务,就必须有程序,而程序从哪里来?当然是由我们编写出来了。
或许你又会问到另一个问题:现在要什么程序有什么程序,我干嘛还要编程呢?这你就错了,现在的程序虽然很多,需要什么样的程序直接到网上不需要很长时间就可以找到...
软件工程师需要具备什么能力啊?
展开全部 软件工程师虽然不能算是一个新生事物,但随着社会的不断发展,计算机是我们必不可少的,软件开发也是推动计算机迅速发展的条件,那么做为软件工程师我们需要什么条件? (1)具有扎实的计算机专业知识 这是软件工程理由能够从事软件一切工作最基本的前提,是软件工程最基本的素质,这要求软件工程师必须精通高等数学、离散数学、电子学、编程语言、数据结构等课程。
(2)良好的语言表达能力和沟通能力 这是软件工程师应该具备的一个很重要的素质,因为软件工程师是为用户开发软件,常常需要直执着面对用户。
(3)健康的心理素质 开发软件本身就是一项艰苦的脑力和体力劳动,软件工程师开发成功一个软件,要经过反复修改,要花费大量的进间和精力,这些都有要求软件工程师有较好的心理承受能力。
很多学生往往只注重计算机专业知识的培养,而忽视了语言表达能力和沟通能力、工程经济分析能力,以及心理素质的培养。
因此,作为一个在校的大学生,除了认真学习软件基础理论课程之外,还需要特别注意以下能力的培养: (1)正确的定位 大学计算机软件专业学生应该将自己个人今后职业生涯的目标定位在软件工程师或者未来的软件工程、项目管理者,而不是计算机或者软件科学家。
有了一个比较清晰的职业定位后,对自己如何选修一些实践性强,协作性强以及能够接触最新软件技术的课程很多指导作用。
(2)增加语言表达的训练,培养与人沟通的能力。
注重学生个人能力的培养,但是与软件程师的要求还有一定差距,并且,有些活动不是每个学生都能参加,因此应积极参加一些群体活动和实际的软件项目,在语言表达和沟通方面积累经验和知识。
(3)了解一些经济、管理方面的基础知识 软件是一种工具,他最终的目的还是需要为社会生活的各个方面提高效率、节约成本或者是简化管理、提升价值。
不了解一些经济于管理方面的基础知识,就很难理解现实生活中千变万化的软件需求,更难以发挥软件的实际价值。
(4)训练过硬的心理素质 软件工程师在实际的软件开发过程中,各种非预料的情况都可能发生:需求来回修改,工期突然发生变更甚至很多个人生活的很多情绪都会参杂进来,因此软件工程师可能需承受巨大心理压力。
一个软件工程师如果没有过硬的心理素质,他就很难排除干扰、稳定情绪的按照严格的规范实施一个成功的软件项目。
三、软件工程师的充电软件开发本身有一个循序渐进的过程,其基础知识和实践经验需要不断的积累。
比如,如果先把C++学好,再学诸如Java、SQLServer、Oracle、VB、ASP等其他语言时,在程序设计的语法上就十分好理解了,程序设计的学习也就成了一件水到渠成的事情了。
培训目标确定了,下一步就是制定培训计划。
首先需要注意的是,不要只是死抱着一两种技术或平台,或只掌握一两种开发语言。
现在,用人单位越来越希望招聘到在某一领域里具有很高专业技能的IT专家,同时,他们也希望能招到万事通式的人才。
所以,你不能满足于只精通.NET,或者只会Java。
要赶快学习其他有关技术,即使不在你的工作范围内。
例如,如果你工作中用的是服务器端Java,那么可以了解一下其他平台服务器端技术,包括ASP和PHP;还可以尝试去掌握其他的技术,如用VB、C/C++编写应用程序或进行系统编程等。
同样,通过为一些中小项目义务劳动、参加技术讨论、提供技术支持、或者公开发布源代码等方式,都可以在新领域中获得宝贵的工作经验。
四、软件工程师的培训方向和课程选择 软件开发越来越成为一个系统工程,一个协作型产品,因此选择软件工程师培训也应制定相对明确的方向。
软件工程师培训方向从总体看,可以积累综合知识和培养扎实基础入手 通过对基础知识和实际技能的培训,“计算机软件水平考试”可以为你提供从程序员、高级程序员到系统分析员等不同等级、具有很强说服力的资质证明。
最新崛起的“软件学院”也是一个不错的培训选择,它能够在1-2年的时间里,既系统的学习软件开发的各种理论,有同时有比较多的机会参加开发项目锻炼各种平台和工具的开发实践。