A list of the top 5 coding languages that robotics and automation professionals should learn that will help prepare them for current and future challenges. Each coding language is ranked in order of value based on versatility of the language and the resultant number of robotics focussed use cases.
Why do automation and robotics professionals need to know coding languages?
Robotics and automation is all about manipulating the physical world. Most laboratory robotics and automated tools deploy a specific scripting language scripting language to program and control the systems. Scripting languages are frequently designed for robots built by a specific manufacturer. These scripting languages freuently include a graphic user interface to simplify writiing and editing methods. Some examples of scripting languages are Evoware or Venus if you are writing automated methods for the Tecan EVO or Hamilton STAR systems respectively.
The value of learning coding languages beyond the scripting tools becomes clear if you want to start integrating or orchestrating multiple robotic systems from diferent manufacturers into as contiguous process. Whether you want to extract data from an input file, access data in a database or access another application via an application programming interface (API), knowing a coding language will simplify all of those tasks.
The good news is that there is a relatively limited number of coding languages that can work across multiple environments. Here is my list of coding languages that laboratory robotics and automation focussed engineers or scientists could learn that will help prepare them for current and future challenges. If you are interested in other skills beyond coding languages, check out 10 Important Automation Skills to Build Automation Careers.
I have ranked the coding languages in order of my perceived value to the average robotics/automation professional (#1 = highest value) based on versatility of the language and number of apparent use cases I could come up with and tried to describe why.
1) Python:
If you take the time to learn Python, you will get a chance to use it right away. Python is readily used to access data or control a system via an API. It is also an excellent tool for managing data files generated by instruments. In example, Extracting, Transforming, and Loading (ETL) data from a file into a database. Another use includes loading data from an existing data base into flat file or CSV. Python also has the advantage of being a coding language of choice for machine learning purposes.
If you are looking to learn how to code in Python, there are multiple resources online, books you can purchase or classes you can take. How you get the knowledge is entirely up to you. You should also consider taking a certification test to demonstrate your skills globally. Check out the python institute for those options.
2) C#:
Since windows machines are everywhere in automated labs, C# and microsoft’s .NET environment is equivalently omnipresent. C# has many of the same capabilities of Python, with the clear advantage of writing user interfaces in a language that is native to windows operating systems. However, the advent of web based applications has greatly reduced advantage that C# holds over Python. It’s a close 2nd place for C#, but in my opinion, Python is the superior coding language for robotics.
3) R:
From a statistics and data centric point of view, R has distinct advantages over both C# and Python. However, the reality is that R is a coding language that is more commonly used by statistics professionals. R has powerful native capabilities for data analysis, but also has some limitations for dealing with external systems. A way to address this is the creation of libraries that are called use python code. If you are a skilled R coder, you could build on that strength using python libraries.
4) SQL:
Structured Query Language (SQL) is a coding language that lacks the standalone capabilities of Python, C#, or R. It is highly valuable when used in combination with any of the aforementioned to query, manipulate (insert/update/delete), define (schema creation/modification), or access data in a relational database. You can also use SQL in combination with scripting languages like Venus or Evoware to integrate relational database functionality. Having a working knowledge of SQL will undoubtedly be valuable even if it is #4 out of the top 5.
5) JavaScript:
I expect that there will be a few out there that disagree that JavaScript should be in the top 5, but the ability to visualize data in web forms and on small screen devices is valuable and only getting more so in my opinion.
Coding languages deserving honorable mention
Here are a few other coding languages to consider as well:
Rust,
NoSQL,
Java,
SAS,
C++
Did I miss any? Do you disagree with the order? Let me know.
Beyond Coding Languages… Data Transfer standards:
Text/table/metadata:
JSON, .csv, .txt
Image:
.gif, .tif, .jpg, .pdf
Video:
MP4, MOV, AVI, WMV, MPEG-2
Sound:
MP3, AAC, WMA, FLAC