First of all, I'd like to say your English is excellent for someone who speaks it as a second language. Here in the US rarely do people get actually taught foreign languages. They'll have classes on it, but the method of teaching and student expectations are so low that nobody learns the language.
Anyway, this is probably the longest and most serious post I've ever written. I'd like to say, for anyone
else reading this post, I would love for you continue reading and see my perspective as well.
Now, I'm very impressed with your eagerness to learn. It's sad when I take a programming class and only perhaps a quarter or less actually
want to learn the language, and only three or so actually seem to have a real passion for it.
I have several suggestions for you, some are direct, but some are more of a warning than anything else.
I would recommend learning C++ and not C, but I wouldn't recommend you
ignore it, unless you're trying to get into OS dev or something. If you plan on contributing to open source software sometime, you'll see C a bunch too, depending on what software you choose. It helps to have a general sense of awareness of things. C++, for the most part, is an extension to C that makes it much easier to do almost everything. Most aspects of C programs will run just fine when dumped into C++, but C++ has various features and included library classes/functions that make many of the tricky bits easier without doing much to sacrifice performance if you use it correctly. I would recommend looking into Boost libraries if you want to use C++; it's extremely useful and you will encounter it over and over again.
Python is an interesting language to learn, but make sure you don't become dependent on the abstractions it gives you. I would recommend learning a lower-level language such as C++ before Python. Doing it this way will make Python seem really easy once you actually get to it, and additionally, you won't have to tear out misconceptions about how a computer actually works by learning a lower level language AFTER a higher level one. That's just my subjective opinion, though; there are people that will tell you differently.
I don't have that much experience with Perl, besides needing to read Perl embedded in bash scripts, so I don't feel qualified giving you recommendations other than that it's worth it to be familiar with.
PHP is an awful language. Seriously, it's terrible. It began as an extremely simple platform to make basic dynamic websites with, but then got various features and tidbits piled onto it by demand essentially without planning until it gradually turned into the abomination it is now. Quoting the original author of PHP, "I don’t know how to stop it, there was never any intent to write a programming language […] I have absolutely no idea how to write a programming language, I just kept adding the next logical step on the way". There are many critical problems, including == not being transitive, ternaries being left grouping (which was literally just a total error on the programmer's part, but by the time people seriously wanted it fixed it was in use so much that changing the way ternaries grouped could break past usage), and comparison operators being inconsistent (NULL is less than one, yet equal to zero at the same time). The last one can cause problems with sorting algorithms. Every library function has random names and parameters and generally nothing makes sense. For more information, see
PHP: A fractal of bad design and
PHP Sadness.
As an alternative to PHP, I could suggest node.js, which is what I use these days. Django looks really good too, though I haven't used it myself. This is more down to your personal preference, though; in some ways, node.js can be more convenient though, since the web server as well as the browser use the same programming language.
I would advise learning JavaScript and acknowledging that it's not perfect, but it's the only thing we have available to us. Gradually, people seem to be moving more and more towards web-based applications instead of native, simply because it is easier, often safer, (Any arbitrary program can be run, and you're putting trust in the security of the browser rather than trust that the guy making the program didn't write something to harm your computer. Of course, it's still possible to get through the security, but it's extremely difficult, instead of effectively opening the door the moment you run the program.) and cross-platform, too. JavaScript is only going to become more important in the future. However, there are many projects in active development that will compile other languages into JavaScript (or asm.js, which I won't go off on a tangent on here). The most notable one today is
Emscripten. By "compile to JavaScript", I mean you literally write a C++ program, tell Emscripten to compile it, and out comes JavaScript instead of machine code. It's very cool.
Also, I would strongly recommend once you are comfortable with programming to be aware of what functional programming is like and how to use it- not necessarily to use it regularly, if it's not your thing. I'm in the process of learning Haskell myself right now.
Linux is a really great thing to use and learn. I would highly recommend learning bash as well, once you get to it. It's not a language people use to make the next-gen FPS or do serious numerical computation or anything, but it's useful and, in the process of using Linux, any complicated things you do in the command prompt will rely on you understanding at least part of it. Also, even if you don't use Arch Linux, their documentation for a whole lot of Linux related things (that often will be in your distro as well) is really, really good. They have a wiki with all this good stuff in it. Just so you know.
Now, onto hacking... The sort of "game hacking" people do here doesn't really interest me, and I don't participate in it. I honestly can't take it very seriously, either. This is going to sound like a rant, and it is. The fact is, I've seen many consistent patterns that define the programming community here, that haven't changed or gone away with time. I'm not saying there aren't any good programmers here, but the good programmers are few and far between. There is a dangerous amount of Dunning-Kruger syndrome that goes on here, and it would be sad to see another fall into the swirling hivemind many seem to occupy. I see a lot of terrible code here regularly and little signs of improvement, nor anyone noticing how terrible it is because they don't know how to write anything better. There are a significant number of people in this forum who are a dangerous learning resource.
However, it is possible to get out of the whirlpool. There are many communities of good programmers. Questions and answers alike on StackOverflow will rarely take you in the wrong direction. On reddit, r/programming and r/netsec are good ones. The ##programming channel on freenode (you'll need an IRC client to go there) is pretty good, though some users there are better than others.
If you want to get into one type of "real" hacking, I would suggest
Exploit Exercises and especially
Smash the Stack. These require SSH, and deal with many types of buffer overflow exploits and other related topics. They're super awesome, and I'm going through Smash the Stack now as well (though I've been halted recently by exams and projects being due).
Also, many times people will tell you "don't reinvent the wheel", but sometimes reinventing parts of it are a good learning experience. Don't ever be afraid to try to write something yourself. Your greatest amount of skill will come from what you write yourself, not from what others write.
Thanks for reading, and if you have any questions, feel free to ask.