Actually I know a little about c++ but I think this will help
How can I see source code of .exe soft? - Stack Overflow
It used to be possible to decompile using a program called IDApro and then work on it's output which was in assembly code. With the wide spread use of obfuscation (more or less encryption of code) I would think that it would be almost impossible.
It depends. Some languages like .net, java, python are not normally compiled to assembly/machine code. So conversion back is possible if the binary is not obfuscated. However languages such as C/C++ create binary output in machine language. To obtain the assembly code you may use a disassembler such as IDA/hopper as mentioned correctly by Carl.