Staking is the process of actively participating in transaction validation (similar to mining) on a proof-of-stake (PoS) blockchain. On these blockchains, anyone with a minimum-required balance of a specific cryptocurrency can validate transactions and earn Staking rewards. With Cardano you can stake even if you have as little as 10₳ (technical minimum is 2₳ due to delegation deposit).
Staking with Cardano is extremely easy and perfectly safe - it's done by delegating of your wallet to a staking pool. While this may sound a bit scary on first sight, it's actually perfectly safe to do so, because when you delegate your wallet, you just sign information that you delegate to a blockchain, and staking pool operators will never have access to your money - they can't steal your funds. Even in case that staking pool is misbehaving, punishment is that it won't receive any staking rewards for given epoch. No ADA is ever burned as punishment (like in case of polkadot).
Only risk you are taking and worst case scenario is, that you would lose potential reward for epoch when you delegated to a misbehaving pool. It's also good to know, that when your wallet is delegated, you can still use it as usual, you can withdraw and deposit money without affecting your participation in staking pool. Staking rewards are calculated based on snapshot of your wallet balance during edge of each epoch.
In fact the only downside of staking is that you have to deposit 2₳ and spend a transaction fee every time you decide to change a staking pool.
In order to delegate your ADA, it first has to be in your own wallet. You can create and manage wallets using a wallet software such as Daedalus (for PC) or Yoroi by EMURGO (for mobile phone). You can download daedalus here: https://daedaluswallet.io/en/download/
When you have wallet application installed and your ADA is already in there, you can then easily delegate your wallet via staking function, in Daedalus, you can find this option in network tab.
Simply open network tab, go to delegation center, stake pools and find a pool you want to delegate to (our pool has ticker SEAL).
NOTE: Do not get confused by the sorting algorithm of Daedalus, it was designed with maximum of 500 existing pools in mind and this sorting algorithm is not working well right now. Even perfectly operational pools often get marked with star and put to the bottom of the list. Pool being marked with a star doesn't mean it won't produce rewards, especially when it has already produced some blocks.
Then move your mouse over the pool and choose delegate. If this is first time you delegate, a one time deposit of 2₳ will be paid together with transaction fee. This deposit is returned when you decide to no longer stake to any staking pool. Next time when you decide to change staking pool after you already delegated to another one, you will only pay the transaction fee (~0.17₳). Delegating your wallet is a blockchain operation and therefore requires transaction to be executed (you will be asked for you spending password and you will pay at least the transaction fee, or fee + 2₳ in case of first delegation).
It's also possible to stake ADA with multiple pools - you can do that by creating multiple wallets and delegating each of them to different pools. You will however have to pay 2₳ fee for each of them.
Cardano operates in epochs. Each epoch is 5 days. Each change of delegation (or pool parameters) takes 2 epochs to take effect. When epoch is over, it takes 2 epochs until rewards for that epoch are calculated and distributed to staking pool members. Therefore it takes about 3 - 5 epochs (about 15 - 25 days) to see first rewards. Also keep in mind that rewards are based on blocks that were minted by a pool. Smaller pools may not mint a block every single epoch, so during some epochs you may see no rewards. Don't worry, smaller pools don't mint so many blocks, but they are distributed between much less delegators, so while rewards are not so frequent as with larger pools, they are significantly higher. In average, each pool that has reasonably low margin and fees (SEAL pool has lowest possible) should yield same rewards over the year.
You don't have to, it's absolutely up to you who do you stake with. Both have their ups and downs. Staking with large pool will give you more guaranteed rewards than small pools, because they will mint more blocks. It's however a common misconception that large pools yield bigger rewards. Large pool yield frequent small rewards, while small pools give rare, but large rewards. Year average yield should be about the same for either small or large pool. Small pools often provide lower margin and by staking with them you support Cardano blockchain decentralization, which may increase the value of ADA itself.
What is important however, is the stability and performance of a pool. Pool that is hosted on professional hardware with perfect uptime has much better chance for a good performance (never missing a block), than a pool that is running for example on someone's gaming PC in their living room.
Staking is to Cardano what mining is to Bitcoin. For perfect decentralization it's ideal to have ADA distributed to as many pools as possible, so that there is many smaller pools, over few (or one) very large pools, that own majority of network. Staking with exchanges simply defeats this philosophy. Moreover, some exchanges might impose rules and requirements, that make it harder to work with your ADA, such as time-locking. You are also not technically in charge of your money, the exchange is.
On other hand, staking yourself brings up other challenges - when you move your ADA to your own wallet, you are fully responsible for its security. You need to make sure that nobody hacks your computer, that you are always running official version of wallet software, avoid scam application and fraudsters that might try to steal your money. You also need to make sure you won't lose access to your wallet by storing your secrets in a safe place.