IoT-Roadmap
IoT-Roadmap copied to clipboard
A Roadmap to become an IoT developer either an embedded or IoT Application Developer , this roadmap is highly subjective but it reflects the market and can be further developed
Road To become an IoT Developer ✔️
I have split this post to 2 road ways :
- Embedded IoT Developer 🧑💻
- IoT Application Developer 🧑💻
The Way the road maps are structured are as follows:
- Programming Languages
- Concepts
- Tools
Embedded IoT Developer
Programming Languages 💻:
- Embedded C (Must Have)
- C++ (Must Have)
- Python (Must Have)
- Bash Scripting (Nice To have)
- Rust (Nice To have)
Those Programming Languages are going to give you a head start to kickstart the embedded journey where C++ and Embedded C are the bare minimum to get started
Concepts 🧠:
- RTOS (Must Have)
- IoT Value Chain (Must Have)
- IoT Security (Nice To Have)
- Wireless Communication (Must Have)
- OS Fundamentals (Must Have)
- Cloud Computing Basics (Nice To Have)
- Linux (Must Have)
- Web Services (Nice To Have)
- Pub / Sub Systems (Must Have)
- Embedded Design Patterns (Must Have)
- Networks (Nice To Have)
These Concepts are mandatory in order to be able to work comfortablly developing IoT Solutions.
Tools 🧰:
- Platform IO
- CMake
- Esp IDF
Target Architectures
- RISC
- CISC
The difference between CISC and RISC Targets should be understandable during development of Embedded IoT Solutions
You Can try the Following Targets / Dev Boards:
Targets
- STM32 (Blue/Black Pill)
- Esp32 / NodeMCU
- Raspberry Pi (Embedded Linux)
- BeagleBone (Embedded Linux)
- Jetson Nano (Embedded Linux)
To Work with those Targets and get something useful out of them you have to understand the target peripherals which include the following:
Microcontoller Peripherals 🎮
- GPIO
- Timers
- PWM
- ADC
- DAC
- Serial Communication(SPI,I2C,UART)
- Wifi
- Memory(Flash,SRAM,EEPROM)
- BLE
Here is a High Level Mindmap 🗺️:
IoT Application Developer
For you to become an iot application developer you have to wear a lot of hats and be knowledgable in alot of things , you should not think that you have to expert at all of these but atleast have some idea on how to work with the following:
- Frontend
- Backend
- Cross Platform Mobile Development (Nice To have)
you can choose from the below frameworks whatever you feel comfortable working with or have worked with before.
Programming Languages 💻:
- TypeScript
- JavaScript
- Python
- Java
Frameworks
Frontend
- React
- Angular
- Vue
- Svelte
Backend
- ExpressJS
- NestJS
- FastAPI
- Flask
- DJango
- SpringBoot
- GO
Mobile Technologies
- Flutter
- React Native
Concepts 🧠
- IoT Value Chain
- IoT Security
- Wireless Communication
- OS Fundamentals
- Cloud Computing Basics
- Linux
- Web Services
- Pub / Sub Systems
- System Integration
- Networks
- M2M
- Design Patterns
For Realtime operating systems you just have to understand how they work and how to deal with event loops because you can work with one.
RTOS
- Mynewt
- FreeRTOS
- Amazon FreeRTOS
- NuttX
For Internet Protocols they are mandatory that you understand how they work with different Architectures, for example client / server or pub / sub systems
Internet Protocols
- HTTP/HTTPS
- MQTT
- COAP
- AMQP
Wireless Technologies
- LORA
- BLE
- WIFI
- NFC Industrial protocols are not mandatory but they are nice to have and to understand how they work and if you want to work in the IIOT space then they will become very important and give you a headstart.
Industrial Protocols
- OPC UA
- Modbus
Distributed Computing
You should at least know one of the following message brokers to implement distributed computing and asynchronous code execution
- Microservices
Message Brokers
- Kafka
- RabbitMQ
- HiveMQ
- EMQX
- ESB eg. WSO2
You have to know atleast one Relational database, one nosql database and one Timeseries database as well as keystore databases.
Databases
- Mysql
- Postgresql
- MongoDB
- Cassandra
- Redis Cache
- InfluxDB
Time to market is really important to Enterprise companies that's why the use Application Enablement Platform, where they can develop iot solutions faster and below are the most popular ones in the market varying from open source to fully paid solutions
IoT Platforms(AEP)
- ThingsBoard
- The Things Industries
- Mainflux
- ThingsWorx
- Losant
- ThingsWorks
- Cumulocity
- Data Cake
Cloud Native Technologies & Tools 🧰
- Kubernetes
- Docker
- Prometheus
Monitoring 🖥️
Monitoring your assets and applications and servers is key to successful IoT deployment and maintenance Grafana is one of the best monitoring and visualization tools
- Grafana
IoT CLoud Providers
There are two types of AEPs One we call as Application enablement platform and one we call as Hyperscalers, Amazon and Microsoft are conisdered as Market Hyperscalers who enter the cloud and iot space to provide premade services to accelarate your time to market and development cycle
- AWS IOT
- AZure IOT