Hacking temel olarak çok geniş bir kavramdır ve kamuoyunda kötü olarak bilinsede hackerlar iyi kişilerdir. Kötü niyetli olanlar hacker değil crackerlardır.
Kablosuz iletişim sistemleri ve türevleri konusunda iyi bilgiye sahip olanlar, bu sistemlerin işleyiş mekanızmalarını zaaflarını bilenler yada araştırabilecek seviyede olanlara "phreaker" denir. Bu alanda bilgi seviyesine sahip insan bulmak çok zordur.
Hacker diye lanse edilen kesim ise; genel olarak web uygulamaları, remote erişimli sunuculara sızma becerisine sahip olanlardır. Bunlar için genel anlamda gerekenler web uygulama dillerini bilmek, database yapılarını bilmek ( özellikle sql injection tarzı saldırılar için), linux, windows gibi işletim sistemleri yetkilendirme konularında bilgi sahibi olmayı gerektirir.
Programlama dilleri bilmek, (c,c++,assembly vs) sizi daha iyi hacker yapmaz, ancak bu dillerdeki bir takım kodlama zaaflarından kaynaklanan tampon bellek üzeri taşmaları bilmek, bulmak ve bu zaafları kullanarak belleğe erişmek sizi çok daha iyisi yapabilir.
ben hacker olucam abi diye yola çıkarsan shangaiden geri dönersin. Çünkü hackerlik diğer insanların üst bigisayar bilgisine sahip olanları kendi aralarında tanımlamak için kullandıkları bir isimdir sadece. Böyle bir meslek dalı yoktur, hackerlar arasında böyle bir tanımlama da yoktur. Hack kamoyunda ki gibi çok ahım şahım karmaşık komplike sistemlerin içinde yaşayan kafayı yemiş insanların işi de değildir. İnsanlar öyle lanse ederler ve bu onların hoşuna gider.
Özetle Hack; yapılmış bir sistemin donanımsal, yazılımsal bütününde, o sistemi yapan insanların tasarım yada yapım aşamasında gözden kaçırdıkları konuları tespit edip o sistem üzerinde yetkisiz erişim elde etmektir. Tüm zaaflardan arındırılmış mükemmel bir sisteme sızmak mümkün değildir. Ancak asıl sorun şu ki; insan doğası gereği, tüm zaaflardan arındırılmış mükemmel bir sistemi yapmayı asla başaramayacaktır.