对于不同岗位的开发人员来说,想要开发出成功的物联网项目,所需的技能会有什么不同呢?本文就从硬件设计、后端开发、前端开发、应用开发、数据科学家等角度,分别谈谈各自的技能图鉴。 作者 | Adam Dunkels 译者 | 弯月,责编 | 郭芮 以下为译文: 成功的物联网项目非常注重工程技术。在本文中,我们将讨论从事物联网项目的开发人员所需掌握的技术力:硬件设计师嵌入式固件开发人员无线通讯专家后端开发人员前端开发人员应用开发人员自动化与系统集成工程师数据科学家 所有成功的物联网项目的第一步都是定义业务目标并建立概念验证系统,以评估这些目标是否可以实现。在这个阶段,你只需掌握本文提到的部分技术。但是,等到项目取得成功,超越了概念验证水平,那么团队所需技术力的广度和深度就会增加。 通常,开发人员都可以掌握多项技术。有时,项目所需的每项技术都需要由专门的团队来承担,而所需人员的数量则取决于项目的复杂性和成功度。项目越成功,就意味着有更多钱来雇佣更多人。 硬件设计师 大多数物联网项目都涉及某种形式的定制硬件设计。硬件的复杂度因项目而异。在某些情况下,我们可以使用硬件模块和参考设计,基础知识和电气工程知识就足够了。而有些更复杂的项目则需要更多的经验和专业知识。如果你想构建苹果级别的硬件,则需要一个苹果级别的硬件团队,还有苹果级别的预算。 常见的技术:印刷电路板(PCB)设计无线电频率与天线设计时钟,信号路由相关的经验低功耗设计和功耗优化芯片选择:微控制器、传感器、接口芯片接口:SPI、I2C、JTAG、USB、GPIO生产和零件采购 嵌入式固件开发人员 如果想让硬件发挥作用,你就需要嵌入式开发人员。他们是从事最底层、最接近裸机硬件的软件开发人员。这样的软件称为固件(介于软件和硬件之间的固件)。一般这些开发人员的背景结合了电气工程、计算机体系结构和软件开发。嵌入式开发人员的工作需要与最终硬件的原型版本打交道,因此通常他们的办公桌看起来都很凌乱。 常见的技术:编程语言:C、汇编语言、C++实时操作系统(RTOS)经验:FreeRTOS、Contiki、Zephyr嵌入式Linux源代码版本控制物理和信息安全平台:美国德州仪器(TI)、ARM Cortex、AVR、微芯片、Arduino、树莓派 无线通讯专家 大多数物联网项目都是无线的,但无线技术都很难,因为无线集物理与软件的双重复杂度于一身。通常无线通信专家都来自无线通信、网络协议和软件开发。对于大型物联网系统来说,拥有无线通信的专长才能适当地确定网络与通信模式。而消费级物联网系统则需要无线通信专长来确保通过蓝牙顺利地将设备连接到用户的智能手机。 常见的技术:网络模拟无线网格网络对无线传播技术的掌握对功耗的掌握协议:TCP/IP、IPv4、IPv6、RPL、TLS、WiFi、蓝牙、6lowpan、ZigBee、LoRA、MQTT、CoAP 后端开发人员 在物联网系统中,后端需要处理数据库和应用程序逻辑。通常,后端都部署在云主机中,并负责存储来自物联网设备的数据、对用户进行身份验证、为前端以及与其他系统的集成提供API。 常见的技术:编程语言:Java、Go、Python、Ruby数据库:MySQL、MongoDB、Redis开发运维经验云平台:亚马逊的AWS、Heroku、微软的Azure 前端开发人员 大多数物联网项目都有网页形式的前端。用户可以通过这类网页与系统交互。因此,这些网页需要做到易于使用、安全、可在最常见的Web浏览器中运行并保持最新状态。这些前端是用HTML开发的,而且通常都会采用某些现有的Java前端框架。前端开发人员需要通过大量输出到网页上的文本来创建视觉体验。 常见的技术:UI/UX设计用户访谈与人机交互的经验HTML、CSS、JavaWeb开发框架:Vue.js、React、Bootstrap 应用开发人员 许多面向用户的物联网项目都需要使用移动应用作为用户界面。随着项目的推进,移动应用体验的重要性越来越突出。通常,我们需要开发和维护两个版本:iOS和Android。有时也可以开发混合原生应用(通常用HTML开发)。大多数应用开发人员都清楚原生与混合框架的优缺点。 常见的技术:Android、iOS开发原生/混合框架:Phonegap/Cordova、Ionic、Angular、React、Vue编程语言:Java、Swift、Objective C、Java 系统集成与自动化工程师 许多物联网项目都需要与现有软件集成。软件集成是一项经常被低估的任务,我们常常需要花费大量精力,运用一套特定的技术才能取得成功。此外,一旦软件集成开始,你就必须确保集成保持正常运行。这时我们就需要采用自动测试。系统集成和自动化工程师需要拥有大量实践经验和勇气,因为这是一项艰巨的工作。 常见的技术:自动测试框架:Jenkins、Mocha、TravisREST API编程语言:Java、Java、Python、Bash 数据科学家 物联网项目都需要围绕数据展开,而且你需要充分利用这些数据。在项目的早期阶段,这部分的工作可能很简单,只需将关键绩效指标放入Excel工作表中进行比较即可。但是随着项目的发展,你需要针对数据展开更深入的分析。这时就需要数据科学家的帮忙。数据科学家可以通过复杂的数据,寻找模式以及可付诸行动的信息,而这才是数据的最终价值。 常见的技术:统计、人工智能、机器学习、数据挖掘编程语言:Matlab、R、Python工具:Excel、Google BigQuery、Hadoop、TensorFlow、Spark 总结 一个成熟的物联网项目需要一系列广泛的技术支持才能取得成功。在项目的早期阶段,验证业务案例是最重要的任务,因此你不需要具备本文中提到的所有技术力。但是,在业务案例得到确认,项目可以真正开始后,这些技术就会变得越来越重要。 本文为 CSDN 翻译,转载请注明来源出处。 |