What is the difference between necessary condition & sufficient condition? My book says :

For having extreme point $a$ of function $f$, the necessary condition is that $f'(a) = 0$. However, it isn't a sufficient condition. 

Now, what is the difference between necessary & sufficient condition? And also what is the sufficient condition for a function to have an extreme point? 
 A: Look at this example:

Every time it is raining, the street gets wet.  

But there are also other possibilities to wetten the street. For example: On a bright day without any clouds in the sky someone could pour water on the street.
sufficient
If you look out of the window, and see that it is raining, without seeing the street, you know for sure, that the street is wet. So the condition "It is raining« is sufficient to conclude, that the street is wet. You don't need to know anything more.
necessary
On the other side: Your partner comes home with wet shoes, and when asking why the shoes are wet, you get the answer: »The street is wet.« (Your partner never lies to you) Do you now know if it's raining or not?
No, you don't. Someone might have poured water on the street, and you partner might have walked through this puddle on a bright cloudless day. But it is also possible that it is raining.
When you want to proof that it is raining, and you get notice of a dry street, then you know that your proof will fail, because it can't be raining when the street remains dry. So the condition »The street is wet« is a necessary condition.
A: $P \Rightarrow Q$ $\quad $ [This is read as "If P, then Q"]
$P$ is a sufficient condition for $Q$ 
$Q$ is a necessary condition for $P$
A: If it is raining, it is $\textrm{sufficient}$ to conclude that there are clouds. However, presence of clouds is not enough to conclude that there will be rain, but clouds are $\textrm{necessary}$ to have rain i.e.,
$$\rm Rain \implies Clouds .$$
A: Necessary condition $A$ means that $A$ that must exists in order for $B$ to occur, however, $A$ alone doesn't guarantee that $B$ happens.
Sufficient condition $A^\prime$ means that if $A^\prime$ happened then $B$ will inevitably occur.
Getting good grades is a necessary condition to get accepted into a prestigious university
Solving the Riemann hypothesis is sufficient to get accepted into a prestigious university.
So in short, a sufficient condition guarantees the occurrence of another condition
But a necessary condition doesn't guarantee it .
Also assume that $S$ is a sufficient condition for $B$
and $N$ is a necessary condition for $B$.
It is worth mentioning that if $S$ occurred it includes as well that $B$ occurred.
Sufficiency is a stronger notion.

If someone solved Riemann hypothesis,It is very obvious that he have
  extremely good grades , but it is not true that every one who gets
  good grades will solve the Riemann hypothesis

The necessary condition is automatically met when the sufficient condition is met.
If the necessary condition is not met, the sufficient condition is automatically not met.
A: Necessity and sufficiency address the direction of implication of statements.
By stating that $f'(a)=0$ is necessary, your book is claiming that the derivative of $f$ vanishes at every extreme point. (Think of the slope of the tangent at such a point).
By stating that it is not sufficient, your book is referring to examples such as $f(x)=x^3$ and $f(x)=x^5$ at the origin -- these have vanishing derivatives but no extreme points at $a=0$. (Tangent can be horizontal without a maximum or minimum point).
Usually, you need more information such as the sign of the second derivative at the candidate point or the sign of the first derivative around a candidate point to decide if it is an extreme point. 
Look at http://en.wikipedia.org/wiki/Second_derivative_test
