毕业总结

  通过这四个多月阶段的学习,在每个阶段都学到了每个阶段的知识,并且也有新的体会。

第一个阶段C语言,我认为有几点要注意,第一要分清学习的主次,我们刚开始学习的时候只需要将那些最重要的、最核心的学会就已经很好了!先将最精髓的东西提炼出来,再将整个C语言学一遍,从全局上把握C语言。对于那些次要的,有需要再学,没有需要也可以不学。第二要多敲代码,编程是一门实践性的学科,绝对不是理论。如果不动手“敲”代码的话,永远都学不会编程。很多问题只有在“敲代码”的时候才能发现,才会有更加深刻的体会、领悟和理解。而不是靠死记硬背书中的注意点,那样真的很痛苦。我在学习编程的时候从来都不会刻意记忆什么注意点,这些知识点都是在不停“敲代码”的过程中,自然而然地融入我的大脑里 的。

第二个阶段linux基础和C高级,首先是我对Linux系统的了解。Linux系统是一个开源的计算机操作系统,被广泛用于工业控制和嵌入式设备开发,能满足绝大部分控制要求。通过Ubuntu安装了Linux虚拟机进行学习,我目前主要学习了Linux系统中终端的使用,运用终端进行C语言编程学习和Shell脚本语言学习。现在我能熟练使用Linux终端的一些简单指令,能熟练使用终端建立文件并进行C语言编程,学习中还了解到了makefile等高级指令的使用,其次是C语言高级部分的总结。通过近一周的学习,我学会了许多C语言更加高深的知识点,掌握了指针的概念和使用方法,也加深了数组与指针的关系以及二级指针的概念。能熟练使用指针来传递变量并建立函数,并且掌握复制字符串、比较字符串、开创空间、清空空间等许多函数的原理和使用技巧,能熟练的在编写程序过程中使用这些函数。对于结构体、共用体、枚举等高级指令原理和使用方法也有所了解,目前能熟练使用结构体,但共用体和枚举还欠缺练习和加深。  Linux系统基础的掌握和C语言高级编程的熟练,是决定后面深入学习嵌入式系统的必要条件。所以认真学习这些基础知识是非常重要的,只有打下了坚实的基础才能走的长远。

第三个阶段,数据结构,通过一学期对数据结构的学习,大概的了解了基本的数据结构和相应的一些算法。下面总结一下自己这一阶段学习的收获和心得。 数据结构是什么:数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。 数据结构重要性:一般认为,一个数据结构是由数据元素依据某种逻辑联系组织起来的。对数据元素间逻辑关系的描述称为数据的逻辑结构;数据必须在计算机内存储,数据的存储结构是数据结构的实现形式,是其在计算机内的表示;此外讨论一个数据结构必须同时讨论在该类数据上执行的运算才有意义。一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率。在许多类型的程序的设计中,数据结构的选择是一个基本的设计考虑因素。许多大型系统的构造经验表明,系统实现的困难程度和系统构造的质量都严重的依赖于是否选择了最优的数据结构。许多时候,确定了数据结构后,算法就容易得到了。有些时候事情也会反过来,我们根据特定算法来选择数据结构与之适应。不论哪种情况,选择合适的数据结构都是非常重要的。选择了数据结构,算法也随之确定,是数据而不是算法是系统构造的关键因素。这种洞见导致了许多种软件设计方法和程序设计语言的出现,面向对象的程序设计语言就是其中之一。

第四个阶段,进线程,首先定义是进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有-点在运行中必不可少的资源(如程序计数器, -组寄存器和栈),但是它可与同属- -个进程的其他的线程共享进程所拥有的全部资源.同时理解到了在任一时刻,CPU总是运行一个进程,其他进程处于非运行状态。一个进程可以包含多个线程,每个线程都可以使用这些共享内存,防止多个线程同时读取一块内容可以用互斥锁,或者信号量。进线程区别在于,进程和线程的主要差别在于它们是不同的操作系统资源管理方式。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程 中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。 但对于一些 要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程。网络编程,在网络编程中要具备的基本的知识:数据通讯原理,OSI七层网络模型与TCP/IP四层网络模型,网络原理和协议。其次要掌握TCP服务器客户端和UDP服务器客户端的搭建与应用。

第五个阶段,C++,以下是我对C++的总结

概述:面向对象不只是一种程序设计方法,还是一种建立客观事物模型、分析复杂事物的思想方法,他是以人们通常描述现实世界的方法来描述要解决的问题。

类:对象是累的一个实例。类=数据结构+对数据进行操作的函数

面向对象的程序设计的基本特征:抽象、封装、继承和多态。

抽象:对一类对象进行概括,抽出他们共同的性质并加以描述的过

封装:将抽象得到的属性数据和行为代码有机的结合,形成一个具有类特征的统一体。

继承:一个新类可以从已有的类派生而来。

多态:不同对象对于同样的施加于其上的作用会有不同的反应。

第六个阶段QT,在QT的学习中还是遇到比较多的问题的,

主要在于:

1.对于Qt的SDK不熟,一些基本的使用和参数不是特别熟悉,每次都需要去查询,会很浪费时间,有空需要整理和梳理一下;

2. 不能够活用各种控件,对现有的框架进行重构和新的开发,比如最近的一个任务,需要在mainwindow中增加一个类似于office的titlebar,虽然网上能找到一些例子,但是要不不适用,比如实在普通的QWidget中创建的titlebar,要么就是改完后需要重新更改整个软件的主窗口界面,所以有的时候界面开发也需要一点思考和创意,很多问题并没有那么的简单和直接,往前多想一步,很多时候就可以找到解决方法。

当然,最主要的还是要多练习,多思考,多解决一些界面相关的问题,后面就会越来越熟悉。至于具体的模块,各种SDK的使用需要有些了解,才能很快查到使用方法。

第七个阶段ARM,我了解了ARM体系架构,学会了ARM汇编,点亮ARM板子的LED灯,并且学会串口的使用和中断的使用,过程虽然艰辛,但是收获满满

第八个阶段,ARM系统移植,在烧写系统的前期准备,需要安装交叉编译器,搭建主机,

移植过程:一、搭建交叉开发环境二、Boot loader的选择和移植三、kernel的配置、编译、和移植四、根文件系统的制作

第九个阶段:主要学习了掌握了linux字符设备驱动的步骤,及其相关函数,了解了Linux 设备号等等相关知识,但是不够深入,所以后续如果工作方向有驱动,则会详细学习。

第十个阶段:项目开发,在这次项目进行过程中,遇到了很多问题,也学到了很多,对套接字,多线程,和响应函数有了更深的理解,在以后的学习过程中遇到问题会更加沉得住心解决。

经过这十个阶段的学习,基本确定了工作的方向嵌入式软件,因为对硬件的理解比较浅显,所以,工作方向以嵌入式软件为中心。

最后,在这四个多月的学习和生活中,不仅仅在老师们的带领下学习到了丰富的知识还结识了一些新朋友,同时和老朋友在一起学习交流的时候关系也进一步增进。来到华清的这四个多月挺充实的,感觉自己的学习能力也有所提高,很庆幸有这次经历,以后想起这段经历能够鼓舞自己以后的学习和生活。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值