Senior physics major to software engineer?

Click For Summary

Discussion Overview

The discussion centers on the transition from a physics major to a career in software engineering. Participants explore the necessary steps, courses, and experiences that could facilitate this shift, including programming skills, internships, and project involvement.

Discussion Character

  • Exploratory
  • Technical explanation
  • Debate/contested

Main Points Raised

  • One participant suggests looking into computational physics as a potential area of interest.
  • Another participant recommends checking the requirements for a computer science minor at the university.
  • Several participants emphasize the importance of gaining experience through internships and working on complex coding projects.
  • There is a viewpoint that large companies may not be the best option for new graduates, with a suggestion to consider smaller companies for broader learning opportunities.
  • Object-oriented programming is highlighted as a crucial skill, with a caution that C++ may not be the best language for beginners.
  • A participant advises selecting a personal project to develop from start to finish as a way to learn programming comprehensively.
  • Discussion includes the decline of USENET newsgroups for programming discussions, suggesting a shift to other computing forums.

Areas of Agreement / Disagreement

Participants express a mix of opinions regarding the best path to prepare for a software engineering career, with no consensus on specific courses or experiences. Some agree on the value of internships, while others debate the merits of working for large versus small companies.

Contextual Notes

Participants mention various programming languages and paradigms without resolving which would be most beneficial for the original poster. There are also differing perspectives on the job market for software engineers, particularly regarding offshore hiring trends.

Jeeb
Messages
1
Reaction score
0
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!
 
Last edited:
Physics news on Phys.org
Have you looked into computational physics?
 
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.
 
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
 
JNanotech said:
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.
 

Similar threads

  • · Replies 30 ·
2
Replies
30
Views
11K
  • · Replies 18 ·
Replies
18
Views
7K
  • · Replies 0 ·
Replies
0
Views
2K
  • · Replies 18 ·
Replies
18
Views
4K
  • · Replies 3 ·
Replies
3
Views
3K
  • · Replies 21 ·
Replies
21
Views
5K
  • · Replies 2 ·
Replies
2
Views
1K
  • · Replies 5 ·
Replies
5
Views
4K
  • · Replies 18 ·
Replies
18
Views
3K
  • · Replies 2 ·
Replies
2
Views
3K