要参加软件设计师的考试,务必购买两本书:
《软件设计师教程》《教程》建议买教育部指定的教材,
《软件设计师历年试题解析》。《解析》倒也无所谓,张友生老师的分析似乎更全面、更有针对性。
另外还有《软件设计师大纲》,在复习过程中阶段性地查一查,梳理一下知识结构体系,可以查缺补漏。
1、具体学习每门课程的方法
(1)软件工程。软件工程是复习的重点,不但上午题当中占10左右,而且下午题里也有2道软件设计分析方面的题目,一定要熟练的掌握书本中说到的各种软件分析设计方法及有关的分析用图,对各种图的功能作用和制作方法(特别是各种图的组成元素)以及各种图之间的转换及联系(如果有的话),UML面向对象的软件设计方法及面象过程的软件设计方法完全理解,软件测试要达到理解的程度,其它的内容只有去强记了,因为基本是都是上午题,而且每年的题都不定,但与CMM有关的一定会有。
(2)数据库。数据库部分也很重要,上午有5分左右,下午至少有一道数据库的题目,而且也一定是考关系型数据库,E-R模式也要搞懂,可由它导出关系,一定要弄懂关系数据库的几个范式及关系的建立方法。
因此,就要对关系数据库的基础概念非常清楚,如键的定义,函数依赖,范式的定义、作用及转换是建立关系的基础。数据的并发控制,要熟练掌握SQL常用的几个语句,最好是用笔将每个语句写上几遍,对语句的各种形式加深记忆,数据库的学习还是不太难的。因为考试不会考数据的物理存储及数据安全,感觉这方面的知识更难,交叉学科更多。
(3)学习数据结构和算法。数据结构和算法是考试的重点内容,它的复习以普通的教材为主,对数组、链表、队列、栈、树及堆等基本的数据组织方式要非常熟悉(要做到看见算法就知道要用什么数据组织方式更高效),排序、索引及图的各种算法要了然于心(算法的分析过程及代码要非常清楚),算法的分析方法达到理解应用的水平。
对C语言要非常熟练(要会应用C语言语句的一些技巧,如可以利用函数的返回值做为判定条件,在循环中对数组的处理可使用a[i++]来提高编写代码的效率,这类的小技巧只有通过大量的阅读代码才能提高),如果是初学面向对象方面的高级语言,建议还是先学C++,感觉它更象一种语言规范,而Java是一种编程的工具并且由于它的跨平台特性所以它有很多自己独有的功能和特点,有时间一定要看一本C++语言的数据结构,它能使你更全面和深刻的理解类及对象的编程方法。
算法的学习不是一朝一夕就能提高的,一定要静下心来学习一些经典算法,比如:穷举法、贪婪法、分治法、迭代法、递推法、递归法、回溯法;找一些有名的算法程序来分析,比如:背包问题、组合问题、斐波那契数列、马踏棋盘问题、货朗担问题、八皇后问题、迷宫问题、汉诺塔问题、约琴夫环问题等。
有了这些算法思想在你的头脑中扎根后,当看到问题,就自然的想起用什么方法来求最优解了。
(4)程序设计语言。程序设计语言包括C语言、编译原理和面向对象的程序设计语言(通常以C++为例)。编译原理一定会考词法分析,它是后面编译过程的基础。主要考的内容是NFA与DFA的转换、正规式与有穷自动机的转换等。
文法分析有一年考过下午题,这科对初学者比较难,比较抽象,理论性也比较强,反正我是学了4个来月才学通一点,这课复习没什么技巧,听听希赛的“编译原理视频教程”,学起来更快一些。
C语言要掌握好三种基本结构、数组、链表、结构体、共用体、参数传递、指针及指针数组、指针函数等等。面向对象的程序设计语言要对基本概念及初步应用要了解,考得不深。
(5)面向对象方法学。面向对象方法学不但是上午的考试重点,也是下午的考试重点。上午平均有12分左右,而下午有30分,一道与UML图形有关的题目,一道面向对象程序设计的选做题。所以要好好掌握这一块。UML当中的类图、用例图、状态图、协作图要掌握好,考试中会常出现。(老师多次强调这个要学习的知识点,我通过做题,认为老师抓的很准。)
(6)操作系统。操作系统没什么说得了,把它的几个功能模块搞清楚及相关的算法搞清楚就好了,如处理器的管理、存储管理、设备管理、文件管理及系统安全,其中我认为比较难理解的是PV操作(在并发进程中它的应用非常灵活)和中断(反正这个对我比较难),一定要把相关内容所讲到的算法及分析过程搞懂。当然还要注意进程死锁的问题,段页式存储的问题。
其它课程的复习就按考试大纲进行,把里面的概念搞清楚,因为它大部分都是上午题。
2、看书与练习相结合
“看书时要有目的性,带着任务走,;看后做题进行巩固,所以看了书以后,要找一两个相关的题来做一做。
某位前辈的经验,大家看一下吧!
首先说明这帖子算是对自己软考\高程的一个总结,常看见有人说没看书直接考就过了,我只能说你是超人,但超人毕竟不多。另外还看见有人在问什么计算机等级和高程的难度,我只能说这二个考试真不是一个档次上的,等级真是太简单了我是真没看什么书就过的3级,但软考可是真要下些工夫哦!
就考试准备时间来看,我认为基本2-3个月就足够,我把我的时间安排写出来做为大家参考:周末基本休息传奇或CS或看看片子或睡觉,反正什么能让我放松就做什么。平时白天上班晚上看书晚9点到12点至2点不等,看精神状态。
2005-08-02--2005-08-14 离散数学
2005-08-15--2005-08-22 java
2005-08-23--2005-09-03 武汉出差,出来后看书时间不多,感觉java不知道考什么难度、困惑;决定还是选C++好歹以前考试中考过,可以推测大概难度,晚上在宾馆把《数据结构、算法与应用--C++语言描述》初翻了一遍
2005-09-06--2005-09-23 C
2005-09-27--2005-10-08 教材
2005-10-11--2005-10-15 不知道搞什么去了,反正没咋看书,总算把高程全真试题精解上的的题翻了一遍,说实话当时很疲倦,身体上的精神上的。。。。。
2005-10-18--2005-10-23 蛙跳~把觉得薄弱的需要死背的地方复习1遍即新教材上的第2章、第4章、第7章、第8章、第9章、第10章
2005-10-25--2005-11-04 总复习~(最后一周休假在家)教材从头看一遍、所有试卷做一遍
2005-11-05 上午休息睡觉,中午起来吃了2个包子走到考场看了看,下午3点多看宜昌的太阳比较暖和 去长江边看了看老人钓鱼~想不到11月也有放风筝的~强~~~还居然有10几米长1条大龙
----------------------
就考试内容来看,上午基本为理论,要说全死背也不一定,活的东西还是占一部分如数据结构、编译原理等,完全死背估计还是不太好过,关键还是要理解,考试中出现书上原文的机会有但不多,有时会出现书上没有的一些东西。不过最多不会多于20分所以有时也看运气和你的知识面;下午是设计一般前3题为数据流图、uml一类题,sql一般也会涉及,其实sql和以前的casl一样都是送分的这部分一定要力求全拿。可惜送的没以前casl多,去年第4题为PV操作,第5题为C or C++ or java 我选的C,其实可以选C++或java难度小很多,今年的C也很简单,郁闷的是我居然很错了几个空,也怪自己心态不好,差45分钟时我正卡在第4题的问题2上,这时我左前方的一个MM居然起身交卷了,搞的我马上心有些急了,跳过第4题开始做第5题,也没看后面的C++ java题,现在看起来比C简单好多哦,当时心太毛初看了下觉得很简单就很快做完了,然后就把所有时间放到第4题了,当我交卷走出教室的那一刻我忽然觉得那道C有几空填的有些不对,可惜也不能再看了,晕啊9分啊,当时真是烦死那女的了。不过还好后来查分擦线通过,所以也提醒你们考试中要心静如水,能说的就这么多祝各位好运~~~
----------------------
考试指定教材:
99年以前版本 个人认为内容上比较全面,以后在2004年版本前的教材基本都是在此版基础上修改
程序员级.高级程序员级 程序设计--张福炎 清华出版社
程序员级.高级程序员级 硬件知识--王爱英 清华出版社
程序员级.高级程序员级 软件知识--施伯乐 清华出版社
2000年版本 个人认为基本是对上版本教材的缩编,内容大幅减少,不过同时因为篇幅关系很多内容写的并不清楚,但考试中却会出现
程序设计 高级程序员级 王春森 清华出版社
2002年版本 个人认为基本为垃圾书和2000年的版本相比没有太大修改,完全是黑大家的钱
(高级程序员)系统设计师教程 王春森 清华出版社
(高级程序员)系统设计师同步练习 清华出版社
2004年版本 个人认为内容修改很大添加了知识产权、标准化等内容,另外对老教材中叙说不清楚的地方加以修改补充,但估计是出版时间较紧的关系,该书错误很多,部分程序也写的不好看
软件设计师教程 陈平 褚华 清华出版社
----------------------
可用参考书:
C程序设计 潭浩强 清华出版社 (经典书学C推荐)
数据结构、算法与应用--c++语言描述 Data Structures,Algorithms,and Applications in c++
----Sartaj Sahni
----汪诗林 孙晓东 译 (此书比较经典CSDN上曾推荐,不过不看这书估计考试也能过)
编译程序构造原理和实现技术--金成植 高教出版社 (教材上这个章节内容不多,写的也不是很清楚,看看别的教材学的会快些,不用全看作为手册查阅即可)
SQL SERVER6.5 开发使用手册--Stephen Wynkoop 机械工业出版社 (同样该书可作为教材sql部分的补充,不用全看作为手册查阅即可)
离散数学--耿素云 屈婉玲 张立昂 清华出版社 (考试中离散数学部分分不多最多不会大于5分,不过对我这种鸟语不太好,10分放弃的就得在这上边拣点分了,我从来就是英语题全部选B or C题都懒得看,据我对这几年考试的研究全选B or C得3-4分的概率较大。我上午分不高50分,反正也及格了)
高程全真试题精解 1991-1998试题 大连理工(本来卷子网上都有但91-98年全打出来估计也不太好看,另外这本书把考题都分类适合考前做练习用,99-现在的卷子建议大家就不用买了,上网下了打出来看,这样做了也知道错在哪并适合做批注)
高级程序员就是软件设计师,只是改了一说法罢了!
书的话,如果有条件的话就买清华大学出版的软件设计师的教程
其实看课本也可以
数据结构 软件工程 操作系统 编译原理 计算机组成原理 数据库 几门语言(主要是JAVA C C++)
多媒体 计算机网络 计算机安全 离散数学 等
看的书也比较多
软件考试教程,,清华大学出版社
软件教程 清华的