Learn Ethical Hacking

So you want to learn the fine art of ethical hacking and you don not know where to start. This article is an attempt/tutorial to help beginners and guide them through the path of becoming a hacker. While there are a myriad of things to learn, at start you typically would want to start with the basics.

Prologue
The term hacking is  used nowadays to denote activities which imply the modification of computer hardware or software to accomplish a goal outside of the creators's original purpose. Whilst being vast in itself, computer hacking comprises of several 'disciplines', each of them being sufficiently complex that individuals engaging into computer security try to focus only on one of these. For example you might be a good cryptographer and be able to break encryption protocols or be a good programmer and be able to create Trojans and viruses, create powerful firewalls and fix vulnerabilities. This is to say that hackers tend to pick a particular field to master but have quite good broad knowledge of computer security in general.

In order to become an ethical hacker, you will need to learn individual subjects. To break things you must first understand how they work. A good start would be to learn a programming language. Everything in today's connected work has been built by programming it, whether it is a software you want to crack, or a website you want to deface. Depending on the task which you have in mind, you might want to start by a scripting language (if you want to orient yourself towards web applications) or with an object oriented language where you can easily create desktop applications or even your own tools.

Basic Hacking Skills
Python is strongly recommend for beginners. It is relatively easy to learn and well documented while being very powerful yet flexible. If you want to get more serious afterwards, you might want to try C++.
C++ is a very powerful and dangerous programming language making it the weapon of choice for hackers but is much more difficult to learn for beginners than any other language.

A good understanding of the internet and it's underlying technologies is very important for anyone serious about learning to be an ethical hacker. Understanding how servers, networks and communication protocols work will give you an edge and will give you a sound foundation to build your skills upon.
Apache for example is a web server which delivers web pages to users like you. The communication between you(your browser) and the server happens over the TCP/IP protocol.

HTML and Web Technologies
Web technologies are everywhere and countless applications are being built using them. Learning the fundamentals will help understand how web applications work and hence, how they can be hacked.
You might want to learn about HTML, JavaScript as well as server side scripting. A good server side scripting language is PHP, in fact is considered as the best and is pretty easy to learn.
There are many resources available on the net to learn about these things. Listed below are my favorites:
http://www.w3schools.com
http://teamtreehouse.com
http://www.codecademy.com

The Hacking Community
Learning solo isn't fun, hackers like to regroup into communities and share knowledge  This is the attitude and culture of the hacker underground. Registering on forums and interacting with other fellow enthusiast will speed up the learning process. It's also great to know what's happening in the hacker world so you might want to subscribe to blogs or news networks. Here are some to help you out.
http://packetstormsecurity.com/
http://www.governmentsecurity.org/
http://www.darknet.org.uk/
http://www.defcon.org/

Practice and Challenges
coming soon.