How to learn Hacking or becoming a hacker
I don't know how expert i am but i believe these enough for becoming a hacker and i always try to follow them. So just sharing with you.
A) Programming:
1. Python/perl : Learn Python or Perl programming language. You need one of these two language . Do you know why ? For example , creating exploit, Making Custom tools etc.
2.C/C++: You should know this language. Because this will help you in many way. It is powerful language. Perhaps you already know that most of complex and powerful software coded in C/C++. And The Linux/Unix operating system language is created in C Language. For finding exploit or making some nasty thing you need this language.
3. Assembly Language: AH!!! Worry ? Don't worry. It is not too hard for learning to read or understanding the code. Really you need asm if you are more serious about hacking. Without assembly language you will not be able to find the 0day against software , because debugger only output in asm code. Actually you don't need to be coder but you should able to read it, understand it... Also if you want to know how computer internal works then best way to learn asm. So go with Intel Syntax and nasm.
4. PHP/SQL/Java script/html: If you want to move to Web hacking then learn at least 2 languages(PHP and MySQL). For example If you found php code injection vulnerable so how you will exploit it? Clear answer is you need PHP knowledge. And if you want to attack Client side then you need javascript and html knowledge, For example EXPLOITING password protected html pages , cros site scripting, Exploiting CSRF etc . Have you ever heard about SQL injection ? Guess why i told you to learn SQL.Even If you want to find 0day for other framework like wordpress,joomla etc then you must need to have PHP/MySQL knowledge.
But if you are not serious about hacking and want to hack only for fun then some tools will do the job for you(this called skid and script kiddie), But be aware most of time(85%) you will be failed.