等级考试的二、三、四级考试,还参加过软考的网络程序员、程序员、软件设计师、系统分析师考试,还考过计算机专业在职硕士、统招硕士研究生入学考试及计算机专业自学科目的考试等。在考试的同时,也尝试着把所学知识应用于实际工作,设计过一些小软件,初步实现了学以致用。
计算机学习要经历一个从理论———实践———理论的认识不断深化的过程,下面谈谈本人通过软件设计师考试的一些体会。
软件设计师考试大纲中计算机与软件工程知识
(1)首先基础知识中涉及到计算机硬件的内容和多媒体知识以及语言知识问题,这是一个量的积累,最后实现质的飞跃。
(2)数据结构部分,这是首次学习线性表、数组、广义表、树、图、查找算法和排序及算法的分析等。这部分的学习,要吃透理论、适当加大习题量、最好能结合上机,深化理解。数据结构好比是武功中的内功,数据结构学习用了我一至二年的时间,以自学教材为主。吃透理论就是反复读书,以一本书为主(目前清华大学严蔚敏老师的数据结构是一个经典),可能的话,再搜罗其他版本的教程,这样可以互相印证,就同一问题,多看几本书这一做法,也可推广到其他学科的学习中。
(3)操作系统知识,主要从资源管理的角度来分析系统功能的实现。假设你要设计一个新的操作系统,如何实现它?操作系统理论就是向读者逐步介绍和解释。重点是五大管理职能的实现及其原理。
(4)计算机网络中对ISO/OSIRM七层的划分以及各种协议的功能。传输理论、互联设备、Internet知识,除参考模型理论外,其他的比较比较凌乱。
(5)系统安全问题是目前社会关注的问题,也是应用价值较高的知识,可结合现实中的相关问题来加深理解。
软考中的信息化、标准化知识是新增考点,是对基本素质的考查,也要重视。
专业英语,不是软件考试特有的,是专业知识+英语水平,考前不需专业准备,平时有意识地上网读点英文专业资料。
软考的考试内容既是大学计算机本科专业的必修课,同时又有着鲜明的侧重点,这对于没有经过系统学习的朋友们来说,无疑是一次全面、深入学习的机会,无论是自学或是参加培训,只要去学了就会对计算机有更深入全面的了解,而不只是停留在过去那些肤浅的认识上面。
以上是专业背景知识,是对软件设计师基本素养的要求。
软件设计师的专业能力
软件设计师,关键是设计软件的能力。考试大纲要求:要熟悉软件工程、软件过程改进和软件开发项目管理的基础知识;熟练掌握软件设计的方法和技术;掌握C程序设计语言及指定的四种面向对象语言中的一种。这部分专业能力严重依赖工作实践,要求有一定经验的积累,是具有工程师的实际工作能力和业务水平的体现,但目前大量在校生参加考试,虽没什么工作经验可言,但通过学习和借鉴,仍可以取人之长,补已之短。
这部分内容主要体现在下午的考试题中,现就如何应对下午的考试进行分析:
在近几次考试中,下午试题分五个题目,一个数据库、一个程序填空题、一个面向对象的语言题,另两个题目分别为数据流图、UML或流程图等。
数据库题目,要求补全SQL语言,这要求考生熟悉SQL的语言,无论对上午题目还是下午题目都很重要。这是学习和复习的一个重点。
数据流图,DFD是一种分析系统数据流程的图形,意在让用户理解系统的功能、输入、输出和数据存储等。请认真弄清其应用后,在画出数据流图的情况下,系统的功能也就确定了,再经过细化,逐步向物理结构迈进。考核时,试题多从父图和子图的平衡来分析。这部分内容,解题的关键是高度重视题目说明,务必正确、深入理解其内容,必要时要读几遍,同时对于给出的图表,也要务必看懂。这样答题就轻松了,答案实际就蕴含在说明中。
流程图类题目,是大家再熟悉不过的了,它就一个具体问题的解题思路进行描述,是面向过程的。但所求问题是千差万别的,因此应理解思路,细心作答。
程序填空是答题形式最简单同时也是难度最大的。为便于阅卷,这类题目以程序填空形式出现,这不仅要求理解问题本质,同时也要弄清作者解题思路,这一点比自己独立完成程序设计要难得多。依个人经验,首先要针对问题,设计自己的思路,解决问题,确定先后顺序;然后试读程序,如果思路大体一致,题就容易解决了,如果思路不一致,就要设法弄清每一段代码的功能及其逻辑结构,进而弄清命题人的解题思路,再顺势解决问题。人们常讲,答案就在题目中,这是对的。在分析问题过程中,找到所求答案。不过前提条件是考生要熟悉这种语言,又要明白解题思路,这样才能正确作答。