What is Internet of Things (IoT)

IoTs are tiny computers connected to the internet. They range from household objects to industrial tools. In most cases they are limited by their computing power, memory, as well as the network bandwidth but they are inexpensive, so you can use a lot of them and also replace them more easily.

To give you an idea, an IoT device can be used to send sensor data or other useful information about its environment and location to a central server. This central computer — with its larger computing capacity — may be able to combine and utilize this information in all kinds of ingenious ways.

In a real world example, a mining company used IoT devices to gather information about its trucks in a mining path and was able to resolve traffic congestions, save money and improve worker safety.

These tiny computers can also be used in smart homes, medical devices, robots, toys and game controllers to provide unique experiences to the user.

Is it worth learning about IoT

According to some estimates IoT market is to cross USD 1 trillion in the next few years with 94% of business using some sort of IoT device by 2021. As a programmer and software engineer, it is imperative to learn about IoT technology. Especially, if you intend to stay relevant and prosper from this massive growth.

To be completely honest it took me a while to get into it and it was a job requirement that forced my hand, but that does not have to be the case for you. In my opinion, ignoring IoT now would be as bad as ignoring the internet in 1999.

How to get started

As you can imagine — for a massive industry like this — a lot of technology has been built around IoT, what that means for software developers is that there are several ways to get into IoT development. Primarily you should consider the following 3 things.

  • Which microcontroller chip you want to use.
  • What tools and programming language you’d like to use
  • What backend IoT platform would be a good fit

Here are the top choices that you should consider as a starter package

I know there are others, and some of you may fault me for not mentioning RasberryPI but I did my research and this is what I recommend when starting from scratch. Let me know in the comments below why another starter kit should be mentioned.

Thinking ahead, IoT Backend Platforms

To reach the scale IoT devices are built to reach, they need a solid backend system. The crux of the problem is that in order to be useful, IoT devices need to send and receive data to a central server. Thankfully there are already a ton of IoT platforms that you can integrate with, alternatively for a small to medium sized project, you can roll your own by using a simple LEMP Server in-conjunction with a message broker such as Mosquitto MQTT. In a future post I will share some code to get you started on that.

Challenges with learning IoT development

Like with any new domain, there are certain challenges that you should be aware of:

1. Learning Curve

This was the biggest one for me, there is a lot to learn to just get started. The terminology can be confusing and there are way too many options. I was lucky to have few people hold my hand, and there are many helpful sites and youtube videos online. Take your time, start with a kit mentioned above and don’t get discouraged from the initial information overload.

2. Hardware and EE

There is a hardware and electrical engineering part to IoT development, some of us who come primarily from software development background may find this challenging — I know that I did and still do. I highly recommend not worrying too much about it, at least when you’re starting up, think of it as magic and some of the things will slowly start to seep through.

Final Thoughts

Getting into IoT development could be challenging, use the tips above to get started. Take your time and try to connect with others who may be interested in learning it. If you have any questions, feel free leave them in the comments below or post them in our Facebook page.

Good Luck!