Answering your last question first. Paul tells us that to know God we need the Spirit of God.
(1 Corinthians 2:7 –112) “The hidden wisdom of God which we teach in our mysteries is the wisdom that God predestined to be for our glory before the ages began. It is a wisdom that none of the masters of this age have ever known, or they would not have crucified the Lord of Glory, we teach what scripture calls: the things that no eye has seen and no ear has heard, things beyond the mind of man all that God has prepared for those who love him.
These are the very things that God has revealed to us through the Spirit, for the Spirit reaches the depths of everything, even the depths of God. After all, the depths of a man can only be known by his own spirit, not by any other man, and in the same way the depths of God can only be known by the Spirit of God.”
My observation of when someone receives what gifts, from my own life is: gifts have been given to me, as there was a need, except for the gift of tongues, which I walk in at all times. When someone has been sick and doctors can’t or won’t take care of the person, or what they would do wasn’t right for that person, Jesus has used me through the Holy Spirit to heal. When I need some special instructions, I have been given the gift of knowledge, or a tongue with interpretation. Times when in order to help some one through a problem the gift of prophecy was used; I was give the person who need help, deep personal secrets, and then the advice from the Holy Spirit how they could overcome their problem. There have been times when people have needed a witness that God is real or to help me out of grave trouble the Holy Spirit has done miracles. Many times I have been helped to answer questions on the forums. When I don’t have the words or knowledge it has been given to me. Now to answer your question gifts are given when the Holy Spirit decides.