Buildroot: What for?
Programming when your target system is not based on x86 architecture and you use a PC for development can be done using a cross-compiler. There is a GNU cross-compiler for many different platforms.
What if you'd like to test the code without using the target system. There are good news too, as you can use qemu emulator to get a system with a non-x86 architecture emulated on your x86 system.
But you might want to get a development system running on your same target hardware. This is interesting if you have a way of accessing the target computer filesystem. It can also be interesting if you want to be able to fine tune the set of versions and libraries to be used by your development system. Here is when buildroot comes in handy.
Buildroot allows you to create a development environment for your embedded system around uClibc (which is a scaled-down version of glibc used for many Linux-based embedded systems). With this tool you select the architecture, kernel, compilers and libraries versions to match the system of your choice (you're planning developing on).
Buildroot output is a filesystem you can mount on the target system and chroot it that contains a full development system. With it you can edit, compile and make your programs on the target system, as far as you're able to mount that filesystem.
However, my experience with Buildroot is a mixed bag as sometimes the process of making an image stopped with an error. Given that each attempt requires more than 20 minutes (of compile time on my system) it is understandable I am not trying to explore all the possible combinations.