Yes, all the Ardu* projects are open source. They're all based on Arduino (which is C/C++). It's easy to use and free. Please go to arduino.cc to learn more about programming with it.
You don't need a special programming board. If you're using APM, it's USB native. If you're using the older ArduPilot, you just need a FTDI cable (connects USB to the ArduPilot board).
What about USB for the Arduino Pro Mini? (Yes, I need to use this exact one for a couple of reasons)
Will an FTDI cable work with it?
Yes, an FTDI cable will program an Arduino Pro Mini.
No, (current, "APM") DIY Drones software will not run on that Arduino without significant modifications. The current ArduPilot boards have devices and connections that "basic" Arduinos do not. And processors with much more Flash and RAM and multiple hardware UARTs.
If you stay away from ArduCopter and APM software, going back to the old (no longer, or not much longer supported) ArduPilot software you *might* be able to get it to run on that hardware with only a few changes. Key: If the mini has enough of the AVR's output pins broken out. I had old ArduPilot running on Arduino Diecimila and Mini a year or year and a half ago with few if any changes.