mining is solving blocks to get BTC. you can use cpu,
This is horrible advice. Mining with a CPU is nearly as bad as mining with a pen and a piece of paper.
gpu,
Unless you have access to very cheap electricity, this is likely to net negative. You'd get more bitcoins per month by simply purchasing them with the cash rather than spending it on the increased electric bill. If you are ust doing it as a hobby, or because you find it interesting/entertaining then go ahead, but there are much better ways to acquire bitcoins.
asic or fgpa to mine.
If you are considering this as a source of income, you should really take some time to learn about "difficulty", hash rates, power consumption, and purchase costs. Depending on your particular circumstances ASIC mining has potential to be rather profitable, but it also has the potential to cost you a lot of money.
What is Bitcoin mining?
Bitcoin mining is the transaction processing for the bitcoin payment network. In exchange for processing the transactions, the network rewards the miner with some bitcoins.
Essentially, the miner chooses unconfirmed transactions that they wish to confirm. They package them together into a "block" according to the rules of the protocol and then generate a block header. The miner then calculates a SHA256 hash of the block header. If the resulting value of SHA256(block header) is lower than the current target difficulty, then the miner broadcasts the block to all the peers they are connected to and begins the process again. If the value of SHA256(block header) is not lower than the current target difficulty, then the miner increments a value in the header called a "nonce" and tries again. The miner continues incrementing and re-trying until they either find a SHA256 value that is low enough or they receive a new block from a peer. Then they generate a new block header and continue the process.
What are the basic necessities to mining?
Hardware that can calculate SHA256, and software that can create blocks from unconfirmed transactions and broadcast "solved" blocks.