作者:与子同袍
首发:物联网前沿技术观察
本期,我给各位道友介绍物联网工程专业的10步学习法。
物联网工程专业有个严重问题,实际上,大多数教物联网工程的老师本身并没有做过企业级的实际落地的物联网工程项目。他们中的大部分人在10年前也没听说过M2M。他们不知道企业里实际需要哪些技能,只会照着书本讲解一些理论,与现在的物联网工程实践脱节。这样做,导致学生毕业了到企业里啥也不会,学生在学校里也比较迷茫,不知道要学点啥。
因此,今天给大家介绍物联网工程专业的10步学习法,希望能给大家带来一点帮助。
这个10步方法,是我从Soft Skills这本书里学来的,结合物联网工程专业特点来写的。
这样学习方法的好处是,可以定义一个清晰的物联网专业的学习目标,让你不断朝目标前进,而不是只是到处寻找资源看博客看视频教程,却从来不动手实践。
10步法的步骤如下:
其中,1-6步是一次性的,调研性质的。7-10步对要学习的每个学习模块是重复进行的。
1.了解物联网全景图
在学习物联网之前,要先从高处了解物联网的总体知识框架。
从这张图,我们可以看到,从下往上可以分为硬件层、通信层、软件层、应用层。还有一个相对独立的物联网安全。
具体的物联网知识体系,你可以看我本专栏的其他文章,比如:
与子同袍:物联网架构师眼中的物联网知识体系:Internet of Things for Architects
2.确定学习范围
现在你已经知道了要学习的整个知识地图了。但是这里面涉及到众多技术领域。
我们必须收缩战线,明确在当前要学习哪块知识。是学习应用层协议,还是单片机开发,还是数据分析?每块知识深入学习下去,都要耗费许多时间。因此,我们需要由浅入深的学习。
对于每块知识,我们要根据自己的当前的水平,确定明确范围的学习主题。
3.定义成功准则
确定了学习范围还不够,我们要定义成功的准则。也就是物联网技术要学到什么程度,才算学好。
这个成功准则要定义的详细些。
成功准则要按照S.M.A.R.T.原则来制定。
4.寻找学习资料
定义好成功准则后,就可以根据成功准则去找学习资料了。
学习资料不一定是书,也可以是网络资源。
寻找学习资料时,先不要考虑质量。这个阶段相当于头脑风暴阶段。在后面的阶段可以筛选好的学习资料,但是在这一步,先找足够多的资料。
学习资料的来源可以是:
书、博客、在线视频、技术大拿、播客、源代码、样例项目、在线文档等。
比如要学习mqtt通信,那就直接上Eclipse官网看Eclipse Paho的官方文档。
国外书籍可以去亚马逊上找。国内可以上京东、当当之类在线书店搜索书,然后看书目和评价。
5.制定学习计划
现在浏览找到的所有学习资料,只看目录,根据目录把要学习的内容分为若干块。
然后制定学习路线图,先学哪块内容,再学什么,最后学什么。
比如,要学习MQTT协议开发,可以这样制定学习计划:
当然,学习计划取决于你当前可用的时间和学习内容的难度。
AWS IoT Core学习可以这样安排:
6.筛选学习资料
到了这一步,你已经找到了很多学习资料,一大堆书、播客、讲课视频、开源项目,也把要学的知识点列好了。
现在要做的事情,就是筛选要读的内容。
为什么要筛选?有两点原因:一是因为你没有那么多精力把所有资料都看一遍,二是不同资料的内容会重复。
筛选学习资料的原则,跟教练挑选国家队队员一样,宁缺毋滥。
挑选对成功目标有用的高质量的学习资料,就可以开始学习了。
7.学习入门知识
第七步到第十步要根据第五步制定的学习计划来重复进行每个知识点的学习,直到达到第三步制定的成功标准。
用这个公式来学习:learn, do, learn, teach (LDLT)。有点类似费曼技巧。
第七步是学习入门知识。
如果是学习编程语言或者框架,这一步只涉及到搭建开发环境,写一个最简单的Hello world程序。
如果是学习协议,先搭建好软硬件环境,能用客户端发送接收数据。
如果是学习单片机,先搭建好硬件环境和调试环境,能点亮LED灯。
如果是看书的话,你只需要学习入门知识,了解每一章的总结就可以了。
就像买个游戏机,先把游戏装好跑起来,稍微玩一会,就可以了。先不要看游戏的详细手册。
你要抵制住深入学习的诱惑,这样反而能学得更好。
这一步的关键是不要太快一下子扎猛子深入学习。
如果一下子用力过猛,容易走错方向,浪费时间和精力。
8.略读提问
大多数人会跳过这一步,开始啃书或者专心致志的看教学视频,吸收所有知识点,等着那一天能用上这个知识点。这样做有个问题,他们因为没有到处瞎逛,所以不知道哪些是重点,这样学习时就不明确,效率低。
所以拿到学习资料,先到处翻翻,看个大概,然后根据定义的成功准则,自己一些问题。
假设我们现在的学习成功准则是:
学会用AWS IoT Python SDK发布MQTT消息到AWS IoT Core,然后通过规则引擎把数据转发给Lambda函数,Lambda函数处理消息再保存到DynamoDB数据库中。
那我们就要先把第6步筛选准备好的AWS IoT Core用户指南和Amazon Lambda用户指南这两个PDF文档打开。这两本书页数有点多,AWS IoT Core有960页,Lambda有488页,DynamoDB文档1032页,加起来有2500页不到。
这么多页,我们不可能一页页看过来。
我们应该根据制定的学习成功准则,先看下文档的总体目录。再看下总体架构介绍。
然后看完后,问自己几个问题:如何向IoT Core发布mqtt消息,用什么软件发送?IoT Core接收到数据后,如何把数据转发给Lambda函数?Lambda函数如何开发,用什么语言开发?Lambda函数如何把数据保存到DynamoDB中?DynamoDB如何创建数据库,如何建表?
把这些问题记下来,这样你就知道哪些重要了。就可以有的放矢的去从几千页的文档中找所需的内容仔细研究了。
你可能觉得这一步没啥用。但是这些问题可以让我们在接下来的深入学习过程中,更好的学习。
9.根据问题深入学习并做个小项目
第九步是问题驱动的学习。也就是把第八步提出的问题根据学习资料找到答案。
不管是读书、看视频、看博客,要找到问题的答案。
在这一步,不要忘记第三步制定的成功准则。
你在这一步学习的每一个知识点,都应该帮助你朝最终目标前进。
一定要学了书本知识的同时,动手实践。知行合一。
物联网技术应用性、实战性很强。
不动手做点小项目,是不行的。
项目点子可以看本系列下一篇文章【笨办法学物联网】之四。
10.教别人
第十步,是跳出舒适区教别人。
这是让你确定你已经真正掌握一样东西的唯一办法。
你可以根据之前学习和动手做项目遇到的问题和如何解决的,记录下来教别人。
教别人的方式可以是写技术博客,录一个视频,做一个演讲,和亲戚朋友同事交流。
在这个过程中,你会发现有许多东西你并没有真正理解。
这一步非常重要,千万不要跳过。
对于没有真正理解的知识点,再去深入研究。
推荐阅读:
更多物联网,边缘计算相关技术干货请关注我的专栏物联网前沿技术观察
申请加入物联网技术研讨大佬微信群,请加微信号:iot1999。