学习编程应该如何选择一门语言?这是大多数初学者内心最大谜团!
如果抱着“学一门语言好找工作”的心态,那可能你的眼界和学习思路都会受限变窄。“软件人员要把眼光放长远,尽量往中高级方向走,提升自己的核心竞争力,才不会被时代淘汰。”来自一位前辈的真诚建议。
所以,如果你希望把工作当成事业、深入了解软件编程的主心骨,那么C/C++这一类底层语言,是你一定要学习和掌握的。
特别是C++,作为C语言的延伸和强化,它一直是大公司大厂钦点的开发语言。
如今自学成风,C++也不乏大佬自学。但是,在初期找不到感觉和项目练手写代码的话,学习效率非常低。这里给大家找到了一个全面的、众多初学者认可的C/C++学习计划。
每一部分计划的最后,还有学习资料可以领取。让你少走些弯路,一直是我们的愿景。
一、嵌入式
(一)嵌入式就业领域
1、就业领域
物联网、智能家居、智能医疗、智能汽车电子、智能硬件产品开发等。
2、具体职位
嵌入式软件工程师、嵌入式硬件工程师、嵌入式系统工程师、嵌入式应用/驱动/内核/移植工程师等。
(二)嵌入式知识架构体系
1、懂硬件
懂硬件的一些原理,至少能看懂原理图,会设计原理图加分;
PCB设计软件Altium Designer,PADS等;
会结构设计,会焊板,交付专业制板公司制板。
2、C/C++语言和数据结构以及简单算法
基本C/C++语法、数据类型、数组、指针、结构体、链表、类、模板、文件操作、队列、栈等。
3、Linux操作系统基础
Linux操作系统的概念、安装方法;
详细了解Linux下的目录结构、基本命令、编辑器VI、编译器GCC、调试器GDB和Make 项目管理工具;
Makefile Shell脚本编写等知识;
嵌入式开发环境的搭建;
SDK做二次开发。
4、Linux网络编程
TCP/IP协议、socket编程、TCP/UDP网络编程、HTTP;
走物联网方向,一定要熟悉一些云存储相关的网络接口,比如亚马逊、阿里云等。
5、外设协议与射频
简单通信接口:UART、I2C、SPI、CAN、USB、GPIO、WiFi、SDIO芯片;
网络通信接口:以太网;
其它输入接口:键盘、鼠标、AD器件、LCD、433、2.4G等无线通信模块;
走物联网方向,一定要熟悉MQTT协议。
6、了解嵌入式平台系统原理
系统资源、时钟控制器、电源管理、异常中断控制器、nand flash控制器等模块,为底层平台搭建做好准备;
Linux平台包括:内核裁减、内核移植、交叉编译、GNU工具使用、内核调试、Bootloader制作与原理分析、根文件系统制作,以及向内核中添加自己的模块,完整的移动软件。
7、驱动开发
熟悉Linux的内核机制、驱动程序与用户级应用程序的接口,掌握系统对设备的并发操作;
熟悉所开发硬件的工作原理,具备ARM硬件接口的基础知识;
熟悉处理器各资源、掌握Linux设备驱动原理框架;
熟悉工程中常见Linux高级字符设备、块设备、网络设备、USB设备等驱动开发;
在工作中能独立胜任底层驱动开发,做好配置。
(三)嵌入式公司推荐
一线:华为海思、中兴通讯
二线:米尔科技、周立功、联发科
是不是很精彩,当然这只是一部分,后期会继续更新,期待大家的到来。