One engineer told me that mixing and mastering should be done by different people, what's your opinion about that?
Assuming that the person is doing both mixing and mastering on the same setup (monitors and processors), this is true.
If you have two separate listening platforms, as well as separate tools that are geared towards each process, then it depends on how experienced the individual is.
I personally mix and master with different speakers (nearfield monitors for mixing and full range speakers for mastering) as well as use processors designed for mastering at that stage only, while listening on my mastering set up.
That said, I also believe you have to be a great mix engineer before you can even think about mastering; part of the work I do is tell people what's wrong with their mixes so that they'll turn out to be great masters.
Most people only have a nearfield monitoring setup (in a lot of cases, not even properly set up) so mastering in this environment would not be recommended.

