You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

122 lines
11 KiB
Markdown

2 years ago
# 用户故事 | 转战物联网,我相信天道酬勤
你好,我叫谭方敏。
我是一名物联网架构师,坐标广州,目前已经工作十四年了,很高兴有机会能跟你分享自己学习《物联网开发实战》这门课程的心得。
## 为什么要学这门课?
首先我想跟你聊一聊为什么要学这门课,主要有三个方面原因。
**第一,完善物联网知识体系。**
在游戏行业泡了10年之后因为一个偶然的机会我进入了物联网行业到现在差不多4年了。转行之后虽然也遇到了不少问题但我依靠自己的摸索一路上都有惊无险地解决了。
不过我毕竟是半路出家,底子不够厚,还是希望能全面地了解物联网的知识体系。我觉得一个人的技能应该长成一棵完整的大树,而不是一堆零乱的杂草,这样才拥有核心竞争力。
**第二,尝试物联网全生态的落地实践。**
知识不用,自然就会荒废。只有在实践中不断地消化和理解知识,才能形成闭环,做到知行合一,真正产生价值。
物联网的整个生态分为设备层、网络层和应用层,而我一直专注于应用层的研发,在工作中很少直接接触设备层和网络层。而在这门课程中,郭老师在实战篇介绍了几个实战小项目,这对我来说是一个很好的机会,让我能够打通全生态,完成整个物联网知识栈的建设。
**第三,为创业寻找方向和思路。**
2012年我在游戏行业的创业失败到现在已经快十年了。我一直认为创业就是一个严谨的科学实验。复盘失败的原因我发现自己在各个层次上都或多或少缺少某些创业者必备的能力。所以在一顿恶补之后我也希望能看看还差多少。
另外物联网相对互联网而言从发起创业项目到真正落地并不需要那么多的资源。一个简单的智能家居项目成本也许可以控制在1000元以内时间也可以控制在一周左右这就勾起了我的创业兴趣。
最后,疫情这个外部环境深刻地影响着每个人,我们都需要去思考如何面对不确定性。一般来说,创新型创业是一件非常烧钱的事情,而物联网则先可以孵化一些小项目,用极低的成本完成前期的原型验证。
## 我是怎么学习课程的?
以前看到过一句话,我觉得说得挺好的:学习是个耗能的过程,所以想要效率更高,你就要尽量调用身体各个器官储备的能量一起来完成这件事情,包括五官、大脑和四肢。
记得当年我背英语单词那会儿,条件可比现在艰苦多了,因为音频资料获取途径不多,非常珍贵。我边读边写边思考,才实现了大二就通过大学英语六级的目标。
同样的道理学习这门课程也得尽量调动身体储备的能量。我觉得学习是一个费力费神的事情首先就要做好思想准备否则你就把学习当成kill time的方式了。
我学习用的是土方法。因为如果太讲究方法,就会导致操作难度太高,很难长期坚持下去。知识的学习过程是一个“润物细无声”的过程,所以我们还是尽量采用相对自然的方式比较好。
1. 第一遍对照文字听,熟悉文字内容。
2. 做笔记,将要点记录下来。
3. 盲听34遍一般是通勤路上比较方便。
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”如今已经在物联网行业自当努力奋斗。我相信天道酬勤所有的付出都是值得的不管是学知识还是知识以外的其他内容。
在个人成长过程中,除了纵向地学习,建立自己的知识体系技能树之外,还需要横向地向同行学习,以技会友,相互切磋,补足或者加深自己在不同场景下的理解。即便同样是智能家居范畴,扫地机器人跟家用照明系统就完全不一样,技术不仅仅需要结合业务,更需要结合场景以形成深度认知。
最后,我想再分享孟子的一句话:“天降大任于是人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其身,行拂乱其所为,所以动心忍性,曾益其所不能。”
与诸君共勉!