嵌入式方向考研好还是就业好?
从事嵌入式软件开发的优势在于:
(1)目前这方面的人国内外都比较稀缺。该领域进入门槛高,非专业IT人员很难切入该领域;另一方面是因为这个领域比较新,目前发展太快,大部分人都是无条件接触。
(2)与企业计算等应用软件不同,嵌入式领域人才的工作强度通常较低(但收入不低)。
(3)如果有一天你想创业,想做自己的产品,嵌入式软件不像应用软件那么容易被盗版。硬件设计通常由其他公司定制(这叫“OEM”),都是常见的硬件。我们只是设计软件,成为自己的产品。
(4)兴趣,这是最重要的。
从事嵌入式软件开发的劣势有:
(1)起点高,使用的技术往往难度较大。如果软硬件基础不好,尤其是操作系统级软件基础不深,可能不适合此行。
(2)该领域的企业数量远远少于企业计算企业。
(3)少数公司往往要求硕士以上学历的人从事嵌入式技术,主要是基于嵌入式技术的难度。但是大部分公司没有这个要求,只要有经验就行。
(4)平台支撑强,换平台难。
兴趣的起源:
1,不同的成功概念,不浪费我的生命,就是我的成功。
2.喜欢思考,挑战逻辑思维。
3.比如c
c是一种可以发挥思维极限的语言。C精神的某些方面可以概括为如下短句:
信任程序员。
不要阻止程序员做需要做的事情。
保持语言简洁明了。
做手术的方法。
让它跑得足够快,虽然不能保证便携。
4、喜欢底层开发,讨厌vb开发工具(不是说vb不好)。
5、发展前景好,适合创业,快死了也不想当工程师。
方法步骤:
1,基础知识:
目标:我能理解硬件的工作原理,但专注于嵌入式软件,尤其是操作系统级软件将是我的优势。
科目:数字电路、计算机组成原理、嵌入式微处理器结构。
汇编语言,C/C++,编译原理,离散数学。
数据结构与算法,操作系统,软件工程,网络,数据库。
方法:科目虽多,但都是简单的基础,大部分已经掌握。不必全部学习,但可以根据需要选修。
主要书籍:《c++编程语言》(还没来得及看)和《数据结构——C2》。
2.学习linux:
目的:深入掌握linux系统。
方法:使用linux-> LINXU系统编程开发->驱动程序开发分析linux内核。先看深,再解释原理。看了几遍,看形势分析,对比深度,两本书交叉,深度是纲,情感是旨。分析是0.11版本,适合学习。最后,深入代码。
主要书籍:《linux内核全解析》、《unix环境下的高级编程》、《linux内核的深入理解》、《场景分析与源码生成》。
3.了解嵌入式linux:
目的:掌握嵌入式处理器及其系统。
方法:(1)嵌入式微处理器的结构与应用:只讲arm的原理与组装,不重复x86。
(2)嵌入式操作系统类:ucOS/II简单,开源,可用于入门。然后深入学习uClinux。
(3)必须有开发板(arm9以上),有参加培训的条件(可以进步很快,可以交一些朋友)。
主要著作:毛的嵌入式系统等arm9手册和arm汇编指令。
4.深入研究:
一、数字图像压缩技术:主要应掌握MPEG、mp3等编解码算法和技术。
b通信协议及编程技术:TCP/IP协议、802.11、蓝牙、GPRS、GSM、CDMA等。
C.网络与信息安全技术:如加密技术、数字证书CA等。
d、DSP技术:数字信号处理,DSP处理器通过硬件实现数字信号处理算法。
注:太多细节不解释,可根据实际情况调整。重点是1和3,不一定要全序做。之所以要学c++是因为c++不仅仅是一门语言,一个工具,更是一门艺术,一种文化,一种哲学,但不是用来炫耀的东西。对于linux内核来说,也需要学习编程,阅读一些优秀的代码。
注意:要学会举一反三,基础扎实。你可以简单地通过观察来学习很多东西。要成为一名合格的程序员,必须精通至少一门编程语言,并具有良好的逻辑思维。我们必须把理论和实践结合起来。
不要盲目钻研技术。虽然很难找到时间,但也要留点空间完善其他爱好,比如宇宙、素描、机械、管理、心理学、游戏、科幻电影。还有些事情是你不想做却又不得不做的!
技术是通过编程来编程的。千万不要梦想一步登天,不要做一个浮躁的人,不要觉得路漫漫其修远兮。是编程,编程,编程,编程!机会来了再创业(不要相信奇迹,盲目的成功很难,即使成功了也不一定有多大的发展空间)。
嵌入式图书推荐
Linux基础知识
1,Linux和Unix Shell编程指南
c语言基础
1,C Primer Plus,第5版,作者Stephen Prata。
2.《C语言程序设计》,第二版,Brian w . Kernigan David m . Rithie(K & amp;r)开
3、《UNIX环境下的高级编程,第二版》(APUE)
4.嵌入式Linux应用开发详解。
Linux内核
1,深入了解Linux内核(第三版)
2.毛和胡对Linux内核源代码的场景分析
研发方向
1、《UNIX网络编程》( UNP)
2.TCP/IP的详细解释
3.Linux内核编程
4.Linux设备驱动程序开发(LDD)
5.杨Linux高级编程
硬件基础
1,杜春蕾《ARM架构与编程》
2、S3C2410数据表
基本英语
1,计算机与通信英语
系统课程
1,嵌入式系统-架构、编程和设计
2.嵌入式系统-使用开放源代码和StrongARM/Xscale处理器,作者毛和胡。
3、《构建嵌入式Linux系统》
4.杨嵌入式ARM系统原理及实例开发。
理论基础
1,算法介绍
2.数据结构(C语言版本)
3.计算机组织与架构?性能分析”
4,“对计算机系统的深刻理解”,作者Randal E. Bryant David O''Hallaron
5.操作系统:本质和设计原则
6.编译原则
7.数据通信和计算机网络
8.数据压缩的原理及应用
c语言书籍推荐
1.C编程语言“C编程语言”
2.C上的指针“C和指针”
3.陷阱和缺陷
4.专家语言“专家C程序设计”
5.编写干净的代码——微软开发无错误C程序的技巧
编程的本质-编写高质量无错误C程序的秘密-微软
6.C和c++嵌入式系统编程中的嵌入式系统编程
7.c语言嵌入式系统编程实践
8.高质量的C++/C编程指南芮林
尽可能多地编码。要学好C,不能只盯着C本身。算法,架构等等都很重要。