通过软件设计师考试后的一些感想

知识分享 编辑: http://www.yanhuangjs.com/

1、通过软件设计师考试后的一些感想

参加完软考后心里总有些话想说,那就谈谈对软考的感想吧。 (成绩是50,47)。 首先,你要对软件设计师证有个正确的认识,它只是一张纸,有了它不能说明你水平就很强,没有它也不能说明你就不适合搞软件开发,你不会因为一张纸就确定了自己的能力水平吧(你看过研究生或博士去考的吗!如果你坚持看重的话,你应该不适合做开发工作了,最多也只能做个代码写手)。而且中国的考试向来都是只重课本不重应用,所以对软考也不要太……

参加完软考后心里总有些话想说,那就谈谈对软考的感想吧。 (成绩是50,47)。

首先,你要对软件设计师证有个正确的认识,它只是一张纸,有了它不能说明你水平就很强,没有它也不能说明你就不适合搞软件开发,你不会因为一张纸就确定了自己的能力水平吧(你看过研究生或博士去考的吗!如果你坚持看重的话,你应该不适合做开发工作了,最多也只能做个代码写手)。而且中国的考试向来都是只重课本不重应用,所以对软考也不要太害怕(我就是个半道出家的,没进入正规的大学,通过胡乱的自学也敢去考),考试出的题目技巧性都不强,很多都是那类一看就知道考点是什么,更过份的是有些题目很可能甚至书本或资料上都有(中国的教育也要进步了吧:()。更重要的一点是,现在感觉看重这个证的企业是越来越少了,所以请把自己的精力放在提高自己的理论基础水平上,并且要不断的提高自己的数学能力(看看国外的计算机课程开设,你就不会再小看数学的作用了)。

其次,说说我参加软考时的学习过程。

1.课本准备:大纲、软件工程的教材(推荐《软件工程——原理、方法与应用(第二版)》高等教育出版社)、编译原理的教材(推荐《编译原理(第2版)》清华大学出版社)、数据库的教材(《数据库设计原理》)、数据结构的教材(推荐一本学c++用得上的(如果你有时间学c++的话)《数据结构与算法——面向对象的c++设计模式》国外计算机科学教材系列)、操作系统的教材(《操作系统教程(第3版)》高等教育出版社)、还有就是要准备一到2本练习题及1套模拟试卷。

2.制定学习计划,我是从报名的那个月开始,除了早晨用于学点英语外(不过英语水平一直很差,可能有英语学习障碍),每天分3个学习时段(上午、下午、晚上),每个时段学2门(一门简单的,一门较难的),其中软件工程、编译原理、数据库原理、操作系统、c++为单独的课程,其它的课程就用大纲那本书。并且要保证考试前一个月做练习用的复习时间,除非你有计算机硬盘一样的记忆能力,否则有一个月的练习时间,其中前1-2个星期用来做模式试题。

软件工程是复习的重点,因为下午一定最少有2道软件设计分析方面的题目,一定要熟练的掌握书本中说到的各种软件分析设计方法及有关的分析用图,对各种图的功能作用和制作方法(特别是各种图的组成元素)以及各种图之间的转换及联系(如果有的话),uml面向对象的软件设计方法及面象过程的软件设计方法完全理解,软件测试要达到理解的程度,其它的内容只有去强记了,因为基本是都是上午题,而且每年的题都不定,但与cmm有关的一定会有。(这科的复习我认为难一点,因为我没有参加项目开发的经验,对里面的概念只能强行理解和记忆,所以在脑中的影像不太深刻,而且考完后就忘得一干二净了,不过学还不是太难,可能是我的教材简单)

数据库也是重点,下午一定有至少一道数据库的题目,而且也一定是考关系型数据库,e-r模式也要搞懂,可由它导出关系,一定要弄懂关系数据库的几个范式及关系的建立方法(因此就要对关系数据库的基础概念非常清楚,如键的定义,函数依赖,范式的定义、作用及转换是建立关系的基础),要熟练sql常用的几个语句,是自己用笔写上几遍每个语句的各种形式以加深记忆,数据库的学习还是不太难的(因为考试不会考数据的物理存储及数据安全,感觉这方面的知识更难,交叉学科更多)。

数据结构的复习以普通的教材为主(相关书籍学计算机的应该都有一本吧),对数组、链、队列、栈、树及堆等基本的数据组织方式要非常熟悉(要做到看见算法就知道要用什么数据组织方式更高效),排序、索引、hush及图的各种算法要了然于心(算法的分析过程及代码要非常清楚),算法的分析方法达到理解应用的水平;对c语言要非常熟练(要会应用c语言语句的一些技巧,如可以利用函数的返回值做为判定条件,在循环中对数组的处理可使用a[i++]来提高编写代码的效率,这类的小技巧只有通过大量的阅读代码才能提高),如果是初学面向对象方面的高级语言,建议还是先学c++,感觉它更象一种语言规范,而java是一种编程的工具并且由于它的跨平台特性所以它有很多自己独有的功能和特点,有时间一定要看一本c++语言的数据结构它能使你更全面和深刻的理解类及对象的编程方法。(下午那道编程题你拿不到分,就考虑做其它方面的工作吧,程序员不适合你了,因为你连编程工具都不会用)

编译原理一定会考词法分析它是后面编译过程的基础,产生的表格在整个编译过程中都会用到(主要考的内容是nfa与dfa的转换、正规式与有穷自动机的转换等),文法分析有一年考过下午题,这科对初学者比较难,比较抽象,理论性也比较强,反正我是学了4个来月才学通一点,这课复习没什么技巧,用功死学吧。

操作系统没什么说得了,把它的几个功能模块搞清楚及相关的算法搞清楚就好了,如处理器的管理、存储管理、设备管理、文件管理及系统安全,其中我认为比较难理解的是pv操作(在并发进程中它的应用非常灵活)和中断(反正这个对我比较难),一定要把相关内容所讲到的算法及分析过程搞懂,这样考试相关的题目对你来说就小儿科了。

其它课程的复习就按考试大纲进行,把里面的概念搞清楚就行,因为它大部分都是上午题。

3.复习练习,在复习的最一个月中,留出考前的一个星期作为做模式试卷的时间,此间以做练习为主,它能强化你的记忆,并能做到查缺补漏,遇到不懂不会的就查书把概念搞清楚,毕竟现在不明白总比考试时不明白好多了。最后再说一句,别把考试看得太难了它只是名头大(软件设计师一个吓人的虚头),只要你准备充分,我想没有考不过的理由(要不就是上帝对你太记恨了)。

好了就说这些,由于本人水平有限(写作能力就更差了),如有说的不对或表达不清楚的地方请指正(要不你就当是痴人狂语),顺祝打算参加软考的朋友们顺利过关。

2、软考经验:如何轻松通过软件设计师考试

等级考试的二、三、四级考试,还参加过软考的网络程序员、程序员、软件设计师、系统分析师考试,还考过计算机专业在职硕士、统招硕士研究生入学考试及计算机专业自学科目的考试等。在考试的同时,也尝试着把所学知识应用于实际工作,设计过一些小软件,初步实现了学以致用。

计算机学习要经历一个从理论———实践———理论的认识不断深化的过程,下面谈谈本人通过软件设计师考试的一些体会。

软件设计师考试大纲中计算机与软件工程知识

(1)首先基础知识中涉及到计算机硬件的内容和多媒体知识以及语言知识问题,这是一个量的积累,最后实现质的飞跃。

(2)数据结构部分,这是首次学习线性表、数组、广义表、树、图、查找算法和排序及算法的分析等。这部分的学习,要吃透理论、适当加大习题量、能结合上机,深化理解。数据结构好比是武功中的内功,数据结构学习用了我一至二年的时间,以自学教材为主。吃透理论就是反复读书,以一本书为主(目前清华大学严蔚敏老师的数据结构是一个经典),可能的话,再搜罗其他版本的教程,这样可以互相印证,就同一问题,多看几本书这一做法,也可推广到其他学科的学习中。

(3)操作系统知识,主要从资源管理的角度来分析系统功能的实现。假设你要设计一个新的操作系统,如何实现它?操作系统理论就是向读者逐步介绍和解释。重点是五大管理职能的实现及其原理。

(4)计算机网络中对iso/osirm七层的划分以及各种协议的功能。传输理论、互联设备、internet知识,除参考模型理论外,其他的比较比较凌乱。

(5)系统安全问题是目前社会关注的问题,也是应用价值较高的知识,可结合现实中的相关问题来加深理解。

软考中的信息化、标准化知识是新增考点,是对基本素质的考查,也要重视。

专业英语,不是软件考试特有的,是专业知识+英语水平,考前不需专业准备,平时有意识地上网读点英文专业资料。

软考的考试内容既是大学计算机本科专业的必修课,同时又有着鲜明的侧重点,这对于没有经过系统学习的朋友们来说,无疑是一次全面、深入学习的机会,无论是自学或是参加培训,只要去学了就会对计算机有更深入全面的了解,而不只是停留在过去那些肤浅的认识上面。

以上是专业背景知识,是对软件设计师基本素养的要求。

软件设计师的专业能力

软件设计师,关键是设计软件的能力。考试大纲要求:要熟悉软件工程、软件过程改进和软件开发项目管理的基础知识;熟练掌握软件设计的方法和技术;掌握c程序设计语言及指定的四种面向对象语言中的一种。这部分专业能力严重依赖工作实践,要求有一定经验的积累,是具有工程师的实际工作能力和业务水平的体现,但目前大量在校生参加考试,虽没什么工作经验可言,但通过学习和借鉴,仍可以取人之长,补已之短。

这部分内容主要体现在下午的考试题中,现就如何应对下午的考试进行分析:

在近几次考试中,下午试题分五个题目,一个数据库、一个程序填空题、一个面向对象的语言题,另两个题目分别为数据流图、uml或流程图等。

数据库题目,要求补全sql语言,这要求考生熟悉sql的语言,无论对上午题目还是下午题目都很重要。这是学习和复习的一个重点。

数据流图,dfd是一种分析系统数据流程的图形,意在让用户理解系统的功能、输入、输出和数据存储等。请认真弄清其应用后,在画出数据流图的情况下,系统的功能也就确定了,再经过细化,逐步向物理结构迈进。考核时,试题多从父图和子图的平衡来分析。这部分内容,解题的关键是高度重视题目说明,务必正确、深入理解其内容,必要时要读几遍,同时对于给出的图表,也要务必看懂。这样答题就轻松了,答案实际就蕴含在说明中。

流程图类题目,是大家再熟悉不过的了,它就一个具体问题的解题思路进行描述,是面向过程的。但所求问题是千差万别的,因此应理解思路,细心作答。

程序填空是答题形式最简单同时也是难度的。为便于阅卷,这类题目以程序填空形式出现,这不仅要求理解问题本质,同时也要弄清作者解题思路,这一点比自己独立完成程序设计要难得多。依个人经验,首先要针对问题,设计自己的思路,解决问题,确定先后顺序;然后试读程序,如果思路大体一致,题就容易解决了,如果思路不一致,就要设法弄清每一段代码的功能及其逻辑结构,进而弄清命题人的解题思路,再顺势解决问题。人们常讲,答案就在题目中,这是对的。在分析问题过程中,找到所求答案。不过前提条件是考生要熟悉这种语言,又要明白解题思路,这样才能正确作答。

近年来对于统一建模语言uml考查较多,已引起了考生的注意。它代表了软件工程的发展趋势,目前是可视化建模的事实上的工业标准。人们对于图的理解相对其他形式更容易一些,图能更清晰地描述和说明问题的本质,因此,uml体现了这一特点。这类题目难度与数据流图相似,自然解题思想也相同。从形式上看,数据流图更朴实一些,uml类的题目则透出一种新颖、现代的气息。

最后的题目面向对象语言是一个选做题,给考生以自由,可以发挥个人的优势。命题已注意到不同语言的考查难度的一致性,要求考生就同一问题回答,实现了形式上的公平。

应考的核心问题

要高度重视近几年的试题。试题是对考试大纲的外化,是对相应知识的梳理,直接体现考查意图。如能把历年试题研究几遍,通过考试不成问题。因此,一个高效的学习方法,就是先研究历年考试题,通过做题,巩固已有知识,强化能力。针对试题不同内容,进行归纳总结,找出自己的优势和不足,然后带着问题去读书,查找相关资料,做到有的放矢,针对性强。从应考角度讲,这种方法效率可能。

考试是对参考人的综合性评测,每个考生只要答对60%的题目就能通过考试。考过了,意味着一个学习阶段的终结,另一个学习阶段的开始,是对个人知识体系和实践能力的检测。

我的考试经验:考前集中学习是必要的,研究往年考题很重要,考试信心要增强。虽然软考的并不高,但要相信“天道酬勤”的道理。

另外,本人是在职学习计算机的,个人的经历不适用于在校生,但是学习过程是一致的。从无知到有知,从知之不多到形成一定的学科知识体系,通过实践进一步强化能力,这一过程是不能逾越的。在校生基于自身条件、所处环境等因素,会更有优势。

3、软件设计师真题

《软件设计师考试考点分析与真题详解(最新版)》由希赛it教育研发中心编写,在参考和分析计算机技术与软件专业技术资格(水平)考试历年试题的基础上,着重对新版的考试大纲(2009年修订版)内容有重点地进行了细化和深化,是此考试中软件设计师级别的考试辅导用书。《软件设计师考试考点分析与真题详解(最新版)》分为“计算机与软件工程知识篇”和“软件设计技术篇”两篇,内容涵盖了最新的软件设计师考试大纲的所有知识点,书中选取了2004年—2008年的软件设计师试题中的重点和难点部分,并进行了详细的分析和解答。准备参加考试的人员可通过阅读《软件设计师考试考点分析与真题详解(最新版)》掌握考试大纲规定的知识,把握考试重点和难点,熟悉考试方法、试题形式、试题的深度和广度,以及解答问题的方法和技巧等。随书所附光盘包含多媒体视频教学。《软件设计师考试考点分析与真题详解(最新版)》适合于参加软件设计师考试的人员,也可作为程序员、软件设计师、计算机专业教师的教学和工作参考书。 目录 上篇计算机与软件工程知识篇 第1章数据结构基础3 1.1线性表3 1.1.1栈5 1.1.2队列6 1.1.3稀疏矩阵6 1.1.4字符串7 1.1.5例题分析8 1.2树和二叉树9 1.2.1树9 1.2.2二叉树11 1.2.3二叉排序树13 1.2.4平衡二叉树15 1.2.5线索树15 1.2.6最优二叉树15 1.2.7例题分析17 1.3图26 1.3.1图的基础知识26 1.3.2最小生成树28 1.3.3最短路径29 1.3.4拓扑排序30 1.3.5关键路径31 1.3.6例题分析32 1.4排序39 1.4.1插入排序39 1.4.2选择排序40 1.4.3交换排序44 1.4.4归并排序45 1.4.5基数排序46 1.4.6算法复杂性比较47 1.4.7例题分析47 1.5查找51 1.5.1顺序查找51 1.5.2二分法查找52 1.5.3分块查找53 1.5.4散列表53 1.5.5例题分析56 第2章程序语言基础知识59 2.1汇编系统基本原理60 2.1.1机器语言与汇编语言60 2.1.2汇编程序60 2.1.3装配程序62 2.1.4宏指令63 2.2编译系统基本原理63 2.2.1编译概述63 2.2.2形式语言基本知识64 2.2.3词法分析66 2.2.4语法分析70 2.2.5语法翻译75 2.2.6代码生成78 2.3解释系统基本原理80 2.4程序语言的数据类型82 2.4.1基本数据类型82 2.4.2结构化数据类型84 2.4.3抽象的数据类型86 2.4.4类型和错误检查86 2.5程序语言的控制结构88 2.5.1表达式88 2.5.2语句间的顺序控制90 2.5.3过程控制91 2.6程序语言的种类、特点及适用范围93 2.7例题分析94 第3章操作系统基础知识101 3.1操作系统的功能、类型和层次结构101 3.2处理机管理(进程管理)103 3.3存储管理107 3.4设备管理109 3.5文件管理111 3.6作业管理113 3.7网络操作系统114 3.8嵌入式操作系统116 3.8.1嵌入式操作系统概述116 3.8.2常用的嵌入式操作系统117 3.9例题分析120 第4章软件工程基础知识137 4.1软件生命周期与软件开发模型137 4.1.1软件危机与软件工程137 4.1.2软件生命周期138 4.1.3软件开发模型139 4.1.4例题分析148 4.2主要软件开发方法149 4.2.1结构化分析和设计149 4.2.2面向数据结构的设计152 4.2.3例题分析152 4.2.4面向对象的分析与设计155 4.2.5例题分析159 4.3软件测试与软件维护163 4.3.1软件测试163 4.3.2软件维护167 4.3.3例题分析168 4.4软件工具与软件开发环境177 4.4.1软件工具177 4.4.2软件开发环境178 4.4.3例题分析179 4.5软件质量保证179 4.5.1软件质量179 4.5.2软件质量特性180 4.5.3软件质量保证183 4.5.4软件工程标准和软件文档183 4.5.5例题分析184 4.6软件项目管理186 4.6.1软件项目管理的内容186 4.6.2软件项目管理的3个阶段187 4.6.3软件项目估算188 4.6.4软件项目组织与计划191 4.6.5风险管理196 4.6.6例题分析196 第5章数据库系统201 5.1数据库管理系统的功能和特征201 5.2数据库模型202 5.2.1数据库系统的三级结构202 5.2.2数据库系统的三级模式203 5.2.3数据库系统两级独立性204 5.3数据模型204 5.3.1数据模型的分类204 5.3.2关系模型205 5.3.3关系规范化理论206 5.4数据操作208 5.4.1集合运算208 5.4.2关系运算210 5.5数据库语言212 5.5.1数据定义212 5.5.2数据查询214 5.5.3数据更新217 5.5.4视图218 5.5.5数据控制219 5.6数据库的控制功能220 5.6.1并发控制220 5.6.2数据恢复221 5.6.3安全性222 5.6.4完整性225 5.7数据仓库与数据挖掘227 5.7.1数据仓库的概念227 5.7.2数据仓库的结构228 5.7.3数据挖掘技术概述230 5.7.4数据挖掘的功能231 5.7.5数据挖掘常用技术232 5.7.6数据挖掘的流程233 5.8分布式数据库234 5.9例题分析236 第6章多媒体技术及其应用245 6.1多媒体技术基本概念245 6.2数据压缩标准246 6.3图形图像249 6.4音频250 6.5视频252 6.6例题分析252 第7章计算机的体系结构和主要部件261 7.1机内代码及运算261 7.1.1数的进制261 7.1.2原码、反码、补码、移码262 7.1.3定点数和浮点数263 7.1.4bcd(binary-codeddecimal?)码及其运算264 7.1.5文字符号的编码264 7.1.6校验码概述266 7.1.7奇偶校验266 7.1.8海明码和恒比码267 7.1.9循环冗余校验码(cyclicalredundancycheck,crc)268 7.2中央处理器、存储器269 7.2.1中央处理器269 7.2.2内存271 7.2.3外存272 7.2.4时序产生器和控制方式272 7.3输入/输出及其控制273 7.3.1输入/输出设备一览273 7.3.2输入/输出控制器274 7.3.3外设的识别275 7.3.4外设的访问275 7.3.5常见输入/输出接口279 7.3.6联机、脱机和假脱机280 7.4总线结构、指令流和数据流281 7.4.1三态门281 7.4.2总线281 7.4.3常见的个人计算机系统总线的比较282 7.4.4总线仲裁283 7.4.5指令流、数据流和计算机的分类285 7.5流水线技术286 7.5.1流水线286 7.5.2影响流水线效率的因素287 7.6精简指令计算机288 7.6.1指令系统289 7.6.2cisc和risc290 7.6.3risc结构特点291 7.7并行处理技术和并行处理机292 7.7.1概念292 7.7.2并行性的等级293 7.7.3提高计算机并行性的措施294 7.7.4并行处理机294 7.8多处理机系统296 7.8.1访问存储器方式296 7.8.2互联方式298 7.8.3多处理机的特点299 7.9例题分析300 第8章存储器系统309 8.1主存储器309 8.1.1主要知识点309 8.1.2例题分析310 8.2辅助存储器312 8.2.1磁带存储器312 8.2.2磁盘存储器313 8.2.3raid存储器313 8.2.4光盘存储器314 8.2.5例题分析315 8.3cache存储器317 8.3.1主要知识点317 8.3.2例题分析318 第9章安全性、可靠性与系统性能评测321 9.1数据安全与保密321 9.1.1数据加密算法322 9.1.2身份认证技术323 9.1.3信息网络安全协议324 9.1.4防火墙技术326 9.1.5例题分析327 9.2诊断与容错332 9.2.1诊断技术332 9.2.2容错技术334 9.3系统可靠性评价和系统性能评价方法335 9.3.1系统可靠性评价的组合模型335 9.3.2系统可靠性评价的马尔柯夫模型337 9.3.3系统性能评价338 9.3.4例题分析34。

4、如何通过软件设计师考试

我的计算机学习过程是与考试同步进行的,参加了一系列大大小小的计算机考试有十余次,其中有成功,也有失败,的收获是不怕考试。从初、中级职称计算机考试开始,参加过等级考试的二、三、四级考试,还参加过软考的网络程序员、程序员、软件设计师、系统分析师考试,还考过计算机专业在职硕士、统招硕士研究生入学考试及计算机专业自学科目的考试等。在考试的同时,也尝试着把所学知识应用于实际工作,设计过一些小软件,初步实现了学以致用。

计算机学习要经历一个从理论———实践———理论的认识不断深化的过程,下面谈谈本人通过软件设计师考试的一些体会。

软件设计师考试大纲中计算机与软件工程知识

(1)首先基础知识中涉及到计算机硬件的内容和多媒体知识以及语言知识问题,这是一个量的积累,最后实现质的飞跃。

(2)数据结构部分,这是首次学习线性表、数组、广义表、树、图、查找算法和排序及算法的分析等。这部分的学习,要吃透理论、适当加大习题量、能结合上机,深化理解。数据结构好比是武功中的内功,数据结构学习用了我一至二年的时间,以自学教材为主。吃透理论就是反复读书,以一本书为主(目前清华大学严蔚敏老师的数据结构是一个经典),可能的话,再搜罗其他版本的教程,这样可以互相印证,就同一问题,多看几本书这一做法,也可推广到其他学科的学习中。

(3)操作系统知识,主要从资源管理的角度来分析系统功能的实现。假设你要设计一个新的操作系统,如何实现它?操作系统理论就是向读者逐步介绍和解释。重点是五大管理职能的实现及其原理。

(4)计算机网络中对iso/osirm七层的划分以及各种协议的功能。传输理论、互联设备、internet知识,除参考模型理论外,其他的比较比较凌乱。  (5)系统安全问题是目前社会关注的问题,也是应用价值较高的知识,可结合现实中的相关问题来加深理解。  软考中的信息化、标准化知识是新增考点,是对基本素质的考查,也要重视。

专业英语,不是软件考试特有的,是专业知识+英语水平,考前不需专业准备,平时有意识地上网读点英文专业资料。  软考的考试内容既是大学计算机本科专业的必修课,同时又有着鲜明的侧重点,这对于没有经过系统学习的朋友们来说,无疑是一次全面、深入学习的机会,无论是自学或是参加培训,只要去学了就会对计算机有更深入全面的了解,而不只是停留在过去那些肤浅的认识上面。 以上是专业背景知识,是对软件设计师基本素养的要求。 软件设计师的专业能力 软件设计师,关键是设计软件的能力。考试大纲要求:要熟悉软件工程、软件过程改进和软件开发项目管理的基础知识;熟练掌握软件设计的方法和技术;掌握c程序设计语言及指定的四种面向对象语言中的一种。这部分专业能力严重依赖工作实践,要求有一定经验的积累,是具有工程师的实际工作能力和业务水平的体现,但目前大量在校生参加考试,虽没什么工作经验可言,但通过学习和借鉴,仍可以取人之长,补已之短。  这部分内容主要体现在下午的考试题中,现就如何应对下午的考试进行分析: 在近几次考试中,下午试题分五个题目,一个数据库、一个程序填空题、一个面向对象的语言题,另两个题目分别为数据流图、uml或流程图等。

5、猜你喜欢: