Specific Software Engineering Career

In summary, a B.S. in Astrophysics will give you a strong background in math and science, which will help you to be a better programmer if you decide to pursue a career in software engineering. A CS degree will give you the additional skills you need to be a good fit for software engineering applications.
  • #1
darkchild
155
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
  • #2
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.
 
  • #3
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.
 
  • #4
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.
 
  • #5
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...
 
  • #6
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
 
  • #7
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.
 
  • #8
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.
 

1. What is a specific software engineering career?

A specific software engineering career refers to a particular job or role within the field of software engineering. This could include positions such as software developer, quality assurance engineer, systems analyst, or database administrator.

2. What skills are required for a specific software engineering career?

The specific skills required for a software engineering career will vary depending on the job role. However, in general, common skills include proficiency in programming languages, problem-solving abilities, critical thinking, and attention to detail. Communication and teamwork skills are also important for collaborating with other team members.

3. What education or training is needed for a specific software engineering career?

Most software engineering careers require a bachelor's degree in computer science, software engineering, or a related field. Some employers may also prefer or require a master's degree. In addition to formal education, continuous learning and staying up-to-date with new technologies and trends is important in this field.

4. What is the job outlook for specific software engineering careers?

The job outlook for software engineering careers is generally positive, with steady growth projected in the coming years. This is due to the increasing demand for technology in various industries and the continuous development of new software and applications. However, the job market can be competitive, so staying current with skills and experience is important for career advancement.

5. What is the salary potential for a specific software engineering career?

The salary potential for specific software engineering careers varies based on factors such as job role, location, and experience. However, in general, software engineering careers offer high earning potential due to the demand for skilled professionals in this field. According to the Bureau of Labor Statistics, the median annual wage for software developers in 2020 was $110,140.

Similar threads

  • STEM Career Guidance
Replies
5
Views
689
  • STEM Career Guidance
Replies
30
Views
5K
  • STEM Career Guidance
Replies
6
Views
991
Replies
18
Views
3K
  • STEM Career Guidance
Replies
20
Views
524
  • STEM Career Guidance
Replies
2
Views
1K
  • STEM Career Guidance
Replies
5
Views
1K
  • STEM Career Guidance
Replies
18
Views
2K
  • STEM Career Guidance
Replies
14
Views
2K
  • STEM Career Guidance
Replies
19
Views
3K
Back
Top