首页 > 更多知识 发布时间:2023-04-13 12:30:04

程序员软考中级用书


软考程序员需要读哪些书,每个一项列举两本
在学习程序之前,我想大家首先应该对程序员这个行业熟悉一下,更加要对编程的语言以及所涉及到的工具有所了解。因为如何了解这些是很难去给自己一个明确的目标的。
  以下是书籍推荐:
  《程序员教程》官方教材,建议一定要看,
  《程序员考试考点突破、案例分析、实战练习一本通》
  内容紧扣考试大纲,通过对历年试题进行科学分析、研究、总结、提炼而成。每章内容分为考点突破、典型试题分析、实战练习、练习题解析四个部分。
  《程序员考试考点分析与真题详解(第4版)》
 
 着重对新版的考试大纲内容有重点地进行了细化和深化,是此考试中程序员级别的考试辅导用书,内容涵盖了最新的程序员考试大纲的所有知识点,准备参加考试
的人员可通过阅读本书掌握考试大纲规定的知识,把握考试重点和难点,熟悉考试方法、试题形式、试题的深度和广度,以及解答问题的方法和技巧等。
  以上三本书是考试要看的,在看书过程中注意梳理知识点,理清各个知识点中的联系,多做真题,考试就没什么问题了,祝考试顺利!
考“软考”的软件设计师,该看什么书?
要参加软件设计师的考试,务必购买两本书:
《软件设计师教程》《教程》建议买教育部指定的教材,
《软件设计师历年试题解析》。《解析》倒也无所谓,张友生老师的分析似乎更全面、更有针对性。
另外还有《软件设计师大纲》,在复习过程中阶段性地查一查,梳理一下知识结构体系,可以查缺补漏。


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、看书与练习相结合
“看书时要有目的性,带着任务走,;看后做题进行巩固,所以看了书以后,要找一两个相关的题来做一做。
软考程序员要看哪些书?
初级程序员考试:考试科目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 物理数据设计
确定数据组织方式、存储介质,设计记录格式和处理方式
1.4 详细输入输出设计
界面设计、报表设计
1.5 内部设计文档
对程序接口、程序功能、人机界面、输入输出、测试计划的描述
1.6 内部设计文档
2. 程序设计
2.1 模拟划分(原则、方法、标准)
2.2 编写程序设计文档
模块规格说明书(程序处理逻辑的描述、输入输出数据格式的描述)
测试要求说明书(测试类型和目标、测试用例、测试方法)
2.3 程序设计评审
3. 程序实现
3.1 编程
编程方法和标准
程序设计语言的使用
人工检查
程序文档化
3.2 程序测试
准备测试环境和测试工具
准备测试数据
写出测试报告
4.程序设计语言(C语言为必选,其他语言可以任选一种)
4.1 C程序设计语言(ANSI C标准)
程序结构,语法,数据类型说明,可执行语句,函数调用,标准库函数,指针
4.2 C++程序设计语言(ANSI C++标准)
C++和面向对象程序设计,语法和程序结构,类、成员、构造函数、析构函数、模板、继承、多态
4.3 Java程序设计(Java 2)
Java和面向对象程序设计
语言机制(程序结构和语法,类、成员、构造函数、析构函数、继承、接口)
4.4 Visual Basic程序设计(Visual Basic 6.0)
用户界面设计
程序结构和语法
文件系统对象
访问数据库
软考该看什么书?急求推荐!!!
您的基础比较弱,如果C, C++,Java基础还行,只是没有大学基础的话,推荐您两本书,第一本《跨越软件设计师精讲精练》,清华大学出版社,主编范立南,上面有重点讲解,常见考点划分,基础例题详解,可以给您很大的帮助,上面的例题都看懂了会做了,就肯定轻松考过。如果基础实在不好,除了看精讲精练的同时,可以辅以《软件设计师教程》 ,遇到不会的基础知识点找找教程里有没有讲解。