When should you normalize/scale your data?

I understand the purpose of normalizing/scaling, but I don't know when I should or should not do it when working with machine learning algorithms.

For example, using a dataset that contains age, salary, #number of kids, all of them have different ranges. In Thai case, should I normalize/scale? Does it depend on the data or more in the algorithm I use?

Is there a time where my variables all have different ranges and I should not?