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:
1) absolutely don’t be married to a single package for all applications
2) open source, cross platform solutions are freely scalable and tend to survive software and hardware upgrades well.
3) Are mainstream enough to have a good user base and support
4) 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.