Programming Skills

Hey Guys, Seeing many finance roles require some sort of programming skills these days, I have made the decision to teach myself one. What type of programming skills are most demanded in the market - VBA? SQL? Matlab?. Also if you have experience in any of these could you please comment on the difficulty of learning it. Thanks in advance! Tommy

It runs a wide range as to what’s useful for what application. That said VBA/Excel is pretty ubiquitous and should generally serve you very well (beyond that, I wouldn’t waste too much effort without any specific goals). Probably best bang/buck. m2c.

VBA - You do a fair amount of excel work and want to make your excel sheets do more complex stuff. It’s useful for doing “just a little bit more,” but falls short of being an awesome programming language. SQL - It’s more of a dialect than a language, and it’s used for getting data into and out of databases. If you will be doing database work or research that requires querying databases, you’ll need this. Fortunately, the basics aren’t that complicated, although masters of SQL can do surprising things with just a few lines. Matlab - very useful for research and simulation. It’s not so much a true programming language as it is an environment for doing mathematics that is highly scriptable. If you don’t feel like shelling out $1000 or so for the license (or can’t get a cheap student license). R has a similar structure, and there is an open-source version of Matlab called Octave that you can look for. Java - true object oriented and widely disbursed programming language. This is a little easier to learn than C++ in my opinion. C++ - for serious programming, there’s an assumption that all real programmers use this language. I know a bit of C++ but do more Java myself. If you need to interact with hardware or need the absolute fastest speeds for things, C++ is the way to go. It also packs the most punch on a resume.

Can you just learn C++ or suchlike? Imagine you need to be taught this stuff really.

Actually this is a question I’ve been wondering about for a while. I’ve been building up my VBA skills at my current job as much as I can. But I took AP Comp Sci back in high school and we did almost everything in C++. Now, obviously, I’ve lost a lot of that knowledge, but I’m wondering if it would be worth it to brush up on the basics. From an employer’s point of view is it worth it to hire someone who is just familiar with C++, or would they consider it valuable only if you already had professional experience coding financial models?

It’s very hard to become a good programmer without real instruction. The syntax in C/C++ is easy to learn, but good programmers must develop proper style and habits so that their code is efficient, readable and easy to de-bug. It’s like learning a new language. It takes hundreds of hours of practice to become fluent.

Start with python. You’ll thank me later.

If you’re becoming a programmer to work in a bank = fail. If you have a serious idea and you become a programmer to bring it to life = winning (Charlie Sheen, ABC).

lxwarr30 Wrote: ------------------------------------------------------- > If you’re becoming a programmer to work in a bank > = fail. If you have a serious idea and you become > a programmer to bring it to life = winning > (Charlie Sheen, ABC). really? Good developer can easy earn north of 250k. In a bank

To become a real developer you need to know basics. Basics starts with datastructure and oop design. It is like you can’t solve integrals, unless you know how to solve simple second order polynomial

I don’t think that this guy wants to be an actual developer at a bank. He just wants to know if programming skills can enhance his ability in other jobs. If you are a quant, trader, or some kind of research person, some programming knowledge can be valuable. Obviously, these roles don’t require the same level of CS knowledge as actual developers.

anyone know of some beginner books, or courses that could help with getting down the basics on these types of tools…

I like the “Head First” series. It looks silly, but they have a nice way of putting things so that it makes sense and sticks with you. They have SQL, Java, C#. I’m not sure about VBA.

Thanks for all the help guys! I’ve decided to go and start learning VBA as a base then possibly progressing to other forms of programming mentioned above. Which version of Excel should I use? 2003,07, 10??? What is the industry standard? Thanks

You’ll never be a good programmer if you start out learning VBA. It’s a terrible language that is implemented poorly with no consistent operating environment.

I think it depends on what the guy wants to do. VBA is a kiddy programming language, but it requires much less time to acquire some basic functional ability compared to programming in a more advanced environment. If the goal is to become good at programming, it might be a good idea to start with a more sophisticated language. After that, VBA will be very easy to pick up. However, if the goal is to just impress your computer illiterate boss with some Excel automation, then VBA might produce the best results/effort.

As for Excel versions: most companies use Excel 2003 or 2007, but VBA is mostly the same between either of these. I don’t know about Excel 2010.

I second bchadwick’s recommendation of the “Head First” series of books. It does look a little wacky at first with all these crazy looking pictures that they put in but it does make the concepts easier to digest. Most programming books are very dry to read which can put you to sleep but I didn’t have the problem with the Head First series. Someone above recommended Python which I would also agree is suitable here since you don’t seem to have any requirements that would make one language the obvious choice. If not Python then consider Perl or PHP, two other languages that are not strongly typed but very handy and can achieve alot with a very small amount of code. All 3 are very similar and probably sit in the middle between something “kiddy” like VBA and something more “hardcore” like C++/Java.

Thanks again. I’m currently in a job (not requiring any programming) however I’m wanting to learn a programming language to expand my skill set for future job prospects, many of which require some form of programming in this industry. Here in Australia VBA, Matlab and C+++ are the most requested in job advertisements I’ve seen. I’m not wanting to become a professional programmer I just want to learn VBA and then possibly progress to a more advanced type of programming.

I just spoke to somebody with programming experience and mentioned that VB6 is a dying language (or soon will be) and recommended me to start learning VB.NET?