Why are blocks serialized? and Is there any alternative way? Am I right that blocks are serialized because they're supposed to be sent to the network?

If yes, then all the data (regardless whether they are blocks or not) should be serialized. Then why do we mention that explicitly (e.g. in this post)?
Everything that is sent to the network is serialized. This includes blocks and transactions. Serialization is explicitly mentioned in the developer guide so that it is explicitly clear about what is sent and in what format.