I'm a beginner, I have the haskell code and I wnat to know the following steps, I couldn't find specific information how can i deploy a smart contract on the mainet or testnet.
Submitting transactions on Cardano is a bit like submitting your taxes to the federal agency. The agency won’t tell you how to compile the documents and how to calculate the amount due, but it will check them and tell you if you did something wrong (actually only if the mistake is at their disadvantage. It is not a perfect analogy).
The Cardano blockchain is this federal agency. It will check the transaction and validate the smart contracts. But is has no knowledge of how to construct this transaction. This logic is implemented in your off-chain code. This code is as the name says never deployed to the blockchain. It needs to be executed by someone, though. In a centralized service it is usually the server backend of the party that provides the service. But you can also make the off-chain scripts publicly available so that anyone can use them.
Here is a tutorial that should help you get started with executing your Plutus script.
Plutus scripts are not actually "deployed" to the blockchain, rather once they are serialised to Plutus (from Haskell or other languages) they are used to generate script address and then are submitted to the generated address in a transaction.
The tutorial should walk you thought on how to submit transaction once you have serialised plutus script.