Now, if by "hacker" you just mean "developer" or "software engineer," then one could be a little bit more detailed, but there's still a lot of different areas to explore.
That said, if you want suggestions for books, articles, links, etc:
I'd suggest you start out by reading some books / articles that give a bit of the history of "hackerdom" and some insight into the hacker mindset. Some possibilities that come to mind:
Hackers & Painters by our very own Paul "pg" Graham
Hackers: Heroes of the Computer Revolution by Steven Levy
The Soul of a New Machine by Tracy Kidder
Cyberpunk: Outlaws and Hackers on the Computer Frontier by Katie Hafner & John Markoff
Artificial Life: A Report from the Frontier Where Computers Meet Biology by Steven Levy
Godel, Escher, Bach: An Eternal Golden Braid by Douglas Hofstadter
Most or all of Paul Graham's essays. http://paulgraham.com/articles.html
Read some of Edgar W Dijkstra's works: http://www.cs.utexas.edu/~EWD/
Couple that with a good book on the C language, some basic "theory of computing" stuff and a good algorithms book. I actually like Java as a good language to explore a lot of different things, since it has great library and tool support, plenty of community support, plenty of docs and books, etc. Learning some Java so you can play with cool libraries like Mahout, OpenNLP, etc. isn't the worst idea in the world. And, of course, learning a Lisp of some sort. This is still on my personal TODO list as well, and I've been dabbling in Clojure... but I don't think you'd go wrong with Common Lisp or Scheme either.
Other book recommendations:
Code: The Hidden Language of Computer Hardware and Software by Charles Petzold
The Annotated Turing: A Guided Tour Through Alan Turing's Historic Paper on Computability and the Turing Machine by Charles Petzold
Structure and Interpretation of Computer Programs by Harold Abelson and Gerald Sussman
Hacker's Delight by Henry S. Warren
Operating System Concepts by Abraham Silberschatz
Introduction to Algorithms by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein
One (or more) of the Algorithms in FOO series by Robert Sedgewick. There are Algorithms in C, Algorithms in C++ and Algorithms in Java to pick from. Each is a multi-part series. The Java one goes up to at least 5 parts, I can't recall offhand if the series numbering is identical across languages.
I also find that most hackers have an affinity for F/OSS software. If you don't already, I'd suggest running Linux or BSD as your operating system. Learn the standard command line tools, learn at least one of (Emacs|Vim).
Read The Cathedral & The Bazaar if you haven't yet.
Also consider some of esr's various rants, some of Stallman's stuff, etc., for context if nothing else.
Edit: Also, expect somebody in this discussion to recommend reading The Art of Computer Programming by Don Knuth. I'll just say that TAoCP is more reference material than tutorial, and isn't something you'd normally just "read" as in "read cover to cover." It's a great reference to have around for when you need to dig into the deep details of implementing an algorithms, and need the mathematical stuff, etc. But it's not something you necessarily want to start with.
There's SO many more places you can go though, than all this. The stuff mentioned above is good foundation stuff for a lot of paths you might want to explore, but don't limit yourself. Buy and Arduino and start doing some hardware hacking, read chemistry books and biology books, whatever floats your boat. Like ChuckMcM says below, curiosity is huge. If you're curious and don't limit yourself, you'll be a hacker.
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
The apprentice hacker hears of an interesting problem, gets excited, rushes off to his computer and starts madly writing code. The master hacker hears of an interesting problem, settles back in his chair, stares off into space and says, "You know, I think I've seen something like this before..."
At this point, your goal should be to expand your knowledge base. Your end goal should be to have a sufficiently good understanding of enough different tools, technologies, and ways of thinking that you can decompose anything new into ideas you already understand.
So here are some random suggestions for what you should actually do:
You have to have a balance between theory and practice. Try to build specific things like a blog site, a game, a raytracer, a media player, a website scraper, whatever tickles your fancy or scratches an itch. Try out different languages, libraries, IDE's, tools, operating systems. Exposure to different layers in the stack, different philosophies and different problems will increase your skills, help you learn the sense of the right tool for the job, and help you develop your own style as by combining the strengths of your different experiences.
Likewise, math and theory will help your skills reach new heights, especially after you start to feel comfortable with programming. You can accomplish a lot if you don't know much theory, but theory will give you a deeper understanding of many situations and make your thoughts clearer and more effective.
Your general programming abilities will improve if you learn high-school algebra, graph theory, automata theory (finite automata, push-down automata, and Turing machines), regular expressions, and compiler design. Geometry, trigonometry, calculus, and linear algebra are helpful for physics or graphics-intensive programming. Number theory and abstract algebra are virtually required to study modern cryptography.
1) Read this - http://www.catb.org/esr/faqs/hacker-howto.html
2) Try to get into explore-learn-do habit. Always look out for new things to learn and use that knowledge to solve some problems.
3) Learn Linux - If you aren't doing it already install a linux OS and try to use it as much as you can. I'm not asking you to ditch Windows. Install both if needed. If you aren't able to do something in linux, then do it in windows. Ubuntu Linux is good to start with.
3) Learn Programming. I would suggest you to begin with Python as it is easy to learn and have very good library ecosystem. Learn a relational(mysql) and a no-sql(mongodb) database along with python. Try to understand what different kinds of applications can be made - Web app, Desktop app, Mobile app, libraries, scrapers, servers, clients etc.
4) Learn about WWW, HTTP and Web Development with HTML, CSS, JavaScript and any python web framework - django/flask/etc.
5) Code, code and code. Keep learning and making new things.
Get a domain name and play with getting a simple site out there. Iterate and add things you like. In the process you'll learn fundamentals, each time building on previous knowledge.
10 Never stop.
20 GOTO 10