Before programming any microcontroller we require few tools(both hardware and software) to get our programme into the programme memory of the microcontroller. In the end every code or data is readable by the microcontroller or any processor in binary format but it's very much time consuming and difficult at the same time to write instructions in binary. So we use high-level language and then convert into binary lastly burn into the microcontroller. You can write the second stage programme that's assembly and even that requires an assembler.
So things we need
- Editor -> where you write your programme
- Compiler and build tools -> To convert high-level or assembly code to binary(it's very architecture specific)
- Debugging tools -> (only if your dev board supports) to look into the memory and control flow of programme etc.
Hence managing all these things differently is going to be messy so we have something called IDE(integrated development enviornment) which integrates all the above mentioned things in a