0
$\begingroup$

Intro and disclaimer: this question concerns developing a career in Scientific Computing in industry, starting from an (applied) mathematics background, say an MSc. It definitely arises from my current, personal situation but I think that formulated as is, it is not opinion based and can help also other people. I am based in Europe.

The main point of discussion is:

is a PhD (in scientific computing or similar), on average, recommended/necessary for a job as a scientific programmer?

To be concrete, the target is on physics based simulation software: finite elements, numerical PDEs, HPC, fast solvers... I am looking forward to receiving your bit of experience, especially from those that are in a similar career (and maybe with a similar background). Here are some points I wish to get feedback on, but definitely feel free to expand in your answers:

  1. the job market is rather small and competitive, the title of PhD is an advantage
  2. a master student in numerical analysis does not necessarily have the required computer science/hpc skillset to make them employable without further qualifications: a PhD can be a sensible way to bridge gaps and develop needed skills
  3. a PhD does not prepare to be a programmer, mainly, so that it may not be a very wise investment if the final goal is an industrial position in scientific computing
  4. a PhD title might be necessary to have some research in the future job
  5. many of the few job offers out seem to require the PhD title (or the master's title + years of experience), so that a PhD might be needed
$\endgroup$
3
  • 2
    $\begingroup$ If I was hiring a scientific programmer, I would probably not want someone with a PhD; having a masters degree + experience would be the best background. Someone with a PhD would likely have ambitions and interests to do research and develop his/her own ideas instead of staying focused on the tasks of the project as given. I believe the attitude/expectations of this kind would be similar across US academia, government labs, and private industry. But this does not mean that people with doctoral degrees are not employed as scientific programmers in the US, certainly there are many. $\endgroup$ Commented Jul 25, 2023 at 1:11
  • 2
    $\begingroup$ All 13 of my PhD, MSc, and visiting students have found good jobs in industry and the national labs doing scientific computing. So I think all of your plusses matter. $\endgroup$ Commented Jul 25, 2023 at 3:08
  • 1
    $\begingroup$ Relevant publication: Ian A. Cosden, Kenton McHenry, and Daniel S. Katz, "Research Software Engineers: Career Entry Points and Training Gaps." Computing in Science & Engineering, Vol. 24, No. 6, Nov.-Dec. 2022, pp. 14-21 $\endgroup$
    – njuffa
    Commented Jul 25, 2023 at 23:21

2 Answers 2

6
$\begingroup$

I think you are asking the wrong question.

You are asking "do I need a PhD for folks to hire me as a scientific programmer?" This is a kind of hypothetical. You're asking and getting opinions, that's fine.

I think you should be asking "will folks hire me as a scientific programmer without a PhD"? This is an experiment you can try right now.

A PhD will take you 4-6 years, which is an enormous opportunity cost if you'd prefer to be doing something else. Starting today you could:

  1. Identify 10 jobs you could apply for
  2. Use that as the basis for tailoring your resume to this sort of position
  3. Send that resume to people for review (I'm happy to take a look)
  4. Target applying to 50 jobs over the next month.
  5. Make sure your GitHub looks active and, if it's sparse, try to find some projects to contribute to or clean up your old repos so they are beautiful demos of what you're capable of. This tests the waters of your interest, but also helps demonstrate that you're able to execute on the skill you're planning to claim expertise in.

If this works, you've accomplished your goal and saved 6 years. If it doesn't, then maybe you timed the job market wrong or maybe you do need more skills.

Bottom-line: run experiments on yourself and the world.

$\endgroup$
6
  • 1
    $\begingroup$ I guess we need to define what is a "scientific programmer". Apparently it is not a computational scientist and not a numerical (quantitative) analyst - or maybe all of those are included? $\endgroup$ Commented Jul 25, 2023 at 20:08
  • $\begingroup$ What is a computational scientist? Is a numerical analyst meant in the sense of mathematics? @MaximUmansky As for me, a scientific programmer is someone turn numerical algos into code and maintains it, with knowledge of maths and possibly the underlying physics $\endgroup$
    – Lilla
    Commented Jul 25, 2023 at 21:16
  • $\begingroup$ So, let's say more specifically that a scientific programmer is a software engineer working with scientists to develop software tools to meet the needs of their experiments and/or simulations. Then the most prominent scientific programmers (by this definition) that I've met did not have PhD degrees, I guess they decided not to spend extra few years on obtaining those advanced degrees but went straight into the software development field. $\endgroup$ Commented Jul 26, 2023 at 1:58
  • $\begingroup$ @Richard This is a great answer, I wish I could upvote it more. $\endgroup$
    – NNN
    Commented Jul 26, 2023 at 3:49
  • $\begingroup$ Also, for the OP, be warned that many academics will "look down" upon your ambition to be a scientific programmer. So, you might want to check in advance if your advisor is supportive of this ambition. $\endgroup$
    – NNN
    Commented Jul 26, 2023 at 5:09
3
$\begingroup$

If your goal is to become a programmer at the company X that creates the scientific software Y, then sure: do a PhD in a field that uses software Y.

Several of my colleagues who used and extended the scientific software they used during their PhD ended up working for companies that create such software. Sorry, for being quite unspecific.

There is plenty of overlap between computer science and scientific computing, so if you find a university that develops some scientific software, that would be a good place to start.

In the scenario I allude to, the main benefit is not getting the PhD in the end. It's more the experience gained during the PhD. In the end, you can go to potential employers saying: "I did my PhD using software Y, implementing model Z in order to solve this research question. Here's my results."

$\endgroup$
0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.