Search code examples
.netdatabaseprogramming-languagesfinancial

Financial Market Developer Dilemma


In the no-so-distant future I plan to work for a corporation in the financial sector as a software developer. I have a few of options as right now:

  1. Learn and focus on .NET since (presumably) it is widely used in the financial industry.

  2. Study the programming concepts, learn algorithms, learn a little bit of C/C++, C#, JAVA, Objective-C, SQL, ORACLE, COBOL -- In other words, to learn the fundamental principles that tie all programming languages together, but without going too deep in any particular language.

My college professor has told me that as a programmer, most of the time, you won't be writing any code but instead maintaing an existing code that people before you have written. Does that mean I don't really have to master any particular programming language and so as long as I have general software development concepts it'll be good enough?

If you or someone you know who had worked in the financial industry as a software developer, could you please share the experience and what is the daily routine like? Also what should I be learning right now while I am still young and still in college? Do I have to understand the market and the current economy thoroughly? What about the Oracle or SQL Databases - do I need to know them inside out as a programmer? Thanks if you have anything else to add that I have not mentioned in here then please do so!

Thank you so much everyone again. Your responses have really helped me. I don't even know who to pick as the right answer as everyone here provided a very good feedback.


Solution

  • I worked in the financial industry for several years. I worked with a mathematician who would develop theories and strategies for buying and selling financial instruments, and I would put his theories into software for to test them out. But, what I'm about to suggest isn't just limited to the financial industry. The following are just my opinions. I've been in software development for approximately 22 years, and have pretty much done everything related to software.

    1) If you're interested in a career as a business/financial software developer, I wouldn't spend two seconds bothering with C/C++. While these languages are still being used, you will be much better off learning .NET (or Java). I work for a $2.5B solar manufacturer and we are 95% .NET/C#. Learning OO principles is key and learn software development best practices.

    2) Learn solid database fundamentals. I'm not sure it matters whether you learn Oracle or SQL Server, but learn one of them. Understand database normalization, foreign keys, referential integrity, query optimization etc.

    3) Get familiar with a version control system, like TFS. Most of the code you work with will be in source control of some sort. Learning the ins/outs of branching/merging. This is very important.

    4) It's not enough to just be good technically. You give yourself a tremendous advantage if you have a solid understanding of the industry you're developing in. For example, when I was developing financial software, I had an MBA, with a specialization in Finance. This gave me a huge boost. You are far more valuable to your company if you have a solid understanding of the business they are in.

    5) DO NOT STOP LEARNING. Instead of going home after work and watching TV, pick up a book on LINQ (.NET) or SQL Server or OO design or...