软件工程师需要学习以下知识:
(1) 熟悉计算机系统的基础知识;
(2) 熟悉网络操作系统的基础知识;
(3) 理解计算机应用系统的设计和开发方法;
(4) 熟悉数据通信的基础知识;
(5) 熟悉系统安全和数据安全的基础知识;
(6) 掌握网络安全的基本技术和主要的安全协议与安全系统;
(7) 掌握计算机网络体系结构和网络协议的基本原理;
(8) 掌握计算机网络有关的标准化知识;
(9) 掌握局域网组网技术,理解城域网和广域网基本技术;
(10) 掌握计算机网络互联技术;
(11) 掌握tcp/ip协议网络的联网方法和网络应用服务技术;
(12) 理解接入网与接入技术;
(13) 掌握网络管理的基本原理和操作方法;
(14) 熟悉网络系统的基本性能测试和优化技术,以及可靠性设计技术;
(15) 理解网络应用的基本原理和技术;
(16) 理解网络新技术及其发展趋势;
(17) 了解有关知识产权和互联网的法律、法规;
(18) 正确阅读和理解本领域的英文资料。
希赛软考学院程序员考试说明:
1.考试目标
通过本考试的合格人员能根据软件开发项目管理和软件工程的要求,按照程序设计规格说明书编制并调试程序,写出相应的程序文档,具有助理工程师(或技术员)的实际工 作能力和业务水平。
2.考试要求
(1) 掌握数制及其转换、数据的机内表示、算术和逻辑运算、应用数学的基础知识;
(2) 了解计算机的组成以及各主要部件性能指标;
(3) 掌握操作系统、程序设计语言的基础知识;
(4) 熟练掌握基本数据结构和常用算法;
(5) 熟练掌握c程序设计语言以及c 、java中的一种程序设计语言;
(6) 熟悉数据库、网络和多媒体的基础知识;
(7) 了解软件工程的基础知识、软件过程基本知识、软件开发项目管理的常识;
(8) 了解常用信息技术标准、安全性以及有关法律、法规的基础知识;
(9) 了解信息化及计算机应用的基础知识;
(10) 正确阅读和理解计算机领域的简单英文资料。
3.考试科目设置
(1)计算机与软件工程基础知识,考试时间为150分钟,笔试,选择题;
(2)程序设计,考试时间为150分钟,笔试,问答题。
以上内容分享于希赛软考学院!
培养目标:软件工程专业培养面向国民经济信息化建设和发展的需要,培养具有扎实的计算机应用理论和知识基础,掌握软件工程领域的前沿技术和软件开发方法,具备较强的软件项目的系统分析、设计、开发和测试能力,能够按工程化的原则和方法从事软件项目开发和管理的高级工程技术人才。
主要课程:离散数学、面向对象程序设计、数据结构、数据库原理、操作系统、计算机网络、软件工程、软件过程与管理、软件测试技术、软件质量管理、软件项目管理等。
毕业去向:软件工程专业毕业生主要在信息产业和国民经济部门从事信息系统研究、分析、设计、开发和测试以及软件工程项目的组织和管理工作,也可考取计算机科学与技术专业的硕士研究生。
软件工程专业是今后的热门,就业前景非常好!目前软件工程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:计算机硬软件基础知识 1. 计算机科学基础 1.1 数制及其转换 二进制、十进制和十六进制等常用数制及其相互转换 1.2 数据的表示 数的表示(原码、反码、补码表示,整数和实数的机内表示方法,精度和溢出) 非数值表示(字符和汉字的机内表示、声音和图像的机内表示) 校验方法和校验码(奇偶校验码、海明校验码) 1.3 算术运算和逻辑运算 计算机中二进制数的运算方法 逻辑代数的基本运算和逻辑表达式的化简 1.4 数学应用 常用数值计算(矩阵、方程的近似求解、插值) 排列组合、应用统计(数据的统计分析) 1.5 常用数据结构 数组(表态数组、动态数组)、线性表、链表(单向链表、双向链表、循环链表)、队列、栈、树(二叉树、查找树)、图的定义、存储和操作 1.6 常用算法 常用的排序算法、查找算法、数值计算、字符串处理、数据压缩算法、递归算法、图的相关算法 算法与数据结构的关系,算法效率,算法设计,算法描述(流程图、伪代码、决策表) 2. 计算机系统基础知识 2.1 硬件基础知识 2.1.1 计算机系统的组成,硬件系统、软件系统及层次结构 2.1.2 计算机类型和特点 微机、工作站、服务器、大型计算机、巨型计算机 2.1.3 中央处理器cpu 运算器和控制器的组成,常用的寄存器、指令系统、寻址方式、指令执行控制、处理机性能 2.1.4 主存和辅存 存储器系统 存储介质(半导体、硬盘、光盘、闪存、软盘、磁带等) 主存储器的组成、性能及基本原理 cache的概念、虚拟存储的概念 辅存设备的类型、特性、性能和容量计算 2.1.5 i/o接口、i/o设备和通信设备 i/o接口(总线、dma、通道、scsi、并行口、rs232c、usb、ieee1394) i/o设备的类型和特性(键盘、鼠标、显示器、打印机、扫描仪、摄像头,以及各种辅存设备) i/o设备控制方式(中断控制、dma) 通信设备的类型和特性(modem、集线器、交换机、中继器、路由器、网桥、网关)及其连接方法和连接介质(串行连接、并行连接,传输介质的类型和特性) 2.2 软件基础知识 2.2.1 操作系统基础知识 操作系统的类型和功能 操作系统的内核(中断控制)和进程概念 处理机管理、存储管理、设备管理、文件管理、作业管理 汉字处理 图形用户界面及其操作方法 2.2.2 程序设计语言和语言处理程序基础知识 汇编、编译、解释系统的基础知识 程序设计语言的基本成分(数据、运算、控制和传输) 过程(函数)调用 2.3 网络基础知识 网络的功能、分类、组成和拓扑结构 网络体系结构与协议(osi/rm,tcp/ip) 常用网络设备与网络通信设备,网络操作系统基础知识和使用 client/server结构、browser/server结构 lan基础知识 internet基础知识 2.4 数据库基础知识 数据库管理系统的主要功能和特征 数据库模型(概念模式、外模式、内模式) 数据模型,er图 数据操作(关系运算) 数据库语言(sql) 数据库的主要控制功能 2.5 多媒体基础知识 多媒体基础概念,常用多媒体设备性能特征,常用多媒体文件格式类型 简单图形的绘制,图像文件的基本处理方法 音频和视频信息的应用 简单多媒体应用制作方法 2.6 系统性能指标 响应时间、吞吐量、周转时间等概念 可靠性、可维护性、可扩充性、可移植性、可用性、可重用性、安全性等概念 2.7 计算机应用基础知识和常用办公软件的操作方法 信息管理、数据处理、辅助设计、自动控制、科学计算、人工智能等概念 文字处理基础知识和常用操作方法 电子表格处理基础知识和常用操作方法 演示文稿制作方法 电子邮件处理操作方法 网页制作方法 3. 软件开发和运行维护基础知识 3.1 软件工程和项目管理基础知识 软件工程基本概念 软件开发各阶段的目标和任务 软件过程基本知识 软件工程项目管理基本知识 面向对象开发方法基础知识 软件开发工具与环境基础知识(case) 软件质量管理基础知识 3.2 软件需求分析、需求定义及软件基础知识 结构化分析概念(数据流图(dfd)、实体关系图(er)) 面向对象设计、结构化设计基础知识 模拟设计、代码设计、人机界面设计要点 3.3 程序设计基础知识 结构设计程序设计,程序流程图,ns图,pad图 程序设计风格 面向对象设计基础知识、可视化程序设计基础知识 3.4 程序测试基础知识 黑盒测试、白盒测试、灰盒测试基础知识 测试工作流程 3.5 软件开发文档基础知识 3.6 软件运行和维护基础知识 软件运行基础知识 软件维护基础知识 4. 安全性基础知识 安全性基本概念 计算机病毒的防治,计算机犯罪的防范 访问控制 加密与解密基础知识 5. 标准化基础知识 标准化基本概念 国际标准、国家标准、行业标准、企业标准基础知识 代码标准、文件格式标准、安全标准、软件开发规范和文档标准基础知识 标准化机构 6. 信息化基本知识 信息化基本概念 全球信息化趋势,国家信息化战略,企业信息化战略和策略常识 有关的法律、法规要点 过程教育、电子商务、电子政务等常识 企业信息资源管理常识 7. 计算机专业英语 掌握计算机技术的基本词汇 能正确阅读和理解本领域的简单英文资料 考试科目2:程序设计 1. 内部设计 1.1 理解外部设计 1.2 功能划分和确定结构 数据流图、结构图 1.3 物理数据。
程序员的考试要求:掌握数制及其转换、数据的机内表示、算术和逻辑运算,以及相关的应用数学基础知识;理解计算机的组成以及各主要部件的性能指标;掌握操作系统、程序设计语言的基础知识;熟练掌握计算机常用办公软件的基本操作方法;熟练掌握基本数据结构和常用算法;熟练掌握c程序设计语言,以及c 、java、visual
basic中一种程序设计语言;熟悉数据库、网络和多媒体的基础知识;掌握软件工程的基础知识,了解软件过程基本知识、软件开发项目管理的常识;了解常用信息技术标准、安全性,以及有关法律、法规的基本知识。
一考试大纲
(1)掌握数制及其转换、数据的机内表示、算术和逻辑运算、应用数学的基础知识;
(2)了解计算机的组成以及各主要部件性能指标;
(3)掌握操作系统、程序设计语言的基础知识;
(4)熟练掌握基本数据结构和常用算法;
(5)熟练掌握c程序设计语言以及c 、java中的一种程序设计语言;
(6)熟悉数据库、网络和多媒体的基础知识;
(7)了解软件工程的基础知识、软件过程基本知识、软件开发项目管理的常识;
(8)了解常用信息技术标准、安全性以及有关法律、法规的基础知识;
(9)了解信息化及计算机应用的基础知识;
(10)正确阅读和理解计算机领域的简单英文资料。
二考试科目
(1)计算机与软件工程基础知识,考试时间为150分钟,笔试,选择题;
(2)程序设计,考试时间为150分钟,笔试,问答题。
软件工程师考试(高级)大纲 一、考试说明 1.考试要求: (1)理解软件工程管理的概念和任务; (2)理解软件生存期过程; (3)理解软件工程标准; (4)掌握需求分析、测试、维护基本技术; (5)掌握软件度量、软件配置管理方法; (6)理解软件复用概念; (7)理解软件质量保证的手段; (s)理解软件项目对人员的需求; (9)理解软件知识产权的基本知识。
2.通过本级水平考试的合格人员具有从事软件系统分析与工程系统分析员、工程管理员的实际工作能力和业务水平。 3.本级水平考试范围包括三个模块,即模块1、模块2和模块3。
题型为单项选择题十多项选择题十综合题。每个模块考试时间为90分钟。
二、考试范围 模块1:软件工程技术 1.1软件生存期过程 1.1.1软件工程过程和软件生存期 1.1.2软件生存期模型 1.1.3国际标准:iso/ieci2207信息技术一软件生存期过程 1.2软件需求分析 1.2.1需求分析的任务 1.2.2需求分析过程 1.2.3需求的类型。 1.2.4需求分析的原则 1.2.5需求分析人员和用户的责任 1.2.6需求文档 1.2.7需求说明技术的选择 1.3软件复用技术 1.3.1软件复用的概念 1.3.2软件开发过程 1.3.3构件技术 1.3.4分层式体系结构 1.3.5实施软件复用开发单位的组织结构 1.4软件测试技术 1.4.1软件测试的基本概念 1.4.2测试用例设计 ●白盒测试 ●黑盒测试 1.4.3性能测试 1.4.4软件测试策略 1.4.5软件测试工具 1.5软件维护 1.5.1软件维护的概念 1.5.2软件维护活动 1.5.3软件维护的实施 1.5.4软件可维护性 1.5.5软件再工程 1.6软件工具与软件开发环境 1.6.1软件开发工具的分类、作用和功能 1.6.2软件开发环境的概念 模块2:软件质量管理与软件质量保证 2.1软件质量 2.1.1什么是软件质量 2.1.2软件可靠性 2.1.3软件质量问题的根源 2.1.4软件产品质量与软件过程质量 2.2软件质量保证 2.2.1软件质量保证的概念 2.2.2软件质量保证体系 2.2.3质量保证的实施 2.2.4软件质量设计 2.2.5软件容错技术 2.3软件工程标准与软件文档 2.3.1什么是软件工程标准 2.3.2软件工程标准化的意义 2.3.3软件工程标准的制订与推行 2.3.4软件工程标准的层次 2,3.5软件工程国家标准 2.4iso9000国际标准 2.4.1质量管理、质量认证与质量审核 2.4.2iso9000标准概要 2.4.3iso9000族标准构成 2.4.4质量体系 2.4.5iso9001的主要内容 2.4.6iso9000_3实施指南概要 2.5软件过程能力评估cmm 2.5.1软件过程评估的意义 2.5.2软件过程能力成熟度分级及其关键过程域 2.5.3软件过程评估的国际标准 2.6软件度量 2.6.1软件度量的概念 2.6.2功能点方法计算软件的大小 2.6.3程序环路复杂度计算 2.6.4halstead程序工作量计算 2.6.5程序风格度量 2.7软件配置管理 2.7.1什么是软件配置管理 2.7.2配置管理计划的制订 2.7.3变更管理 2.7.4版本管理和发行管理 模块3:软件工程管理 3.1软件工程管理和软件项目管理 3.1.1软件工程管理的任务与意义 3.1.2软件工程管理的范围 3.1.3软件文档管理 3.1.4软件成本估算 3.1.5软件风险分析 3.1.6软件项目进度计划与监控 3.2软件人员管理 3.2.1软件开发组织结构 3.2.2软件人员能力成熟度模型 3.2.3软件工程师道德和职业活动规范 3.3软件知识产权保护 3.3.1什么是知识产权 3.3.2计算机软件著作权 3.3.3计算机软件著作权登记管理 3.3.4计算机软件著作权侵权与法律保护 3.3.5计算机软件的商业秘密与反不正当竞争================================= 高级软件工程师哪些必须精通2007年09月26日 星期三 下午 05:31程序员的七种武器 信息技术的发展时间虽然不长,但其爆炸式的发展速度使信息技术迅速覆盖社会和人类生活的各个角落。
程序员们是这场信息化浪潮的见证者之一,更是其中的主要参与者,这是时代赋予每个程序员的机会和责任。 信息技术的更新速度是惊人的,程序员的职业生涯则是一个要求不断学习的过程,永远不能固步自封。
本人在工作期间曾看见过很多程序员只要有闲暇时间就浏览一些没有太大作用的网页,在网上聊天,打游戏,浪费了大量的时间,十分不可取。而另外一种情况是,it技术的日新月异使很多程序员眼花缭乱,什么都想学,却又不知从何学起,今天看看这个,明天学学那个,贪多不熟。
虽然it技术发展迅速,但很多技术都是有规律可循,一些基本的概念、原理和方法还很通用,可以举一反三。本人根据自己的体会和经验,向那些刚刚踏入it行业的新程序员们或正在迷茫的程序员们推荐程序员必须掌握的七种武器,有了这七种武器,虽不敢说笑傲江湖,但将自己立于不败之地还是可以的。
第一种武器:开发工具 至少熟练掌握两到三种开发工具的使用,这是程序员的立身之本,其中c/c 和java是我重点推荐的开发工具,c/c 以其高效率和高度的灵活性成为开发工具中的利器,很多系统级的软件还是用c/c 编写。而java的跨平台和与web很好的结合是java的优势所在,而本人对sun公司的“网络即计算机”的概念相当欣赏,并相信java即其相关的技术集java one会成为未来的主流开发工具之一。
其次,如果能掌握一种简便的可视化开发工具,如vb,powerbuilder,delphi,c builder,则更好,。
不懂就不懂何羞之有阿,反而mm的不懂就问得习惯是很好的。
软件工程专业旨在培养能从事计算机系统软件、应用软件的设计、研制和开发的高级工程技术人才。本专业培养具有良好的科学素养,系统地掌握计算机科学与技术基础知识、规范的软件设计与开发能力、良好的组织与交流能力,能在科研部门、教育单位、企业、事业和行政管理部门等单位从事复合型、实用型高层次软件设计、系统分析和工程应用的高级专门技术人才。近几年,我国软件产业不断发展,对软件从业人员的需求也在不断增加中,新增的软件工程专业,对培养这方面的人才起很大的作用。可以看出来软件工程专业的培养目标是运用先进的工程化方法、技术和工具从事软件分析、设计、开发、维护等工作能力,以及工程项目的组织与管理能力的实用型、复合型软件工程技术与管理的高级人才。
专业学习的主要课程有:面向对象系统分析与设计、软件体系结构、软件项目管理、软件需求工程、软件质量保证与软件测试技术、先进软件开发与工具、软件过程改进与管理。
就这些吧,希望能对你有所帮助。
软件工程师要看呢,是.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 表,数组或单一循环;第三,如今优秀类库比比皆是,。
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
ag8亚洲国际集团 copyright © 2016 ag8亚洲国际集团. 页面生成时间:3.544秒