Platformio is really well known open source ecosystem for IoT development. Most advanced features are remote unit testing and firmware updates, which means that you will learn how to use pretty powerful cross-platform IDE.
You can setup your working environment with help of our instructions: https://iotaap.mvt-solutions.com/instructions/working-environment/
Feel free to write about any problems or issues here in the community forum! Also, check out other amazing instructions!