# 用户故事 | 转战物联网,我相信天道酬勤 你好,我叫谭方敏。 我是一名物联网架构师,坐标广州,目前已经工作十四年了,很高兴有机会能跟你分享自己学习《物联网开发实战》这门课程的心得。 ## 为什么要学这门课? 首先我想跟你聊一聊为什么要学这门课,主要有三个方面原因。 **第一,完善物联网知识体系。** 在游戏行业泡了10年之后,因为一个偶然的机会,我进入了物联网行业,到现在差不多4年了。转行之后虽然也遇到了不少问题,但我依靠自己的摸索,一路上都有惊无险地解决了。 不过我毕竟是半路出家,底子不够厚,还是希望能全面地了解物联网的知识体系。我觉得一个人的技能应该长成一棵完整的大树,而不是一堆零乱的杂草,这样才拥有核心竞争力。 **第二,尝试物联网全生态的落地实践。** 知识不用,自然就会荒废。只有在实践中不断地消化和理解知识,才能形成闭环,做到知行合一,真正产生价值。 物联网的整个生态分为设备层、网络层和应用层,而我一直专注于应用层的研发,在工作中很少直接接触设备层和网络层。而在这门课程中,郭老师在实战篇介绍了几个实战小项目,这对我来说是一个很好的机会,让我能够打通全生态,完成整个物联网知识栈的建设。 **第三,为创业寻找方向和思路。** 2012年我在游戏行业的创业失败,到现在已经快十年了。我一直认为创业就是一个严谨的科学实验。复盘失败的原因,我发现自己在各个层次上都或多或少缺少某些创业者必备的能力。所以在一顿恶补之后,我也希望能看看还差多少。 另外,物联网相对互联网而言,从发起创业项目到真正落地,并不需要那么多的资源。一个简单的智能家居项目,成本也许可以控制在1000元以内,时间也可以控制在一周左右,这就勾起了我的创业兴趣。 最后,疫情这个外部环境深刻地影响着每个人,我们都需要去思考如何面对不确定性。一般来说,创新型创业是一件非常烧钱的事情,而物联网则先可以孵化一些小项目,用极低的成本完成前期的原型验证。 ## 我是怎么学习课程的? 以前看到过一句话,我觉得说得挺好的:学习是个耗能的过程,所以想要效率更高,你就要尽量调用身体各个器官储备的能量一起来完成这件事情,包括五官、大脑和四肢。 记得当年我背英语单词那会儿,条件可比现在艰苦多了,因为音频资料获取途径不多,非常珍贵。我边读边写边思考,才实现了大二就通过大学英语六级的目标。 同样的道理,学习这门课程也得尽量调动身体储备的能量。我觉得学习是一个费力费神的事情,首先就要做好思想准备,否则你就把学习当成kill time的方式了。 我学习用的是土方法。因为如果太讲究方法,就会导致操作难度太高,很难长期坚持下去。知识的学习过程是一个“润物细无声”的过程,所以我们还是尽量采用相对自然的方式比较好。 1. 第一遍对照文字听,熟悉文字内容。 2. 做笔记,将要点记录下来。 3. 盲听3~4遍,一般是通勤路上,比较方便。 4. 跟这门课程的同学互动。 在互动的过程中,我会尽量抽空回答同学们的问题,知无不言,言无不尽。这样做会让知识更容易形成闭环,加深我自己对知识理解,并且还有机会意外获得同窗的“革命友谊”。 比如“mosquito”同学曾经提过一个问题:“能否将消息存储在数据库或者redis中?”我当时就明确地告诉他,有相关的插件。(不过这样的互动大部分都发生在微信交流群,课程留言区的相对少一点。) ![](https://static001.geekbang.org/resource/image/ff/ce/fff6b408yyc5f9d12fe7b2599c8890ce.png "我的一部分学习笔记") ## 学习过程中遇到过什么有趣的经历? 古语云:“读万卷书不如行万里路,行万里路不如阅人无数。” 这个道理也可以用在现代职场。当你学会一些东西的时候,最好去跟面试官“对打”,打得过就赢得了一份工作,打不过也获得了一次深度沟通和交流的机会。毕竟翻到行业大佬牌子的机会不多呀,应该好好珍惜。 前段时间我去面试,发现面试官可能是极客时间铁粉,并且极有可能就是《物联网开发实战》这门课程的同学。他问了好几个问题,都是这门课讲过的。 比如,物联网跟互联网的区别是什么? 物联网=互联网+物(设备)。这是郭老师在第1讲探索物联网定义的时候说明的。 又比如,智能快递柜不能使用发布订阅的原因是什么? 因为关门指令和关门动作是分开的。郭老师在第3讲中介绍网络协议的时候解释过。 再比如,批处理跟流处理的区别? 批处理的关键点有离线数据、延迟、以Mapreduce/Spark为代表;流处理的关键点有实时数据、低延迟、以Storm/Flink/Spark Streaming为代表。这些知识,郭老师在第11讲解读数据处理框架的时候都详细说明过。 我发现面试官居然在帮我复习这门课程的知识,感觉特别亲切。虽然最后没有一起合作,但是这种经历还是蛮有趣的。传统意义上,面试只是为了找工作,而今天,它更像是一个跟行业专家深度交流与沟通的机会。 ## 学习课程有什么收获? 我觉得到目前为止,自己学习这门课程的收获主要分为两个方面。 第一个方面是**刷新概念**。 在学习课程之前,我就看过《图解物联网》这本书,对物联网建立了基本的整体认识。比如整个物联网可以分为5个环节,分别是设备、传感器、网络、物联网服务和数据分析。我觉得这种分法挺好的。 不过在这门课程中,郭老师把物联网的知识体系简化为三层,分别是设备层(传感器+网络),网络层(网络),应用层(物联网服务+数据分析),这样界定业务边界的时候就更方便了。 我原来以为,把物联网服务处理好就相当于把应用层搞定了。学习课程之后才发现,应用层边界可不只是物联网服务(准确地说,这个算物联网接入层+部分业务逻辑),还包括数据分析这块。意识到这一点之后,我大吃一惊,马上就去强迫自己更新数据分析的技能树了。 另外,我以前对物联网数据的理解也不够深刻。我会把数据分为三个阶段,分别是数据采集(数字化)、数据传输(网络化)和数据分析应用(智能化)。 而在这门课程中,郭老师分成了五个阶段,分别是数据源数据采集、数据传输、数据存储、数据处理和数据分析应用,其中数据分析应用还进一步细化成三个部分,数据存储,数据处理和数据应用。这样学习和实践的时候,就更能做到有的放矢了。 业内实践派也有一些更加接地气的分法,比如比较常见的“云端数”。所谓的云是**物联网云**(类似于阿里飞燕平台);端主要是**设备端**,有一些还会包括**业务端**;数则是指数据平台(大数据)。 这个分法则在更大尺度上界定了物联网各个部分的边界,也从一定程度上提炼了物联网生态最有价值的关键元素,数的提出更明确地确定了大数据在物联网生态的重要性,以及数据分析作为物联网全流程中必不可少的一环。在智慧系列项目里面,这种提法还是比较多的。 第二个方面是**获得新知**。 我在原来的公司主要负责物联网平台这一块,所以对配网方面的知识不够了解。而在这门课程的第2讲中,郭老师把设备配网解释得很清楚,Wi-Fi设备配网需要解决两个问题。 1. 连上路由器(Wi-Fi或AP),实现数据上传和远程控制,也就是说,设备要获取到Wi-Fi热点的名称(SSID)和密码。 2. 获取Wi-Fi设备的MAC地址,或者生产时预存的信息,并与用户账号一起上传服务器,完成绑定。 具体来说,有两种实现方式,一种是smart config,另一种是设备热点。 ![](https://static001.geekbang.org/resource/image/e3/5e/e320c19b0393e136e0cc765b99ab665e.jpg) 我在负责物联网平台的应用和开发的时候,为了更好地辅助运营小伙伴决策以及我们研发人员对业务做监控,在日常开发当中,我们会采用埋点打日志的方式。 我们注意到,很多智能设备一旦下线,就长期处于失联状态。将智能设备连接上物联网云各个环节拆解后,我们发现配网过程的成功率非常低,甚至有些设备除了第一次是成功的,之后的配网就再也没有成功过。 在学习郭老师的课程后,我们知道了,除了smart config之外,还有设备热点配网和手机热点配网等方式。于是我们把配网方式从一开始选择的smart config,换成了设备热点配网,从而在一定程度上改善了配网成功率。最终,我们在公司范围内推广了这个思路。 ## 总结 从社会发展趋势来看,现在我们正处于互联网和物联网的过渡阶段,物联网很有可能会进一步成为新的网络基础设施,所以这门课程让我觉得非常有价值。 我在写这篇文章的时候,课程已经更新到第22讲,接近尾声,实战部分的内容悉数登场。目前,我已经完成了第一个产品场景,可以手机控制的智能电灯,并且接入了自己的物联网平台,真正实现了云端数一体化的目标。 当初我从做了10年的游戏行业转战物联网,就曾下定决心要“Make myself distinctive”,如今已经在物联网行业,自当努力奋斗。我相信天道酬勤,所有的付出都是值得的,不管是学知识,还是知识以外的其他内容。 在个人成长过程中,除了纵向地学习,建立自己的知识体系技能树之外,还需要横向地向同行学习,以技会友,相互切磋,补足或者加深自己在不同场景下的理解。即便同样是智能家居范畴,扫地机器人跟家用照明系统就完全不一样,技术不仅仅需要结合业务,更需要结合场景以形成深度认知。 最后,我想再分享孟子的一句话:“天降大任于是人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其身,行拂乱其所为,所以动心忍性,曾益其所不能。” 与诸君共勉!