| Hard to say, there are so many. - 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) [0] : http://www.wcomp.fr [1] : https://www.parse.com/ |