好久没更新了,主要是最近在准备教师资格证面试,然后还在写毕业设计和毕业论文,所以就没太注意文章输出了。今天这篇文章摘自我毕业论文中的专业综述。

从我的角度来看,我对于整个大学所学到的知识分为三个部分,第一部分是专业能力,第二部分是沟通能力,第三部分是学习能力。下面我将分段落来阐述这三大部分。

专业能力

对于专业能力来说,这个是我大学教育的主体。

专业能力由里及表,我主要把其分为五个子模块,分别是硬件、操作系统、编程语言、程序和业务。

这几个模块只针对于我自己的专业,根据我自己的理解划分的。

硬件

对于硬件来说,它主要分为CPU,GPU,内存,磁盘,各种IO(如网络IO)等等。硬件的组合成为了物理层面上的服务器,我在大二时学到的《计算机组成原理》即是讲这门课的。

操作系统

对于操作系统来说,从PC上来说,分为Windows和Unix,由于现在大部分服务均运行在Linux上,并且大学讲的也是Linux,所以本模块主要阐述Linux。我在大三时学到的《操作系统原理与Linux实践教程》便是主要阐述这一部分的。对于Linux来说,它从结构上来说,主要分为Shell、Kernel两层。用户程序运行在用户态,内核负责将用户程序和硬件进行隔离,以保证系统的安全性和稳定性。

从模块上来分,操作系统主要包括资源管理、内存管理、文件管理和IO管理。资源管理主要是和CPU相关的调度问题,如进程调度、线程调度和协程调度。内存管理主要是和内存有关的一些问题,如分页式,分段式,段页结合式等。IO管理主要是网络相关的IO问题,如零拷贝、DMA、阻塞非阻塞、同步异步等等。

同时,在操作系统的这个层面,还要注意网络通信这个东东。大二时学的《计算机网络》就详细地讲了端到端的通信过程。

编程语言

不包括汇编语言

在我看来,编程语言是一种工具,没有好坏之分,无论他们的语法如何,它们最后都是调用了操作系统对外的API,从而驱使操作系统去访问硬件进行存储、计算或者通信。

编程语言按照种类来分,大致可以分为面向对象、面向过程;静态语言、动态语言;编译型语言、解释型语言等等。因为这些语言的编译过程,运行环境,使用方式的不同,所以它们有了不同的场景:如JS适合前端开发,C系列适合底层和后台开发,Java适合后台开发,Python适合爬虫开发等等。但是我们始终要记住一个点,这些语言适合某一个领域,不意味着它只能用于和这个领域。譬如Java不仅可以写后台,Swing也可以写客户端,applet也可以写页面,就是这个道理。

我在大一的时候学习过《C语言程序设计》,在大二的时候学过《Java语言程序设计》,在大三学习的《软件开发新技术—JS》,这便是大学对编程语言的讲授。

程序

编程语言上层,就是程序了,用户通过各种编程语言编写各种类型的程序,我大概把他们分为以下几类:

  1. 中间件程序,如Redis, Mysql, k8s等等
  2. 框架类程序,如spring, Mybatis, Junit等
  3. 业务类程序,这个是最长见的,就是产品提需求,开发写代码的面向普通消费者的程序

对于程序来说,我们应该仔细了解它的开发流程和迭代方法:如需求评审、概要设计、详细设计、代码编写、软件测试、系统运维等等。

在这个层面中,最为重要的便是代码编写,BUG修复,架构设计的能力。

我在大一学过的《数据结构和算法》,大二的时候学过《数据库原理》、《数据库开发》、《JavaWeb开发》,大三学习的《软件测试》、《设计模式》、《UML分析》这便是大学中对程序的学习。

业务

一个好的开发人员,也一定是一个懂业务的人员。在大四实习的过程中,我逐渐明白了这个道理。当开发人员明白了业务的性质,就可以慢慢懂得业务的迭代方向,然后就可以设计出好的系统架构来提高开发效率。

对于从事软件工程专业的人员来说,除了掌握技术上的能力之外,业务能力也是必不可少的。金融业的软件开发人员需要熟悉金融知识,

沟通能力

对于沟通能力来说,这个是我大学生活的主体。无论是和朋友的交流,还是和同学老师的交流,甚至与和公司同事老板的交流,都需要用到沟通能力。

工作上的沟通包括和产品经理的沟通,如果沟通出现问题,项目就可能会返工。也包括跟开发同事沟通,方便协调进度。还包括跟老板的沟通,方便对齐目标。

更进一步,还需要具备和社会,和环境沟通的能力,我们要通过沟通去获得我们需要的信息,打破信息壁垒,更好的迭代自我。

学习能力

对于学习能力来说,这个是我大学生涯的主体。

我认为的学习能力,不是指那种填鸭式的、死记硬背的学习,而是一种周期性的,逐渐递进的一种过程。

真正的学习一定是在有需求时的学习,学习的开始一定是对一个事物有好奇心后,有自驱力的开始

学习过程一定是一个有总结有发现的过程,在学习的时候,一定要发现所学东西的特征和特别之处

学习的结果一定是一个有产出的事情,需要把学习过程中总结到的特别点用在其他方面,才算是真正掌握了之前学习的东西。

时间有点急,先发出来,回头更新