   Learning assembly
  I wanna ask if is a good idea to learn asm? Is it gonna make me a better programmer?   
  Yes.  Learning assembly is a good idea.  It doesn't really need to be assembly for a modern processor either.  I think you'll gain just as much insight into what's actually going on under the hood by writing an few NES games as you would writing some programs in X86 ASM.   ;  You will very rarely actually have to write assembly during a game project now days. But understanding it will help a lot in those extra weird debugging situations where absolutely nothing seem to make sense. :) Plus it's very satisfying to be able to have full control when you want to.;  ASM is a lot of fun but is very different from other languages. ASM has no data types or any other form of checking so whatever you program is exactly what you get. The language is explict and yet subtle. Just as an example "jump less then" appears to be the same thing as "Jump not greater" but they do not always do the same thing because they use the flags differently.ASM is not portable in any sense of the term and requires a lot of self control to keep routines from turning into garbage.  As a first language I would suggest something else but if you want a second language with absolute power then Maybe....   