To your knowledge of programming I'am sure you have studied the basics of every language but that is not the key to a successful programmer ! You might know "A jack of everything is a master of none "! Take your time to master one language ,just one! Let it be C++ or Java ,know in and outs of the language especially implementation of data structures and graphs !Moreover as far as the freelancing is concerned I suggest you to learn more about servelets and sockets ! You might as well like to download and study BTC SDK to work on sites and programs mentioned above ! Master your skillset in particular language and you should not have problems getting hired anywhere !