The "Internet of Things" is, in reality, the rise of embedded systems. Taking a small computer and embedding it in a formerly un-computerized object allows us to control the object, gather data from the object, and ultimately tie the object to other things through a network or the Internet.
Fortunately for engineers and product designers everywhere, it has become rather easy to find very capable small computers that can be rolled into an object to bring it into the Internet of Things. More to the point, it's become easy to find embedded systems that make use of the same operating systems and programming languages used in business servers and workstations.
It's difficult to overstate the importance of being able to use common operating systems and programming languages to develop prototypes and production systems for the Internet of Things. Embedded systems have been around for decades, but for most of their existence programmers have needed special software development environments to write code in unique languages (often, but not always, a variation on assembler for the processor sitting at the heart of the computer).
Now, there are various platforms on which people can develop prototypes for IoT applications. Some of these are the same platforms that will ultimately be used in a final product, while others will simply be the initial springboards from which to launch a product. Either way, the systems here will help a product development team get a project off the ground.
There's one more thing that really must be mentioned here: Any of these systems can also be a great way to teach people programming. Whether you're thinking about a system for teaching a young person how to code, or just looking for a way to sharpen some of your skills, you won't really go wrong tinkering with any of these embedded systems.
The real challenge to you is this: What do you want to build today? The embedded platform is no longer a good excuse for avoiding the dream project you've had locked in your head.