Если ваш знакомый новичок в IT решил бросить занятия, а пламенное «джаст ду ит» не помогло — просто покажите ему эту статью.
Когда вы только начинаете изучать программирование, море кажется по колено — каждая освоенная тема, запущенный «Hello, world», исправленный баг словно бы приближают заветный оффер в IT и все причитающиеся плюшки 🙂 А потом материал резко усложняется и наступает совсем другая реальность: код не компилируется, ошибки лезут одна за другой, а тут ещё времени совсем нет — учёба, работа, семья… Невольно лезут мысли: «Да ну этот код, лучше выберу что попроще».
Хорошая новость в том, что подобные чувства одолевают каждого, кто учится кодингу, — от новичков до профи. В этой статье мы решили пообщаться с десятком опытных айтишников и узнать у них, что помогло им не сойти с дистанции во время обучения. Получилось семь лайфхаков, которые будут ценны как для начинающих, так и продолжающих айтишников.
А теперь — слово экспертам 🙂
Поставьте чёткую цель
Юлия Бородина
Руководитель направления «Игры» в Skillbox. Бывший менеджер игры Lineage 2.
Главный фактор, который будет мотивировать вас двигаться вперёд, — это чётко поставленная цель. Подумайте, что для вас главное:
- устроиться через год на работу в компанию мечты;
- создать аналог Tinder;
- освоить нейросети, чтобы ускорить свою работу на 15% и получить повышение.
Это как морковка, всегда висящая перед глазами, только вот её можно съесть.
А теперь к лайфхакам.
Найдите личный интерес в профессии
Лев Прокопьев
Независимый исследователь безопасности и тестировщик на проникновение.
Работал в «Солар Секьюрити», «Лаборатории Касперского». Специализируется на анализе защищённости внешнего и внутреннего периметра, разработке ПО для эксплуатации уязвимостей, исследует безопасность беспроводных сетей и защиту от приёмов социальной инженерии. Умеет в Bash, Python, PowerShell, Visual Basic, C и даже JavaScript.
Я не считаю себя человеком с чёрным поясом по программированию. Пока. Но мотивацию помогает сохранять чёткий ответ на простой вопрос: зачем я этим занимаюсь? Чего именно я хочу достичь и какие возможности открываются передо мной благодаря программированию? Если вы идёте в программирование только за деньгами, вы ходите по тонкому льду. Деньги в этом будут, но не всегда и не для всех.
Сегодня, когда люди не могут оторваться от гаджетов и ищут очередную дозу дофамина, когда корпорации заставляют платить за пустышки, единственный способ вырваться из этого потока — стать сильнее машины, научиться её контролировать. Программирование, особенно низкоуровневое, даёт вам контроль над железом. Я всегда ставил конкретные цели перед собой: научиться обходить антивирусы, фильтрацию сетевого трафика, проникать в системы.
Во время обучения меня вдохновляли статьи и биографии настоящих легенд: Денниса Ритчи, Гвидо ван Россума. Эти люди создали языки, которые позволяют говорить с машинами почти на человеческом языке. У меня всегда был интерес к наступательным возможностям языков, к созданию инструментов, которые пробивают защиту. Помогали книги из серии Black Hat, такие как Black Hat Python, «Хакинг на C++», Black Hat Go, а также более формальные руководства, вроде «Язык программирования С» от Денниса Ритчи или CLR via C# от Джеффри Рихтера.
Если вам нравится веб-разработка или веб-хайкинг и вы действительно хотите достичь результатов, подход простой: берите любую книгу по разработке на выбранном веб-фреймворке и начинайте с малого. Разработайте персональный блог, а затем переходите к созданию небольшого интернет-магазина. Идите дальше — создайте административную панель, позволяющую запускать сервисы и исполнять команды на сервере, где развёрнуто ваше приложение.
Не забудьте о JavaScript. Разберите его по кусочкам, используйте оглавления книг вроде Black Hat Python, чтобы продумать собственный план практического обучения для эксплуатации браузеров. Настоящий мастер веб-хайкинга знает, что важно не просто узнать, как работает сайт, а сделать так, чтобы сайт работал на вас.
Если вы решились погрузиться в мир программирования, помните: уважайте чужой труд. Оставайтесь на стороне добра и справедливости. Технологии дают силу, но ваша свобода стоит дороже любого успеха. Ваша сила — это ваш щит, ваша воля — это ваш меч. Человека, чью волю можно подкупить или искусить, не спасёт ни один щит. Используйте свои знания и навыки для защиты и улучшения мира, а не для разрушения. Станьте тем, кто знает, как работают системы, и защищает их от угроз, а не тем, кто сам становится угрозой. Это не только про личную выгоду, но и про честь и уважение к себе и своему делу.
Учитесь на реальных проектах
Валерий Жила
Software engineer, разрабатывает системы управления городской инфраструктурой для мегаполисов по всему миру. Основная деятельность — бэкенд, database engineering.
По моему мнению, самый лучший путь — браться за простые проекты (и не пытаться сделать что-то оригинальное, чего нет на рынке) и их развивать, постепенно усложняя и добавляя функции.
Лучше научиться правдами и неправдами, криво и косо достигать результата, а потом уже разбираться, как делать правильно. Иначе слишком легко утонуть в книжках, курсах, фреймворках и инструментах.
Быстрая обратная связь, постепенное повышение сложности и постоянная практика — и с мотивацией проблем не будет. Ещё в идеале найти ментора, работающего в отрасли и на позиции, где бы вы хотели оказаться, и попросить совета, ревью, идею для проекта и периодически созваниваться для синхронизации.
Глеб Кокуров
Ведущий 1С-программист в компании «IT-экспертиза». Владеет системами «1С», 1С: EDT, есть опыт настройки CI/CD и Jenkins.
Я убеждён, что программирование может сделать жизнь каждого человека лучше. Потому что каждый из нас ежедневно сталкивается с рутиной, которую вполне можно переложить на машину. И в рамках обучения было бы очень полезно написать такую программу для себя. Это может быть программа для учёта личных финансов или планировщик задач — что-то пусть и небольшое, но полезное лично вам.
Очень важно при этом, чтобы вы чётко понимали, какую проблему и как именно программа будет решать. Тогда вы сможете постепенно, шаг за шагом работать над ней. Поскольку в таком случае вы сами ставите себе задачи, вы сами будете заинтересованы в том, чтобы их решить. Более того, вам захочется решать задачи «красиво». Это заставит вас искать более оптимальные методы, лучшие решения, искать новые варианты — а всё это подтолкнёт к изучению возможностей, которых вы ранее не касались. И таким образом вы, решая собственные задачи, будете совершенствовать свои навыки.
Главное — найти свою задачу.
Галина Артемьева
Инженер во ФГУП «РФЯЦ — ВНИИТФ имени академика Е. И. Забабахина», эксперт Skillbox по кибербезопасности Linux (администрированию ОС Linux).
Когда я обучалась программированию, то одним из самых важных было сразу пробовать, тестировать то, что изучил. Так как это программирование, то всё начинается с маленькой программки «Hello World!». Сразу надо открыть текстовый редактор, написать тест, скомпилировать его (если нужно) и запустить. Это большой восторг, когда программа делает то, что ты задумал. Дальше — больше. Каждый новый изученный элемент нужно проверить, написать новую или улучшить старую программу. Тогда это будет затягивать — как игра.
Закончить и протестировать параграф — как пройти уровень. Написать итоговую проверочную программу — как сразиться с боссом.
Ешьте слона по кусочкам
Анастасия Егорова
Фронтенд-разработчик.
Ментор, участник конференций, разработчик учебных программ. Автор ютуб-канала CosyFrontend.
Два моих секрета поддержания высокого уровня мотивации — это метод маленьких задач и система вознаграждений.
В те дни, когда мне больше всего хочется посмотреть сериальчик и заказать роллы вместо выполнения рабочих задач, я составляю план дел, которые непременно нужно выполнить сегодня, и разбиваю их на микрозадачи. «Микро» — это задачи буквально на 5–15 минут. Никаких «создать сайт» или «убраться в квартире». Нет, «сверстать два блока», «написать метод для получения данных с сервера» и «вывести название и изображение товара» — это три отдельные задачи.
За каждую из задач я обещаю себе поощрение в виде чашки кофе, 10 минут сериала или пончика с шоколадной начинкой. Поверьте, в такие дни, когда не хочется делать ничего полезного, пончик с шоколадной начинкой — это достойная награда за «написать метод для получения данных с сервера»!
Но фокус в том, что нередко задачи на пять минут перерастают в полноценные 40–60 минут работы. Написала метод — ну ладно, давайте уж расставлю эти данные на странице. Расставила данные — ок, сейчас ещё быстро доверстаю нижний блок и вот тогда уже точно пойду радовать себя сериалом.
В 75% случаев работа над небольшой задачкой перерастает в большую. В остальных 25% я делаю микрозадачу и понимаю, что всё, энергия закончилась. В этих случаях можно смело переходить к стадии вознаграждения — сделанные микрозадачи в любом случае лучше ситуации, когда в течение дня не сделано ничего. В любом случае вы прекрасны!
Лев Прокопьев
Независимый исследователь безопасности и тестировщик на проникновение.
Не задушите себя ожиданиями мгновенных результатов. Традиция уделять 1–2 часа в день практике быстро превратится в 5–6 часов, и вы даже не заметите, как погрузитесь глубже. Цените маленькие победы, перестаньте сравнивать себя с другими. Советуйтесь с экспертами, но не позволяйте им решать за вас. Работа со своими заблуждениями и сомнениями — это ваш путь. С каждым днём вы всё ближе к цели, особенно если не сидите без дела. Используйте нейросети для изучения чужого кода, задавайте сложные вопросы и разберитесь в ответах.
Сергей Брусник
Эксперт Skillbox по «1С-Битрикс» и PHP. Занимается разработкой и интеграцией новых сайтов на «Битриксе», а также технической поддержкой и доработкой различных ресурсов.
Инструменты: PHP, Bitrix API, HTML, XML, CSS, JS, Git.
Чтобы не растерять мотивацию при обучении, необходимо начинать с малого и не пытаться сразу охватить всё. Ставьте достижимые цели, ведь маленькие победы мотивируют развиваться дальше. Делите информацию на небольшие части и не распыляйтесь на разные задачи, сосредотачиваясь на одной за раз. При обучении на практике выберите проект, который будет интересен именно вам, — это будет дополнительным стимулом к изучению, а результат вдохновит на решение новых задач.
Также важно сохранять баланс между обучением и отдыхом, сменой деятельности. Это поможет избежать выгорания как в учёбе, так и на работе в дальнейшем.
Создайте правильное окружение
Валерий Линьков
Директор «Неправильной школы», эксперт Skillbox по компьютерным сетям и кибербезопасности. Автор телеграм-канала «Кудрявый микрофон».
Мне очень помогло окружение. Окружите себя предметами, которые вам нравятся. Повесьте плакат, купите крутую клавиатуру, хорошие наушники или составьте плейлист по душе. Сделайте так, чтобы вы ждали возвращения к учёбе и соприкасались с тем, что вам действительно нравится.
Ещё один совет — визуализируйте мечту. Кто-то хочет Audi RS Q8, кто-то — отдых на полгода в Турции, кто-то — загородный дом. Представьте свою мечту и визуализируйте. Есть такая методика «доска желаний», на доске вы крепите фото того, что для вас так желанно, или того, ради кого вы работаете.
У меня на столе всегда лежит фото жены и кота. Очень мотивирует не сдаваться!
Александр Аникин
Тимлид команды Android-разработки в ООО «Айти» (ex-Ecwid), эксперт на курсе «Профессия Android-разработчик» в Skillbox.
Вступите в группы и подпишитесь на каналы вашей группы обучения. Ленту листать несложно, много времени это не отнимает, и делать это можно в когда угодно. Так вы будете в курсе новых материалов, обсуждения проблем и вопросов (даже если сами ничего не будете писать). Это не только добавит вам новых знаний и понимания без особых вложений ресурсов, но и поможет втянуться к обучению, проще выходить на контакт с преподавателями и другими студентами — это важно.
То же самое касается и просто каналов по программированию. Найдите в «Телеграме» один, максимум два канала для начинающих и просто читайте посты. Много времени не отнимает, но приносит вам гораздо больше пользы, чем вы думаете. Даже если поначалу вы не понимаете большую часть постов или терминологии. Вливайтесь, и через месяц вы будете разбираться в теме и терминологии не хуже остальных. Как разработчик под Android могу порекомендовать канал Android Broadcast.
Преодолевайте страх
Андрей Ситник
Ведущий фронтенд-разработчик в Evil Martians. Разрабатывал российский Groupon, сайт «Брейнвошинга», atata.com и даже немного «Хабрахабр». Создал «Автопрефиксер», PostCSS, «Браузерслист», «Логакс» и Nano ID.
Я часто видел, что главный враг мотивации — страх у ученика.
Есть две вещи, которые пугают чаще всего:
1. Умение писать алгоритм по задачам — не какое-то естественное умение человека. Студент видит задачу, не знает, что делать, и пугается, что он или она какие-то не такие. Но в реальности всё нормально. Люди не сразу умеют ездить на велосипеде, например (но при этом практически все могут его освоить). Так же и с умением писать алгоритмы — нужно просто пробовать, пробовать (подавляя страх), и в какой-то момент «щёлкнет».
2. Студенты пугаются, что компьютерные системы огромные, что у них не получается их полностью представить. Думаешь про одну часть — забываешь про другое. Это пугает, и кажется, что ты не справляешься. Но хитрость в том, что не справляются все. Весь смысл программирования в том, что мы решаем задачи, которые не умещаются в мозгу одного человека. Которые слишком сложны. Я бы сказал, что очень многое в IT — про контроль сложности. Поэтому все, даже самые опытные разработчики, так же не могут держать всё в голове (но они обычно научились работать со своим страхом).
Работайте регулярно и дисциплинированно
Евгений Антонов
Тимлид, IT-консультант. Более 15 лет в IT-индустрии. Ведущий подкаста «Кода Кода» и автор телеграм-канала «Тимлид Очевидность».
Сохранять мотивацию — это хорошо, замечательно и сильно облегчает обучение. Я знаю десятки историй, когда люди начинали учиться программированию и хотели сменить профессию. Из этих десятков историй количество успешно доучившихся, устроившихся и приработавшихся — считаные единицы.
У них у всех была одна особенность. Они учились, ходили по собесам, тянули эту лямку год-два не на крыльях мотивации, а на гусеницах дисциплины. Когда у них был подъём мотивации, они летели вперёд. Когда был спад, они упёрто ползли, благодаря дисциплине и регулярным занятиям.
Я к тому, что дело это сложное, долгое и многим оно даётся очень нелегко. На одной мотивации тут не протянуть, на мой взгляд. А вот на регулярности и системности можно. Видел, как мои знакомые в 30 и в 40 с лишним лет успешно научались и устраивались фронтендерами и бэкендерами.
Тимур Гафиулин
Ведущий фронтенд-разработчик в Samokat.tech. Любит путешествия по России, Кавказ, хаски и вкусные пельмени.
Думаю, в основном мотивация сохраняется, если получается регулярно продвигаться в обучении. Для этого оно не должно быть слишком простым или слишком сложным. Чаще всего начинающие разработчики упираются именно во второй пункт. Задачи и теория становятся всё сложнее, и с ними всё сложнее справляться. Здесь я бы порекомендовал не бояться задавать вопросы опытным ребятам. Я регулярно встречаю ситуацию, когда студенты стесняются спрашивать, потому что хотят разобраться сами. По итогу они долго сидят над задачей, убивают мотивацию и бросают учёбу.
Не бойтесь спрашивать. Не бойтесь просить совета. Не бойтесь показывать, что вы чего-то не поняли. Вы же обучаетесь. Не понимать — совершенно нормально. Чем больше вы будете набирать опыта, тем лучше будете понимать, что происходит. А на старте каждая тема — как урок химии для первоклассника, и это нормально.