Voodoo programming (a term derived from ‘voodoo economics’) is a tongue-in-cheek term for using a programming device, system or language which one does not sufficiently understand. The implication is that the code written either should not work, or that the programmer does not understand why it works. It serves as a kind of incantation. The term can also apply to doing something which you know should not work, but actually does work, such as successfully recompiling some code which refused to compile the first time. Some voodoo programming is probably due to glitches, subtle bugs (such as uninitialized data), or incorrect/misleading documentation in the compiler, APIs, or operating system.
It is similar to black magic, except that black magic typically isn’t documented and nobody understands it.
A person with experience of voodoo programming is sometimes called medicine man or witch doctor, such as “Java medicine man” or “C++ witch doctor” as equivalent for guru or wizard; the traditional terms imply high sophistication, study and knowledge over the matters and discipline, while voodoo programming implies getting things working but not fully understanding why.