I just got Sparkfun's Raspberry Pi 3 starter kit and some extra fundamental components and one fun component (a speaker). I used to do some DIY electronics stuff, but I didn't understand capacitance at the time (to be fair, neither did my high school teacher) or diodes.
Now I'm obsessed with smart home IoT / home (and everything else) automation and I finally decided to dip my toes in hardware so I can make my own devices. I'm sure there are a bunch of fun sensors and components on the 3 big merchants' websites, so I plan to try a lot more DIY electronics. So, I realized what is an important question if I plan to keep getting into this hobby:
What is the difference between Raspberry Pi and Arduino? Both in terms of technical details as well as use cases or what the community focuses on.
What about the "AVR" and "ATMega" stuff I vaguely remember from DIY forums? I kind of get the sense that there is a hierarchy going from high level to low level, pi > arduino > AVR/Atmega.
What is the difference between Particle/Blynk/ControlEverything and what are their competitors? (i.e. Particle vs Hologram is one of the few "competitors" I could find, as I don't know what Particle is - a protocol, a framework, ...?
What's the direction to head in if I'm interested in building smart home / automation projects that I would like to connect with Alexa, Siri / iOS / iPhone, macOS, Google Cast Smart TV, Philips Hue, IFTTT/Stringify/Workflow etc, Wemo outlet switch, HomeKit/HomePod (soon), Android tablets, the Smartthings Hub I'm looking at buying, NFC/RFID technology, APIs and messaging queues, other DIY projects I'll make and other IoT consumer devices or "Hub" devices?
Is there some Arduino-like board that will let me code in raw MIPS assembly? It would be a fun throwback to school.
Background info: I'm a software engineer, primary full-stack but also love FP and Haskell and compilers. I can write Python/Node.js/Lua/Processing/scripts whatever that these projects would require, and know HTTP and RabbitMQ and learning gRPC. So although I'm asking about higher level abstractions, much of the automation I do on my heavily customized mac and smart home setup are node scripts running on a vps (for now).