软件工程师英文是Software Engineer,是从事软件职业的人员的一种职业能力的认证,通过它说明具备了工程师的资格。
软件工程师是从事软件开发相关工作的人员的统称。它是一个广义的概念,包括软件设计人员、软件架构人员、软件工程管理人员、程序员等一系列岗位,工作内容都与软件开发生产相关。
软件工程师的技术要求是比较全面的,除了最基础的编程语言(C语言/C++/JAVA等)、数据库技术(SQL/ORACLE/DB2等)等,还有诸多如JAVASCRIPT、AJAX、HIBERNATE、SPRING等前沿技术。此外,关于网络工程和软件测试的其他技术也要有所涉猎。
培养目标:软件工程专业培养面向国民经济信息化建设和发展的需要,培养具有扎实的计算机应用理论和知识基础,掌握软件工程领域的前沿技术和软件开发方法,具备较强的软件项目的系统分析、设计、开发和测试能力,能够按工程化的原则和方法从事软件项目开发和管理的高级工程技术人才。
主要课程:离散数学、面向对象程序设计、数据结构、数据库原理、操作系统、计算机网络、软件工程、软件过程与管理、软件测试技术、软件质量管理、软件项目管理等。
毕业去向:软件工程专业毕业生主要在信息产业和国民经济部门从事信息系统研究、分析、设计、开发和测试以及软件工程项目的组织和管理工作,也可考取计算机科学与技术专业的硕士研究生。
软件工程专业是今后的热门,就业前景非常好!目前软件工程9个专业的内容和就业情况如下:
1 可视化编程
掌握程序设计方法及可视化技术,精通一种可视化平台及其软件开发技术。获取Delphi程序员系列、Java初级或VB开发能手认证。
就业方向:企业、政府、社区、各类学校等可视化编程程序员。
2 WEB应用程序设计
具有美工基础和网页动画设计能力,掌握交互式网页程序的设计技术,能进行网站建设和维护。获取Macromedia多媒体互动设计师或Delphi初级程序员或Delphi快速网络开发工程师认证。
就业方向:企业、政府、社区、各类学校等WEB应用程序员。
3 软件测试掌握软件测试的基本原理、方法和组织管理,精通软件测试工具。获取ATA软件测试工程师或Delphi初级程序员或Java初级程序员认证。
就业方向:企业、政府、社区、各类学校等软件测试员。
4 数据库管理
能应用关系范式进行数据库设计,精通SQL语言,胜任数据库服务器管理与应用工作。获取Oracle数据库管理或SQL Server数据库应用或Windows XP应用认证。
就业方向:企业、政府、社区、各类学校等部门的中、大型数据库管理员。
5 图形图像制作
精通国际上流行的图形/图像制作工具(如CorelDraw、Photoshop、Pagemaker等)。获取平面设计师相关的认证。
就业方向:广告制作公司、建筑设计公司、包装装璜设计公司、居室装修公司、出版印刷公司。
6 网络构建技术
熟悉网络结构和组网方式,掌握建网方法,能利用工具分析和排除常见网络故障。获取Cisco路由配置或华为网络工程或AMP应用工程师认证。
就业方向:企业、政府、社区、各类学校等网络构建工程师。
7 网络系统管理
掌握网络系统管理的基本知识与应用技能,能进行网络系统的安全设置。获取Window2000 Server或TurboLinux TLCE或Cisco路由配置专家认证。
就业方向:企业、政府、社区、各类学校等网络系统管理员。
8 多媒体制作
具有多媒体程序设计与多媒体制作策划的能力。基本掌握面向对象程序设计与建模、造型设计、场景设计、分镜头原理等技能。获取多媒体设计师相关的认证。
就业方向:多媒体设计与制作公司、动画美术制作出版公司、广告制作公司。
9 计算机办公应用
精通办公自动化应用与管理,熟悉服务器的安装、管理和维护,基于应用服务器的相关服务和软件系统,具备对服务器的网络安全设置、邮件、网页发布、FTP、OA、BBS等系统的应用和维护能力。就业方向:企业、政府、社区、各类学校等系统管理
初级部分:
1. Java 面向对象程序设计、Java API使用、数据结构及算法基础、Java高级类特性、异常处理;
2. AWT及Swing图形程序设计、流、网络程序设计、对象序列化、Applet、多线程程序设计、Java应用国际化基础;
3. Java桌面系统项目开发;
4. Java编程基础提高课程:反射机制、设计模式(I)、正则表达式,Java SE5.0新特性等;
5. 基于Oracle的数据库开发及管理、数据库设计、标准SQL、PL/SQL编程;
6. JDBC、JSP2.0、Servlet2.4、JavaBean编程;Tomcat服务器使用、Jbuilder及Eclipse 等集成开发环境;
7. Linux操作系统中的Java程序开发、Linux系统管理;
8. Java Web编程提高课程:JDBC进阶、高效分页处理、过滤器使用技巧、Struts中动态表单验证、DispatchForm等;
高级部分
1. MVC设计模式、Struts架构核心工作机制、国际化、验证框架、Struts Taglib、ORM基础、基于Hibernate的企业级应用;
2. JavaME手机游戏设计、界面程序设计、数据库程序设计、手机短信、多媒体短信(彩信)开发;
3 .JavaEE核心技术、XML、Web Service、异构系统整合、分布式应用开发、WebLogic和JBoss等应用服务器;
4 .CMM、UML与系统建模和设计、Rational Rose、软件工程和软件过程模型、版本控制及设计模式;
6. Java 企业级应用开发提高课程:Hibernate使用技巧、设计模式(II)、Spring编程入门、提高Java EE应用的性能;
.NET程序设计
.NET架构、.NET桌面和Web程序设计、.NET与JavaEE平台应用的整合;
职业素质
IT职业规划、沟通技巧、团队合作、专业技术规范、面试技巧等职业技能培训。
完成以上培训课程后,通过考核就可以获得培训机构颁发的合格证书。
现在比较吃香的是JAVA,特别是J2EE,未来3G出来后,手机编程将成为热点,J2EE当然就会很吃香了。
关于证书的权威性,建议你要去知名的培训机构去,最好是像SUN这类国际大公司有关认证所指定的培训机构,这样权威性高些。
一般来讲,软件公司是非常喜欢通过了软件工程师的人员,学历对他们来说并不重要,而重要的是能力。如果你的能力够强,在一个好的公司的话,这个月薪我想应该是可以拿到的。
第一是钻研,遇到技术问题和困难永远是知难而进,通过各种方法渠道去解决第二是合作,现在单兵作战的时代已经过去了,你需要同很多人一起来完成项目,因此合作是不可避免的,必须要具有合作精神才会成为一个合格的软件工程师第三是勤奋,在你选定的专业内不断学习,不仅仅局限于编程,还需要了解行业知识,如做ERP的需要了解企业的运作,相关的财务知识等;需要比较深入了解各种软件工程类知识;需要深入了解各种应用的架构及相应的优缺点.有了以上三点,即使你天赋一般也能成为一个出色的软件工程师。
软件工程师要看呢,是.NET的还是JAVA的。
下面提供一些资料希望你喜欢 35公里 写道 "出色的软件工程师善用设计模式,勤于代码重构,编写单元测试,并对简单有宗教般的追求。除了这些,优秀的软件工程师还要通晓10个概念,这10个概念超越了编程语言与设计模式,软件工程师应当从更广的范围内明白这些道理(全文阅读): 接口 (Interfaces ) 惯例与模板 (Conventions and Templates) 分层 (Layering ) 算法的复杂性 (Algorithmic Complexity) 散列法 (Hashing ) 缓存 (Caching ) 并发 (Concurrency ) 云计算(Cloud Computing ) 安全(Security ) 关系数据库 (Relational Databases ) 10. 关系数据库 (Relational Databases) 关系数据库因为在大规模 Web 服务上缺乏可扩充性而颇受微词,然而,关系数据库仍然是近20年来计算机技术中最伟大的成就。
关系数据库对处理订单,公司数据方面有着出色的表现。 关系数据库的核心是以记录表示数据,记录存放在数据库表,数据库使用查询语言(SQL)对数据进行搜索与查询,同时,数据库对各个数据表进行关联。
数据库的标准化技术(normalization)讲的是使用正确的方式对数据进行分存以降低冗余,并加快存取速度。 9. 安全 (Security) 随着黑客的崛起与数据敏感性的上升,安全变得非常重要。
安全是个广义的概念,涉及验证,授权与信息传输。 验证是对用户的身份进行检查,如要求用户输入密码。
验证通常需要结合 SSL (secure socket layer)进行;授权在公司业务系统中非常重要,尤其是一些工作流系统。最近开发的 OAuth 协议可以帮助 Web 服务将相应信息向相应用户开放。
Flickr 便使用这种方式管理私人照片和数据的访问权限。 另外一个安全领域是网络设防,这关系到操作系统,配置与监控。
不仅网络危险重重,任何软件都是。Firefox 被称为最安全的浏览器,仍然需要频频发布安全补丁。
要为你的系统编写安全代码就需要明白各种潜在的问题。 8. 云计算 (Cloud Computing) RWW 最近的关于云计算的文章 Reaching For The Sky Through Compute Clouds 讲到了云计算如何改变大规模 Web 应用的发布。
大规模的并行,低成本,与快速投入市场。 并行算法发明以来,首先迎来的是网格计算,网格计算是借助空闲的桌面计算机资源进行并行计算。
最著名的例子是 Berkley 大学的 SETI@home 计划,该计划使用空闲的 CPU 资源分析太空数据。金融机构也大规模实施网格计算进行风险分析。
空闲的资源,加上 J2EE 平台的崛起,迎来了云计算的概念:应用服务虚拟化。就是应用按需运行,并可以随着时间和用户规模而实时改变。
云计算最生动的例子是 Amazon 的 Web 服务,一组可以通过 API 进行调用的应用,如云服务(EC2),一个用来存储大型媒体文件的数据库(S3),索引服务(SimpleDB),序列服务(SQS)。 7. 并发 (Concurrency) 并发是软件工程师最容易犯错的地方,这可以理解,因为我们一直遵从线形思维,然而并发在现代系统中非常重要。
并发是程序中的并行处理,多数现代编程语言包含内置的并发能力,在 Java,指的是线程。关于并发,最经典的例子是“生产/消费”模式,生产方生产数据和任务,并放入工作线程消费或执行。
并发的复杂性在于,线程需要经常访问共同数据,每个线程都有自己的执行顺序,但需要访问共同数据。Doug Lea 曾写过一个最复杂的并发类,现在是 core Java 的一部分。
6. 缓存(Caching) 缓存对现代 Web 程序不可或缺,缓存是从数据库取回,并存放在内存中的数据。因为数据库直接存取的代价非常高,将数据从数据库取回并放在缓存中访问就变得十分必要。
比如,你有一个网站,要显示上周的畅销书,你可以从数据将畅销书榜一次性取回放在缓存中,而不必在每次访问时都去数据库读数据。 缓存需要代价,只有最常用的内容才可以放入缓存。
很多现代程序,包括 Facebook,依靠一种叫做 Memcached 的分布式缓存系统,该系统是 Brad Firzpatrick 在工作于 LiveJournal 项目时开发的,Memcached 使用网络中空闲的内存资源建立缓存机制,Memcached 类库在很多流行编程语言,包括 Java 和 PHP 中都有。 5. 散列法(Hashing) Hashing 的目的是加速访问速度。
如果数据是序列存储的,从中查询一个项的时间取决于数据列的大小。而散列法对每一个项计算一个数字作为索引,在一个好的 Hashing 算法下,数据查找的速度是一样的。
除了存储数据,散列法对分布式系统也很重要。统一散列法(uniform hash )用来在云数据库环境下,在不同计算机之间分存数据。
Google 的索引服务就是这种方法的体现,每一个 URL 都被散列分布到特定计算机。 散列函数非常复杂,但现代类库中都有现成的类,重要的是,如何对散列法进行细调以获得最好的性能。
4. 算法的复杂性 (Algorithmic Complexity) 关于算法的复杂性,软件工程师需要理解这样几件事。第一,大O标记法(big O notation);第二,你永远都不应该使用嵌套式循环(循环里面套循环),你应该使用 Hash 表,数组或单一循环;第三,如今优秀类库比比皆是,。
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
蜀ICP备2020033479号-4 Copyright © 2016 学习鸟. 页面生成时间:4.130秒