I don't personally think hacking is something you can just learn. I look at it like this...
Take a pen for example. you know how to hold it and write with it but you don't know how it really works. Once you do know how it really works you will then understand how to take it apart and look at the ink inside, change the spring for a different one or add new parts to it.
To be able to hack something you need to truly understand how it works in the first place. Because you need to know what should/shouldn't be there. If you can change or add parts to it to an end goal.
Let me give you a real life example. On a local network, devices are constantly learning where other devices are. So if a computer wants to go to facebook.com the network will know exactly where to direct the traffic. If you know that then you might think as a hacker, 'why can't i redirect their traffic somewhere else'... So, you can set up an ARP spoof to redirect traffic to where you want it to simply by sending out the wrong, but right for you
information on the network. now, when someone types facebook.com in their internet browser their traffic is redirected to you because of what you did.
Now you see, by understanding what is going on on the network you're able to change, add, access, view etc etc as you have a better view of what's going on and how you can manipulate it.
Hope that helps.
Comm4nd0