IoT lacks consistant "full-stack" standards. Someone as big as Mozilla could make things less messier by adopting standards on some/all layers of IoT. This is an area worth exploring "for the greater good".
I'll be graduating in a few months and I study embedded/IoT.
And as someone who spent the last 2 years digging in the corners of IoT, I agree that IoT can seem to be over-engineering problems that don't exist.
But the market is there, and it is huge. (mainly industrial, energy & transport applications)
IoT now is like the early personal computers, they were too expensive and almost no one knew why they needed them.
- I'd start with embedded environments: Arduino / STM32(F1/F4) / RaspberryPi see how to code for them and how to make them talk to each other (UART/SPI/I2C/CAN...)
- Then I'd check how simple kernel modules are made, and try to mess around the kernel in raspberryPi and make something that outputs a value on the terminal and via I2C.
- I'd check the "concept" of middlewares and start by something simple WComp[0] (written in C#). It is not used in the industry but it gives you a pretty good sens of how things should work.
- For beginners I'd recommend to use Parse[1] for any project where you need a "cloud" infrastructure (Database, API, users, privileges,...)
- You should also check how fully distributed systems (that operate in a peer-to-peer manner) work.
- After that it comes to ressource optimisation and things like that.
EDIT (You should also check these) :
- UPnP (Universal Plug and Play) is way to get devices to automatically discover and understand each other.
- MQTT: publish-subscribe TCP/IP messaging protocol (I use it for push notifications)