Во-первых, настоящему хакеру без Ассемблера никуда. Поэтому первым делом учишь ассемблер и разбираешься в деталях того, как работает железо. Для практики стоит написать свою элементарную операционную систему.
Во-вторых, учишь C и разбираешься, как работают современные операционные системы. Копаешься в коде линуксового ядра и пишешь модули режима ядра.
В-третьих, разбираешься как работают сети. Весь стек протоколов, коммутация, маршрутизация. Пробуешь писать свои сервера. Учишься читать tcpdump на лету и общаться с серверами telnet'ом.
И вот, спустя несколько лет, у тебя появится база достаточная для того, чтобы податься в хакеры.