I grew up playing with Lego and similar building-block toys but once I fell in love with software, I pretty much forgot that I could tinker with hardware too. For about two decades now I've been writing code to make computers do whatever I want them to do. Meanwhile my opinion of hardware has been that it is a failure-prone black-box that my beloved software needs to run on. If I could program tomatoes and watermelons to send email, share photos, and add numbers, I would throw away all my personal computers and go grocery shopping immediately. But since I am unable to do that as of yet, I will do the next best thing and start playing with building-blocks and hardware again.
A lot has changed in the past decade in the world of hobbyist hardware. There is a whole ecosystem now surrounding a tiny computer called Arduino that costs only $30. Arduino lets anyone write small programs that can interact with the world using sensors and motors to make things happen in rea-life. No matter how smart my code is on a regular computer, the most effect it can have on the real-world is to send an automated text-message or make a loud noise unless I buy some expensive hardware. Arduino can let me turn on/off LED lights, measure room temperature, detect infrared light, turn on/off motors, and much more. Basically, now my Lego toys can cheaply become tiny machines or robots and the best part is that I still get to write software to make it all work together.
I'm still waiting for my Arduino to arrive and already have an idea for my first, second, and third projects. The good thing is that being a beginner in this field, I get to learn a lot of new things in a very short span of time. After you have been working in a field for a decade or more, coming across new things becomes a rare event. It's not everyday that I hear about a revolutionary programming language or database system. But a tiny $30 PC that can inform me when my cats enter the kitchen? That's revolutionary!