Как из медиа перейти в разработку

в 11:37, , рубрики: войти в IT, интенсивы, Карьера в IT-индустрии, курсы программирования, образование, Программирование, разработка приложений, Учебный процесс в IT

image
emile-perron/Unsplash

Я — опытный журналист, редактор и начинающая разработчица (JS, node). Если бы мне девять месяцев назад сказали, что я буду работать техредом и деврелом в российской IT-компании, и с головой окунусь в разработку ПО вместе с несколькими сотнями сильнейших разработчиков, я бы не поверила.

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

Почему я хотела сменить профессию

Осенью 2019 года мою редакцию внезапно распустили, и передо мной открылся горизонт возможностей.

Дизайна и маркетинга в моей жизни уже было слишком много. За 20 лет своей карьеры я писала про печатные и издательские технологии в ИД «КомпьютерПресс», работала в лучшем когда-то ИД Independent Media, где делала бренд-медиа для крупных брендов и самый крутой журнал о йоге, выпускала академический бюллетень в Вышке, работала на модных медийных стартапах, успела повариться в SUP-Media и руководила сильными редакциями.

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

Мне хотелось другого:

  • ремесла без привязки к месту, которое может всегда приносить доход. Языки программирования в отличие от русского — универсальны.
  • перспективной сферы. Я вижу гигантский потенциал в IT и разработке.
  • возможности остаться наедине со своими мыслями, а не только командной работы. У программиста как и у писателя такая возможность есть, и это делает рабочий процесс ещё привлекательнее.
  • новой среды общения. Мне хотелось больше общаться с единомышленниками. Я люблю киберпанк и соларпанк, играть в компьютерные и настольные игры, но среди медийщиков и дизайнеров немного таких же как я любительниц посмеяться над программистским юмором или заработать несколько сотен очков в карму на reddit.
  • нового хобби. Я была уверена, что благодаря своему опыту я всегда смогу реализоваться в новой сфере как технический редактор, а разработку на первых порах оставить как хобби и постепенно прокачиваться в IT со всех сторон.
  • увеличения ресурсов. Я не хотела терять в доходе при переходе в новую сферу, а если и терять — то ненадолго. Но больше всего я хотела бесконечных перспектив в развитии и уровне дохода.

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

Средняя зарплата таких специалистов на московском рынке одинакова — примерно 80 тысяч рублей. Но джун входит на 80 тысяч рублей практически с нуля, а редактор получает столько же после журфака и нескольких лет опыта работы.

Причём для обычного, не технического и не UX-редактора, если он не руководит процессами и не стремится к этому, такая зарплата может стать пожизненным потолком, а у джуна-программиста с этого уровня дохода карьера только начинается. //

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

Как не надо делать

Для погружения в IT я выбрала прыжок с разбегу — интенсивные дорогие курсы (200к+ за 12 недель). Не стоит так делать, если вы новичок в программировании. Интенсивные курсы не подходят для тех, кто с нуля. Не верьте, если вам говорят обратное менеджеры курсов. На дорогих курсах сегодня не учат лучшие программисты. Такой ценовой уровень — просто разогрев рынка.

А как стоит делать, давайте рассмотрим.

Как выбирать язык и направление

image
goran-ivos/Unsplash

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

С каждой задачей вы заново будете падать в пропасть незнания и непонимания. Это нормальное состояние разработчика — чего-то не знать, к нему нужно просто привыкнуть. Спокойно продолжайте загугливать всё то, что у вас вызывает вопросы.

Смотрите видео про разработку. Очевидно, что разработка — это не только кодинг. Смотрите и слушайте то, о чём и как рассказывают блогеры-разработчики. Это поможет вам погрузиться в среду и почувствовать подводные камни профессии.

// ВИДЕОФОРМАТ. Одним из первых видосов про профессию русского программиста стал для меня сатирический спич программиста С0ера. Он зародил во мне сомнения, что программисты хотят, чтобы их стало на Земле больше. Несмотря на то, что из каждого утюга говорится об остром общемировом дефиците двух миллионов разработчиков прямо сейчас.

Фильм Дудя про Кремниевую долину подстегнул наших IT-блогеров сделать ответный ролик про русских программистов: минский блогер Лекс (IT-Борода) собрал в одном видео всех активных русскоговорящих ютьюберов, которые рассказывают о разработке или учат своих подписчиков кодить.

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

Слушайте подкасты. Мой личный топ-5 на сегодняшний день (ссылки на ApplePodcasts):

Ну и вот крутейшая подборка с IT-подкастами и подробными описаниями, где мой топ есть в том числе с ссылками на разные платформы.

Читайте книги про программирование. Рекомендую начать с книг Роберта Мартина, писателя и разработчика, автора принципа SOLID. Они помогут получить представление об архитектуре, культуре и философии программирования. Без теоретических знаний не проходит не одно собеседование. Знание теории — закон вхождения в профессию и залог роста в ней.

Читайте тексты на правильных ресурсах. Если вы уже читаете этот текст на этом ресурсе, значит вы в процессе вхождения в разработку. А также Tproger, vc.ru, журнал «Код» и бесконечные просторы Medium вам в помощь. Площадка Medium мне помогает в решении конкретных задач, благодаря зарубежным блогерам-программистам, которые любят делать толковые туториалы с кодом.

Ещё мне как js-разработчице помогают ресурсы MDN, блог StackOverflow в том числе, learnJavaScript, Metanit, Telegram и YouTube разработчика Владилена Минина.

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

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

Найдите себе репетитора. Ментор, наставник, репетитор, тренер — его могут называть как угодно. Живой человек поможет с ответами на самые бестолковые вопросы, и вам не будет стыдно их задавать, потому что это его работа.

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

Как выбирать ментора

image
adi-goldstein/Unsplash

Ищите своего ментора. Подходящего вам. Если вы не понимаете, что вам объясняют, с вами всё в порядке, просто этот человек вам не подходит, и его мышление вам не близко. Да, поиск своего ментора — это задача, которую возможно получится решить не с первого раза.

Бегите от тех кто говорит что у вас гуманитарные мозги, и разработка не для вас. Перед вами разработчик, который не умеет объяснять, без педагогических способностей и с неустойчивым ЧСВ. Вы учитесь, и на этом этапе вы диктуете правила — кого и как слушать.

Бегите от тех, кто называет Apple техникой для кухарок — перед вами низкоуровневый в плохом смысле олдфаг, и его учителями были сексисты, любившие играть в холивар apple/microsoft. Важно понять, для каких целей вам нужна техника и пользоваться ею в соответствии с целью.

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

Их всегда какое-то количество вариантов, потому что программирование — это сложный мыслительный процесс, а не воспроизведение математических формул (про куски готового кода тут мы говорить не будем). Обязательно пользуйтесь разными источниками и форматами для прокачки.

Как прокачиваться самостоятельно

image
timothy-dykes/Unsplash

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

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

Публикуйте свои решения с codewars себе на github. И да, решайте задачи на codewars. И да, заведите аккаунт на github.

Купите второй монитор. Это удобно.

Коммитьте звёздные проекты на github. Вам зачтётся (но это не точно).

Разговаривайте с уткой. Не игнорируйте метод утёнка, чтобы решить задачу. Он и правда помогает.

Боритесь с соблазном заплатить много денег за обучение. Всё есть в интернете, переплачивать имеет смысл лично вашему репетитору/ментору/наставнику, если его объяснения хорошо вам заходят.

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

Как выбирать курсы

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

Это не такая уж редкая болезнь в IT. С ней, как и с прочей неуверенностью и помогут справиться интенсивные (и не очень) курсы. За время подготовки к курсам вы уже наверняка сможете накопить и на обучение, и на подушку безопасности, которая поможет вам, пока вы учитесь и ищете работу.

С тем бэкграундом, о котором я рассказала, на интенсивных курсах для новичков вы будете Йодой. Но если вы плохо объясняете или не любите это делать, вас бесят те, кто не знает того, что уже знаете вы, то тогда интенсивные курсы вам вряд ли зайдут. Потому что в парном и групповом программировании вы будете чересчур токсичным персонажем.

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

На курсах кстати вы можете понять, какой вы командный игрок, и насколько хороши ваши soft skills. Это очень важное знание, потому что кодинг — лишь небольшая часть разработки и возможно для кого-то самая приятная. Львиная доля процессов в IT построена на взаимодействии между людьми, умении договариваться и работать в команде.

При выборе курсов смотрите на:

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

Учебный материал. Чтобы вы не оказались перед задачами пятилетней давности, написанными на плохом русском языке и с низким уровнем визуализации, попросите ознакомиться с учебным материалом. Он должен вам понравиться.

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

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

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

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

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

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

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

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

Организационный процесс. Очень круто, если на курсах создается реальная атмосфера рабочего дня программиста в хорошей компании: утро начинается со стендапа, есть парное и групповое программирование, ревью (нормальное), agile-подход. Это вам поможет максимально быстро влиться в рабочий процесс на новом рабочем месте.

Подведу итог по первым шагам по уходу в разработку:

  1. Если вы решили перейти в разработку и программирование из любой другой области, учтите, вам придётся очень многое осваивать самостоятельно.
  2. Если вы решили пойти учиться, знайте, что обычного запоминания материала как в школе от обучения ждать не стоит. Даже если заплатите очень много.
  3. Программирование — это увлекательный процесс. Если вам однажды понравилось это делать, значит это ваше. Да-да, понравилось страдать и искать решение, а потом найти его и увидеть, как всё заработало. Не слушайте тех, кто говорит обратное. Так говорят те, кто боится, что джуны их кикнут с насиженных костылей безысходности и фреймворков стабильности.
  4. Разработка — это сфера, которая затягивает глубоко и бесповоротно. Но на первых порах без ментора не обойтись. Ищите хорошего наставника, и не ведитесь на обещания курсов сделать из вас крутого разработчика за несколько месяцев.
  5. Учитесь справляться с синдромом самозванца и с тем, что вы мало знаете. Это ощущение будет с вами всегда, когда вы будете программировать.
  6. Каждый день старайтесь узнавать что-то новое и пишите код. Да пребудет с вами сила.

Автор: Svetafo

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js