Page 1 of 1

Programming Languages --What order to learn them?

Posted: March 5th, 2007, 3:22 pm
by TheDiesel
Greetings!I am actually an Engineering grad student (interested in biological sensory systems so I do a lot of signals oriented stuff), but I'm looking at job options in FE as well.I've seen Excel/VBA, C/C++, Java and some scripting languages mentioned in other posts.I'm familar with C; however, I normally use matlab for everything. As I have no experience with object-oriented code, I was leaning toward taking Java classes this summer.What sort programming languages are used, and what order should one learn them?

Programming Languages --What order to learn them?

Posted: March 5th, 2007, 3:41 pm
by cemil
you must lear C++

Programming Languages --What order to learn them?

Posted: March 5th, 2007, 3:41 pm
by cemil
you must learn C++

Programming Languages --What order to learn them?

Posted: March 5th, 2007, 4:13 pm
by richbrad
If you have some knowledge of Matlab and C, then you have the a knowledge base of that really doesn't include any object orientated programming. I think it is this you need to address.Cemil's post is probably correct in that you should look at C++ first of all as there is evident similarity between C and C++. However, don't just narrow your horizons to that - look at other OO languages too - learn tricks from other areas.

Programming Languages --What order to learn them?

Posted: March 5th, 2007, 4:35 pm
by prak
QuoteOriginally posted by: TheDieselGreetings!I am actually an Engineering grad student (interested in biological sensory systems so I do a lot of signals oriented stuff), but I'm looking at job options in FE as well.I've seen Excel/VBA, C/C++, Java and some scripting languages mentioned in other posts.I'm familar with C; however, I normally use matlab for everything. As I have no experience with object-oriented code, I was leaning toward taking Java classes this summer.What sort programming languages are used, and what order should one learn them?Depends on what you want. If you want to become a 'quant' and construct the tools used by the traders and sales people you should learn java and/or C++. I guess C++ is the standard because it exists longer then Java already. A friend of mine only knew MatLab and had to program some in C++ for a small company. He learned himself C++ rather easy. Of couse you won't become a C++ master in this manner.

Programming Languages --What order to learn them?

Posted: March 5th, 2007, 5:49 pm
by TheDiesel
Hey, Thanks for the responses.I am interested in Quant Positions, so I would like to build a skill set now that is applicable to solving real-world problems.(I have an undergrad background in economics as well, so some of the upper-level ugrad / general grad finance books are approachable.)The largest problem I have found is navigating the C++ v. Java argument, and next, picking out the CS courses that will be of real-world use.The eng has some programming classes, but they are geared toward scripting languages. That leads me to the following two follow-up questions.What is the rationale behind the choice of C++ rather than Java?What CS courses are useful for quant work?

Programming Languages --What order to learn them?

Posted: March 5th, 2007, 5:54 pm
by richbrad
C++ is generally the choice because the system development started in that! It is currently a self perpertuating argument.I guess the sort of important courses involve numerical solutions to PDEs in general (not just financial PDEs).

Programming Languages --What order to learn them?

Posted: March 5th, 2007, 6:38 pm
by dongta
Hey, why do quants prefer C++ to other languages?Other than for real-time systems or any applications that being twice faster is significant, I don't see C++ better than Java at all (in terms of coding, maintainence, OOP design, etc.).If quants normally solve PDEs nummerically, why do they prefer C++ to Matlab?I'm confused.

Programming Languages --What order to learn them?

Posted: March 5th, 2007, 8:23 pm
by twofish
QuoteOriginally posted by: TheDieselThe largest problem I have found is navigating the C++ v. Java argumentIn the "real world" that question has been decided already. You program in more or less what the system is already programmed in.QuoteWhat is the rationale behind the choice of C++ rather than Java?C++ (for Fortran) is essential for heavy duty number crunching. Also it has really powerful constructs like templates.QuoteWhat CS courses are useful for quant work?CS courses are surprisingly not useful for most application software development. Learn just enough syntax to be able to start reading code, and then find an open source project out there and start coding. Also, one course that would be *really* useful but hardly ever mentioned is a MIS course on project management or the software life cycle. Language skills are generally transferable so a good coder in one OO language will tend to be a good coder in any OO language. Java is a decent language to start out people learning OOP, since hands your hand a bit more than C++, and once you get skilled in Java, moving to C++ isn't hard.

Programming Languages --What order to learn them?

Posted: March 5th, 2007, 8:24 pm
by twofish
QuoteOriginally posted by: cemilyou must lear C++I thought you were going to say "you must fear C++" (which has some truth to it).

Programming Languages --What order to learn them?

Posted: March 5th, 2007, 8:33 pm
by Cuchulainn
QuoteI don't see C++ better than Java at all (in terms of coding, maintainence, OOP design, etc.).OO design is language-independent; when you think of design in terms of hardware-like symbols any language is fine. Here is a non-QF examples of balls and sockets contracts in s/w. BTW contracts are coming in C++

Programming Languages --What order to learn them?

Posted: March 5th, 2007, 9:36 pm
by Arbitrary
Contracts? Can you please explain using your diagram, or direct me to a link for further info?

Programming Languages --What order to learn them?

Posted: March 5th, 2007, 10:19 pm
by TheDiesel
Hmm, it seems like it boils down to two pathwaysJava (2 courses 8 cr.) -> C++ (1 higher level course)-or-C++ (2 courses 8 cr.) -> (more C++ / Scripting Probably modelling biological systems.)My school offers higher level courses in both a Java pathway and a C++ pathway. There seems to be a strong industry focus on C++, so it seems it is best to go with the latter.I won't worry about any of the other CS theory oriented stuff, I'll just read and do "mini-courses."Thanks!