成功的物联网项目需要大量工程。本文讨论了完整的IoT项目所需的开发人员技能:
- 硬件设计师
- 嵌入式固件开发人员
- 无线通讯专家
- 后端开发人员
- 前端开发人员
- 应用程序开发人员
- 自动化和系统集成工程师
- 数据科学家
任何成功的物联网项目的第一步都是定义业务目标并建立概念验证系统,以估计这些目标是否可以实现。在此阶段,你只需要本文列出的技能的一部分。但是,一旦一个项目如此成功以至于超出了概念验证水平,团队所需的广度和深度就会增加。
通常,单个开发人员拥有几种技能。有时,列表中的每个技能都需要自己的团队。所需的人员数量取决于项目的复杂性和成功程度。成功通常意味着更多的工作,但是更多的收入可以用来雇用更多的人。
硬件设计师
大多数物联网项目都包含某种形式的定制硬件设计。硬件的复杂性在项目之间有很大的不同。在某些情况下,可以使用硬件模块和参考设计,对于这些基础知识和电气工程知识而言,这是足够的。更复杂的项目需要更多的经验和专业知识。要构建Apple级别的硬件,你需要一个Apple级别的硬件团队和一个Apple级别的预算。
典型技能:
- 印刷电路板(PCB)设计
- 射频和天线设计
- 时钟,信号路由经验
- 低功耗设计和功耗优化
- 芯片选择:微控制器,传感器,接口芯片
- 接口:SPI,I2C,JTAG,USB,GPIO
- 生产和零件采购
嵌入式固件开发人员
要将硬件变成魔术,你需要嵌入式开发人员。这些是从事软件工作的人员,他们的软件水平非常低,接近裸机硬件。该软件被称为固件(其中公司软硬之间的事情)。典型背景是电气工程,计算机体系结构和软件开发的结合。嵌入式开发人员可以使用最终硬件的原型版本,因此他们的办公桌看起来很凌乱。
典型技能:
- 编程语言:C,汇编语言,C ++
- 实时操作系统(RTOS)经验:FreeRTOS,Contiki,Zephyr
- 嵌入式Linux
- 源代码版本控制
- 物理和信息安全
- 平台:德州仪器(TI),ARM Cortex,AVR,Microchip,Arduino,Raspberry Pi
无线通讯专家
大多数物联网项目都是无线的,并且无线很难,因为它将物理世界的所有困难与软件的复杂性结合在一起。无线通信专家的典型背景是无线通信,网络协议和软件开发。对于大型物联网系统,必须具备无线通信专业知识才能适当地确定网络和通信模式的尺寸。对于消费级物联网系统,需要无线通信专业知识来使设备通过蓝牙平滑地连接到用户的智能手机。
典型技能:
- 网络模拟
- 无线网状网络
- 很好地了解无线传播
- 充分了解功耗
- 协议:TCP / IP,IPv4,IPv6,RPL,TLS,WiFi,蓝牙,6lowpan,ZigBee,LoRA,MQTT,CoAP
后端开发人员
在物联网系统中,后端是数据库和应用程序逻辑所在的位置。后端通常部署在云主机中,并负责存储来自IoT设备的数据,对用户进行身份验证以及为前端以及与其他系统集成提供API。
典型技能:
- 编程语言:JavaScript,Go,Python,Ruby
- 数据库:MySQL,MongoDB,Redis
- DevOps经验
- 云平台:Amazon AWS,Heroku,Microsoft Azure
前端开发人员
大多数物联网项目都有一个网页形式的前端。这是系统用户与之交互的地方。这需要用户友好,安全,可在最常见的Web浏览器中工作并保持较新状态。前端是用HTML开发的,几乎总是使用一些用JavaScript编写的现有前端框架。前端开发人员通常通过在屏幕上书写大量文本来创建视觉体验。
典型技能:
- UI / UX设计
- 具有用户访谈和HCI的经验
- HTML,CSS,Javascript
- Web开发框架:Vue.js,React,Bootstrap
应用程序开发人员
许多面向用户的物联网项目使用移动应用程序作为用户界面。随着项目的进行,移动应用程序体验变得越来越重要。这通常意味着需要开发和维护该应用程序的两个版本:iOS和Android。有时,通常使用HTML开发的混合本机应用程序就是这样做的方法。大多数应用程序开发人员都精通本机或混合框架的优点和挑战。
典型技能:
- Android,iOS开发
- 本机/混合框架:Phonegap / Cordova,Ionic,Angular,React,Vue
- 编程语言:Java,Swift,Objective C,JavaScript
系统集成与自动化及工程师
许多物联网项目需要与现有软件集成。软件集成是一项经常被低估的任务,需要花费大量的精力和一套特定的技能才能成功。并且,一旦软件集成开始,你将需要确保集成保持正常运行。这是自动测试起作用的地方。系统集成和自动化工程师将具有丰富的实践经验和勇气,因为这是艰巨的工作。
典型技能:
- 自动化测试框架:Jenkins,Mocha,Travis
- REST API
- 编程语言:Javascript,Java,Python,Bash
数据科学家
物联网项目围绕数据展开,你需要充分利用这些数据。在项目的早期阶段,这可能很简单,只需将关键绩效指标放入Excel表格中进行比较即可,但是随着项目的进行,你可能需要对数据进行更深入的分析。这就是数据科学家的用武之地。数据科学家利用复杂的数据来寻找模式和可操作的信息,最终驱动数据的价值。
典型技能:
- 统计,人工智能,机器学习,数据挖掘
- 编程语言:Matlab,R,Python
- 工具:Excel,Google BigQuery,Hadoop,TensorFlow,Spark
结语:一个成熟的物联网项目需要广泛的技能才能成功。在项目的早期阶段,验证业务案例是最重要的任务,因此,你不需要上面列出的所有技能。但是,一旦建立了业务案例并且项目可以真正开始,这些技能就变得越来越重要。