RCI recommends that every engineer be a competent programmer. Programming forces a logical rigor into the solution of the engineering challenge and allows for the engineer to develop a framework in which to solve the problem. This ability to force the engineer to diagram their critical thinking is perhaps the best benefit from programming a solution to a general problem.

The recommendations for which language and tools to develop in follow:

Absolutely don’t be married to a single package for all applications

Open source, cross-platform solutions are freely scalable and tend to survive software and hardware upgrades well

Are mainstream enough to have a good user base and support

At a minimum know VBA for excel. If you don’t and you’re an engineer, you’re a disgrace

Packages that conform to this guidance that are reasonable common include

Python, Perl, C

You will likely see some heritage fortran code, but I don’t recommend learning it.

Some other good special function codes include Matlab.

For processing stress analysis I typically have a rule that says

for 1 calculation use MathCAD to show the longhand version of the solution and verify units are correct

for 100’s-1000’s of calculations, use excel and VBA that have been recoded to the solutions demonstrated in the MathCAD code. This provides a verification that the code is correct and allows you to select the worst-case calculation from the excel tables and provide a long hand example of it in MathCAD for your final report.

for > 10000 calculations, go to a pure software language like Perl or Python. They tend to scale better than VBA and can be put on a unix cluster to solve while you do other things on your PC. It is not uncommon to process 10’s of millions of individual margins. You just run out of cells in excel, memory, and time on a PC.