Знакомьтесь, это Стас. Он закончил юридический факультет, но работает менеджером по продажам. На работе неинтересно, начальство ставит нереальные планы, зарплата не устраивает. Вечно приходится выбирать то, что по карману, а не то, что хочется. Но Стасу надо платить ипотеку, содержать семью, поэтому он терпит.
Однажды друг рассказал Стасу, что можно поменять профессию и выучиться на программиста. Дескать, будешь сидеть за компьютером, верстать сайты и получать в три раза больше. Вот смотри, говорит, и открывает сайт вакансий:
Другу просто рассуждать, он ещё в универе постоянно сидел за компьютером. А у Стаса с математикой было не очень. Он думает, что программирование ему не потянуть.
На самом деле друг Стаса прав. Программистом можно стать за полгода и учиться без отрыва от работы. Неважно, какое образование получил и кем работал до этого. Главное — уделять учёбе полтора-два часа в день.
В статье программисты-самоучки делятся тем, как они пришли в профессию. Среди них есть бармены, художники, филологи, парикмахеры, но ни одного технаря. Команда образовательного сервиса Яндекс.Практикум рассказывает, как за полгода сделать портфолио с проектами и получить билет в профессию.
«Какой из меня программист, я вообще гуманитарий»
Существует мнение, что для программирования нужен технарский склад ума и специальное образование. На самом деле это миф. Он идёт со времён, когда программистов было мало, а программированию можно было научиться только в университете.
Сейчас всё иначе. Многие люди меняют свою жизнь, в 25, 30 и 40 лет становясь программистами. Большинство из них никогда не увлекались математикой, считали себя гуманитариями и работали экономистами, парикмахерами и даже барменами.
Линда Риан, фронтенд-разработчик в Skyeer, в прошлом — парикмахер:
Мне 25 лет, и я уже пять лет занимаюсь разработкой. До этого я три года работала в сфере красоты. Сначала — парикмахером, потом — ассистенткой у известного стилиста и визажистом в известной косметической компании. Поначалу работа была интересной, но требовала больших навыков общения, на тот момент у меня их не было. Поэтому работа стала изматывать.
Однажды я поняла, что хватит, и ушла в никуда. Мой друг, разработчик на Python, предложил попробовать себя в вёрстке сайтов. Он показал пару ресурсов, видео — и мне стало интересно. Больше всего привлекало то, что можно быстро увидеть результат: пишешь пару строчек в файле, и на экране что-то меняется. Казалось, это магия.
В течение пары месяцев я штудировала онлайн-справочники по HTML и CSS, смотрела видео, проходила онлайн-курсы, пробовала верстать бесплатные макеты.
В какой-то момент разместила резюме на HeadHunter. Через месяц получила свою первую работу в этой сфере: верстала формы для отчётов во внутреннем продукте компании. Потом повезло перейти в классную команду. На собеседование я пришла с почти нулевыми навыками: могла что-то сверстать, настроить плагин, но не более. Меня взяли.
На собеседование я пришла с почти нулевыми навыками. Меня взяли
Поначалу я была самым неопытным разработчиком среди ребят, но мне хотелось им соответствовать. Поэтому я прокачивала свои навыки, а ребята здорово мне помогали: отвечали на вопросы и давали конструктивную критику.
Сейчас я работаю над фронтендом GIS-платформы для дистанционного мониторинга земли. Эта технология используется в строительстве и земляных работах.
Александр Басов, разработчик в Яндекс.Практикуме:
После школы пошёл учиться на мировую экономику. Тогда ещё не понимал, чего хочу и зачем мне это. Вылетел из института, пошёл работать, постепенно стал системным администратором в «Сургутнефтегазе». Особых знаний не было, всё делал по наитию.
Во время работы понял, что многие процессы построены неоптимально, их можно автоматизировать. Но программировать я не умел. Начал с онлайн-курсов, вебинаров, потом поступил на третий курс универа. Сейчас работаю разработчиком в Яндексе.
Я считаю, что технический склад ума для программирования не нужен. Важно постоянство и желание. Если долго и стабильно заниматься программированием, всё получится. Конечно, будут трудности и тупики, но в обучении это нормально. Каждый с этим сталкивается.
Екатерина Груздова, аналитик данных в Tele2:
Я бакалавр экологии и магистр градостроительства. Казалось бы, это гуманитарная специальность. Но в анализе городской территории, сталкиваешься с большим объёмом данных. Чтобы быстрее их обрабатывать, я начала изучать программирование. Прошла курс по Python и поняла, что мне нравится программировать. Когда пишешь верный код и видишь, как он работает, чувствуешь силу.
Я слабо верю, что люди делятся на гуманитариев и технарей. И что одни могут программировать, а другие — нет. Граница размыта. Знаю много ребят с физмата, которые на досуге пишут рассказы или музыку.
Егор Проскуряков, фронтенд-разработчик, в прошлом — физик-теоретик:
Я был научным сотрудником, по образованию физик-теоретик. Занимался исследованиями в области квантовой и ядерной физики. В какой-то момент мне наскучило научное сообщество, хотел уйти в новую область, где много движения и развития. Так и ушёл в IT.
Сначала прошёл курсы по Python, год проработал бекэнд-разработчиком. Параллельно с основной работой стал изучать фронтенд и разрабатывать интерфейсы, сейчас занимаюсь только этим.
«Нужно высшее образование и долго учиться, а у меня времени нет»
Программиста выбирают не по образованию, а по навыкам. Компании так и пишут: нужен программист для работы на таком-то языке или для создания такой-то программы. Поэтому в вакансиях нет требований по образованию:
Это вакансия в один известный онлайн-магазин:
Высшее образование для программиста важно, чтобы систематизировать информацию, правильно задавать вопросы и ставить задачи. Но эти навыки есть у всех, кто учился в университете: социологов, экономистов, биологов. Поэтому любое высшее образование — половина навыков для программирования.
Любое высшее образование — половина навыков для программирования
Другую половину навыков, специальные знания по программированию, можно получить:
— на очных курсах;
— онлайн-курсах;
— самостоятельно по книжкам.
Оптимальный путь для работающего человека — онлайн-курсы. На них можно учиться параллельно с основной работой. В Яндекс.Практикуме мы говорим студентам, что на обучение придётся тратить полтора-два часа в день, примерно десять часов в неделю. При такой нагрузке за шесть-восемь месяцев можно получить билет в профессию: стать полноценным младшим разработчиком и устроиться на работу.
Иван Яшин, разработчик в Qortex:
У меня нет высшего образования в программировании, я самоучка. Началось всё с того, что я любил играть в Майнкрафт. В этой игре я написал свою первую программу, что-то вроде мини-игры. Это заметил мой друг-программист и две недели обучал меня программированию. Я получил «прожиточный минимум» программиста.
Первую работу нашёл, когда друг искал напарника. Следующую работу — по вакансии на HeadHunter. Моих знаний было недостаточно, но работодателю понравилось, что я очень хотел работать. Для программиста важнее личные качества: упорство, желание работать и учиться. Опыт работы приходит сам собой, а человека изменить сложно.
Моих знаний было недостаточно, но работодателю понравилось, что я очень хотел работать
Высшее образование программиста даёт знания для всех языков программирования. Но в целом диплом для работы уже не нужен. Хотя само высшее образование важно, чтобы систематизировать информацию, разбивать сложные задачи на простые.
Ингрид, фронтенд-разработчица:
Программирование — вовсе не про то, что для первой строчки кода нужно десять лет читать учебники и медитировать в тибетской пустыне. Ты просто постоянно учишься: появляются новые технологии, стандарты. Самой интересно развиваться и писать код получше. Думаю, в любой профессии так.
Сергей Парфёнов, автор курсов в Яндексе, в прошлом — бармен:
С детства увлекался компьютерами, пробовал программировать на бейсике, но потом забросил это. Интерес вновь возник три года назад. Я был успешным барменом, несколько лет работал в баре «Стрелка»: коктейли, вечеринки, новые знакомые — было весело.
Однажды понял, что хочу разобраться, как работает интернет, и сделать сайт для друга. Пошёл на курсы по вёрстке, а после них всем рассказывал, что хочу уйти из бара и стать фронтенд-разработчиком. Но все предложения не подходили по деньгам.
Как-то за стойкой познакомился с человеком, который организовал курсы по программированию. Мы разговорились, он предложил стать ассистентом преподавателя на неполный рабочий день. Там не платили, но было интересно: помогал ребятам, получал опыт, знакомился с людьми.
Появилась уверенность в своих силах: решил завязать с баром и устроиться программистом в офис. По рекомендации знакомого меня пригласили на собеседование в стартап. Руководитель спросил, есть ли у меня опыт. Я сказал, что очень маленький. Но меня пригласили.
С понедельника по пятницу я работал в офисе, в пятницу уезжал пораньше и две ночи работал в баре. Стало тяжело, ушёл из бара.
С понедельника по пятницу я работал в офисе, в пятницу уезжал пораньше и две ночи работал в баре
Через несколько недель стартап закрылся, я остался без работы. Расстроился, но решил действовать: выложил резюме, меня пригласили в sravni.ru. Ужасно нервничал перед собеседованием, но прошёл без проблем, стал младшим фронтенд-разработчиком.
За год многому научился, ребята из команды стали мне наставниками. Потом на удалёнке писал курсы по вёрстке для Яндекса. А теперь полноценно работаю здесь.
Программировать — это как готовить по рецепту
На первый взгляд кажется, что в программировании нужно выдавать решения из головы. Вот тебе говорят: «Сделай сайт». Садишься, из головы берёшь теги, операторы и пишешь. На самом деле это не совсем так.
Программировать — это как готовить по рецепту. Кажется, что приготовить стейк сложно. Но на деле это несколько простых операций. Для начала надо изучить простое: как включить плиту, открывать холодильник, покупать мясо, резать ножом. Эти навыки пригодятся в приготовлении всех блюд. Сложная задача по приготовлению стейка делится на простые: взять мясо, помыть его, смазать маслом, положить на сковородку.
В программировании тоже самое. Программисту нужно знать азы языка программирования: логику, основные операторы и переменные. Например, фронтенд-разработчик сначала изучает HTML и CSS, это основа. Изучить их можно за неделю и сразу верстать сайты. Программист пишет строчки кода и в ту же минуту на экране видит результат:
В Яндекс.Практикуме студенты постепенно разбираются, как работают операторы и теги, изучают теорию в тренажёре.
После тренажёра начинаются самостоятельные задания. Студенты создают страницы по макету. Вот одно из таких заданий:
На первый взгляд, это сложная задача, но её можно разделить на простые:
— вставить картинку нужной ширины;
— поставить подзаголовки;
— разбить текст на две колонки;
— обтравить изображение кругом;
— вставить видео.
Всё это студент уже изучил в тренажёре. А если забыл — всегда может вернуться или попросить помощи у поддержки.
Во время вёрстки страниц студент не остаётся один на один с заданием. Он постоянно получает обратную связь от других разработчиков. Они показывают, где ошибки в коде и как сделать задание более оптимально.
Проекты, которые делает студент за время обучения, он может положить в портфолио. К окончанию курса он идёт устраиваться на работу с пятью готовыми и сложными страницами.
Нет цели знать всё и сразу
В программировании нет цели запомнить всё и писать код с нуля. Программисты знают логику, базовые решения, но всегда бывают нестандартные задачи. Чтобы их решить, нужно задавать вопросы, спрашивать совета у других программистов и даже брать готовые решения.
Бывает, приходится просить помощи даже у Google или Яндекса. В сети множество сайтов, где программисты описывают шаблонные решения, дают куски коды и обсуждают их. К примеру, нужно узнать, как получить случайный элемент массива. Вот есть решение:
Такой подход не делает программиста непрофессионалом. Часто программисты знают решения и могут написать код сами, но не хотят тратить время. Лучше посидеть над другой, интересной задачей:
Иван Яшин, разработчик в Qortex:
Если я не знаю, как решить задачу, иду в Google или Яндекс. В интернете множество сайтов для программистов с готовыми решениями. Я беру наиболее подходящий для меня вариант решения задачи и копирую его в свой код. Иногда приходится позаботиться о том, чтобы он «прижился», но в целом я просто копирую и вставляю.
Разработчики так делают даже когда знают, как самим написать код. Просто экономят время.
Александр Басов, разработчик в Яндексе.Практикуме:
Всего знать в программировании нельзя. Часто сталкиваешься с внезапными сложностями. Вроде делаешь всё правильно, а получаешь непонятную ошибку. Или столкнулся с задачей, к которой не знаешь, как подступиться. Надо уметь находить источник этих бед, иногда с помощью Google или вопросов к коллегам.
Как получить билет в профессию
Яндекс.Практикум — образовательный сервис с разными курсами, на которых можно обучиться программированию с нуля. Курсы подходят для людей любого возраста, образования и профессии.
Сейчас открыты три профессии:
— Фронтенд-разработчик. Верстает сайты и разрабатывает интерфейсы.
— Веб-разработчик. Делает то же самое, что фронтенд-разработчик, но может создавать более сложные сайты с базами данных. Например, интернет-магазины.
— Аналитик данных. Анализирует большие объёмы информации и делает по ним прогнозы.
Курс состоит из обучения в тренажёре и погружения в рабочую среду. Во время обучения студент делает несколько проектов, которые может положить в портфолио. В конце обучения разрабатывает индивидуальный проект, он становится сертифицированным экзаменом. После удачного окончания курса студент получает сертификат от Яндекса и может работать на позиции младшего разработчика.
Необязательно сразу бросать всё и кидаться в обучение. В Яндекс.Практикуме мы даём двадцать бесплатных часов занятий. За это время студент изучает всю теорию по HTML и CSS — это основы вёрстки. По сути, после этого студент может сверстать простенький сайт. Бесплатная часть помогает оценить, насколько удобно проходить курс и нравится ли сама профессия.