Many beginners think that it´s possible to get some "hacking programs", click on some buttons on a GUI and voila: "I´m a hacker now!" Nope, you aren´t, even a chimpansee can be teached to do this. Booting people in chat rooms? Sorry, absolutely no hacking too...
<b>So, what is hacking?</b>
Hacking is about learning and understanding how things work and how to manipulate these things. If your intention is "I want to crack sites and break into other peoples computers" you won´t get far, sooner or later you´ll cross a dude with much better skills than yours and you´ll get whacked, or you´ll end up in a prison cell with some sweaty, smelly and hairy guys which will call you "sugarbutt".
<b>So, where to start?</b>
Well, most people start with trojans, right? (come on, admit it) It´s fun at the beginning because it gives you the feeling to do something "malicious", but don´t waste too much time with it.
Start with HTML! It´s really easy to learn and gives you a understanding how websites generally work. K, you might say "HTML is no real programming language!", but hey, it´s like getting a driving license: It´s stoopid to get a Porsche as your first car,right?
If you have HTML skills you can expand them with JavaScript, it gives you a first, tiny look into real coding and is still pretty easy to learn.
<b>Well, now it´s time to get into the real stuff:</b>
Choose your first programming language!
Which one? I would say a OOP language (Object Orientated Programming) would be the right thing, like Java, C++, Perl or many others.
I would recommend Java, but ask a C++ coder and he´ll tell you C++ is the best...

Well, for both languages you´ll find good tutorial/ebooks to dl on this site.
Some people will say "assembler is the one to learn!". Well, Assembler is the most powerful language, but it´s very hard to learn because it´s "close to the machine" and therefore not really userfriendly, you will have to deal with real abstract code, so imo it´s a bad choice for the first language because it will frustrate you pretty soon.
So, download the Java SDK, change the PATH variable to the Java bin-folder and you can start! The beginning is a little pain in the ass because you have to understand first what "object orientated" means, but after let´s say 2-3 weeks you´ll be into it and can continiue with the Java packages, most fun for beginners is the AWT-package because it enables you to build GUIs for example. In the packages everything is documented, but imo it´s better to learn from books, the o´reilly-ones are pretty nice for example.
<b>What else?</b>
You need knowledge of the most used protocols of the tcp/ip-family, because that´s the stuff on which the net is built. If you want to learn about scanning use nmap, you´ll learn more out of it than with all other scanning programs because you have to learn about the protocols to be enabled to use it properly.
Scanning can be labeled as a attack, so don´t go out there and scan whole IP-ranges without any sense. Setup a second computer(I use a old PII, good enough, you can even install Apache on it for further experiments), build a home network and increase your skills the safe way. This enables you to see how the scanned system reacts too.
Well, that´s it for now, I´ll add some stuff here if I feel the need to...
Happy hacking!
