作为计算机科学专业的学生,​​我该如何在正规教育之外发展物联网工作的技能?


25

为了在计算机科学相关领域取得出色的成绩,大学生要做的不只是获得学位,还需要做更多的工作-他们必须超越其他领域才能与该领域的其他人竞争。

作为一名CS学生,我对IoT的软件方面比较满意,但是对电子方面以及支持Internet的传感器/设备的整体结构不太满意。

在物联网方面,我该怎么做才能发展自己的技能?特别是,我对大学CS课程可能无法教的事情感兴趣,以帮助我将来获得工作或在该领域取得进步。


3
你能在大学做任何与物联网相关的工作吗?购买一些Raspberry Pi Zero W(或类似的产品,但价格最便宜),想一想一个项目。也许戴上感应帽;失败的话,找到一个免费的JSON API,它将为您提供数据,并将数据发布到网站。然后继续前进。研究Zigbee和MQTT。发布一些可以向人们展示的GitHub项目或网站。也许参与了一个更大的,现有的FOSS项目。从小处着手,逐步提高工作难度,增加复杂性并使其可见,然后将其添加到您的简历中。
Mawg

FWIW,我看到了很多Zigbee职位空缺,但是到目前为止,MQTT都没有,但是如果我是我,我仍然会考虑MQTT。
Mawg

Answers:


16

我曾经在一个系的大学任教,现在教授物联网,当您弄脏一些玩具而不是学位来弄脏您的手时,您的观察是正确的。许多计算机科学家与通信工程师,生产工程师等工程师合作,提出了独特的解决方案,物联网成为有趣的应用。

我认为您可以先研究不同的通信协议栈,例如:

  1. IEEE 802.15.4,包括无线传感器网络和众所周知的ZigBee之类的字段。看一下Contiki-OSRIOT-OS。传感器节点本身确实要花费更多,但是可能在现场工作的大学部门可能会为您提供一些帮助。

  2. 轻巧的工具PSigFoxLORAWAN等,如果您想与研究机构和/或行业接触,我建议您可以开始了解这些昂贵的工具。这些工具将为您提供有关电信,3G和LTE等堆栈及其参与的详细见解。物联网工业4.0

  3. 物联网智能家居和自动化领域正在进步,因此您可以查看诸如openHABOpenThread之类的工具,并作为计算机科学专业的学生来开发有用的API。

  4. 最后但并非最不重要的一点是,可以将任何种类的开源平台设备(如Raspberry Pis和/或其他微控制器)与上述技术的无线通信模块结合使用,以提供简单和/或复杂的IoT解决方案。

工具类

作为物联网技术专家,像C / C ++,Java和Python这样的编程语言将带给您很长的路要走。前端开发,HTML,CSS,JavaScript和jQuery等将使您对处理Internet数据类型(如JSON,XML,纯文本,CBOR等)以及后端(如Node.js,Flask by Python和Ruby on)有更好的了解。 Rails将帮助您设置最常用的服务器客户端模型。

Git和开放源代码存储库将使您跳入可用于即将进行的项目的应用程序和各种API。

您越深入,您的工具处理技能和对物联网的理解就会越好。


7

物联网运行着整个计算领域,涵盖了广泛的技术,实现和策略。简而言之,这只是意味着事物已连接到通信通道,例如互联网。了解事物与事物之间的关系可能是关键:消息传递,事件,流。

我抢了一些小型设备,不管它们是什么,但是最简单的是基于Arduino或Pi的。使用WiFi或由现有云支持的东西(例如Photon)来获取东西。

在其上粘贴一些传感器。温度是典型的例子。开始吸收数据并存储它。然后获取这些数据并进行分析;许多方法可以做到这一点。

如果您对分析方面更感兴趣(通信在这里并不是真正的难事,图书馆会处理它是WiFi,BT,ZigBee等),那么会有很多数据集,例如,纽约地铁的旋转门数据。


7

物联网是巨大的。它不仅包括其背后的计算机科学,还包括诸如Google Home之类的家用应用程序。如果您最终要销售,那么了解有关可用设备的知识可能会有所帮助。

个人推荐一些东西:

1.订阅优质杂志。

那里有大量的杂志和最新文章,可帮助您与物联网世界同步。物联网演进杂志是我经常阅读的杂志。另一本具有很多有价值的技术信息的是M2M杂志

2.获取一些物联网设备。

这对您的计算机科学并没有多大帮助,但确实使您熟悉了可用的技术。根据您所从事的领域,广泛掌握有关可用领域的全面知识可能会有所帮助。考虑购买一些物联网交换机并安装,甚至在家中创建自己的物联网设备。

只有我的2美分(在加拿大四舍五入),但希望对您有所帮助!


1
广泛的背景非常有用-即使它只能帮助您与其他领域的专家交谈。
肖恩·霍利哈内

3

正如其他答案所指出的那样,最好的学习方法是做事 -在这种情况下,从头到尾地深入研究和设计设备,以了解物联网开发中涉及的流程和步骤。

这与您在软件工程/编程中遇到的问题非常相似-许多大学课程都向学生教授计算机科学,即软件开发背后的理论和概念。但是,经过3到4年的学习,他们被扔到世界各地寻找编程工作,而且他们缺乏成为成功的开发人员所需的实际实践技能。

在印度,据称实际上只有7%的毕业生可被聘为软件工程师,原因是:

尽管该国大量的工程专业学生学习教科书,进行考试并收集学位,但只有在遇到现实问题时,他们才会意识到自己的不足。届时,他们必须花更多的时间才能熟练掌握技能或遭受失业。

我敢肯定,您会在这里看到类似的东西-如果您想进入IoT领域,则需要能够了解如何开发设备及其所需的基础架构


但是,在开始制作原型时要考虑以下几点:

  • 它不必具有革命性-作为一个学习项目,做简单的事情没有错。这里的关键是要有一个可以实现的具体目标

  • 确定目标后,将任务分解为若干步骤很难 ; 如果这是您的第一个项目,那么您一定会感到迷茫。这里重要的是...

  • 有一群人可以帮助您。如果您在一家教育机构,那么您会很幸运,那里会有很多热情,知识渊博的人。几乎可以肯定的是,他们会对您有所帮助。毕竟,每个人都应该是他们的本职,因为计算机科学是他们的激情!

如果找不到任何可以提供帮助的人,那么总会有爱好者,专家和超级用户的网站为您提供一些建议!


3

我建议做自己的项目。

我发现Derek Molloy的书Exploring BeagleBone非常好。

然后,您可以执行以下操作

  • 获得黑骨黑
  • 完成Derek书中的所有项目(有关IoT的电子设备和传感器的良好介绍)
  • 扩展项目
  • 在GitHub或Bitbucket上发布项目

当您面试时,您现在可以谈论您所做的IoT项目。提及它当前正在实时运行,如果雇主想了解更多信息,则可以在GitHub上运行。

这表明雇主您对物联网真正感兴趣,具有该领域的能力,并且是面试的重要话题。


2

如果您尚未构建嵌入式应用程序的实现,那么您将远远落后于经验丰富的同行。显然,您会受到所选领域的限制,但理想情况下,您应该对整个堆栈具有实践经验-从传感器到价值定位。在此阶段最有价值的是发现问题,而不是取得好结果。


2

步骤1:停止花太多时间玩电子游戏

第2步:启动一个简单的项目,并真正擅长Google搜索。将项目的每个部分分成更小的,更易于管理的部分。一次解决每个问题,然后继续进行下一个问题,直到您的项目完成。

您将学到有价值的课程,然后将其用于其他更复杂的项目。

例如,我目前正在研究自动跟踪太阳的太阳能电池板,该电池板将充电和电池数据记录到在线仪表板上。我要做的第一件事是弄清楚如何使用Arduino IDE在ESP8266上使LED闪烁。然后,我不得不弄清楚如何通过模拟输入获得光和电压读数。每个步骤要花一个小时到几天才能弄清楚,但是到目前为止,我已经学到了很多关于电子学以及我编写的代码如何与每个组件交互的知识。

当然,您的项目创意必须是您充满激情的想法,以便从头到尾完成它。

我经常发现的主要事情是,如果我很喜欢它,我会做得更多。但是实际上,关于物联网的乐趣并不多!


1

我曾经是一名计算机极客,我的失败是数学,由于学习上的困难,我的基础数学处于接待班学生的水平,而且一直都会如此。

我了解计算机,实验,YouTube,反复试验,耐心的方式。

90%的计算机是耐心的,其余10%是重复的。

如果您对计算机感兴趣,可以像养育自己的孩子一样抚养和养育它。您的兴趣将有一天感激您。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.