Slalom interview question

In Salesforce, what's the difference between, process builder, apex trigger and workflow? When do you use each?