1) depends a lot on your needs. If I had to pic a general language, I would go with Python since it is a great all rounder, good for doing many different tasks but not really the best at any of them. Focuses on readability of the code and quick development times. A good approach to this problem is starting from the other end. If you have a broker or system where you want to write trading scripts (say, MT, esignal, tradestation) then start learning their scripting language... then find out which language is the base for the one you are using and learn that language. For example, esignal's language is based on javascript, so if you trade on esignal, learning javascript would be a natural move. Same goes from MT's scripting language and C...
2) Specializing on one language has the advantage that it lets you get very fluent on that one language, but it also has a few short commings.
a. it blinds you from that languages strenghs and weaknesses. you cant compare if you only know 1.
b. how do you choose which one to learn? word of mouth? if you ask 10 developers you'll get 8 opinions on which is the best language, based on their own needs and perceptions... so learning a little of many languages is the only way to find the one where you really want to specialize.
c. it puts you at risk of obsolesence. there is more than a few languages that have fallen out of fashion and didn't incorporate new programming features that later became common on modern languages. Think of the poor souls that spend their time coding Fortran or COBOL (yes, there are people that still use those languages day in day out!!!)
Bjarne Stroustrup, the creator of C++, says that one should learn at least 5 languages. (Not saying that he is an oracle or something, but the guy knows a thing of 2). Why? because no language is perfect for all tasks, so knowing several helps you to know which one to use for which task. It also makes it easier for you to adapt to new languages and deepen your understanding of computer science as a whole.
3) depends on the language. you can pickup languages like python, or R and be proficient at them in a matter of months... other languages like C++ are notorious for being expert friendly and can take a while to learn.
this free class from GATech can take you from almost 0 to writting a basic automated investment system on python in 8 weeks.
https://www.coursera.org/course/compinvesting1
4) as complicated as you want and a little more!

there is no such thing as small details when it comes to computers... remember that you are teaching a piece of sillicon to trade. that piece of sillicon has absolutely no intuition. If anything, putting together the system will push you to see small mundane details that you pay no attention to when you are trading, since you consider them intuitively without thinking about it.
5) this depends. if you know 0 about computer systems, then the developer will know 100% of how everything works in your trading system. meaning that he will have a very strong incentive, and very few obstacles to trade the system himself! in this case you would need to pay him a good cut of the profits and provide other incentives to keep him from going solo... the more you know about computer systems the more you can slice the work into smaller pieces for many more developers, and this allows you to hold more leverage on them. If you know enough, you can even make it into granular pieces where you can even outsource much of the work without giving away the secret sauce...
6) as in #5 depends on your side, how small can you cut the problem for them. the smaller the pieces, the less they need domain specific knowledge, and the less they can just take your secret sauce with them.
7) on the contrary. the computer will NEVER forgo of ANY detail that you didn't specifically code for. It is a stupid piece of silicon that has 0 intuition, but has pefect logic and follows instructions in EXACTLY the same manner every time. No detail is too small. The machine needs you to pull out the microscope and let it know every tiny little detail, any detail you miss simply won't exist as far as the machine is concerned.
8) trading more setups simultaneously is a normal objective for automation.
you can't just let the system trade and go drink from colorful glasses with umbrella straws while the system makes money, you need to keep an eye on them and continuously work on new strategies.
9) depends on the algo.
10) that's a nice and very realistic movie.
11) depends on the algo.
12) depends on the algo