Is one C++ programming course enough?

Is one C++ course enough to become a competent programmer?

  • I don't like programming so one is perfect.

    Votes: 0 0.0%

  • Total voters


Mathematics Student

Can you start a forum for current students to share their course/ study experience at Baruch in more details format?


Agreed. Before I joined the program, I was led to believe that Baruch has been revamping its programming component to a level that every graduate of a program is a very good C++ programmer. It never crossed my mind that they will cut back on the number of C++ elective courses, let alone running only one C++ for the whole program.

I talked to a fair number of current students and incoming students and to the best of my knowledge, there is not a professional C++ programmer among the full time students admitted this year.

As if there are not enough push for it already, the talk today just again reaffirmed the single most valuable skill recruiters value. Anyone can learn finance on the job, but without C++ skill (very strong that is), there are not much hope for the full time students (specially the F-1 students) to obtain a job. Some of the part time students in our program are already professional programmers so it would be easy for them to switch career with the C++ experience. It's not the case with almost all of us, full timers.

So no matter what Dan tells you, you'd better learn more than what is required of you to obtain the MS degree. There are various elective courses in finance but there are none in C++. It's a mystery why there is not. The demand is there, the resource is there.

When there is a will, there is a way. Greg is a big advocate for this so I'm sure between Dave and Greg, we can arrange to have someone to teach the class next semester. Because there is no C++ next semester, Greg pushes everything he wants to teach into one semester. I do not believe that is the best way to learn.

As fulltime international student, I think you guys should be more concerned about your job prospect. Like Mr. Young said, it would take 6 or more months to get H1-B and it takes longer if you have no skills in demand. I do not believe any of our graduates will be hired solely on their finance, math ability and no programming skill. Consider the competitive nature of the market when you guys graduate, I think we should do something about it.



Quant Headhunter
As head hunter, I must say that the expectation is that MFE level people are weak at programming, except if their first degree was CompSci, in which case often the expectation is that they shouldn't be allowed on a computer without a grownup to hold their hand.

Expectations are a big thing. If you put C++ on your CV, you will be asked questions about it, indeed many banks ask C++ questions even if you don't say you know it.
That applies to pretty much any skill you cite. To an extent you get to choose some of the questions you will be asked. That's an amplification term, rather than being good or bad.
If you say you're good at something and prove it, things look up, if they read your CV, and assume you know something but you don't then it looks bad.

Thus CompSci people have a tough time. I was doing an first checkout of a candidate recently who claimed to have done CompSci. He'd done Java instead. Java is OK for learning patterns and algorithms, but he'd also been "taught" operating systems and other stuff in Java.
He also thought Apple, was an innovative computer company, a sentiment I might accept from an arts graduate, not a CS one.

He didn't know C++, and I could pick up the notion that he was actually quite scared of it.

A CS grad is expect to be *better* at programming than a physics or maths grad. Yes, really.
In QF that means C++, not any quiche eaters language.

Thus a major failure mode of CS grads is the failing to meet this expectation.
That should be fixable. Even if you've done a CS degree in an English speaking country, you presumably have learned *something* about languages or at least seen the book in the library, so picking up C++ should be easier for you.

I often characterise getting your ideal job as a race. The idea is to be better than others. Thus almost by definition the C++ course at Baruch is insufficient, as indeed is the C++ I do as part of the Wilmott CQF. You need to know more than your peers, and that means doing more than the course.
I will add a bit more. I am currently a faculty in Computer Science with a dual PhD in math and CS planning to shift to quant
I have taught several programming languages, however, I haven't taught C++. Now, to expect to be proficient in C++ after one class is extremely optimistic.
C++ is a very tricky language, with a lot of fancy stuff to do. You can expect to grasp the syntax of C++ and some of its intricacies in one semester. However, do not expect to be able to program in a truly object-oriented style, to be able to use patterns efficiently, to be able to understand the 'fanciness' of reuse, to be able to debug efficiently, etc.
Unless of course you've already taken at least one class on general data structures and can really focus on the language itself rather than the general programming methods.
Scott Meyers has a few books on programming in C++. They are not geared for quants, but if you spend time working with these books, on efficient C++ programming, this will definitely be extremely useful.
I guess this being my area, and having discussed, thought about it a lot, I have a lot to say. In general, you do not get proficient in a language while taking a class. You get proficient at a language by programming. There is no way around it.
You can go check Peter Norvig's website. He is the director of Search Quality at Google and is one of the two authors of 'Artificial Intelligence', THE AI reference. He has written something about learning programming languages and why the books along the lines of 'learn XXX in 30 days' are essentially, crap.
What matters is understanding the main concepts of programming languages. It is very well possible that in 15 years, C++ is not used anymore (although 35yrs later, C is still widely used, heck, so is Fortran!). That way, you will be ablet o adapt to a new language without any problem. Just keep in mind that this does not mean, you can spare yourself of learning C++ ;-)
I'm a little curious. Baruch MFE is provided in math department, but c++ is overwhelmingly emphasized. Which is more important? math/c++??
for international students, I will have to miss the refresher. besides books like c++ primer..., what else do you recommend? numerical recipes in c++? my goal is to warm up the skills, I have never programmed any pricing stuffs before. also, because I'm still working full-time, I would not ask for too many books, which may be beyond myself.

thanks for any kind reply :P
I'm a little curious. Baruch MFE is provided in math department, but c++ is overwhelmingly emphasized. Which is more important? math/c++??

well I guess that's only an impression.... we do indeed do * A LOT * of math.... 2 courses in stochastic calculus, a course in numerical methods/linear algebra and now a course in PDE's....

for international students, I will have to miss the refresher. besides books like c++ primer..., what else do you recommend? numerical recipes in c++?

If you did not do C++ before I think the book by Bruce Eckel "Thinking in C++" is a very good first book... its available for free on the internet on Eckel's website... If you already know some C++ I would recommend the famous books by Scott Meyer "Effective C++" and "More effective C++"... clears out a lot of concepts..

If you want to do something like numerical recipes I like the red book by Paul Wilmott " The Mathematics of Financial Derivatives " --- although we do cover that book in the program and hence you would learn and do that book anyways after coming here....
just avoid at all costs the books that present C++ as an imperative language and don't teach you how to implement in an OO way. You might as well learn C then
Very interesting reponses thus far.

I have an impression that VBA plays an equally important role in the programming picture, specially when it comes to structuring, modeling positions. Some people reported that they were asked C++ during job interviews but doing VBA majority of the time. Shouldn't they be asked more about VBA ?

Is it because the learning curve for VBA is not as steep or long as it is for C++ that people don't stress that much. I remember Dominic touched on VBA a while ago when discussing C++. Would be nice if someone can give a broader view of where VBA and C++ play, broken down to the buy-side/sell-side, pure quant, structuring, front office, support, etc.

VBA being an extremely flexible language (very much like python), it's hardly testing anyone to ask 'write an app for a specific host, in VBA that does xxx'.
Anyone proficient in C++ could learn VBA in a matter of days.

C++ on the other hand is a huge multi-paradigm language. It takes a lot of time and effort to be proficient in C++. It requires the programmer to have a relatively good understanding of the underlying architecture, and, let's face it, it tests your mental abilities quite a bit.

Therefore, it's not really a surprise to see that C++ is mostly used for the interviewing process.

Last but not least, use VBA for what it's really designed for: the development of programs interfacing with excel. For the rest, use a 'true' programming language
Very nice response, Francois
It's very much inline with what I've been hearing. It's surprising to learn how much development is still being done on Excel/VBA in the big banks. I guess the old saying "Don't fix if it ain't broken" holds true.

We are having a Structured Finance course this semester and all our assignments on building assets/liability models are done on VBA/Excel. This being our Springbreak, we expect to learn them pretty quickly. We'll see what come out of the break. ;)
If it ain't broken, it doesn't have enough features (engineering maxim).

More seriously, it does make sense to use VBA for this kind of stuff. It was designed for that.
No need for programming pedantry. If a simple language does the job well, use it. \\:D/
There is a fact that someone should point out, if it hasn't been pointed out already, lest anyone think that knowing your way around VBA will be your be-all and end-all for programming.

VBA is used by Excel 2007 and previous versions. However, I do know that Microsoft is shifting towards an architecture based on VB.NET, not VBA, and that will be a "preferred" way of doing spreadsheet programming.

VB.NET should be a snap to learn if you know C++. On the other hand, Visual Basic programmers have had a rough time making the switch (I know some Visual Basic programmers refer to VB.NET as "Visual Fred" because it turned so much of their Basic knowledge obsolete). Programming language shifts are a part of life, and you're much better off if you have a good grasp of a "foundation" language like C++.