Senior physics major to software engineer?


by Jeeb
Tags: medical imaging, physics, programming
Jeeb
Jeeb is offline
#1
Sep1-10, 02:10 PM
P: 1
Hello everyone!

I have recently decided that I want to pursue a career in software engineering, but the problem is that I haven’t taken many courses in it. I’ll briefly describe where I’m at now:

I’m a senior physics major, and I had originally planned on doing some sort of medical physics or biophysics career. After participating in an REU in biophysics, I decided that I research in general wasn't for me, though I still have some interest in medical applications. Upon more soul searching I realized that I enjoyed programming much more than anything I had previously tried; in particular, I enjoy the creativity and analytical skills that are involved in programming.

So far I’ve only taken one programming class which taught FORTRAN and emphasized its use in solving scientific problems. I’ve taken classes in introductory biology, organic chemistry, the standard physics and math sequences, and the advanced physics classes (e.g. quantum 2, E&M2, modern optics), and I did another REU in photonics/optoelectronics in a previous year. This semester I am finishing up my physics requirements and taking a C/C++ class in the CSE department.

I want to be eligible for jobs in software engineering by the time I graduate in the spring, so my question to you all is what sort of steps should I take to prepare myself for programming in general? For example: what classes can I take in the spring semester that would be most useful, would CSE research be a good idea, are there any books you would recommend, etc.?

Thank you for your time!
Phys.Org News Partner Science news on Phys.org
NASA's space station Robonaut finally getting legs
Free the seed: OSSI nurtures growing plants without patent barriers
Going nuts? Turkey looks to pistachios to heat new eco-city
Leptos
Leptos is offline
#2
Sep2-10, 05:45 PM
P: 172
Have you looked into computational physics?
story645
story645 is offline
#3
Sep3-10, 01:12 AM
P: 670
Or seen what your school requires for a CS minor?

I want to be eligible for jobs in software engineering by the time I graduate in the spring, so my question to you all is what sort of steps should I take to prepare myself for programming in general?
Take software engineering and get some experience working on really big/complex coding projects. If you've got any skills to offer (coding/testing/writing), volunteer for an open source project. You need to build up experience coding for most every job, even the ones looking for new grads.

JNanotech
JNanotech is offline
#4
Sep8-10, 06:50 PM
P: 2

Senior physics major to software engineer?


I agree with @story645 on working of complex coding. Getting an internship was helpful to me, but there is only so far that it can take you. I find most large companies would rather hire outside of their internship pool. A lot of people think that the majority of these jobs are being sent offshore, however, that is not entirely true. There is still a great demand for onshore software engineer jobs, if you know where to look. Hope this helps, good luck.
-J
tgm1024
tgm1024 is offline
#5
Sep10-10, 06:55 PM
P: 20
Quote Quote by JNanotech View Post
I agree with @story645 on working of complex coding. Getting an internship was helpful to me, but there is only so far that it can take you. I find most large companies would rather hire outside of their internship pool. A lot of people think that the majority of these jobs are being sent offshore, however, that is not entirely true. There is still a great demand for onshore software engineer jobs, if you know where to look. Hope this helps, good luck.
-J
As a software engineer for over 20 years I can tell you a few things. Not in order and forgive me for the hyperbole.

1. I would absolutely suggest *not* getting hired by a large company. Larger companies more often than not simply do not require you to wear enough hats. Further small companies can only survive when there are truly fire-breathing dragons present. Such dragons are critical to have around for your own growth. There is far more to this than those two points, and quite frankly I almost dare not enter it here because this subject by itself is worth 20 or more dedicated threads.

2. Object Oriented technology is an absolute must these days. It is a paradigm that I and most once procedural programmers fight and eventually cave in happily to. Huge caution here. C++ is not the best way to learn this. IF for some reason you find C++ confusing you are certainly not alone. It is a language fraught with ways of shooting yourself in the foot. Consider C# or Java if you become beleaguered. Sigh. Another 20+ threads worth.

3. To learn how to program I would suggest this. Pick an application that you would find useful *and* interesting to you. One that you wish existed. Design and code the thing from start to finish, including (believe it or not) documentation + source code control + delivery mechanisms. Make it as much a real product as you can. You will be amazed at the breadth of programing and other obstacles you will bump into that everyone else not doing this will ever be exposed to.

4. I once would have suggested becoming a frequent visitor to the following USENET newsgroups:

comp.programming
comp.object
comp.lang.{some language}.{some group} <---depending upon your current language

...but sadly USENET is under siege from high volume spamming unless you use a service with an antispam filter. Look around for various computing forums suiting your needs.


Register to reply