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!

Programming Languages for Photonics Career

  1. Dec 12, 2013 #1
    I know computer programming skills are important in applied physics/engineering jobs and am looking for some advice as to how and what I should do to teach myself these skills. I am in a Photonics Master's degree program, which gears students toward acquiring jobs in industry (semiconductors, optoelectronics, Dept. of Defense).

    The program itself has some instruction with MATLAB, though that is in a future semester. For these types of jobs, what recommendations for programming languages could you give me? It seems everywhere online recommends this or twenty different other languages for general engineering, but I was hoping someone could guide me based on the specific types of industries I hope to enter.

    Also, I have virtually know programming experience myself-- what would be the best method for attempting to self-learn?

    Thank you!
  2. jcsd
  3. Dec 12, 2013 #2


    Staff: Mentor

    Personally I would learn Java. It runs across platforms from windows to Linux. There are great tools to make the work of programming more manageable like Eclipse and Netbeans IDEs. A lot of current development is based on Java.

    However for engineering, MATLAB tends to prevail. MATLAB can interface with C/C++ so these languages would be good to learn.

    If you just want to start learning a language then I'd suggest learning java using the Processing.org IDE. It's a tool geared for casual programming for graphic artists with your feedback being interactive graphics. It uses java and can deploy on windows, Linux and macosx as well as android with a different API.

    However if you think you want to be more professional then choose eclipse or netbeans and use them to start learning java. There is also a toolkit called Open Source Physics at compadre.org that can get you started on developing computer simulations. It comes with a lot of cool examples.

    Another route would be to learn a scripting language like groovy, ruby or python. Scripting languages always come in handy when putting together a system of apps to solve a particular problem. Groovy in particular is really neat in that can harness the power of java libraries to do its work and it's basically a superset of java that is easier to program with.
  4. Dec 12, 2013 #3
    The great thing about programming is it is much more about knowing how to progam as opposed to knowing a specific language.
    My experience has been that once you know one langauge you can pick up any other with a refrence source (internet) or a book.

    That being said you can never go wrong learning C or C++ as a lot of languages are based upon the C syntax (C, C++, Java, php, C# just to name a few).

    For what you're doing python might not be a bad choice either

    As for how to go about learning? There are lots of online courses that can walk you through it. Or go buy a book on the language and work through it. But when you follow an example program, always spend time modifying it in some way.

    Hope that helps
  5. Dec 13, 2013 #4


    User Avatar
    Science Advisor

    I have to disagree a bit with the two previous posters (regarding Java/C). I agree with the bit jedishrfu and cpscdave said about a scripting language. Java and C (Java especially) are more geared to software development rather than as tools to operate equipment, data analysis, communications and the like.

    I work with some photonics engineers as well as various flavors of hardware engineer and find that they do most of their work in MATLAB and Python (although most scripting languages would work). Also, a lot of people end up doing at least a little FPGA development (or need to read FPGA code) so getting your read around VHDL and/or Verilog wouldn't be a terrible idea.

    If I were you, I'd continue improving in MATLAB and try to pick up Python. They will both look very good on your resume.
  6. Dec 13, 2013 #5
    I think python, R, and Matlab would be good languages to learn for your purposes. Maybe learn something C like too if you have the extra time.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook