Научитесь информатике, кибербезопасности или чему-то еще

В последнее время многие из вас обращались ко мне с вопросом, как вы можете начать работу в индустрии информационной безопасности. Вы спросили меня, какие навыки вам нужны, какие сертификаты вы должны получить и какие языки программирования вам следует изучить. Но я считаю, что для успеха в индустрии высоких технологий нет единственного навыка, который вы действительно «должны знать», кроме как эффективно обучать себя новому.

Итак, сегодня я хотел бы поговорить об одном из самых важных уроков, которые вы когда-либо усвоите как в области информатики, так и в области кибербезопасности:

Как эффективно учить себя новому.

Если вы студент, пытающийся стать разработчиком или специалистом в области безопасности, то знание того, как научить себя, действительно полезно, когда у вас нет доступа к наставнику или официальной программе обучения в этой области.

А поскольку сфера технологий постоянно меняется, очень важно, чтобы вы овладели навыком обучения новому, чтобы вы могли повысить свой набор навыков даже после того, как вы успешно начали карьеру в этой области. Давайте начнем!

Шаг 1. Составьте план

Первый шаг к самообучению - составить план. Помните, когда вы посещаете курс университета или старшей школы, в первый день каждого курса вы всегда получаете программу, в которой точно излагается, что вы будете изучать в этом семестре и как будут выглядеть временные рамки. Когда вы учитесь, вы хотите делать то же самое.

Чтобы эффективно обучить себя, нужно сначала определить:

  • Какие темы вам нужно изучить?
  • Какие подтемы вам нужно освоить, чтобы освоить эту тему?
  • В какой последовательности и в какое время вы должны преподавать себе эти концепции?

А для новичка это может быть довольно сложно, потому что вы еще не знаете, чем на самом деле занимается эта область. Итак, как вы подойдете к составлению плана обучения?

Допустим, вы пытаетесь узнать о новом классе уязвимости: подделке запросов на стороне сервера (SSRF). Как вы определяете основные темы этой темы? Первое, что я рекомендую сделать, это то, что вы можете погуглить тему и посмотреть основные заголовки каждой статьи по этой теме. Например, давайте посмотрим на эту статью о SSRF:



Вы можете видеть, что в статье рассказывается о том, что такое SSRF, о типах SSRF и о том, как обойти защиту SSRF. Вы можете записать их в список вещей, которые вам нужно знать по теме. Сделайте это для нескольких статей: просмотрите основные темы сообщений от разных авторов, чтобы получить общий обзор темы, потому что ни одна статья не может говорить обо всех аспектах темы и делать это правильно.

Затем вы можете заказать список тем и определить, как учить себя и в каком порядке. Начните с темы, которая требует наименьших знаний по предмету, а затем переходите к изучению вещей, которые основываются на уже полученных вами знаниях. И это подводит нас к следующему совету.

Шаг 2. Не торопитесь

Глубокое понимание темы обычно занимает гораздо больше времени, чем вы думаете. Поэтому я рекомендую составлять бюджет как минимум в два раза больше времени, которое, по вашему мнению, вам нужно для каждой подтемы, и придерживаться этого графика. Поэтому, если вы думаете, что на понимание концепции у вас уйдет два дня, потратьте на нее четыре дня.

Даже если вы получите базовое понимание темы в рамках графика, дополнительное время, потраченное на изучение темы, только углубит ваше понимание предмета.

Возвращаясь к нашему предыдущему примеру, я бы рекомендовал посвятить хотя бы одну неделю каждой из этих тем: основы SSRF, типы SSRF и обход защиты SSRF. Если вы уже получили хорошее представление об основных обходах защиты SSRF на третий день недели обхода защиты SSRF, потратьте остаток недели на чтение более малоизвестных примеров обхода защиты SSRF и попытайтесь придумать новые и нестандартные способы сделать это. в разных средах. Такое время, посвященное исследованию, поможет вам узнать больше о предмете, чем может предложить вам большинство учебных пособий или курсов.

Шаг 3. Найдите свой стиль обучения

Далее, разные люди предпочтут учиться по-разному. И вы, вероятно, обнаружите, что предпочитаете изучать разные темы по-разному.

Так что поэкспериментируйте с различными типами учебных ресурсов, такими как блоги, видео и интерактивные учебные пособия, чтобы увидеть, что вы предпочитаете. Мне лично очень нравится записывать и учить других. Поэкспериментируйте, чтобы узнать, как вам лучше всего учиться.

Шаг 4. Проверьте свои источники

Люди, которые учат других онлайн, тоже делают ошибки. Я определенно делал ошибки в своих сообщениях в блоге. Поэтому всегда полезно проверять свои знания, используя несколько разных версий одного и того же ресурса, вместо того, чтобы использовать один ресурс в качестве единственного источника информации.

Например, если вы учитесь эффективно создавать определенные функции, отнеситесь к ответу Stack Overflow с долей скептицизма. Что говорят по теме другие люди? Что говорят по теме ведущие специалисты в данной области? Всегда используйте более одного источника информации и никогда полностью не доверяйте ресурсу. И это подводит нас к нашему последнему совету.

Шаг 5: Проверьте себя и следите за своим прогрессом

Выполняя свой собственный план обучения, вы должны убедиться, что идете по правильному пути и действительно изучаете то, что вам следует изучать. А чтение по теме и фактическое сохранение знаний - это две разные вещи. Вам нужно проверить себя, чтобы измерить свой прогресс.

Есть много способов проверить свои знания. Одна из вещей, которые мне нравится делать, - это записывать все, что я знаю по теме, а затем возвращаться и ссылаться на свои заметки, чтобы увидеть, не пропустил ли я что-нибудь или сделал что-то не так. Например, предположим, вы изучаете защиту от внедрения SQL. Вы можете попытаться записать каждую известную вам защиту от SQL-инъекции, затем объяснить их различия, в каком контексте вы должны использовать каждую защиту и так далее.

И для многих вещей в CS или кибербезопасности понимание и способность выполнять - две разные вещи. Вы можете понять концепцию теоретически, но вам нужно это понять, чтобы убедиться в этом. Так что в этом случае ваш экзамен для себя должен включать проекты, а не концептуальную проверку, о которой я говорил ранее. Например, если вы хотите научиться писать код, защищенный от SQL-инъекции, вы можете написать простую программу, а затем попытаться атаковать свою собственную программу с помощью SQL-инъекции. Главное - убедиться, что вы что-то поняли, а не предполагать, что вы это делаете только потому, что изучили это.

Это поможет вам убедиться, что вы на правильном пути, а также обрести уверенность в своих силах.

Наконец: слово о чувстве подавленности

Во время этого процесса будут моменты, когда вы не сможете сразу что-то понять или почувствуете, что что-то полностью выходит за рамки вашего уровня. Это совершенно нормально.

Обучение не всегда является линейным процессом. Вы лучше поймете концепцию, когда узнаете о других концепциях в этой области или когда у вашего мозга будет время ее обработать. Иногда лучше всего отпустить это и вернуться к этому позже.

Также может помочь изучение чего-то, что не имеет непосредственного отношения к делу, например, изучение более старой версии языка или фреймворка или чтение устаревшей технической книги. Часто таким образом можно получить интуицию и комфорт в теме, даже если технические команды или эксплойты не сразу пригодятся. Так что это еще одна стратегия, которую вы можете использовать, когда застряли.

О каких еще концепциях безопасности вы хотите узнать? Я хотел бы знать. Не стесняйтесь подключаться к Twitter @ vickieli7.