Начало

Действие

Меня зовут Марко Фигероа, и я был в сообществе хакеров и безопасности… Черт, я только что понял, что прошло 14 лет. Я начал ходить на хакерские конференции, где влюбился в игру и сообщество. Это отрасль, в которой нет потолка, поскольку как профессионал в области безопасности вы на протяжении всей жизни изучаете различные области безопасности! Индустрия безопасности за последние несколько лет пережила цунами! Например, мою первую конференцию Defcon (Мекка конференций по безопасности) посетило всего 300 человек, в прошлом году их было 20 тысяч из того, что мне рассказал инсайдер. Мое многолетнее путешествие привело меня к написанию этой статьи, которая представляет собой процесс, который я использую, чтобы заняться доменом, потому что я устал просить других людей помочь развить мою идею, теперь я смотрю на свои руки и получаю руки грязные. Я надеюсь, вам понравится эта рецензия, и вы возьмете самородок, который поможет вам в будущем действовать в той области, которой вы, читатель, хотели бы заняться.

5–4–3–2–1 Go

Я заметил, что разработчики, с которыми я работал, не просто придерживались одного фреймворка, они были настолько гибкими и проворными с разными фреймворками. Этому молодому отважному разработчику, с которым я работал, наплевать, какой фреймворк он использовал, он просто чертовски кодировал что угодно и на любом языке. Когда я начал изучать разные фреймворки, молодой ребенок рассказывал мне их плюсы и минусы. Меня это чертовски впечатлило, потому что я бы сказал себе, откуда у этого ебаря время, чтобы заглянуть в эти фреймворки. В прошлом месяце я спросил молодого рок-звезды о новом фреймворке, который я хотел бы изучить, и он уже протестировал его и поиграл с ним. Он мой советник по любым вопросам, которые могут возникнуть у веб-разработчиков, и я рекомендую вам найти своего консультанта. Вы можете спросить, как мне найти того человека, от которого я могу поделиться идеями в настоящее время, это очень просто, если вы работаете в компании, где разработчики ищут, где находятся разработчики, и связываются с ними, или заходят на сайт meetups.com или поиск групп в Facebook. Людям по умолчанию нравится помогать людям, я серьезно, люди чувствуют себя хорошо, когда они получают ответ на ваш вдумчивый вопрос, я просто сказал вдумчивый, не задавайте вопрос, вы можете найти ответ в Google за 1 минуту. Будьте внимательны и благодарны за то, что они готовы тратить время на то, чтобы вам что-то объяснять.

Действие - ключевое слово; многие люди размышляют о том, что они хотят сделать, вместо того, чтобы действовать и просто делать. Я чувствую, что навыки, которые я приобрел за эти годы (обратное проектирование вредоносного ПО), помогли мне разбить проблемы или задачи на более мелкие части, в результате чего я предпринял действия, необходимые для достижения конечной цели. Вы можете спросить, как именно мне предпринять действия для достижения этих целей. Обратные инженеры смотрят на конечный продукт и декомпилируют код. Думайте об этом как о обратном отсчете от 10 до 1. Еще одна вещь, которая очень важна при принятии мер, - это среда, в которой вы работаете, да, это может показаться простым, но это разница между достижением вашей цели и неспособностью ее достичь.

Резюме

Например, мне было сложно сосредоточиться на текущей задаче, поэтому я решил купить небольшой стол, чтобы создать зону, свободную от отвлекающих факторов, и разместить его в своей спальне с солнечной лампой, таймером, монитором и наушниками (музыка Brain.fm). и табурет, на котором я не мог расслабиться. Я использую это учебное пространство ежедневно с тремя 25-минутными сессиями для работы над конкретными задачами. Все отвлекающие факторы, такие как телефон, планшет и все, что может повлиять на мою концентрацию, оставлены в другой комнате. Для меня это изменило правила игры, я видел, как моя продуктивность выросла на 100%, я обнаружил, что уведомления из моего браузера и телефона выводят меня из зоны и завершения поставленной задачи. Когда я внедрил это небольшое изменение, я понял, что пора серьезно заняться изучением веб-разработки. Следующее, что мне нужно было сделать, это спросить нескольких друзей, как лучше всего справиться с этой горой веб-разработки. Вы можете использовать поиск в Google, изучая веб-разработку, но я считаю, что вам нужно, чтобы люди с опытом рассказывали вам, как они подойдут к изучению вещей, в которых они являются экспертами, и у Google не будет таких ответов. Ниже приведена схема того, как я решаю проблемы и ставлю цели для их решения.

Например, моя конечная цель - создать веб-приложение, которое принимает двоичные файлы вредоносных программ, извлекает индикатор и обогащает всю информацию с помощью аналитики угроз с открытым исходным кодом. Эта задача очень проста, но очень полезна для повседневных задач, и этот проект даст мне основы, необходимые для изучения веб-разработки. Это поможет аналитику провести первоначальную сортировку инцидента, над которым он работает. На диаграмме слева (Решение задач) показано, как я сейчас занимаюсь этим проектом, это трехмесячная цель, и в первый месяц мне нужно будет изучить Javascript, проще сказать, чем сделать, но друг порекомендовал мне начать с FreeCodeCamp.com. Первый месяц будет выглядеть так, неделя 1 я начну с модуля CSS, который занимает 5 часов. Я знаю CSS, поэтому меня не сильно расстраивает (на FreeCodeCamp.com есть модуль и время, необходимое для его завершения). Затем я перейду к модулю Basic Javascript 10 часов (кстати, я знаю, что каждый модуль займет у меня вдвое или втрое больше времени, чем они указали). Общее количество часов первой недели составит 30 часов, это моя оценка. Вторая и третья неделя будут посвящены модулю «Базовый алгоритм сценариев» 50 часов. На четвертой неделе будут JSON API и Ajax, что составляет 2 часа. Сейчас, во втором месяце, я буду изучать React Framework для создания веб-приложения. Для этого я буду изучать React от Udacity (программа React Nanodegree), я подумал, почему бы не получить сертификат для изучения React при формировании навыков. Неделя 5 будет введением; 6-я неделя будет посвящена основам React, а 7-я и 8-я неделя - React & Redux. Последний модуль React Native Мне он не понадобится для завершения веб-приложения (все дело в конечной цели), но я закончу последний модуль, когда закончу со своей будущей целью. Через месяц до моей цели Девятая неделя я начну с внешнего вида и взаимодействия с пользователем веб-приложения, 10-я неделя будет посвящена загрузке и извлечению индикаторов, 11-я неделя будет посвящена расширению возможностей, а 12-я неделя будет посвящена тестированию и доставка моей конечной цели! Теперь следующий шаг, и я не буду вдаваться в подробности, потому что он слишком длинный, но его нужно разбить на дни. Пример ниже продемонстрирует, как вы это сделаете.

День 1, модуль 1–1,2,3 - ›Запуск модуля CSS freecodecamp.com

День 2, модуль 1–4,5,6,7,8

День 3, модули 1–9 - ›Мой напряженный рабочий день, я знаю, что могу сделать только один

День 4, модуль 1–10,11,12,13,14,15,16

День 89. Завершите тестирование модуля

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

Эта статья была написана, чтобы помочь одному человеку, который сомневается в себе, думая, что он или она не может что-то сделать. Здесь нет таланта. Это тяжелая работа и навязчивая идея заставить себя стать лучше. Навыки веб-разработки - это что-то новое, и я берусь за это, но я использую тот же подход к любой проблеме, с которой сталкиваюсь. Это может быть уборка в квартире, посещение спортзала, изучение чего-то нового. Я собираюсь написать сообщение о моем пути к написанию этого веб-приложения, о котором я упоминал выше. Я думаю, что это поможет кому-то в стремлении узнать что-то новое, но также поможет им преодолеть страх перед открытием новых областей. Одна из моих любимых цитат: «Как съесть слона? Ешьте слона по кусочкам », но я хотел бы добавить к этому, что вам нужно нарезать слона по частям, хранить его в холодильнике, вынимать по кусочку каждый день и есть до тех пор, пока он полностью не исчезнет. Я знаю, что в следующие 3 месяца дорога будет трудной, но это моя цель, которую я действительно хочу достичь, поэтому я собираюсь бросить свои ноги в огонь и потушить ее. В следующие 3 месяца я буду публиковать статьи с обновлениями по этой цели. Пожалуйста, свяжитесь со мной в этом путешествии.

Twitter: «@marcofigueroa»

Прекратите откладывать дела на потом и сделайте дело!

  • Присоединяйтесь к нашему каналу Slack
  • В 2014 году я работал в замечательной небольшой группе в большой компании. Команда состояла из рок-звезд, умных молодых исследователей и разработчиков, обладающих творческой свободой, которой команды всегда желали при работе в крупных компаниях, мы были ротвейлерами без поводков. В этих условиях мой карьерный рост стремительно рос, казалось, все, что мы создали, превратилось в золото. В то время моя работа заключалась в обратном инжиниринге вредоносных программ и отслеживании групп APT {APT 28, Deep Panda} при создании крутых проектов внутри команды. Я придумывал идею, писал предложение и передавал его команде. Он получит либо большой палец вверх, либо палец вниз. Затем мы начали планировать разработку проекта. Но вот тут и стало интересно, я бы передал разработку проекта нашей внутренней команде Dev Ops, чтобы начать создание идеи. Мы запускали проект, и я ничего не слышал от них около недели или двух, а затем они позволяли мне посмотреть черновую альфа-версию для направления. Я не знаю, заботились ли они о моем мнении или нет, но они показывали разработку команде, и то, что они считали крутым в том, что они разработали, было основой проекта. Я должен сказать, что почти все, что они разработали, было впечатляющим и гладким. В большинстве случаев у них это получалось правильно, но когда они не понимали этого, это было все равно, что вырывать зубы, чтобы заставить их изменить дизайн. После того, как первоначальный дизайн был готов, я работал с ними, чтобы довести проект до того состояния, в котором, как мы думали, он должен был развиваться. Это было тогда, когда я начал узнавать, как думают разработчики и как они будут решать сложные проблемы. Стереотип большинства разработчиков заключается в том, что им не хватает коммуникативных навыков, но это дерьмо, человек, общающийся с разработчиком, должен понимать, как общаться с разными личностями. Мне повезло, потому что вырастая в Нью-Йорке, вы можете научиться приливу и отливу в общении с людьми. Два разработчика, с которыми я работал, были действительно хорошими разработчиками, и как коммуникаторы (совет профессионала: при общении с разработчиками находите точки соприкосновения, нас объединяет спорт и игры), если вы дадите им проблему, они ее решат. вне, и самое лучшее в них - это уровень общения и объяснений, стоящих за переходом. Они будут вдаваться в мысли, стоящие за разработкой, и проблемы, которые им нужно будет решить. Затем мы обсуждали, как его улучшить, и доводили до завершения 90%, и этого было достаточно для завершения проекта. Но что я заметил, так это то, что при достижении 50% проекта я терял мощность и дизайн проекта. Мне стало ясно, что я веду себя слишком дотошно, и они начнут раздражаться на мои просьбы. Это было началом моей мысли, что мне нужно научиться кодировать на JavaScript и фреймворках, которые они используют, чтобы я мог делать это сам.