What's the coding job like in oil companies?

For those who have worked in oil companies or finance companies as coders, are your work over there have more emphasize on algorithm design/analysis or class/library creation/maintenance? Forgive me if this is a stupid question as I don't have much experience in writing codes. And I understand that these two may be inseparable, and that specific-job-dependent.

Some background information why I ask this:
I'm graduating in about a year or so with a PhD in theoretical cosmology from an in-famous university. After seeing what the graduates from my department has gone through, I finally realized that the hope of finding any postdoctoral positions is minimal, globally. Therefore I began reading some books on coding such as C++ and algorithms, since the oil and finance companies that require these skills are the places most likely to hire physics phds.

I was recommended the book Thinking in C++ by my friend. However, now that I've finished the first volume, it seems to me that this book is oriented towards the topic of class/library design. So this brought me to wonder what the work in the real world feels like. Since I would have a physics degree, I imagine that algorithm design would constitute a greater part of daily jobs if those companies would ever offer me a job.

For those who have worked in oil companies or finance companies as coders, are your work over there have more emphasize on algorithm design/analysis or class/library creation/maintenance?

Everything. Different coders do different things, and all the managers care about is that everything works.

Therefore I began reading some books on coding such as C++ and algorithms, since the oil and finance companies that require these skills are the places most likely to hire physics phds.

On the other hand, I got my first oil company job because they were looking for a Fortran guru. You see, they had some code from the 1970's that needed to be integrated into a new system. But knowing C++ didn't hurt. Curiously, the part of the company that I worked in didn't use any really complicated algorithms (i.e. the most complex thing that I did involved algebra) and the complicated algorithms were done in some different part of the company.

What's really funny is how oil companies used algorithms. A lot of the algorithms involved calculating some highly complicated PDE's. However, the hard part is that the people in the field typically had only a high school education, so how do you set things up so that people in the field could do PDE calculations. What happens is that you use the PDE's and then calculate "chart books." These are paper calculators that graph the PDE results in a way that someone with no math knowledge can calculate correction factors.

The interesting thing was that when it came time to put those calculations into a computer, you'd think that people would have the computer calculate things with the original equations. But what ended up happening was that we tended up doing curve fits against paper charts and then putting those into our system. Part of the reason is that in many situations, the correction factors were for an instrument that was manufactured by a competing company, and they weren't about to give us their original algorithms, but the chart books were public information. Also getting information from our own company, was a challenge.

And that this was around the time that we were starting to do business in Russia and China and Russians and Chinese do geological processing in a different way.

So this brought me to wonder what the work in the real world feels like. Since I would have a physics degree, I imagine that algorithm design would constitute a greater part of daily jobs if those companies would ever offer me a job.

A lot of work in the corporate work is "whatever needs to get done" type of work. I ended up doing a lot of work on GUI design and database work. The important thing is to be flexible. Whatever needs to get the job done gets done and if you don't have the skills to do what you are assigned, then you figure out how to get those skills.

The other thing is that some of the skills that aren't highly valued in academia become extremely important in industry. Teaching assistant and classroom experience is extremely valuable in industry.

Thank you, twofish-quant, for this much information and sharing with us your stories!

On the other hand, I got my first oil company job because they were looking for a Fortran guru. You see, they had some code from the 1970's that needed to be integrated into a new system. But knowing C++ didn't hurt.

Actually I sort of learned a bit of Fortran when I first came into this group for using the CosmoMC for optimization in some cosmological parameter space. But it was a long time ago so I basically forgot all the details. I think I'll try to go through that again.

What happens is that you use the PDE's and then calculate "chart books." These are paper calculators that graph the PDE results in a way that someone with no math knowledge can calculate correction factors.

I guess that's one major difference between research in academia and projects in industry. In academia, it's kind of like an insider game, where it's your own problem if you don't understand the "language". But in industry, a large part is for generating end products that can be used by others with no pro-knowledge.

Also getting information from our own company, was a challenge.

Though I knew there's politics happening around within companies, I actually didn't expect that!

The other thing is that some of the skills that aren't highly valued in academia become extremely important in industry. Teaching assistant and classroom experience is extremely valuable in industry.

Then it might turn out to be a good news for me as I work as TA for the whole five years of my graduate study!

Actually I sort of learned a bit of Fortran when I first came into this group for using the CosmoMC for optimization in some cosmological parameter space. But it was a long time ago so I basically forgot all the details. I think I'll try to go through that again.

One thing that makes job hunting Kafkasque is that you never know what the employer is looking for (and sometimes the employer isn't sure what they are looking for).

But in industry, a large part is for generating end products that can be used by others with no pro-knowledge.

The other difference is that in industry, things have just got to get done. For example, I could be a totally incompetent salesman, but if something has to be done today, and there is no other person to do it, then you need to do the best you can with what you have.

In academia, you have the option of not doing things. If you don't have competent Java programmers, then you just don't program things in Java. In industry, you often are in a situation where you *must* do something and do it quickly, and if you don't have competent people to do it, then you make do with what you have. If some Java code has to get fixed today, and I don't know Java, I learn and learn quickly.

Though I knew there's politics happening around within companies, I actually didn't expect that!

Everything is politics. One other difference is "politics" isn't considered a dirty word in industry. A lot of running a company involves convincing people to do or not to certain things and understanding why people do or don't do certain things. Every technical decision in business has some political aspect about it. Do we write our own library or use libraries from Microsoft or use some open source library? That's fundamentally a political decision.

Then it might turn out to be a good news for me as I work as TA for the whole five years of my graduate study!

In industry, you often are in a situation where you *must* do something and do it quickly, and if you don't have competent people to do it, then you make do with what you have. If some Java code has to get fixed today, and I don't know Java, I learn and learn quickly.

I guess that's why you always said that during interviews oftentimes the companies are not looking for the best but rather trying to avoid the worst. This transition of working-style is probably going to take time for people like me who have spent a long time on the theoretical side.

Which should be a prominent part of your resume under experience.

Thanks for pointing that out! I never though that being a TA would possibly help me landing a job somehow, since I've always dreamed about finding research positions in academia, where lecturers are implicitly assumed to be "inferior" in many cases. No offense to the lecturers but this does seem to be consistent with what I observe: some meetings in my apartment do not welcome those lecturers. I guess that's the politics and power-structure in academia.