Specific Software Engineering Career

Click For Summary

Discussion Overview

The discussion revolves around the career prospects for individuals with a background in astrophysics and computer science, specifically focusing on software engineering applications in math, science, and engineering fields. Participants explore the job market, necessary skills, and the relevance of programming languages like Fortran and C++ in scientific computing.

Discussion Character

  • Exploratory
  • Debate/contested
  • Technical explanation
  • Conceptual clarification

Main Points Raised

  • One participant expresses uncertainty about the job market for software engineering in math and science applications, questioning the demand for such roles outside academia.
  • Another participant suggests that heavy applications are often developed by those with physics or math backgrounds, implying that computer science graduates may lack necessary domain knowledge.
  • Some participants argue that Fortran remains relevant for scientific programming due to its optimization capabilities, particularly in parallel computing, while others note the challenges in finding modern resources for learning Fortran.
  • A participant shares their extensive programming experience, emphasizing the importance of flexibility and the transferability of programming skills across languages.
  • There is a suggestion that many fields outside academia, such as the Department of Defense, medical, and weather sectors, utilize scientific programming, indicating potential job opportunities.
  • One participant contemplates the possibility of entering scientific computing without a graduate degree, highlighting the value of internships and practical experience.
  • Another participant mentions the significance of parallel programming environments like MPI, noting that this area may present a niche for specialization in scientific computing.

Areas of Agreement / Disagreement

Participants express a range of views on the relevance of programming languages and the necessity of advanced degrees for entering the field. There is no consensus on the best path forward or the demand for specific skills in the job market.

Contextual Notes

Some participants highlight the evolving nature of programming languages and the importance of staying current with industry trends. There are also mentions of the varying expectations of employers regarding educational qualifications.

Who May Find This Useful

This discussion may be useful for students or professionals considering a career in software engineering with a focus on scientific applications, as well as those interested in the intersection of programming and scientific research.

darkchild
Messages
153
Reaction score
0
I am currently finishing up a B.S. in Astrophysics, and will start my second this fall, in Computer Science, Software Engineering concentration. My career goal is to be a code monkey for math, science, and maybe engineering applications, and maybe do some technical writing, too.

I know pretty much nothing about how the job market looks for the comp sci field. I would love some advice if anyone knows how difficult it might be for me to break into the specific area I'm interested in. At my university, I know that the physics dept. faculty often do their own programming (I'm assuming the biggest demand for such a thing would be at universities), so I'm not sure I'd even be needed there. Where else might my services be of use? It doesn't seem like there's a whole lot of demand for commercial software that involves math, science, and engineering.

Even though I'll have a background in math and science, I'm guessing the software engineering training will leave me wanting for some skills that are specific to the applications I've mentioned; for example, C++ is probably used the most in the classroom, whereas all of the professors I know use Fortran (although that could just be because they're old and accustomed to it). I don't really want to do much more schooling after this, but UC Berkeley has an interesting-looking MS program in scientific computing that I could be involved in part-time while I work full-time. Anyone here do what I'd like to do and can tell me how much a comp sci degree prepares one for heavy math/science/engineering apps?

Thank you mucho. :smile:
 
Physics news on Phys.org
Most heavy apps tend to get programmed by Physics/Maths types because most CS types wouldn't know an equation of it bit them.
But a CS grad who knows C++ rather than just Java has got to be worthwhile!
Don't knock Fortran, C++ only just got a complex number type and it's matrix handlin still isn't as good - plus you can't make a C++ compiler optomize as well as Fortran, especially on parallel hardware.
 
mgb_phys said:
Don't knock Fortran, C++ only just got a complex number type and it's matrix handlin still isn't as good - plus you can't make a C++ compiler optomize as well as Fortran, especially on parallel hardware.

I don't have anything against Fortran (although it's a ***** to find books on it that aren't ancient and crumbling), I just get the feeling that some old-school coders might cling to it out of inertia.
 
There are many fields that use scientific programming, and most of them are not in academia. Just to name a few: DoD, medical, weather, computer gaming, NASA, ... You mentioned you will soon be finishing your BS degree. Nowadays, many employers look for people with an advanced degree. The bachelor's degree has become the new high school diploma.
 
darkchild said:
I don't have anything against Fortran (although it's a ***** to find books on it that aren't ancient and crumbling), I just get the feeling that some old-school coders might cling to it out of inertia.

There is also a HUGE base of application code already written in Fortran. No need to reinvent the wheel, when you can just fiddle with it a bit here and there...
 
I spent thirty years in programming jobs after doing an MSc in Astronomy, a lot of it in university departments. Note, i didn't bother taking another BSc in CS. Do you really need to?

When I started Fortran was "it" (just as C++ is "it" now) and I learned that first -- I was the first person in my "high school" ever to take a computer qualification. I used Fortran in undergrad physics, but then never used it again in my whole career. Progressed through Algol 68, Basic (!), various assembly languages, C, YACC, LEX, Pascal, Object Pascal, C, Lisp, Prolog, various scripting languages, Objective C, C++, UNIX admin., Eiffel, Oberon, and (joy of joys!) Smalltalk, then (yuk!) Java...

The university jobs involved quite a lot of technical writing, and I developed CAL packages as well (using hypercard, metacard, raw HTML...) I happily moved around from finite difference modelling, compiler design, interface design, application design, etc... If you stay flexible you'll never be short of a job, and can cherry pick the best paying and/or most interesting jobs.

So, all in all, you should have no problem finding a job. Don't be afraid to apply for posts that don't ask for C++ specifically. You should be fine applying for jobs that ask for (for instance) "Ruby/Java/Python or similar". Programming skills are eminently transferable between different languages, if you know C++ you should be able to pick anything up on the job (I did!) Anyone "in the know" knows this, so if some job finding monkey says: "you don't have Ruby, C++ is no good!", they are idiots and you should avoid them...

I'm surprised physics faculty do all their own programming. In my experience faculty, mostly, don't have the time or inclination. They employ programmers to do *serious* work. Still, some departments are "strange". One faculty member employed me and then did all the programming himself! I moved on quickly to a higher paying job. Life's too short to spend it with idiots...

It's a waste of time learning Fortran if you are not using it "on the job". Unless you just want to learn it for fun. But if you want to learn something for fun, Smalltalk is a lot more fun, as well as being "bleeding edge".

http://stephane.ducasse.free.fr/FreeBooks.html
 
mal4mac said:
I spent thirty years in programming jobs after doing an MSc in Astronomy, a lot of it in university departments. Note, i didn't bother taking another BSc in CS. Do you really need to?

Well, since I posted this, I've decided that I want to get into scientific computing, which I think is generally connected with research, and so requires graduate school. You bring to mind an interesting alternative, though: If I get enough experience, perhaps I can start a career programming for scientists without a graduate degree? I'm already planning to do some internships that involve this, and I'll have experience from my senior thesis, so I'll definitely look into it.
 
Take a look at parallel programming enviroments like MPI.
A lot fo scientific programming involves clusters, when one machine isn't big enough!)
Parallel programming is complicated enough that it's out of reach of most of the scientist's programming ability and a lot of comp-sci types don't really get it.
With CPUs hitting the speed limits a lot of the improvement is going to come from multicore and multicpu chips, which together with clusters are going to be a major part of scientific computing - and definitely a niche to specialise in.
 

Similar threads

  • · Replies 9 ·
Replies
9
Views
3K
  • · Replies 18 ·
Replies
18
Views
6K
Replies
28
Views
3K
  • · Replies 2 ·
Replies
2
Views
3K
  • · Replies 5 ·
Replies
5
Views
3K
  • · Replies 5 ·
Replies
5
Views
4K
  • · Replies 6 ·
Replies
6
Views
4K
  • · Replies 0 ·
Replies
0
Views
2K
  • · Replies 30 ·
2
Replies
30
Views
11K
  • · Replies 5 ·
Replies
5
Views
3K