我自己是从今年2月多开始来到培训机构(华清)学习的,以前的我自己也尝试过自己自学,但是中途自己还是被我自己打败了,所以我觉得如果自己自制力不是很好的话,还是建议自己寻找一些线下的课程,因为有老师带你,还有一学习的同学,我觉得学习的氛围还是很重要的,也认识了不少朋友。
我现在学习过的知识虽然不是太多,但也掌握了许多自己没有接触过的的知识(C语言、Linux基础、高级C、数据结构、IO编程和进程与线程),虽然现在我所掌握的知识离成为一名合格的嵌入式软件开发工程师还具有一定的距离,但是我觉得只要我们沉下心来,慢慢学习,后面一定可以成为一名合格的嵌入式安全开发工程师。
我在当前学习中自认为比较重要的知识点:
C语言:
条件判断(if、switch)、循环(for、while、do while、goto)、形参和实参的区分(以前的我自己分不清,你们要是觉得容易可以忽略)、掌握关键字(我以前对于enum、union等关键字不是太清晰)、宏(只是做替换,我们不要自己给它加括号)等。
Linux基础:
虚拟机的安装、vi的使用,shell命令的使用,Linux虚拟机的网络配置和三个服务的安装与使用(Samba、ftfp、nfs)等
高级C:
数组、指针(非常重要,需要熟练掌握,因为后面的大量知识都是与指针相关的)、函数、结构体(struct、union、enum)、条件编译(增强兼容性)
数据结构:
链表(循序表、单项链表、单项循环链表、双向链表、双向循环链表、内核链表),这其中我觉得让我感到不太适应的就是内核链表,因为内核链表是由linux开发人员编写好的函数,我们只要调用就好了,但是函数比较多,函数的形参的意义也要自己明确,这对于英语不好的自己有点难受,所以自己要多花时间去看和去写。
I0编程:
文件的7中格式(常规文件-、目录文件d、块设备b、字符设备c、管道p、套接字s、符号链接l)、格式化标准IO(fopen、printf、fprintf、sprintf、snprintf、scanf、fscanf、sscanf、fclose等)和非格式化标准IO(getc、fgetc、getchar、fgets、gets、fputc、putc、putchar、fputs、puts等)、缓冲区(行缓冲、块缓冲、不缓冲)、时间IO(time、ctime、localtime、asctime等)、文件IO(open、read、write、close等)。
进程与线程
认识进程(进程:程序的动态执行过程,程序:为了达到某一目的而编写的一系列的指令集合)、进程的状态、进程的生老病死(fork、exec函数簇、kill -9、exit、_exit、return、wait、waitpid等)、守护进程的创建(7步)、进程间的通信(无名管道、有名管道、信号、共享内存、信号量、消息队列、套接字)、线程的创建和使用(pthread_create、pthread_join、pthread_exit等)。
以上是我自己的一些不全面的总结,其实很多的地方都还有很多细节的知识,那些细节的知识也是我们需要掌握的,所以我们只有在后面的学习和以后的工作中慢慢重复和慢慢使用才可以掌握的更加牢固,我们才可以更上一层楼。随着知识量的增加,很容易忘记一些知识是很正常的,我们需要多回头看看,多敲代码,到时候自然就掌握了。
Copyright © 2004-2024 华清远见教育科技集团 版权所有
京ICP备16055225号-5,京公海网安备11010802025203号