【2019毕业生】浅谈物联网工程专业课在工作中的应用

文章详细列举了物联网工程专业嵌入式方向的重要课程,强调了C语言、计算机网络、电路电子学和传感器技术等基础课程的重要性。并指出每一门课程都是为将来的专业实践打下基础,不应忽视。同时,文章提到了英语和高等数学在工作中的应用,并分享了作者对部分课程如大学物理和线性代数的看法。
摘要由CSDN通过智能技术生成
  • 物联网工程专业,当时培养计划是2个方向,一个是偏硬件+软件结合(嵌入式),另一个就是纯软件(JAVA等)。以下课程是嵌入式要学的专业课,只罗列了相对重要的,其他通识就不说了。

  • PS:以下备注重要程度,纯属个人见解。

  • 特别重要(专业课)

  • 重要(基础课,学了对专业有辅助作用)

  • 一般(学分要拿到,也可以作为基础课)

  • 不要觉得有些课没用,后面工作才知道都是基础,在学校就按部就班的学好专业的每一堂课,到了大三大四,全部连通贯通,就明白了,每一门课都不是多余的。

  • 是不是还会觉得学校的技术理论和设备落后?不,就像语数外一样,这么多年还是那些知识点,基础是不会被淘汰的。

编号课程名备注
1c语言程序设计(特别重要)
2大学英语(一般)
3高等数学(重要)
4计算机网络导论(特别重要)
5线性代数(重要)
6c语言课程设计(特别重要)
7大学物理(重要)
8电路电子学(特别重要)
9离散数学(特别重要)
10RFID原理与应用(特别重要)
11VC++程序设计(特别重要)
12大学生求职技能培训与指导(特别重要)
13概率与数理统计(重要)
14数据库系统原理(重要)
15数字逻辑与数字系统(特别重要)
16物联网工程概论(重要)
17汇编语言设计与应用(重要)
18计算机辅助电路设计(特别重要)
19计算机网络(重要)
20数据结构(特别重要)
21网络安全实用技术(重要)
22物联网工程实践(特别重要)
23传感器网络原理及应用(重要)
24单片机与接口技术(特别重要)
25计算机组成原理(重要)
26嵌入式系统与设计(特别重要)
27软件工程导论(重要)
28数字通信原理(重要)
29移动终端应用开发(特别重要)
30操作系统(重要)
31嵌入式系统项目实践(特别重要)
32数据仓库与数据挖掘(重要)
33物联网工程案例分析与实践(特别重要)

1、c语言程序设计

  • c语言语法基础,教你如何写第一行代码,每节课老师都会布置电脑操作练习题,跟着做就是了。(哈哈哈哈哈,考了90分,很骄傲)

  • 这里强调,学校上c语言课程的老师,都是非常厉害的的,记得当时的王牌专业,也和我们同一个专业课老师

  • 基础打好,后续很多课程学起来会容易些,即使大一学得不是很好,相信大二、大三、大四、甚至工作以后,还会回去看这门课的知识

  • 后面很多专业课都会用到c语言,比如:

1.1、c语言课程设计
  • 是程序设计的进一步提升,语法学完了,就可以解决问题了,那么课程设计就是用程序解决一些典型的问题。就像语文一样,学好语法会造句,后面再写作文,后面再写书,语法很重要。
1.2、VC++程序设计:
  • 学好了c语言,VC++的语法大部分和c语言差不多的,有一些会不同,c语言更底层,VC++面向对象,类封装起来使用,VC++可以做图形界面,c语言可以嵌在里面,两者结合开发应用,比如电脑的 xxx.exe
1.3、汇编语言设计与应用:
  • 机器是没办法直接识别c语言的,只能识别01010101等这样的机器指令,c语言是为了方便开发,阅读性高,属于高级语言,高级语言都要转换成低级语言机器才能正常运行起来。程序编译就得到汇编程序,后续再链接到指定的地址得到可执行文件。

  • 更多的可以了解原书《深入理解计算机系统-第三版》

1.4、单片机与接口技术:
  • 这里会接触到最简单的处理器,51单片机,了解一个简单的软硬件系统主要有哪些东西,晶振、IO、中断、串口、Timer、寄存器、数码管、灯控、开关等这些最基础的元件和理论。硬件焊好,功能如何实现呢?c语言去实现,没有依靠操作系统的前后台程序,前台表示响应快的中断,后台是主函数的一些处理。

  • 最简单的当然要学好,因为工作后用的高级芯片,处理器,控制器会更加复杂,但底层操作的方法大致是相同的。

1.5、数据结构:
  • 这门课,概念学好了,也要用到c语言指针,结构体,共同体等,链表、队列、堆栈、等。
1.6、工作后对C语言的应用:
  • 3年前写的代码,现在回去看,写的真烂,不仅不美观,还浪费内存,也不够简便,只有入的坑多了,才知道如何写简单又高效的代码。

  • 指针,结构体,共同体,数组是用的很频繁的,指针一定要学好。

  • 学好c语言,可以往好几个方向扩展,比如图形界面开发VC++,芯片验证Verilog,c基础好的话,这2个都可以快速上手。

  • 研究生如果走算法方向的话,c语言也是会用到的,而且省内存省算力提高速度是很重要的,c语言使用不恰当,会造成内存泄漏,或者浪费资源,毕竟芯片的内存大部分是有限的。

2、大学英语

  • 说实话,这门课对我考4级没什么太大的帮助,但是可以让你保持英语的感觉,建议大一就报考4、6级,这时候很多单词语法还能记得,越到大二大三大四,英语不怎么使用的话,会越来越难考的。

  • 学分还是要拿到的,不难。对于英语好的同学来说,这门课就是小case。

2.1、工作后英语的应用:
  • 工科好多人英语是考不及格的,但也不耽误是技术大神,一般的大学工科对英语的要求不是很高,能力至上。

  • 软件接口和参数明名,可以是单词缩写或全拼组成,记不住没关系,找翻译软件嘛,如果表达的意思不是很清楚,还可以加中文注释。

  • 面对国内客户,写中文注释和使用文档,就已经可以了,但是面对国外项目客户市场的时候,写英文注释英文文档,还靠翻译软件?可以,但是公司还是得让英语专业的同事审核,翻译一下,毕竟软件翻译和实际表达的还是不一样。

  • 程序员英语不好,没关系,够用就行了。

  • 想起前段时间看到的一个话题(英语该不该从主要科目中去掉?),个人认为是没必要去掉的,为了让所有人都有机会学英语,一旦变成花很多钱才能学的科目,很多贫困山区的孩子们是吃亏的。想起当初我第一次接触英语还是初一,得亏学习能力强,第一次考试就及格了,后续英语不算优秀也不差。

  • 如果考研,英语是必须要好的,将来研究生毕业,如果从事算法处理、技术商务洽谈、芯片设计等岗位,英语是必须的。算法处理的岗位,可能要写英文专利。技术商务洽谈,拟英文合同,阅读以及写英文技术文档,可能还要和外国客户口语交流。芯片设计,其实和技术商务洽谈是差不多的,只是不需要拟合同。

  • 当然程序员的我也需要看英文文档,边看边翻译还看不懂那种痛苦,哎。不过技术文档偏专业英语,只要懂语法,陌生的单词查到了,自己组织一下语言也可以看懂。

3、高等数学

  • 确实是高等数学,也太难了,并不是像高考一样背公式考计算逻辑能力。每一种公式和推导都比较麻烦,且问题都不知道是啥那种。建议拿学分,不理解就算了。

  • 考理科类研究生,高数是必考,听说一道题,答案都要写一张A4纸,确实理科类的研究生并不是那么容易的,膜拜。

3.1、工作后高数的应用:
  • 说实话,本科毕业的我,在工作中很少用高数,偶尔也会写一些简单的算法,求查找最优结果。

  • 但算法处理岗位的同事倒是经常提到高数的概念,比如求导,收敛,傅里叶变换等,还有人家写的专利,好多基础都是高数的公式哦,看不懂。

4、计算机网络导论

  • 印象中,当时就学了下计算机的网络IP地址修改,局域网,网络的管理设置等,学了感觉自己都能当网管了呢!

  • 在公司上班,有专业的IT解决网络和电脑问题,了解一下就行,如果感兴趣的话,可以自己研究怎么高级配置电脑,修电脑也行,哈哈哈。

5、线性代数

  • 好像有点忘了线性代数学的啥,但是计算过程也挺麻烦的,百度了下,学的矩阵,向量,线性方程。

  • 考研需要,工作中我已经忘光了,留给更聪明的人用吧。

6、大学物理

  • 也不太记得大学物理学的啥,可以说是高中物理的高阶,了解下就行。

  • 哦,大学物理对物联网工程专业好像还是有用的,物联网会涉及到传感器,还有一些物体,那么会有各种物理量,运动轨迹需要监测,物理公式就要拿程序去实现。

  • 我只要清楚传感器元件,返回给我的是什么数据,再根据数据分析结果。

7、电路电子学

  • 学完,感觉都可以自己接电路了,点灯,开关,电流,电压之类的学习,主要偏理论,也有一点实验,了解各种元件,还有示波器,万用表的使用。

  • 哈哈哈,会第一次接触到焊烙铁,我的妈耶,焊的那叫一个难看,还有第一次接触到PCB设计制版,画电路PCB图,后面老师把我们设计好的图拿去工程制作,拿回来再接上元件,实现功能。

  • 还是挺有意思的,理论加实验,当时学的还是懵懵的。

  • 后续会补充我在这门课做的东西图。

7.1、工作后电路的应用:
  • 我的岗位,软件控制硬件比较多,公司有专门的硬件工程师,他们负责PCB板的绘制和焊接,拿到板子以后,只需要了解板子有哪些接口,怎么接电,怎么跳线,怎么抓信号,看得懂原理图,根据需求,外接元件,调程序。

  • 必要的时候,也需要自己动手做一些简单的焊接。

  • 会使用示波器、逻辑分析仪、小型万用表、信号发生器、数字万用表、稳压电源的基础功能,复杂一些的,会有硬件工程师在旁边帮忙,毕竟很多接入220V电压的设备,不懂电气特性,乱接线的话,还是很危险的。

  • 想起来刚工作的时候,没看清楚5V和GND,接反了,把串口都弄冒烟了,还好只是5V。

8、离散数学

  • 离散数学对于嵌入式来说,还是挺重要的,课程会经常绘制真值表,真值表的值只有0和1

  • 0表示假,1表示真,软件代码里的bool类型就是,ture表示1,即真,false表示0,即假

  • 机器代码就是0和1序列组成的,很多硬件信号值也是0和1,芯片的bit位值也是0和1

  • 与、或、非、异或等逻辑运算,在嵌入式软件操作配置控制器时,会经常用到,想要设置某一个bit为1,或为0,就要用到。

  • 不复杂,但需要细心,能理解这门课,将来写程序也会相对容易,把一个复杂的东西,细化到具体一个bit去操作,就不是很难了。

2.1、工作后离散数学的应用:

软件方面的应用

  • 比如判断一个状态的不同,选择不同的操作
bool flag = true;
if(flag)
{
		//如果为真,处理1
}
else
{
		//如果为假,处理2
}
  • 比如想把数据的某一位清0
uint32_t data1 = 0xFF;
uint32_t *data1_ptr = &data1;
*data1_ptr &= ~(0x1 << 6);   //把第6位清0,data1 = 0xBF
  • 比如想把数据的某一位置1
uint32_t data1 = 0xFF;
uint32_t *data1_ptr = &data1;
*data1_ptr |= (0x1 << 8);   //把第8位置1,data1 = 0x1FF
  • 比如想判断某一位是为0还是1
uint32_t data1 = 0xFF;
uint32_t *data1_ptr = &data1;

if((*data1_ptr & (0x1 << 5)) >> 5)
{
	//如果第5位为1
}

if(!(*data1_ptr & (0x1 << 5)) >> 5)
{
	//如果第5位为0,用到了非,非0为真
}

芯片方面的应用

  • 1,表示高电平,0,表示低电平,

  • 1,表示使能,0,表示不使能

  • 1,内存里表示值1,0,内存里表示值0

  • 总之0和1表示什么意义,芯片都可以自定义,由芯片手册决定。

9、RFID原理与应用

  • 物联网与互联网的区别就在于,以前的计算机网络,是解决长距离通信的问题,物联网是解决最后一公里的问题。

  • 计算机已经实现和计算机相互联系了,且速度很快,延迟也几乎没有,但是一些物品还停留在手动开关,必须要人去操控的阶段。要怎么实现,不在家就能远程操控家用电器,坐着就能干很多事情呢,物联网就是这样的网络,真是个伟大的网络。

  • 现在生活中见到的共享单车,租借的充电宝,自动驾驶,小度,智能音箱等,都是物品可以联网到APP或小程序控制,很大程度上可以减少资源浪费,不用人手一个自行车,需要的时候扫码租借就可以了。统称Internal Of Things(物联网)。

  • 二维码也是从2019年之后才开始盛行,随处可见的扫码点餐,扫码关注,越来越方便。

  • IC卡也是其中一个,RFID就是IC卡的原理,身份证,地铁卡,银行卡,最早使用的都是磁卡,容易消磁,且存储不了多少信息,IC卡不会被消磁。后来的新身份证能用于高铁直接刷卡,也是这个原因。

  • 这门课,就是让你知道,如果编程控制读取IC卡的信息,和操控IC卡,对物联网有一点实质性的了解。

10、VC++程序设计

  • 面向对象的编程,这样说可能有点抽象,通俗点讲就是不像c语言那样每个函数,可以跨文件,跨区域,想调用就调用。而是会区分类别,一个类里包含成员变量、成员函数,成员可以是私有的,公共的。

  • 别的类只能访问你的公共函数和公共变量,不能访问私有变量,且每个变量和函数必须按规则声明,使用起来相对规范些,可以很清楚的知道,接口和变量属于哪个类。封装起来了,其他类可以继承。

  • 用于图形界面的开发比较多,比如现在电脑上常用的一些命令行工具xxx.exe,或图形界面,基本上都是基于vc++开发的。

  • 开发的c++软件的工具有很多,常用的有Qt,Visual Studio,Mingw等。

10.1、工作后VC++程序设计的应用:
  • 基于Qt开发工具,绘制图形界面,处理点击按钮、选择文件,下载hex等功能信号,编写槽函数,通过界面的操控实现功能。

  • 底层可以嵌入各种lib库,c语言写的bin文件,使用封装好的控制器标准库,操控数字万用表、芯片、USB设备等。

  • 简单的桌面命令行xxx.exe,还可以使用Visual Studio来开发,原理上和Qt是差不多的,库函数和配置有些不同,官网都有比较齐全的资料,可以查询。

  • 嵌入式不只是底层开发,底层写控制器驱动是基本,还需要提供应用代码框架,方便添加不同的应用场景,到客户手里之前,还需要提供一系列帮助二次开发的桌面工具,让二次开发更方便。

  • 比如产生的物理信号,通过软件转换成数字信号,要怎么体现出来,听到,看到呢?比如把音频数据保存到电脑,串口输出显示出来,摄像头拍照的照片实时显示,电脑里的音频文件怎么传输到芯片播放?等等,都需要用到界面工具。简单的串口显示可以用开源的,但大部分需要的工具是特殊的,只能自己开发。

32、数据仓库与数据挖掘

  • 这门课挺有意思的,前提是要了解数据库是什么,会搭建数据库以后,就可以分析数据了,不是单纯的统计和存储。

  • 印象很深刻的是,老师说了一个案例,沃尔玛的货架为什么会把啤酒和尿不湿摆在一起?

  • 这就是用到了数据挖掘,也就是大家口中常说的大数据,用大量数据去分析出有意思的结论,这个结论可能是反人类的,不可思议的,人永远也想不到的,可能影响将来企业、集体做重大决策。

  • 虽然我工作用不到,但是生活已经被大数据化了。

29、移动终端应用开发

  • 嘿嘿,自己开发的第一款手机APP,就是在课上做的,没什么技巧,就是跟着老师的教程操作,学习怎么开发一个APP,问题很多,每个同学的电脑还有兼容性问题,即使生成了APP,手机也不一定能用,反正挺麻烦的,电脑每次运行虚拟的手机,还特别卡。

  • 这门课,就算是给你提供一个职业方向,看你是否对开发APP感兴趣,了解一些基础,用不到特别多的专业知识,相当于熟悉一个工具。如果感兴趣,以后的职业方向可以选,APP设计师,APP开发工程师,APP测试工程师等等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值