物联网领域正在不断扩大,但如果没有强大的物联网开发人员团队就无法做到这一点。如果您想知道如何进入该领域,就请从这篇文章开始。
什么是物联网开发人员?
物联网开发人员的工作可能涉及很多方面,比如安全、网络、系统工程、云编程和硬件设备编程等。由于这个职位相对较新,因此无论您对哪个方面特别感兴趣,则都会有很大的空间来拓展自己的职业生涯。
尽管没有必要也不可能掌握所有方面的专业知识,但对于物联网开发人员来说,至少一定程度上熟悉物联网项目的各个方面仍然很重要。物联网开发是一项高度协作的工作,因此您自己或您的团队与从事硬件或设计的人员协作,无疑是正确的选择。
物联网开发流程的各个阶段
要了解成为一名合格的物联网开发人员所必需的技能,您首先需要对物联网开发流程有一个基本了解。这样,您就可以了解开发人员参与流程的所有要点,甚至还能确定您想专门从事的细分领域。
物联网在以消费者需求节奏来开发和迭代产品方面提出了独特的挑战。这是因为它将硬件开发与软件开发相结合。
物联网开发流程需要一支由经验丰富且协调一致的软件开发人员、产品经理、机械工程师、电气工程师、UI / UX设计师等组成的团队,以及时交付产品,并在产品发布后继续对其进行改进。
通过使用敏捷物联网开发框架,我们的团队确定了物联网开发流程中的个步骤,可用于指导每个项目:
、验证和限制
在第一阶段,将验证您对项目的假设,并克服所有可能遇到的限制(预算、时间表、人员等)。例如:您的项目需要机器学习吗?您需要定制硬件开发吗?
、产品开发路线图
从头开始制定计划,确保每个人对产品的目标都是一致的。作为开发人员,您需要了解软件是如何与硬件交互的、开发时间表以及团队的开发方向。
、消除硬件风险
此阶段将消除硬件设计中的未知因素,并要求您与工程师合作,提出并回答以下问题:
▲是否可以以可接受的精度水平测量/控制X?
▲在预期的操作环境中是否可以接收无线网络?
、模拟与仿真
此阶段涉及构建硬件的粗糙原型,您不需要自己动手,因为它需要机械工程技能。实际上,许多物联网设备主要使用预先组装好的板材,并在板上连接了传感器,因此构建并不完全是从头开始。在这里,Breadboards板和alligator 夹是您的好伙伴。重要的是,您组装在一起的硬件可以正常运行。
此外,您还要从应用程序方面入手,使用测试工具来模拟硬件在完全构建后如何与软件进行交互。您还将开始围绕设备配置、身份验证、固件更新以及在Web后端和设备之间传递基本消息而构建关键组件。
、完善原型
在此阶段,您的原型应完全连接到Web。要做到这一点,您需要具备编程技能,以从物联网设备的传感器读取数据并将其发送到服务器。您还需要有人对服务器进行编程,以便接收和存储来自设备的数据。(来源物联之家网)这需要了解诸如Ruby、Elixir、Python、C#、Java或Type之类的服务器语言,并熟悉数据库查询语言——SQL和NoSQL。
最后,您需要通过网页或应用向用户显示数据和消息。这意味着您需要具备Type 、HTML、CSS等Web开发语言以及React或Vue等框架方面的经验。
、微加工
在此步骤中,您的硬件团队将创建自定义印刷电路板和D打印机械外壳/组件。他们会将这些分发给开发人员,以便可以使用实际的硬件进行测试。
、首次生产
在最初的生产过程中,您将创建大约台产品,可以将它们分发给一组测试人员。用户测试在物联网中的重要性与在常规软件开发中一样重要,因为物联网涉及物理硬件成本。如果发生进一步的问题,就不能再轻易更改它。
在此阶段,您应该会收到可用于迭代改进的反馈。如果需要更改硬件,则软件开发团队可能会暂停,或者在解决问题期间您可能会被要求处理其他功能开发。
、真正生产
此阶段将生产台或更多产品,此时您应该已经与制造商合作完成任何必要的自定义配置或软件校准。您也可以与早期的采用者合作,以获取有关产品使用的反馈。
、进入市场的生产排程
您已经准备好发布产品了。现在,您可以开发其他产品以添加到您的物联网系统中,或者您可以考虑延长产品使用寿命和提高价值的方法,因为它已经投放市场。例如,您是否可以使用产品传感器已经收集到的数据在应用程序中提供新的见解?
、数字孪生技术仿真
最后,为了收集更准确的产品反馈,您可以创建一个数字孪生——物理对象的虚拟复制品,可用于测试和实验产品。数字孪生还可以减少拥有和支持产品的终生成本。
物联网开发人员的必备技能
现在,您已经掌握了物联网开发流程的所有要点,接下来还需要知道开发人员的必备技能:
、人工智能、机器学习和数据科学
企业越来越认识到人工智能、机器学习和数据科学在自动化流程、从数据中提取更多知识和见解,以及做出更明智决策方面的价值。
因为物联网产品本质上经常收集大量数据,所以对于物联网开发人员来说,了解需要使用哪些技术来帮助企业最大化数据的价值至关重要。
、嵌入式系统工程
即使您没有直接参与物联网设备的编程,或者您没有计算机工程学位,您也应该了解传感器如何工作以及硬件如何与软件交互的基础知识。您可以尝试使用Raspberry Pi来了解其工作原理。
、网络与安全
成功的物联网解决方案依赖于跨安全网络的有效通信。为了确保连接性,开发人员应该熟悉OSI堆栈和物联网中使用的通信协议(如MQTT)。
此外,您应该遵循物联网安全的最佳实践,如固件安全、客户端SSL以及保护设备本身。
、移动应用开发知识
事实上,在物联网中,您需要具备一些网络开发知识,这样您就可以创建与您的“东西”或设备相连的应用程序。(来自iothome)此外,由于大量连网设备被智能手机控制,因此,当今一些最受欢迎的物联网开发人员在移动开发方面(iOS和Android)都拥有非常丰富的经验。
、用户体验(UX)和用户界面(UI)设计
您的物联网产品可以具有完美的连接性,并可以使用完美的代码进行编程,但是,如果使用起来很麻烦,那么所有这些都将失去意义。而这就是用户体验和用户界面设计的用武之地。
尽管您不必是物联网UX/UI设计专家(尤其是考虑到物联网设计的复杂性),但在整个物联网项目中,与软件和硬件设计人员的协作将是必不可少的。
、物联网开发框架、语言和技术
要成为物联网开发人员,您可能需要精通以下方法、框架、语言和技术:
方法:
▲敏捷开发
▲精益开发
▲极限编程
框架:
▲Ruby on Rails
▲Phoenix
▲Nerves
▲React
▲React Native
云服务:
▲AWS IoT
▲Microsoft Azure IoT
……………
语言:
▲Ruby
▲Elixir
▲Python
▲C/C++
▲C#
▲Type
▲HTML
▲CSS
总结
现在是进入物联网开发领域的最激动人心的时刻,有趣的是,您可以亲自参与并见证该领域在未来几年的蓬勃发展。如果这篇文章中的内容听起来跟您一样,并且您有兴趣加入物联网开发人员团队,那么恭喜您,您将开启前途无量的物联网职业生涯新篇章。