1. 嵌入式软件工程师需要学什么
嵌入式软件工程师需要学什么?
对嵌入式LINUX操作系统及其上应用软件开发目标:
1、 掌握主流嵌入式微处理器的结构与原理(ARM9相对比较容易)。
2、 必须掌握一个嵌入式操作系统,如LINUX系统,这是一个开源的系统。
3、 必须熟悉嵌入式软件开发流程并做一些嵌入式软件项目。
学习路线:
1、硬件知识
对于硬件部分要求并不高,只要能看懂原理图,看懂通信协议,看懂芯片手册就可以。不求能设计原理图,更不求能设计电路板。如果能有一些《数字电路》的基础就更好,没有也没关系。我们主要掌握硬件工作原理。要掌握常见硬件,如ADC,PWM,UART、I2C、SPI等。
2、编程语言学习
学习C语言,推荐C语言的设计者Dennis M. Ritchie和著名计算机科学家Brian W. Kernighan编写的一部介绍标准C语言及其程序设计方法的著作,《C程序设计语言》。
3、学习LINUX系统编程
首先学会使用了解LINUX,学习LINUX命令,软件安装,工具使用。
学习文件IO,多进程多线程,进程间通信,套接字等。推荐《UNIX环境高级编程》,《TCP/IP详解 卷一》
4、学习LINUX设备驱动
首先需要学习LINUX内核基础部分,包括内核配置编译,内核模块,并发控制,字符设备,设备模型,平台设备等。
在学习常用驱动框架,如INPUT系统,帧缓冲驱动,网络设备驱动,块设备驱动,音频设备驱动等,掌握这些驱动框架,了解原理,总结哪些部分需要我们实现。基础部分可以参考《Linux设备驱动 第三版》,该书虽然老,但是原理讲的比较透彻,还可以参考。驱动框架可以到网上搜素资料,网上有很多关于驱动框架的介绍,这里就不推荐具体的文章,大家可以自己找一下。
2. 大数据开发工程师要学习哪些课程
编程没有捷径可言,或许天赋有点作用,但是不坚持长期练习,开发大脑,是不可能成为高手的。
其次,程序语言基本上五花八门,多达上百种,到图书馆看看便知,而且很多软件自带就有一种开发语言,所以一定不可贪多。
然后,主流的当然是C系语言,从C到C++到C#或者Java,这是一条基本路线,至于汇编语言除了计算机专业的人,一般不会去接触的。
接下来讲讲应用范围:
C语言适用于系统开发,比如操作系统,嵌入式编程,单片机编程等,比较底层;
C++适用于大型桌面软件开发,几乎所有的大型桌面软件都是用C++开发出来的,由此可见,C++是一个非常强大的语言。
C#适用于非计算机专业,以行业应用为主的人,因为不需要掌握太多的技巧,上手快,很受广大非计算机专业的人的欢迎,可以这么说,C#的出现改变了人们对于程序的恐惧,老少皆宜。
Java就不用说了,如今风靡全球,适用于网络开发,手机开发,Java是应网络时代而生,所以学Java就是学Web开发,桌面软件还是C++的江上。
,建议学习C++或者Java。