1. Limited time only! Sign up for a free 30min personal tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Engineering How to transfer to Software Engineering

  1. Jun 16, 2009 #1
    I will be completing a Physics Masters degree this month. I really enjoy programming and want to become a software engineer. I am unsure of how to make the switch. Many of the jobs I have looked at require advanced programming knowledge you would get in a CS degree.

    Most of my knowledge of programming is working on smaller projects with the exception of my BS computational thesis. I took several programming classes, about 2/3 the number needed to get a CS minor. However, I don't know a lot about hardware, networking, databases, etc. Most of my research was on data/algorithm analysis. I do know several languages to a basic level (Java, C++, Matlab, IDL). But I haven't worked on any really large projects. I have mostly just taught myself whatever I needed to know.

    My main question is how do I compete for software engineering jobs when I am competing against people with CS degrees. I have only found a few that I meet the qualifications because of my physics background not being primarily computer science.
     
  2. jcsd
  3. Jun 17, 2009 #2
    There is so much more to SE than just programming. There's the ability to know the various software development life cycles (SDLC), good code documentation, code managing (SVN, etc), the ability to adapt to different programming environments/languages based on core fundamentals, etc.

    There is just too little that you can do by yourself and call yourself a "self-taught" software engineer. It's all about teamwork and communication. But these days, we even relate "programmers" as "software engineers" and vice-versa.

    You do have some background (academically/personal) in programming, which can get you an entry-level SE/programming position. It's just going to be more difficult, since you will need to build up from there. But don't expect a 70k year job as a SE if all you have is just side programming projects you did in school. My company doesn't hire college graduates unless they have SE internships or some professional experience.

    As a SE, you need to know almost nothing about hardware (that's why we have IT guys around), unless you are going into a field where you need to program around hardware (ie Intel, NVIDIA); databases is most useful for web-based applications (not so much in just native desktop programming); etc.
     
  4. Jun 17, 2009 #3
    I am sorry if I implied that CS is just programming. I know it is a lot more. I have a brother that was going into CS. There is a lot of theory and study of the science of computing, not to mention the skills needed for large projects, and making maintainable code.

    Most of my experience is working on research projects during my schooling. I have also did a research thesis on making a faster algorithm for molecular dynamics. But I know this doesn't compare to a CS degree for SE jobs.

    Is an internship the best way to go? I understand that transferring to SE will be a large pay cut since I will have to start over to a degree. I guess a better way to put my question is how do I get into the field so that I can learn the skills needed to be a software engineer.
     
  5. Jun 17, 2009 #4
    If you have an opportunity to get an internship, then it's the best way to go. Software development is very hands-on and team-oriented. I managed to grab 2 internships during my Masters into large projects. It's much different to work together than alone, as I have done with side projects and programming at home.

    Internships help a great deal. I've learned more in my 6 months of interning than what I did in my 5 years of college. It also builds certain skills that cannot be taught in the normal classroom.
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook