Quote from crandall_v:
Hey,
Just wondering. In other people's experiences - how long has it taken you to learn C++?
I mean just to an intermediate level - or to a level that you can truthfully call yourself a C++ programmer.
Thanks!
-Crandall
I've been programming in C++ for over 7 years and I still can't say I know C++. It is, by far, the worst language I have ever worked with. Undefined behavior this, undefined behavior that. The standard is full of it. I think it is impossible to truly 'know' C++.
What you need to realize is that becoming fluent in a programming language is like becoming fluent in a spoken language. It takes years. However, once you get the basic concepts down, you begin to pick up other languages much more quickly. Learning Latin and Spanish allowed me to learn Italian much more quickly. The same goes for programming languages. Learn C++, and Java is a breeze. Learn SML, and O'Caml is just a step away. The concepts are the same across the languages -- it is just the syntax that differs.
If you really want to become a competent programmer, I would recommend learning one imperative language, and one functional language.
For the imperative language, I would probably go with Python. It is an extremely powerful language, has enormous community support, and a whole lot of useful libraries.
For a functional language, I would probably recommend Scheme -- though O'Caml would do in a pinch. Scheme might be a bit easier to understand than O'Caml for a functional beginner.
After learning these two languages, you can move on to almost anything. Your only jump will be memory management in languages like C and C++. Other than that, you should have all the building blocks to learn any language you want.
More related to the programming side of finance, knowing a tool like Excel, Matlab, or S/R inside and out is priceless. Being able to write your own models in Excel is very important. Writing code for yourself is one thing -- writing code for production is another. A platform like Excel allows you to write code that can be easily exported for traders to use.
But I concur with the posters above me -- if you want to take the easy road, just learn C#. Very, very powerful language. .NET is a very, very powerful platform. While C++ isn't going away anytime soon, I would certainly never recommend a new project be started in it...
Best of luck.