Привет! Чтобы научиться искать уязвимости (то, что ты называешь "взломом"), не нужно уметь создавать программы, не нужно какое-то специальное образование. Для этого требуется всего лишь одно: досконально понимать, что и как работает в той системе, в которой ты ищешь уязвимости. Проблема, однако, в том, что вот это "что и как" включает в себя огромное количество деталей, нюансов.
Почему недостаточно понимать приблизительно? Потому что эта система очевидно прошла тестирование и в целом нормально работает, а уязвимости в ней прячутся в темных углах, которые можно найти, только очень хорошо разобравшись в ней (ну или случайно :-)).
Представь, что ты хочешь найти уязвимость в системе заказа пиццы. Ты вводишь данные заказа. Что с ними происходит в браузере? Как это узнать? Как и что отправляется на сервер пиццерии? Что приходит в ответ? От чего зависит диалог браузера с сервером? Можно ли повлиять на него так, чтобы система приняла заказ без оплаты? Подумай, какие знания и какие инструменты тебе для этого требуются. Гугл - твой лучший помощник.
Ничего сложного в этом нет, это же не дифференциальная топология :)), нужно просто потратить достаточно времени, чтобы разобраться в каждой детали системы, научиться пользоваться определенными инструментами (Ida pro, sniffer и т.д.), "налетать" определенное количество часов - как в любой области, и - вуаля.
Ну а чтобы понять, интересно ли тебе это, погугли CTF-ы, попробуй пройти простенький ctf. Если больше захватывает, чем ломает - значит, это твоё.