«Успешный программист не привязывается к языку. Он просто умеет программировать»
Герой Рабо­та В сред­нем по рын­ку

Давид Рога­нов, 22 года, Сара­тов

Фронтенд-разработчик, созда­ёт интер­фей­сы для Яндекс.Практикума

Фронтенд-разработчик в Сара­то­ве: 16 откры­тых вакан­сий

Выпуск­ник Сара­тов­ско­го наци­о­наль­но­го иссле­до­ва­тель­ско­го госу­дар­ствен­но­го уни­вер­си­те­та име­ни Н.Г. Чер­ны­шев­ско­го

Рабо­та­ет в офи­се, 5/2. Обыч­но начи­на­ет в 11:00, закан­чи­ва­ет в 19:00

В При­волж­ском феде­раль­ном окру­ге 392 вакан­сии

В Москве: 1110 вакан­сий 

Начал рабо­тать про­грам­ми­стом с 15 лет

Рабо­та­ет в Прак­ти­ку­ме с фев­ра­ля 2019 года 

Ср. зар­пла­та по вакан­си­ям 115 179 руб­лей 

Дан­ные: hh.ru

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

Сего­дня гово­рим с Дави­дом Рога­но­вым, фронтенд-разработчиком из Яндекс.Практикума. Будут вопро­сы о пер­вых шагах в про­грам­ми­ро­ва­нии, кон­кур­се «Яндекс.Блиц» и ошиб­ках начи­на­ю­щих про­грам­ми­стов.

Старт в ИТ

Я заин­те­ре­со­вал­ся про­грам­ми­ро­ва­ни­ем в 2010 году, когда учил­ся в шко­ле и полу­чил доступ к интер­не­ту — мне ста­ло инте­рес­но, как устро­е­ны соц­се­ти и как раз­ра­бо­тать соб­ствен­ную флеш-игру. Я изу­чил HTML, CSS, JavaScript и тео­рию сай­то­стро­е­ния. Далее был язык PHP, и после него я решил, что с таки­ми зна­ни­я­ми мож­но зара­ба­ты­вать. Поэто­му начи­ная со стар­шей шко­лы и до вто­ро­го кур­са уни­ве­ра я зани­мал­ся фри­лан­сом.

Боль­шин­ство моих заказ­чи­ков при­хо­ди­ли по реко­мен­да­ции: я брал одно­го кли­ен­та, делал рабо­ту, ста­рал­ся про­дол­жить сотруд­ни­че­ство и от него же полу­чить дру­гих заказ­чи­ков. Пер­во­го кли­ен­та нашёл через соци­аль­ные сети — это был житель США, кото­рый за 5000 руб­лей полу­чил сайт для пре­зен­та­ции экс­кур­сий по Гранд-Каньону. После ему же я сде­лал сайт-портфолио и соци­аль­ную сеть для фото­гра­фов — это был пер­вый опыт, после кото­ро­го нача­лись посто­ян­ные зака­зы.


Я на защи­те дипло­ма. До Яндекс.Блица не было мыс­лей о Яндек­се или дру­гой круп­ной ком­па­нии. Я уже нахо­дил­ся в ком­форт­ных усло­ви­ях и полу­чал удо­воль­ствие от рабо­ты.

Яндекс.Блиц

После фри­лан­са я устро­ил­ся в офис мест­но­го ИТ-стартапа и во вре­мя рабо­ты поучаст­во­вал в кон­кур­се Яндекс.Блиц. У меня полу­чи­лось: про­шёл отбор, попал на собе­се­до­ва­ние и полу­чил при­гла­ше­ние в коман­ду Яндекс.Практикума.

Яндекс.Блиц — это сорев­но­ва­ния для раз­ра­бот­чи­ков, где мож­но выиг­рать денеж­ный приз и пооб­щать­ся с рекру­те­ра­ми Яндек­са. Я узнал о кон­кур­се из соц­се­тей, запи­сал­ся и решил поучаст­во­вать. Блиц про­хо­дил две неде­ли в онлайн-режиме, был ква­ли­фи­ка­ци­он­ный и финаль­ный раунд, 12 алго­рит­ми­че­ских задач и 240 минут на каж­дый этап.

👉 Про­чи­тай­те задач­ки с Яндекс.Блица.

Я занял 15-е место и в декаб­ре 2018 года поехал в Моск­ву на цере­мо­нию награж­де­ния: мне выда­ли сер­ти­фи­кат фина­ли­ста и при­гла­си­ли на собе­се­до­ва­ние. Далее ново­год­ние празд­ни­ки, и после них я полу­чил пред­ло­же­ние — меня при­ня­ли в Яндекс.

Это и вся исто­рия: в фев­ра­ле я пакую чемо­да­ны, пере­би­ра­юсь в Моск­ву и начи­наю рабо­тать.


После цере­мо­нии награж­де­ния участ­ни­ки зада­ют орга­ни­за­то­рам вопро­сы по зада­чам Яндекс.Блица. Я стою спра­ва в чёр­ном сви­те­ре.

Испытательный срок

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

Было непро­сто, и я боял­ся уволь­не­ния. Но меня никто не торо­пил, не кри­ти­ко­вал за мед­ли­тель­ность и не упре­кал в том, что я чего-то не знаю. Я мог подой­ти к любо­му кол­ле­ге, пока­зать зада­чу и полу­чить подроб­ные реко­мен­да­ции по её выпол­не­нию — сна­ча­ла такая откры­тость насто­ра­жи­ва­ла, но сей­час я не пред­став­ляю, как мож­но по-другому.

Пере­лом­ный момент насту­пил бли­же к завер­ше­нию испы­та­тель­но­го сро­ка, когда нуж­но было пого­во­рить с руко­во­ди­те­лем. Я осто­рож­но спро­сил: «Про­хо­жу?». В ответ услы­шал «Ну, про­хо­ди!» — после это­го вол­не­ние ушло и насту­пи­ли рабо­чие буд­ни. Всё как сей­час.

Хочу побла­го­да­рить ребят из груп­пы адап­та­ции, кото­рые помо­га­ют нович­кам ком­форт­но обу­стро­ить­ся на рабо­чем месте. Они орга­ни­зо­ва­ли озна­ко­ми­тель­ную экс­кур­сию по глав­но­му офи­су Яндек­са и помог­ли про­ник­нуть­ся куль­ту­рой боль­шой кор­по­ра­ции. Если хоти­те понять мои ощу­ще­ния после экс­кур­сии — посмот­ри­те ролик и пред­ставь­те, что вжи­вую всё ещё ярче:

Критика от наставников

В чистом виде кри­ти­ка у раз­ра­бот­чи­ков встре­ча­ет­ся ред­ко. Вме­сто это­го есть код-ревью, где твою рабо­ту могут про­ком­мен­ти­ро­вать и отпра­вить на дора­бот­ку.

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

Глав­ное — не стес­нять­ся оши­бок и не боять­ся ока­зать­ся непра­вым. В про­грам­ми­ро­ва­нии полез­ны раз­ные мне­ния: когда ты гово­ришь с людь­ми и смот­ришь на раз­ные точ­ки зре­ния, в ито­ге может полу­чить­ся луч­ший про­дукт.

Рабочий график

Жёст­ко­го рабо­че­го гра­фи­ка в Прак­ти­ку­ме и во всём Яндек­се нет. Есть при­мер­ное вре­мя, когда боль­шин­ство людей рабо­та­ют и нахо­дят­ся на свя­зи — это где-то с 11–12 утра и до 19–21 вече­ра. Какой рабо­чий про­ме­жу­ток выбрать — каж­дая коман­да опре­де­ля­ет инди­ви­ду­аль­но.

У нас есть обя­за­тель­ная еже­днев­ная встре­ча в 12:30 по МСК. До и после жёст­ких рамок нет, и мож­но само­сто­я­тель­но пла­ни­ро­вать встре­чи, созво­ны и вре­мя на код.

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

Первый проект в Практикуме

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


При­мер сти­ли­зо­ван­ной таб­ли­цы из чет­вёр­то­го уро­ка кур­са «Ана­ли­тик дан­ных».

Свежий проект

Недав­но зани­мал­ся глос­са­ри­ем. Сей­час объ­яс­ню.

Каж­дый курс Прак­ти­ку­ма поде­лён на тео­рию и прак­ти­ку. В тео­ре­ти­че­ской части потен­ци­аль­но слож­ные тер­ми­ны оформ­ле­ны в виде всплы­ва­ю­щих под­ска­зок. Вот это и есть глос­са­рий.

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

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


При­мер всплы­ва­ю­щей под­сказ­ки из кур­са «Веб-разработчик».

Можно ли выбирать рабочие задачи?

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

Языки программирования

Боль­ше все­го исполь­зую JavaScript, для вёрст­ки необ­хо­дим HTML и CSS. Если при­хо­дит­ся решать зада­чи по бэкен­ду, то рабо­таю на Python.

В сво­бод­ное вре­мя ино­гда экс­пе­ри­мен­ти­рую с Java и пишу неко­то­рые ути­ли­ты на Swift.

Оборудование для работы

Я исполь­зую редак­тор кода WebStorm с невы­со­ки­ми систем­ны­ми тре­бо­ва­ни­я­ми, поэто­му мощ­ный ком­пью­тер не нужен.

Мож­но рабо­тать и с менее про­из­во­ди­тель­ной сре­дой раз­ра­бот­ки и кодить прак­ти­че­ски на любом ПК. Допол­ни­тель­но я рабо­таю со смарт­фо­ном, кото­рый помо­га­ет искать инфор­ма­цию и пере­пи­сы­вать­ся в мес­сен­дже­рах — я не люб­лю, когда про­стран­ство на экране зани­ма­ет что-то кро­ме кода. Но мож­но обой­тись и без смарт­фо­на.


Домаш­нее рабо­чее место

Источники и развитие

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

Для само­раз­ви­тия сле­жу за телеграмм-каналами For Web и Веб-стандарты. Ещё нра­вит­ся посе­щать кон­фе­рен­ции для раз­ра­бот­чи­ков или смот­реть их в запи­си на юту­бе. Напри­мер, осе­нью 2019 года я был в Сара­то­ве на бес­плат­ной ИТ-конференции Юкон.

Ещё посе­щаю HolyJS — это меж­ду­на­род­ная кон­фе­рен­ция для JavaScript-разработчиков, куда Яндекс отправ­ля­ет сотруд­ни­ков. Кон­фе­рен­ция плат­ная, но биле­ты поку­па­ет Яндекс, и это при­ят­ный бонус рабо­ты в круп­ных ком­па­ни­ях. Что такое HolyJS и поче­му это полез­но JavaScript-разработчикам:

👉 Посмот­ри­те ютуб-каналы Юкон и HolyJS.

О спорах и разногласиях с дизайнерами

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

Дизайн-система

Ино­гда дизай­не­ры могут отвле­кать фрон­тен­де­ров от рабо­ты какими-то незна­чи­тель­ны­ми зада­ча­ми. Подоб­ная про­бле­ма реша­ет­ся через дизайн-систему — это когда участ­ни­ки созда­ют спе­ци­аль­ные инстру­мен­ты и пра­ви­ла, кото­рые помо­га­ют эффек­тив­но рабо­тать, не мешая друг дру­гу. В Яндекс.Практикуме этот про­цесс реа­ли­зо­ван через пла­ги­ны сер­ви­са Figma.

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

Без дизайн-системы этот про­цесс выгля­дит при­мер­но так: дизай­нер рису­ет новую кноп­ку → отправ­ля­ет раз­ра­бот­чи­ку и добав­ля­ет ком­мен­та­рии про­дук­то­во­го мене­дже­ра → раз­ра­бот­чик при­ни­ма­ет зада­ние и вруч­ную редак­ти­ру­ет код на каж­дой стра­ни­це сай­та. Это дол­го и тре­бу­ет вни­ма­ния раз­ра­бот­чи­ков.

С дизайн-системой про­цесс упро­ща­ет­ся: дизай­нер рису­ет новую кноп­ку → загру­жа­ет дан­ные в сер­вис Figma → сохра­ня­ет про­ект → изме­не­ния авто­ма­ти­че­ски транс­фор­ми­ру­ют­ся в код и обнов­ля­ют­ся на каж­дой стра­ни­це сай­та.

Побе­да для всех: дизай­нер быст­ро обно­вил­ся и спра­вил­ся без раз­ра­бот­чи­ка.

Куда расти фронтендеру

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

Скучно ли целый день писать код?

Мне не скуч­но, но здесь всё силь­но зави­сит от про­ек­та и коман­ды. Поэто­му если кому-то не инте­рес­но — возь­ми­те новый про­ект или най­ди­те дру­гую коман­ду.

На каком языке работают успешные программисты?

Успеш­ные про­грам­ми­сты не при­вя­зы­ва­ют­ся к язы­ку про­грам­ми­ро­ва­ния — они уме­ют про­грам­ми­ро­вать. В каж­дом язы­ке есть общие кон­цеп­ции и инди­ви­ду­аль­ный син­так­сис, из кото­ро­го соби­ра­ет­ся код: есть опе­ра­то­ры, цик­лы, пат­тер­ны и про­чие эле­мен­ты. Когда нови­чок кон­цен­три­ру­ет­ся на язы­ке про­грам­ми­ро­ва­ния, то он может выпол­нять толь­ко те зада­чи, кото­рые огра­ни­че­ны рам­ка­ми это­го язы­ка.

У опыт­ных раз­ра­бот­чи­ков язык про­грам­ми­ро­ва­ния отхо­дит на вто­рой план: они ста­вят зада­чу, про­ду­мы­ва­ют алго­ритм реше­ния и после это­го под­би­ра­ют нуж­ные язы­ки. Это поз­во­ля­ет вый­ти за рам­ки и решить любую зада­чу, кото­рую мож­но зако­дить — при­мер­но так мыс­лят успеш­ные про­грам­ми­сты.

Успеш­ные про­грам­ми­сты не при­вя­зы­ва­ют­ся к язы­ку про­грам­ми­ро­ва­ния — они уме­ют про­грам­ми­ро­вать

Нужно ли начинающему программисту резюме и портфолио?

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

Вме­сто это­го я отправ­лял резю­ме и в тек­сто­вой фор­ме рас­ска­зы­вал о навы­ках. Для мно­гих ком­па­ний это­го доста­точ­но, посколь­ку они не при­ни­ма­ют на рабо­ту без собе­се­до­ва­ния — это обя­за­тель­ный этап, на кото­ром про­яв­ля­ет­ся ква­ли­фи­ка­ция раз­ра­бот­чи­ка. Поэто­му если у чело­ве­ка не будет прак­ти­че­ских зна­ний, то резю­ме и порт­фо­лио не помо­гут.

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

Ошибки новичков

Мно­гие теря­ют вре­мя и мед­лен­но про­грес­си­ру­ют из-за про­блем с ком­му­ни­ка­ци­ей. Нуж­но не пытать­ся всё делать само­сто­я­тель­но, не боять­ся спра­ши­вать и про­сить кол­лег о помо­щи — про­грам­ми­ро­ва­ние мно­го­гран­но, поэто­му не стыд­но что-то не знать или не пони­мать.

Не поздно ли сейчас изучать профессию разработчика? Что насчёт конкуренции и перенасыщенности рынка специалистов?

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

Можно ли стать разработчиком после 30–40 лет и попасть в Яндекс?

Конеч­но мож­но, воз­раст­ной барьер суще­ству­ет толь­ко в голо­ве. Что каса­ет­ся Яндек­са, то здесь нуж­но смот­реть на доступ­ные вакан­сии и свое­вре­мен­но на них откли­кать­ся.

Как попасть на рабо­ту в Яндекс:

Финальный блиц

Сколько может зарабатывать программист?

Столь­ко, сколь­ко сам захо­чет.

Может ли успешный программист знать один язык программирования?

Нет.

Веришь ли в то, что для погружения в профессию нужно написать 10 000 строк кода?

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

Что больше всего нравится в профессии?

Я люб­лю при­но­сить людям поль­зу и цен­ность.

Что бы ты выбрал, если бы не фронтенд?

iOS-разработка.

Обязательно ли программисту получать высшее образование?

Нет.

Порекомендуй полезные книги и сервисы?

Мож­но начать с сай­та «Совре­мен­ный учеб­ник JavaScript» и книг изда­тель­ства.