@eusdaiki that is some pretty good information. However, your overall answer brings me to a crossroad faster than I expected.
I entered this profession for the freedom it provides, both financially and of time. I am very comfortable in my intraday trading and wanted to find avenues to diversify. The two choices I had until now were indulging in options or increasing my activity in longer time frame trades. Basically, something that would generate more income. The option of algo trading seemed and even better idea (as it would fulfill both the criteria of financial gains and freeing up time), until the barriers that have been mentioned start popping up.
The two barriers are:
a) Learning to code: As you mentioned, everyone has a preference for their own language. Hence, learning multiple languages would consume a lot of my time. Additionally, once a preferred language is chosen, it would take even more time to be proficient at it, to be able to code competently. I understand the advantages it may bring with time, but I am not sure it is something that I will enjoy doing. Besides, I have a 0.5, 2 and 4 year old that I like spending time with. They grow ever so fast and I know that I will not get that time back, so time is a factor that can pinch a nerve or two on my side.
b) Outsourcing/hiring: I really don't mind paying up for the service, if I were to get what I wanted and could find someone trustworthy. Sometimes it doesn't matter how much you pay someone, if they think they can make more (or even a little extra on the side), it's all game. So I have an issue of trust at this end. The loss of a few successful strategies would be unkind.
Basically, it's a catch 22 here and it's something that I will have to find a solution to with time.
find the middle ground.
on a) you don't have to learn enough to code your own version of the linux kernel... just enough so that when you go to b) you can speak the same language as the developer(s). you just need to know the ropes so that you have a clear vision of what computers can/cant do and you understand when the developer starts talking technical and he understands when you're telling him what the system must do. You don't even have to code the same language as he uses for the code, even if he writes the program in C, you can still communicate the ideas better by knowing R or Python... you can focus on building prototypes and let you teammate worry about optimizing it to production standards. with time, you'll get sharper on a)... programming is a lot like learning a new language... at first you are worried and looking at the dictionary every 2 minutes... then one day it clicks and you start focusing on the message without thinking about the translation.
