What is the difference between working on and working at? For example,
I am working on a farm
or (as in American folk song that goes:
I was working on a railroad
Do these sounds more natural than
I am working at a farm.
I am working at a railroad.
However, I am working at a bank sounds more natural than I am working on a bank.
Just from the above two examples, I can come to hasty conclusion that the difference comes from whether the job is white collar or blue collar.
But I don't think that is true. Can someone explain this?