作为高级程序员不可忽视的!
高级程序员考试提纲
要准备考试了......
考试对象与要求
能按照软件需求规格说明书进行软件设计并担负指导程序员工作的技术人员
具有中级技术职务(工程师)的实际工作能力和业务知识
考试范围
一.软件设计能力
简单计算机应用系统的需求分析
流行的需求分析方法论初步
数据流图的设计及改进
软件界面设计
输入输出数据文件的设计
用户界面的设计
软件间的界面设计
概要设计
模块划分方法
模块调用关系的描述
模块功能描述
模块界面描述
常用的设计方法
详细设计
满足指定功能的各种处理过程的算法设计、评价和改进
PDL语言
数据库/数据结构的设计
根据不同的要求进行数据库/数据结构的设计、
软件测试
测试方法
测试用例的设计
测试的静态和动态分析
测试的计划与实施
测试报告
测试结果的评价
测试工具
排错技术
文档编制
概要设计规格说明书
详细设计规格说明书
数据库/数据结构规格说明书
集成测试计划和集成测试报告
文档编制标准
文档编制工具
软件维护方法和工具
软件可靠性和安全性设计
设计评审的组织与实施
软件质量管理和进度管理
二.程序编制能力
程序语言
能使用CASL汇编语言(文本将附在试卷上)(可调阅往年试卷)
能熟练使用下列程序语言中的一种
C(美国标准)/ C++
FORTRAN(国家标准GB3057-82)
根据软件设计规格说明书,画出流程图(国家标准GB1526-89)和编制程序
理解给定的程序和流程图的功能和实现思想
程序和流程图的排错
能对程序和流程图的正确性进行测试并对发现的错误或不足加以纠正或改进
具有良好的程序编制风格
基本算法的设计和分析
程序编制方法
三.软件知识
数据结构
数组、记录、列表(List)、栈(Stack)、堆(Heap)、队列、树、图的定义、存储和操作
序列、集合等的定义、存储和操作
程序语言
语言的类别和特点
语言所提供的数据结构、控制结构和模块结构
典型语言的知识
语言处理程序
汇编系统的基本原理
编译系统的基本原理
解释系统的基本原理
文件系统
文件系统结构
文件组织的类型和功能
文件的使用和保护
操作系统
操作系统的历史和类型
操作系统的层次结构和进程概念
作业管理和处理机管理
存储管理
设备管理
典型操作系统的知识
数据库系统
数据库模型
数据的独立性、完整性和安全性
数据定义语言和数据操作语言
SQL
典型数据库管理系统的知识
网络工程
网络OS基本知识
网络的管理与维护
软件工程
软件生存周期
软件设计方法
模块程序设计和结构化程序设计
软件测试
软件维护
软件质量与评价
原型化方法
常用软件开发工具、平台和环境
软件系统的新发展
四.硬件知识
计算机组成
机内代码及运算
主要部件的功能及其相互关系
控制器的实现原理
指令系统
中断系统
总线结构
存储器系统
各类存储器的功能、特性和使用
高速缓冲存储器和多级存储器
虚拟存储器
输入/输出设备及其控制
数据通讯和计算机网络选型和组网知识
安全性、可靠性与系统性能评价初步
数据安全与保密
诊断与容错
模型与分析
系统可靠性评价和系统性能评价方法
计算机体系结构的其它基础知识
流水线操作
并行处理
多处理机系统
精简指令系统计算机
多媒体开发平台及其应用
五.其它基础知识
专业英语
具有大学毕业程度的词汇量
能正确阅读和理解计算机领域的科技文献
数学
微积分
线性代数:行列式、矩阵和线性方程组
概率统计:事件和概率、随机变量和分布函数、数字特征、参数估计和假设检验
离散数学:数理逻辑、集合论、图论、组合分析
数值计算:计算误差,数值微分与积分,函数插值和逼近,方程的数值解
算法复杂性
Java高级工程师必备知识
一、JAVA。要想成为JAVA(高级)工程师肯定要学习JAVA。一般的程序员或许只需知道一些JAVA的语法结构就可以应付了。但要成为JAVA(高级)工程师,您要对JAVA做比较深入的研究。您应该多研究一下JDBC、IO包、Util包、Text包、JMS、EJB、RMI、线程。如果可能,希望您对JAVA的所有包都浏览一下,知道大概的API,这样您就发现其实您想实现的很多功能,通过JAVA的API都可以实现了,就不必自己费太多的脑经了。
二、设计模式。其实写代码是很容易的事情,我相信您也有同感。但如何写得好就比较难了。这个“好”字包括代码可重用性,可维护性,可扩展性等。如何写出好的代码往往要借助一些设计模式。当然长期的代码经验积累,只要您用心,会使您形成自己代码风格。相信您的代码也比较符合代码的可重用性,可维护性,可扩展性。但既然前人已经给我们总结出了经验,我们何不踩着前人的肩膀前进?
三、XML。现在的系统中不使用XML几乎是不可能的。XML的功能非常强大,它可以做数据转换、做系统的配置、甚至可保存您的系统业务数据。因此您必须了解XML,包括它的语法,结构。您还需要比较熟练的使用解析XML的一些API,比如JDOM,SAX等,因为在我们一般的项目中,XML往往担当系统配置信息的作用,您需要用这些API解析这些配置信息,开发完美的项目。
四、精通使用一种或两种框架。像在《如何成为java初级程序员》中提到的那样,“框架都会有许多可重用的代码,良好的层次关系和业务控制逻辑,基于框架的开发使你可以省出很多的开发成本”。但我这里希望您能精通,更多的是希望您能通过框架的使用了解框架的思想。这样您在开发一个项目时思路会开阔一些,比如您会想到把SQL语句与您的JAVA代码分开,再比如您会考虑把您的业务逻辑配置到XML或者数据库中,这样整个项目就很容易扩张了。
五、熟悉主流数据库。其实真正比较大的项目都是有人专门做数据库的,但往往很多项目要求作为(高级)工程师的您也参与数据库的设计以及SQL的编写。所以为了更好的为国家做贡献,建议您还是多了解一些主流数据库,比如SQLSERVER,ORACLE,多连接SQL和存储过程以及触发器。如果您不是“科班”出身,您还需要补充一些数据库原理方面的知识。
六、
精通一种或两种WEBServer。尽管我再《如何成为java初级程序员》里讲过它,我还是要强调您要精通一种或两种。因为作为JAVA工程师,特别时想成为高级JAVA工程师的您,您不可避免地要部署您的项目到WebServer上,而且只有当您精通一种WebServer,您才可能最大限度地使用它的资源,这往往可以节省很多时间和精力。
七、UML。我知道您肯定想成为高级工程师,因此您有必要了解或熟练或精通UML,这取决于您有多大决心想成为高级工程师和项目经理。在比较正规的开发团队中,UML是讨论项目的交流工具,您要想做一个软件工程师,您至少要能看懂,您要想做高级工程师,您要能通过它来描述您对项目的理解,尽管这不是必须,但却很重要。
八、站在高度分析问题:这不是一个知识点,也不是通过书本就能学得到的。只所以提到这一点,是因为我比您还着急,我希望您更快的成为一个高级的软件工程师,而不是一个一般的软件工程师。希望您在工作中多向您的系统分析员、需求分析员、系统设计员学习,多站在他们角度上去看您在开发的项目。在最好在项目之初先在您的脑海里对项目有个大致的分析、设计,然后和他们进行比较,找找差别,想想缺点。
九、工具。与在《如何成为java初级程序员》里提到的不同,您在这个阶段可能接触到不同的工具了,尽管您还需要使用JB或者IDEA,但能可能对ROSE,Together要多了解一些,因为您要画UML了。不要再对Dreamweaver等HTML编辑器情有独钟了,那些JSP页面让初级程序员去写吧。

浙公网安备 33010602011771号