软件设计师(中级)全过程总结

简介: 软件设计师总结

宏观

 学习感受

 第一次参加软考,感觉一切还是非常顺利的。软考相较于自考来说准备的还是比较充分的。对于学习软考的整个周期当中进行了模块形式的划分,把软考整体的内容进行了逐步学习和总结。和软考小组的伙计们一起讨论。公共性的问题和其他组进行讨论,这个过程是十分重要也是让我们深入学习和很好的理解一个知识点的重要组成部分。

 阶段划分

 学习软考的过程分为以下几个阶段:自己看书和看视频的学习、学习的知识点和课后题进行结合、做往年的软考真题、提炼出相对来说难以攻克的问题组织分享和讨论、小组讨论做错的题并进行结构化。

微观

 1.自己看书和看视频:

 这个阶段是我们丰富我们的知识面,对于一些基本概念的熟悉和掌握。由于软考中的大部分内容在学习自考的时候都有接触过。所以这个阶段进行的速度非常的快。结合三遍读书法和思维导图的学习方法很快的就进行完了软考书和软考视频的学习。

45f1254add7048d39f2600ade1a0a324.png

9af9c59c5d554e9ab5b4da43edebd863.png

f4355b0a3bfa4326924890d8384f62be.png

 软考的每个部分都进行了思维导图的绘制。对于每个思维导图中还会有每个章节的思维导图。因为三遍读书法每一遍的侧重点都是不一样的。

 2.学习的知识点和课后题进行结合

 对于在视频中接触到的知识点或者是在书中学习到的知识点和课后题进行结合,在晚上找一些相关的资料进行更加容易的去理解。

a329b51149da441ca234bf755e67fb73.png

d61d9f5c4bea48579bbc0005f7ce7c04.png

 3.做往年的软考真题

 把书中的知识点和课后题目对应完毕之后,明确了每一道题想要考的知识点以及想要我们具体掌握哪些知识了。但是我们最后还是需要考试的。我们需要知道具体考试的时候,题型是什么样子的。有没有一些固定性的格式或者套路在里面。这些是需要我们通过做往年的真题获取到的。

c2e8f304eb154247ac1a45e657703a48.png

4171f7425b6f48ff8d240712cec2060e.pngc42d394ae4b64b2b84a2f7846059946e.png

 对于一些经常出错的问题进行了记录,并且以软考小组为单位进行了讨论。大家都不清楚的问题,把问题进行划分。划分到每个人的身上进行深入的学习。

 4.提炼出相对来说难以攻克的问题组织分享和讨论

 大家的问题基本上集中在下午题的设计模式和算法当中,对于每个设计模式之间的区分使用场景等内容都不是很清楚。对于每种算法的时间复杂度和空间复杂度也不是很清楚。针对这些内容进行了针对性的学习和分享。知识最怕的就是你研究和讨论,你会发现通过不断的学习和反复的研究你会非常的明白。

c06e672183774d59888abe6953385cbc.png

 写了每个算法对应的代码,根据代码分析了时间复杂度和空间复杂度

b708c77401a342829e647f5d0e257fba.png

 这是堆排序的代码实现

package com.wzl.Algorithm.HeapSort;
import java.util.Arrays;
/**
 * @BelongsProject: demo
 * @BelongsPackage: com.wzl.Algorithm.HeapSort
 * @Author: Wuzilong
 * @Description: 堆排序
 * @CreateTime: 2023-04-29 11:45
 * @Version: 1.0
 */
public class HeapSort {
    public static void heapSort(int[] arr) {
        int n = arr.length;
        // 构造大根堆
        for (int i = n / 2 - 1; i >= 0; i--) {
            heapify(arr, n, i);
        }
        // 交换堆顶元素和最后一个元素,并重新构造堆
        for (int i = n - 1; i >= 0; i--) {
            swap(arr, 0, i);
            heapify(arr, i, 0);
            System.out.println( Arrays.toString(arr));
        }
    }
    private static void heapify(int[] arr, int n, int i) {
        int largest = i;
        int left = 2 * i + 1;
        int right = 2 * i + 2;
        if (left < n && arr[left] > arr[largest]) {
            largest = left;
        }
        if (right < n && arr[right] > arr[largest]) {
            largest = right;
        }
        if (largest != i) {
            swap(arr, i, largest);
            heapify(arr, n, largest);
        }
    }
    private static void swap(int[] arr, int i, int j) {
        int temp = arr[i];
        arr[i] = arr[j];
        arr[j] = temp;
    }
    public static void main(String[] args) {
        int[] numArray={4,6,3,5,9};
        heapSort(numArray);
    }
}

我分享的内容是分治法:法治算法详解

针对设计模式进行了二维表的对比和总结:

ab5e11c1a2194763b1dd30f7268a53c9.png

每类模式都画了对应的二维表进行比较

d76a1e7b4cac45d7a0f214425c8c46c2.png

每个模式都画了对应的类图

7d5ef129bfdd41ee90ce9ea55bbe3726.png

6acea846f8b7402dab7b9887b39e55be.png

对于学习设计模式中有疑惑的点,也进行了分享。讨论和研究就是我们攻克难题的最好方式

86e02526a258409895ccfa4c8425bf24.png

 5.小组讨论做错的题并进行结构化

 进入到这个阶段大家对于软考的内容都已经有一个大致的了解了。剩余的就是对于一些概念性的内容进行结构化了。比如软件设计的各个模式、软件质量、UML图的对比等内容。这些内容都是需要我们进行结构化的,赋予一些自己理解起来比较容易的意义。结构化的方式有很多种。适合自己能够让自己印象深刻即可。举个例子来说,对于专利和商标权的申请。如果两个人都同时申请了专利不能够确定最终的专利权给谁,不采取抽签的形式。但是如果两个人同时申请了商标权不能够确定最终的商标权给谁,那么就采取抽签的形式来决定。通过结构化的方式印象深刻就是申请专利需要给你钱所以不抽签,申请商标权你需要交钱,所以采取抽签的形式来决定(结构化可能与实际不太符合,方便理解和印象深刻是我们的目的)

768c8074d4344bafa7772c7a0f80bcf9.png

0829b04b23c54642a1d1da0e9595cff2.png

dc5f422657a7497f9ddf9308591e2f45.png

总结

学习时间上

按时间安排一定要合理,不要快考试了才学习。要把时间划分到每一天的计划当中每天学习的内容要和番茄进行结合,以番茄为单位进行。

学习方法上

和软考小组进行讨论是一个必不可少的部分。讨论的过程中会纠正我们的认识将学习的内容进行结构化,结构化让我们的知识彼此之间有了联系。而且印象深刻。达到牵一发而动全身的效果。

学习形式上

确保每个阶段有输出的产物,比如思维导图、知识之间比对的二维表、博客总结等内容

学习是需要套路和模板的,每次学习新的内容按照我们一贯的套路学习,把知识点从多个维度去理解和划分就会变的很容易

软考完事了,做题的过程中感觉还是非常简单的。有很多的内容是和软考小组的伙计们讨论的时候遇到的。考试整体下来还是非常顺利的。相较于自考来说也更加的放松。机会都是留给有准备的人的。付出是有回报的



相关文章
|
6月前
|
测试技术 开发工具 C++
【软件设计师备考 专题 】软件开发环境和工具
【软件设计师备考 专题 】软件开发环境和工具
133 0
|
人工智能 大数据
1+X大数据分析与应用中级备考经验
作为上海城建职业学院人工智能应用学院大数据技术专业的专任教师,在2020年12月份指导学生参与阿里巴巴《1+X大数据分析与应用中级》考试中,取得了优异的成绩。34位参加考证的同学,共有27个同学通过了考试,再次分享备考经验,以供参考。
2508 2
1+X大数据分析与应用中级备考经验
|
6月前
|
开发框架 编译器 测试技术
【软件设计师备考 专题 】系统开发准备:环境和计划
【软件设计师备考 专题 】系统开发准备:环境和计划
91 0
|
6月前
|
存储 传感器 安全
【软件设计师备考 专题 】描述软件需求的多种方法
【软件设计师备考 专题 】描述软件需求的多种方法
112 0
|
6月前
|
供应链 Oracle 关系型数据库
【软件设计师备考 专题 】常用应用系统
【软件设计师备考 专题 】常用应用系统
61 0
|
6月前
|
设计模式 测试技术 开发工具
【软件设计师备考 专题 】软件工程基础:理解软件开发生命周期
【软件设计师备考 专题 】软件工程基础:理解软件开发生命周期
123 0
|
6月前
|
存储 安全 数据库
【软件设计师备考 专题 】企业信息资源管理基础知识
【软件设计师备考 专题 】企业信息资源管理基础知识
84 0
|
6月前
|
监控 项目管理
③ 软件工程CMM、CMMI模型【软考中级-软件设计师 考点】
③ 软件工程CMM、CMMI模型【软考中级-软件设计师 考点】
116 0
|
项目管理
PMP备考之路 - PMBOK第十三章(项目相关方管理)
PMP备考之路 - PMBOK第十三章(项目相关方管理)
74 0
|
存储 项目管理
PMP备考之路 - PMBOK第十章(项目沟通管理)
PMP备考之路 - PMBOK第十章(项目沟通管理)
58 0