编写软件需要学什么 制作软件需要学什么( 二 )


从事嵌入式底层软件设计工作需要学习哪些?如何做好软件设计?
嵌入式的定义比较广泛,可以分为单片机,linux驱动,DSP等几大方向, 我们分情况进行讲解 。总的来说,学习嵌入式开发,都是需要有C语言编程基础,如果要对编程游刃有余,还得对结构体,指针有比较清晰认识和掌握,现在很多固件,demo都常用结构体和指针 。所以这点专业知识非常重要 。除此之外,还多、少都需要掌握一定的硬件的专业知识,对硬件理论有一定的熟悉 。
因为经常在调试过程中,经常为了调试BUG,需要用万用表,示波器测试相关引脚的输入输出电平 。这对调试软件非常有帮助 。也是必须要掌握的 。差异点分开说:单片机,常见STC/AT 51内核单片机,Cotex-M3内核的STM32等单片机,DSP倾向于电机控制和算法,常见TMS32F2812系列,linux驱动,会对linux操作系统熟悉,对于shell,makefile,linux文件系统等熟练掌握 。
嵌入式发展方向网上说的嵌入式发展方向其实都大同小异,其实也基本正确,但目的是为了让自己能够在专业技能上独当一面,成为技术专家,和项目高手,再或者希望走管理路线的工程师还可以转研发管理 。都亦无不可,不过这里强调的是,在做选择前,请根据自己的真实情况,公司或者部门现状,认真清楚的分析 。任何一次选择,都非常重要 。
想做好嵌入式软件开发,除了掌握专业知识外,还需要熟悉各类外设接口,uart串口,IIC,SPI,等等,还需要学会总结经验,每次编程画软件流程图,总结编程思路,形成属于自己的编程习惯和方法 。做开发,既有趣又枯燥,要真正热爱和感兴趣,才能长久做下去,否则坚持不了几年,就会转行 。所以,兴趣和爱好才是第一要素 。
26岁的人没接触过电脑,想学习编程、制作软件什么的,需要看哪些书?
26岁的人说大不大说小也不小,但是从没接触过电脑就有点夸张了 。如果没接触过电脑要去学编程或者制作软件,这不是看书就能学会的 。题主一定要想办法去看看电脑,去用用电脑,知道电脑可以用来写文件,可以用输入法打字,打开浏览器上网,下载各类软件,会设置windows系统,知道电脑的几个组成部分,知道有哪些输入输出设备,了解冯诺依曼体系结构 。
把主机箱拆开看看里面的组成部分,认识内存长啥样儿,硬盘在哪里,光驱在哪里,主板在哪里,芯片藏在哪里等 。再看看主机箱后面网线口是啥,USB口是啥,VGA口是啥 。以上都是在平时玩机过程中学习与了解的 。另外,要了解一些抽象的概念内存是干嘛用的,芯片是干嘛用的,它们两者是怎么通信的;硬盘是干嘛的,芯片与硬盘是怎么通信的;CPU是怎么寻址的,总线是干嘛的,DMA是干嘛的,CPU里的寄存器、计算单元是干嘛的等等 。
等到这些都了解了,再去学习一本叫做计算机导论的书籍,学学计算机科学领域的基础知识,比如进制、算法、数据结构等 。打好计算机基础再去学习一些编程的基础知识,这方面的资料也有很多,比如我写的C语言答疑的文章、网上的资料等,都可以了解与学习 。编程学习是一个比较痛苦的过程,不要看别人表面光鲜亮丽,其实人家背后都付出了巨大的艰辛 。

推荐阅读