Kids want to be called "hacker" because it sounds cool. "I am haxxor". Similar with words like "geek" or "nerd".
From what i experienced there is simple rule:
If someone is calling himself hacker/geek/nerd/etc - he isn't one.
(i mean: c'mon! WTF is with these hipster c-cup girls with fake glasses and t-shirt with "biggest geek ever :*" stuff written on it? [
http://www.xojane.com/files/fakegeek.jpeg ])
For me hacking is modifying. And to modify you need to know how does the modified thing works.
Computer hacking require very wide knowledge how things work, no matter if it is network/web hacking or application cracking.
To exploit something you need to know it. Memory dumb is your friend and wireshark is your wife.
What is hacking to you? Do you want to dig in apps, h/w network, s/w network?
edit# my rage took me there and i forgot to answer your question:
When you dig deep enough you will get enlighten. For example: if you will know how program work, how it is viewed by OS, where stack is keept, how it is scheduled, how exe/axf/elf/hex/.etc. files are build inside, how virtual memory work, how to use sw/hw breakpoints, how to boot system, what kernel is? implement it,... and MORE. When you ask question to yourself "how does it work", find the answer and then, at some point : you will see what you need to do to hack something. Trail and error and constant learning.