Programming Languages for Photonics Career

Click For Summary
Computer programming skills are essential for applied physics and engineering jobs, particularly in photonics, semiconductors, and defense. MATLAB is emphasized as a crucial tool in these fields, alongside Python, which is also recommended for its versatility and ease of use. While Java is suggested for general programming, its relevance is more in software development than in operating equipment or data analysis. Learning C or C++ is beneficial due to their foundational role in many programming languages. Online courses and books are effective methods for self-learning, with a focus on modifying example programs to enhance understanding.
The Head
Messages
137
Reaction score
2
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!
 
Physics news on Phys.org
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.
 
  • Like
Likes 1 person
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 language 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
 
  • Like
Likes 1 person
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.
 
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.
 
TL;DR: Jackson or Zangwill for Electrodynamics? Hi, I want to learn ultrafast optics and I am interested in condensed matter physics, ie using ultrafast optics in condensed matter systems. However, before I get onto ultrafast optics I need to improve my electrodynamics knowledge. Should I study Jackson or Zangwill for Electrodynamics? My level at the moment is Griffiths. Given my interest in ultrafast optics in condensed matter, I am not sure which book is better suited for me. If...

Similar threads

  • · Replies 7 ·
Replies
7
Views
823
Replies
2
Views
1K
  • · Replies 12 ·
Replies
12
Views
2K
  • · Replies 5 ·
Replies
5
Views
1K
  • · Replies 6 ·
Replies
6
Views
5K
  • · Replies 9 ·
Replies
9
Views
3K
  • · Replies 22 ·
Replies
22
Views
4K
  • · Replies 17 ·
Replies
17
Views
3K
Replies
23
Views
3K
  • · Replies 2 ·
Replies
2
Views
2K