Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Possible Duplicate:
most desirable skills for a graduate software engineer

I'm currently doing my PhD in physics and will be finished in about two years from now. I plan to become a software engineer afterwards. I'm now looking for advice on which skills I should improve during this time in order to reach my goal.

My background: For my research I need to write my own programs. I've been programming every now and then since I was a child but only in the last 2.5 years I've actually spent a lot of time coding. I've got around 2 years of experience in C++ now and consider myself being good at it. Recently, I started learning Python. I didn't attend any university courses on algorithms, data structures or databases, so maybe I'm lacking some basic knowledge here.

I thought about reading books on the following topics:

  • General books like Code Complete or The Pragmatic Programmer.
  • Test-driven programming and agile development methods (though I'm not sure how widely they are used in companies)
  • Databases
  • Algorithms and data structures

I also thought about learning Java...

What would you consider useful in my situation? Which skills are important for a company?

share|improve this question

marked as duplicate by Caleb, ChrisF Jan 29 '12 at 23:20

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

up vote 1 down vote accepted

Since you haven't worked professionally in software, your best bet is to leverage your academic training in finding a job. You say you're getting a PhD in Physics, and have some exposure to C++. Not bad. Look for a gig at a company with significant R&D operations, or that produces scientific software. (Mathematica, University research departments, 3M, Lockheed, etc.). In fact, depending on your area of specialization within physics, avionics (and the Defense industry in general) may be a very good route.

Expect to learn a LOT in your first year coding. It will be a lot like being Socrates: You'll find out that you don't know very much. That's fine. As long as your skills in physics are useful, and the company wants you to succeed, you'll be ok. Right now, I think the best thing to do is focus your job search: find out which companies you want to work for, and why. The tech skills part will come in time.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.