What is Wick's theorem and what this is use for? I am reading Wick's theorem but although I look for it to clearly understand in some textbooks and youtube videos but still it is unclear to me. I cannot get my head over what is normal ordering really is and Why it is required and how it is used in wick theorem.
 A: Wick's theorem is a very important theorem in Quantum Field Theory used to reduce products of creation and annihilation operators to sums of products of pairs of these operators. While I cannot give you a complete course here, I'll just state some of the basic ideas so you can get the idea on what's happening and not get lost in the mathematics (don't ban me for oversimplifying):
Normal ordering
As you may know, when you apply an annihilation operator $\hat{a_n}$ to a state $|n\rangle$ you will basically eliminate that particle. Therefore, in a sum, if you have all the annihilation operators on the right side for $n$ particles you will effectively be able to cancel them all, thus getting the expectation value of the vacuum.
Normal ordering is precisely the notion of ordering your operators (using the appropriate commutative relations) so that all the creation operators appear to the left of annihilation operators in a product, thus ensuring that the expectation value of such product is that of the vacuum (zero).
Example: 
$\hat{a_1}^\dagger\hat{a_2}\hat{a_3}$ is in normal order 
$\hat{a_1}\hat{a_2}\hat{a_3}^\dagger$ isn't in normal order.
For notation, a normal ordered product is always enclosed in : x :, like this $:\hat{a_1}\hat{a_2}^\dagger:$
Contraction
For two operators $\hat{A}$ and $\hat{B}$ we define their contraction to be,
$$\hat{A}^\bullet\hat{B}^\bullet=\hat{A}\hat{B}\ -:\hat{A}\hat{B}:$$
In some books, such as Greiner, you will usually find them with a line that connects the two instead of the black dots (sorry for uploading pics, but I couldn't write the notation needed),

Thus a contraction basically allows you to rewrite products of operators in terms of products of other operators (think of it in analogy to how you use commutation relations). 
Why do we need contractions? If you look closely, you'll notice that one of the terms is precisely a product in normal ordering (denoted by the :x:), so when you take the expectation value of such product you will get zero (as the expectation value of the vacuum is zero).
Wick's theorem
Usually in QFT you will encounter products of operators to evaluate, and thus Wick's theorem offers a simpler way to deal with them. It basically states that a string of creation and annihilation operators can be rewritten as the normal-ordered product of the string, plus the normal-ordered product after all single contractions among operator pairs, plus all double contractions, etc., plus all full contractions. 
This can be expressed with our notation as
$$
\begin{align}
\hat{A} \hat{B} \hat{C} \hat{D} \hat{E} \hat{F}\ldots &= \mathopen{:} \hat{A} \hat{B} \hat{C} \hat{D} \hat{E} \hat{F}\ldots \mathclose{:} \\
&\quad + \sum_\text{singles} \mathopen{:} \hat{A}^\bullet \hat{B}^\bullet \hat{C} \hat{D} \hat{E} \hat{F} \ldots \mathclose{:} \\
&\quad + \sum_\text{doubles} \mathopen{:} \hat{A}^\bullet \hat{B}^{\bullet\bullet} \hat{C}^{\bullet\bullet} \hat{D}^\bullet \hat{E} \hat{F} \ldots \mathclose{:} \\
&\quad + \ldots
\end{align}
$$
In other words, you can rewrite this product by first writing it as it is (in normal ordering), then trying all the possible contractions between two pairs of operators, then writing all possible double contractions between two pairs of operators, and so on. 
Why is this useful? Well, the most important application is that, when you evaluate something called the time-ordered product of operators (which you can think of like analogous to the contraction but in time) that is used in QFT calculations, you will always take it's expectation value on the vacuum. Therefore, if you apply Wick's theorem on this time-ordered product and take the expectation value on both sides, all the normal-ordered products will basically give you zero, and thus the only remaining parts will be the ones that actually appport something to the final result. Therefore, you have simplified a very complicated problem of finding a time-ordered product of operators (which manually requires several complicated integrals) to just applying commutation rules and contractions on operators.
Now, if you want to read more about it, I suggest you to check the book of QFT of Greiner, as it's easily one of the best explained with many examples. You may also want to check these articles:
https://www.imperial.ac.uk/media/imperial-college/research-centres-and-groups/theoretical-physics/msc/current/qft/handouts/qftwickstheorem.pdf
http://www.physics.sun.ac.za/~weigel/teach/QFT16/wick.pdf
