<audio id="audio" title="用户故事 | 转战物联网，我相信天道酬勤" controls="" preload="none"><source id="mp3" src="https://static001.geekbang.org/resource/audio/df/6e/df7d710255e0e69193e53d0f606e326e.mp3"></audio>

你好，我叫谭方敏。

我是一名物联网架构师，坐标广州，目前已经工作十四年了，很高兴有机会能跟你分享自己学习《物联网开发实战》这门课程的心得。

## 为什么要学这门课？

首先我想跟你聊一聊为什么要学这门课，主要有三个方面原因。

**第一，完善物联网知识体系。**

在游戏行业泡了10年之后，因为一个偶然的机会，我进入了物联网行业，到现在差不多4年了。转行之后虽然也遇到了不少问题，但我依靠自己的摸索，一路上都有惊无险地解决了。

不过我毕竟是半路出家，底子不够厚，还是希望能全面地了解物联网的知识体系。我觉得一个人的技能应该长成一棵完整的大树，而不是一堆零乱的杂草，这样才拥有核心竞争力。

**第二，尝试物联网全生态的落地实践。**

知识不用，自然就会荒废。只有在实践中不断地消化和理解知识，才能形成闭环，做到知行合一，真正产生价值。

物联网的整个生态分为设备层、网络层和应用层，而我一直专注于应用层的研发，在工作中很少直接接触设备层和网络层。而在这门课程中，郭老师在实战篇介绍了几个实战小项目，这对我来说是一个很好的机会，让我能够打通全生态，完成整个物联网知识栈的建设。

**第三，为创业寻找方向和思路。**

2012年我在游戏行业的创业失败，到现在已经快十年了。我一直认为创业就是一个严谨的科学实验。复盘失败的原因，我发现自己在各个层次上都或多或少缺少某些创业者必备的能力。所以在一顿恶补之后，我也希望能看看还差多少。

另外，物联网相对互联网而言，从发起创业项目到真正落地，并不需要那么多的资源。一个简单的智能家居项目，成本也许可以控制在1000元以内，时间也可以控制在一周左右，这就勾起了我的创业兴趣。

最后，疫情这个外部环境深刻地影响着每个人，我们都需要去思考如何面对不确定性。一般来说，创新型创业是一件非常烧钱的事情，而物联网则先可以孵化一些小项目，用极低的成本完成前期的原型验证。

## 我是怎么学习课程的？

以前看到过一句话，我觉得说得挺好的：学习是个耗能的过程，所以想要效率更高，你就要尽量调用身体各个器官储备的能量一起来完成这件事情，包括五官、大脑和四肢。

记得当年我背英语单词那会儿，条件可比现在艰苦多了，因为音频资料获取途径不多，非常珍贵。我边读边写边思考，才实现了大二就通过大学英语六级的目标。

同样的道理，学习这门课程也得尽量调动身体储备的能量。我觉得学习是一个费力费神的事情，首先就要做好思想准备，否则你就把学习当成kill time的方式了。

我学习用的是土方法。因为如果太讲究方法，就会导致操作难度太高，很难长期坚持下去。知识的学习过程是一个“润物细无声”的过程，所以我们还是尽量采用相对自然的方式比较好。

1. 第一遍对照文字听，熟悉文字内容。
1. 做笔记，将要点记录下来。
1. 盲听3～4遍，一般是通勤路上，比较方便。
1. 跟这门课程的同学互动。

在互动的过程中，我会尽量抽空回答同学们的问题，知无不言，言无不尽。这样做会让知识更容易形成闭环，加深我自己对知识理解，并且还有机会意外获得同窗的“革命友谊”。

比如“mosquito”同学曾经提过一个问题：“能否将消息存储在数据库或者redis中？”我当时就明确地告诉他，有相关的插件。（不过这样的互动大部分都发生在微信交流群，课程留言区的相对少一点。）

<img src="https://static001.geekbang.org/resource/image/ff/ce/fff6b408yyc5f9d12fe7b2599c8890ce.png" alt="" title="我的一部分学习笔记">

## 学习过程中遇到过什么有趣的经历？

古语云：“读万卷书不如行万里路，行万里路不如阅人无数。”

这个道理也可以用在现代职场。当你学会一些东西的时候，最好去跟面试官“对打”，打得过就赢得了一份工作，打不过也获得了一次深度沟通和交流的机会。毕竟翻到行业大佬牌子的机会不多呀，应该好好珍惜。

前段时间我去面试，发现面试官可能是极客时间铁粉，并且极有可能就是《物联网开发实战》这门课程的同学。他问了好几个问题，都是这门课讲过的。

比如，物联网跟互联网的区别是什么？

物联网=互联网+物（设备）。这是郭老师在第1讲探索物联网定义的时候说明的。

又比如，智能快递柜不能使用发布订阅的原因是什么？

因为关门指令和关门动作是分开的。郭老师在第3讲中介绍网络协议的时候解释过。

再比如，批处理跟流处理的区别？

批处理的关键点有离线数据、延迟、以Mapreduce/Spark为代表；流处理的关键点有实时数据、低延迟、以Storm/Flink/Spark Streaming为代表。这些知识，郭老师在第11讲解读数据处理框架的时候都详细说明过。

我发现面试官居然在帮我复习这门课程的知识，感觉特别亲切。虽然最后没有一起合作，但是这种经历还是蛮有趣的。传统意义上，面试只是为了找工作，而今天，它更像是一个跟行业专家深度交流与沟通的机会。

## 学习课程有什么收获？

我觉得到目前为止，自己学习这门课程的收获主要分为两个方面。

第一个方面是**刷新概念**。

在学习课程之前，我就看过《图解物联网》这本书，对物联网建立了基本的整体认识。比如整个物联网可以分为5个环节，分别是设备、传感器、网络、物联网服务和数据分析。我觉得这种分法挺好的。

不过在这门课程中，郭老师把物联网的知识体系简化为三层，分别是设备层（传感器+网络），网络层（网络），应用层（物联网服务+数据分析），这样界定业务边界的时候就更方便了。

我原来以为，把物联网服务处理好就相当于把应用层搞定了。学习课程之后才发现，应用层边界可不只是物联网服务（准确地说，这个算物联网接入层+部分业务逻辑），还包括数据分析这块。意识到这一点之后，我大吃一惊，马上就去强迫自己更新数据分析的技能树了。

另外，我以前对物联网数据的理解也不够深刻。我会把数据分为三个阶段，分别是数据采集（数字化）、数据传输（网络化）和数据分析应用（智能化）。

而在这门课程中，郭老师分成了五个阶段，分别是数据源数据采集、数据传输、数据存储、数据处理和数据分析应用，其中数据分析应用还进一步细化成三个部分，数据存储，数据处理和数据应用。这样学习和实践的时候，就更能做到有的放矢了。

业内实践派也有一些更加接地气的分法，比如比较常见的“云端数”。所谓的云是**物联网云**（类似于阿里飞燕平台）；端主要是**设备端**，有一些还会包括**业务端**；数则是指数据平台（大数据）。

这个分法则在更大尺度上界定了物联网各个部分的边界，也从一定程度上提炼了物联网生态最有价值的关键元素，数的提出更明确地确定了大数据在物联网生态的重要性，以及数据分析作为物联网全流程中必不可少的一环。在智慧系列项目里面，这种提法还是比较多的。

第二个方面是**获得新知**。

我在原来的公司主要负责物联网平台这一块，所以对配网方面的知识不够了解。而在这门课程的第2讲中，郭老师把设备配网解释得很清楚，Wi-Fi设备配网需要解决两个问题。

1. 连上路由器（Wi-Fi或AP），实现数据上传和远程控制，也就是说，设备要获取到Wi-Fi热点的名称（SSID）和密码。
1. 获取Wi-Fi设备的MAC地址，或者生产时预存的信息，并与用户账号一起上传服务器，完成绑定。

具体来说，有两种实现方式，一种是smart config，另一种是设备热点。<br>
<img src="https://static001.geekbang.org/resource/image/e3/5e/e320c19b0393e136e0cc765b99ab665e.jpg" alt=""><br>
我在负责物联网平台的应用和开发的时候，为了更好地辅助运营小伙伴决策以及我们研发人员对业务做监控，在日常开发当中，我们会采用埋点打日志的方式。

我们注意到，很多智能设备一旦下线，就长期处于失联状态。将智能设备连接上物联网云各个环节拆解后，我们发现配网过程的成功率非常低，甚至有些设备除了第一次是成功的，之后的配网就再也没有成功过。

在学习郭老师的课程后，我们知道了，除了smart config之外，还有设备热点配网和手机热点配网等方式。于是我们把配网方式从一开始选择的smart config，换成了设备热点配网，从而在一定程度上改善了配网成功率。最终，我们在公司范围内推广了这个思路。

## 总结

从社会发展趋势来看，现在我们正处于互联网和物联网的过渡阶段，物联网很有可能会进一步成为新的网络基础设施，所以这门课程让我觉得非常有价值。

我在写这篇文章的时候，课程已经更新到第22讲，接近尾声，实战部分的内容悉数登场。目前，我已经完成了第一个产品场景，可以手机控制的智能电灯，并且接入了自己的物联网平台，真正实现了云端数一体化的目标。

当初我从做了10年的游戏行业转战物联网，就曾下定决心要“Make myself distinctive”，如今已经在物联网行业，自当努力奋斗。我相信天道酬勤，所有的付出都是值得的，不管是学知识，还是知识以外的其他内容。

在个人成长过程中，除了纵向地学习，建立自己的知识体系技能树之外，还需要横向地向同行学习，以技会友，相互切磋，补足或者加深自己在不同场景下的理解。即便同样是智能家居范畴，扫地机器人跟家用照明系统就完全不一样，技术不仅仅需要结合业务，更需要结合场景以形成深度认知。

最后，我想再分享孟子的一句话：“天降大任于是人也，必先苦其心志，劳其筋骨，饿其体肤，空乏其身，行拂乱其所为，所以动心忍性，曾益其所不能。”

与诸君共勉！
