Question: Often I hear people around me who like to discussion about writing in assembly language and which is one of those reasons I'm also want to learn to write it. Currently I'm learning assembly and C together.

So, my question is when do you ever need to write assembly in real code?  

Is it just good to learn?  

Are there are any real uses of it when writing code in C?

Any helpful comments or answers will be appreciated!

Answer: 
I was going to write a long post but decided to summarize instead:

1. embedded code, boot loaders, compiler backends
2. yes, it will help you understand and debug your compiled code
3. the only time I have used it in c is for reading the real time clock register
I had many occasions when I needed to write asm code at work, where in C either you couldn't do certain things at all (e.g. access special CPU registers or use CPU's system instructions), or compiled C code was too slow or too big (the compiler wasn't good enough).

Still, the fraction of the asm code or time spend writing it was pretty insignificant.

Learning asm is good. It makes you "see" through your C code, predict what instructions and how many it turns into, roughly estimate speed of parts of code. In the process you learn a number of optimization and other tricks and a few cool algorithms/methods that you can then transfer into your C code. Just look at those numerous questions about C pointers or conversion of numbers between binary and decimal or arbitrary precision arithmetic. Knowing asm helps with these and other things.