For some background information, I am a PhD student in economics. Although I did not study in finance previously, I took a course on stochastic calculus and a course on asset pricing in incomplete markets at the PhD level. We're mostly talking about option pricing models and their applications (think, GARCH models, stochastic volatility models, jump diffusion models, etc.). I have been working on option pricing problems lately and I am starting to realize how computationally intensive these things can be. For example, calibrating an option pricing model by defining a gaussian likelihood in the implied volatility space requires me to price a several thousands of option contracts which can be very long to do, even if I enjoy a quasi-closed form pricing formula.
So, I was wondering how much effort it would take to learn how to use C++ to do some of the heavy lifting when I need to increase speed. I already know how to use MATLAB, R and I am slowly learning how to use Python. The professor with whom I am working also suggested I learn object oriented programming in Python as it would often simplify my life. I started doing this and it's going rather well. So, how much effort are we talking about? In my case, we're looking at basically doing some matrix algebra, numerical intergration, etc. or, in some cases, perhaps running relatively simple Monte Carlo simulations and being able to move results back and forth between a higher level language (like Python, R or MATLBA) and C++.
The second question is how useful is it? Would I really get enough use out of this to justify the time I might have to spend learning it? I mean, I can do a lot of things using existing software packages and I have spent a great deal of time being able to hack my way around those problems, but I will be needing custom routines from time to time. In short, I'd like to have a better idea of the trade offs involved here from someone who actually use C++ to solve computationally intensive problems.
The last question is: does anyone have relevant resources on the topic? If possible, I would like tutorials that includes examples dealing with how to run simple regressions on data, how to run a Monte Carlo simulation or how to price European options because those are close enough to what I do for me to relate to what I already know about programming in other languages.
Thanks in advance.