Financial Market Developer Dilemma

In the near future I plan to work in a corporation in the financial sector as a software developer. I have several options, as of now:

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

  • Learn programming concepts, learn algorithms, learn a little C / C ++, C #, JAVA, Objective-C, SQL, ORACLE, COBOL. In other words, to learn the fundamental principles that bind all programming languages ​​together, but without delving into any particular language.

My college professor told me that as a programmer, most of the time you will not write any code, but instead save the existing code that people before you wrote. Does this mean that I do not need to master any particular programming language, and as long as I have general concepts for software development, will it be good enough?

If you or any of you know who worked in the financial industry as a software developer, could you share your experience and what is everyday work? And what should I learn right now while I am still young and still in college? Should I fully understand the market and current economy? What about Oracle or SQL databases - do I need to know them inside out as a programmer? Thank you, if you have anything else to add that I did not mention here, please do it!

Thank you all. Your answers really helped me. I don’t even know who to choose the right answer as everyone here provided very good feedback.

+6
database programming-languages financial
source share
4 answers

I have been working in the financial industry for several years. I worked with a mathematician who developed theories and strategies for buying and selling financial instruments, and I would put my theories in software to test them. But what I am going to offer is not limited only to the financial industry. Here are just my opinions. I have been developing software for about 22 years, and to a large extent I have done everything related to software.

1) If you are interested in a career as a business / financial software developer, I would not spend two seconds on C / C ++. Although these languages ​​are still in use, you will be much better off learning .NET (or Java). I am working on a solar energy producer for $ 2.5 billion, and we are 95% .NET / C #. Learning the principles of OO is key and exploring best practices in software development.

2) Learn the basic basics of databases. I'm not sure it is important to learn Oracle or SQL Server, but learn one of them. Understanding database normalization, foreign keys, referential integrity, query optimization, etc.

3) Get acquainted with version control system, for example TFS. Most of the code you work with will be in some form. Studying the inputs / outputs of branching / merging. It is very important.

4) It is not enough just to be technically technical. You give yourself a huge advantage if you have a clear understanding of the industry in which you work. For example, when I was developing financial software, I had an MBA with a degree in finance. It gave me a huge boost. You are much more valuable to your company if you have a clear understanding of what business they are in.

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

+9
source share

I have been working in the financial sector for over 3 years.

My daily life begins with switching to caffeine in the kitchen. I think this is similar to other industries.

But I digress ...

About 20-40% of my time will consist of coding, depending on the current state of the projects. You need to do a lot of maintenance work or work on adding extra features to your existing code. Other time is spent on meetings, evaluations, specifications, and staff training.

As a rule, I work on the architecture of the new systems that we implement, but we draw them into the maintenance work when the changes lag behind.

If you are going to work in financial markets, some mathematicians will help you. Some jobs will require nothing less than the ability to understand complex interest rates, while others, such as Quant jobs , may require a deeper understanding.

There is a third option that might pay well if you are kind. This is a development by Brownfield . If you can teach yourself how to integrate new systems with common, traditional (or perceived as obsolete) systems, it can be very hot for you.

As for what to learn when you are young and still in college, there are many good questions about this on SO with answers better than I can provide. The great point, however, that you teach in college is just a fraction of what you need to be truly successful. Also, follow job openings to see how the market is moving and trying to anticipate. If you can get an internship or a few holiday concerts with companies while you are still in college, this will also give you a great boost.

+3
source share

Start with option 2. Get a good breadth of knowledge and understanding. But don't stop at c, C ++, C #, java, object-c, sql, oracle, cobol ... do some other things. Create an application for the application store and get an estimate of how to sell it, how to handle users, understand what users need / need. Learn how to do graphics, learn about usability, etc.

How many .NET developers are looking for work in the financial industry (or any other industry, for that matter)? How will you differentiate yourself?

I highly recommend Dan Roy 's All New Mind.

+1
source share

In addition to the other good tips you had, I suggest you find out:

  • financial mathematics;
  • numerical methods suitable for implementing financial mathematics in code;
  • Matlab or R or Mathematica or Maple or similar.

1 and 2, in particular, will help you in the future strengthen your skills against quirks and mods in programming languages.

Finally, do not assume that technology X is being used in your target sector; find out which technologies are being used.

+1
source share

All Articles