When I started, I was advised to learn C. This has served me well, though I don't actually do much with C any more. I was also advised to learn Lisp. This was a very enlightening experience, but I don't actually do much with Lisp any more. I mostly write code in Python.
I have long had an interest in artificial intelligence, a classic hacker topic. I still do. But I eventually discovered that even more than waxing eloquent about theories of cognition, I enjoyed building applications that people actually benefited from. I learned a lot from Philip Greenspun's books and classes on web/database programming. Even when not doing web/database work, I believe what I learned there was helped me to become a better software engineer.
But software engineering is not necessarily hacking. Hackers need not produce anything that is useful to non-hackers. Hacking is often driven more by curiosity, enjoyment, and personal delight than helping non-hackers to accomplish things with a computer.
Or is it? The very definition of the word hacker is almost too ambiguous to be useful.
Lots of folks here recoil in hatred at the mention of ESR, but I found this interesting: http://www.catb.org/~esr/faqs/hacker-howto.html