У каждого свои способы обучения, поэтому сложно что-то советовать. Я делал так:
1) читал литературу
@byhacking и старался применить знания полученные из книжек на практике. Лучше начать с переведенных книг таких как kali linux чтобы заложить фундамент. И обязательно читать на английском языке, прям в переводчик вставляешь и читаешь (если не знаешь англ). Пока на русский переведут инфа будет уже не актуальной.
2) После того как немного прокачались в инструментарии нужно прокачаться в архитектуре ОС, особенно linux. Читаете книги на эту тему, например Фленов "Linux глазами хакеров" и т.д
3) далее я собирал свой "идеальный для пентеста" диструбитив. За основу брал gentoo/arch. Баловался. Это помогло закрепить полученные навыки из пункта 2.
4) Теперь читаем книгу Раус Кроу "Сети нисходящий подход".
5) смотрим курсы net sckill на Ютубе про cisco pocket или на Хабре "сети для самых маленьких".
6) теперь обязательно нужно перейти к языкам программирования. Изучить поверхностно 2-3, чтобы можно было читать код. Лучше взять интерпретируемый и компилируемый.
7) выбрать для себя основной язык и задрочить его так, чтобы всегда мог написать программку на нем. У меня такая связка: python, java, с++, но теперь я перешёл с с++ на php потому что связан с web'ом.
8) теперь читаем все журналы отсюда:
@hacker_lib9) поздравляю, теперь у вас есть база. Нужна серьёзная практика всего этого добра, либо в специализированных лабораториях типо pentestit, либо на просторах интернета (что рискованно, но захватывающе), либо на работе (идите устраиваться пентестером).
И с этого момента можно посещать и defcon, и hackerone и hach5, phd и т.д