Advice for starting a career in scientific computation?

In summary, the conversation discusses the options for someone with a BS in computer science and real-world experience in software engineering to pursue a career in scientific computing. The individual is considering going back to school to gain the necessary knowledge and skills, but is also open to exploring other paths such as working as a system administrator in a heavily numerical field. The conversation also touches on the differences between real-time signal processing and HPC, and the potential to use quantum computing and artificial intelligence in the future. Overall, the importance of being a part of a research community and gaining hands-on experience is emphasized.
  • #1
ade3ada
3
0
Hello, everyone. I've been reading this site off and on for a few weeks, and I'd like to ask you a few questions, if you don't mind.

I'm a 30 year old software developer with a BS in computer science (and a mostly completed MS that I really regret not finishing). I generally enjoy my work, but its gotten somewhat stale lately and I'm looking for a bit of a change. I'd love to do scientific research, but as other posts in this forum have made clear, starting a career in physics is very difficult, especially if you get a late start as I would be.

One option that I'm considering is scientific computing. I know that modern physics research (as well as chemistry, molecular biology, and many other disciplines) makes extensive use of computer simulations and parallel/distributed computations. I think that I would really enjoy working on these systems, as I could continue doing the engineering and number crunching that I love while contributing towards scientific research and learning about new, interesting subjects. It sounds like exactly what I'm looking for.

The key question that I have is what kind of background I would need to pursue such a career. I am an excellent software engineer with plenty of real-world experience on systems like radar and real-time signal processors, but I don't have any experience with large-scale parallel/distributed systems and my knowledge of physics is pretty superficial. So I would almost certainly have to go back to school to gain the knowledge that I need to compete. This isn't necessarily a bad thing - I miss being in an academic environment. :-)

What would be my best option here? A degree in physics, with an emphasis on computational physics? Would I have to go all the way to the PhD, or could I get by with a BS or MS and my previous degree and work experience? Or maybe a PhD in computer science specializing in distributed systems? Maybe some other path that I haven't thought of? Or is it possible to get into this area without earning another degree? And what schools have good programs in computational physics or similar areas? I really don't know much about this area, and could use all the advice that I can get.

Of course, maybe I'll go for that PhD in artificial intelligence that I've been dreaming of, instead. Or go really crazy and pursue a PhD in physics and try to do research in quantum computation. Or forget academia, quit my job, and start a band. :-) I'm still trying to figure out what I want to do next, but I want to make sure that I have all of the information that I need before making the decision.

Thanks,

Steve
 
Physics news on Phys.org
  • #2
There are a number of options here. One is to finish your MS in Computer Science, learn HPC on your own, and then try to find a job as a system administrator at a supercomputing center. One of the things that you should do is to start downloading software packages (such as Condor) and start trying to create your own mini-cluster.
 
  • #3
Thanks for the reply, twofish. The link to Condor was appreciated - I'm curious about the most common systems and environments used in research, so I'll have to check it out. I'm not particularly looking to work as a full-time system administrator, but it might be a way to get a foot in the door before moving on to designing and developing HTC systems.

Any other suggestions from twofish or anyone else? While I do enjoy the pure software world, I'd really like to be more "hands-on" with the science and numerical aspect of my work. I tend to enjoy developing systems that perform a lot of high performance number crunching, like real-time signal processing. I've actually spoken to someone at Rutgers University, and he suggested that I would probably need to pursue a physics PhD for this, as most of the computation work in research is performed by grad students. Is this true in your experience?

Steve
 
  • #4
You'll find that most of your time and effort in HPC is being a part time system administrator. Learning how the technology works is really useful, and if you have a four or five node home grid, you can do real computational research.

Also "real-time" and "HPC" are quite different things. In real-time signal processing, you want to minimize the amount of computation that you do, and it's all about reducing latency. Most HPC calculation are done as batch jobs, and you don't care about real-time interaction. Both are extremely challenging technologies, but they are different technologies.

The important thing is to get yourself inside a research community. Something that may help you is that there are a lot more job openings for system administrators than there are for physics researchers, and I've known people that have gotten research positions through the back door by applying for system administration positions. An interest and experience in scientific computing really does make a resume stand out when you apply for those roles.
 
  • #5
One option is to apply for a position as a straight software developer or system administrator in a heavily numerical field (i.e. medical imaging, petroleum exploration, finance). If you can find a way of finishing your MS, that would help a lot.

Quantum computing and artificial intelligence might be useful in about twenty years, but their usefulness now is pretty limited.
 
  • #6
twofish-quant said:
You'll find that most of your time and effort in HPC is being a part time system administrator. Learning how the technology works is really useful, and if you have a four or five node home grid, you can do real computational research.

That's a very good suggestion, and regardless of what else I do, I'll probably look into it. Thanks a lot!

twofish-quant said:
One option is to apply for a position as a straight software developer or system administrator in a heavily numerical field (i.e. medical imaging, petroleum exploration, finance). If you can find a way of finishing your MS, that would help a lot.

One of the next items on my checklist is talking to my old school about picking up where I left off. It's been a few years, so I don't know what I'll have to do, but I'd really like to finish my degree.

twofish-quant said:
Quantum computing and artificial intelligence might be useful in about twenty years, but their usefulness now is pretty limited.

Yes, but they're awesome! :-)

Thanks for your replies, you've been very helpful.

Steve
 

1. What skills are necessary for a career in scientific computation?

In order to have a successful career in scientific computation, it is important to have a strong foundation in mathematics, programming, and problem-solving. Proficiency in programming languages such as Python, MATLAB, and C++ is also highly desirable. Additionally, having a background in physics, chemistry, or computer science can be beneficial.

2. How important is a formal education in scientific computation?

While a formal education in scientific computation can provide a strong foundation, it is not always necessary. Many successful scientists in this field have a diverse educational background and have acquired their skills through self-study and hands-on experience. However, having a degree in a related field can open up more opportunities and provide a deeper understanding of the subject matter.

3. Is it necessary to have experience in a specific industry or field?

No, scientific computation is a versatile skillset that can be applied to a wide range of industries and fields. It is important to have a strong understanding of the specific field you are working in, but experience in one particular industry is not necessary. With the right skills and knowledge, a scientist can adapt to different industries and fields.

4. How can I gain experience in scientific computation?

There are several ways to gain experience in scientific computation. One option is to take courses or workshops in programming and data analysis. Another option is to participate in research projects or internships that involve scientific computation. Additionally, practicing on your own and completing personal projects can also help develop your skills and build your portfolio.

5. What career opportunities are available in scientific computation?

There are many career opportunities in scientific computation, including roles such as data scientist, research scientist, computational biologist, and software engineer. Depending on your interests and skills, you can work in industries such as healthcare, finance, engineering, or academia. With the increasing importance of data and technology in various fields, the demand for professionals in scientific computation is expected to continue growing.

Similar threads

  • STEM Career Guidance
Replies
11
Views
719
  • STEM Career Guidance
Replies
3
Views
2K
Replies
15
Views
2K
  • STEM Career Guidance
Replies
6
Views
268
  • STEM Career Guidance
Replies
5
Views
864
  • STEM Career Guidance
Replies
4
Views
2K
  • STEM Career Guidance
Replies
6
Views
989
  • STEM Career Guidance
Replies
5
Views
687
  • STEM Career Guidance
Replies
18
Views
4K
  • STEM Career Guidance
2
Replies
62
Views
3K
Back
Top