Как я нашел работу программиста

Как найти свою первую работу программистом? От резюме до испытательного срока

Время на прочтение
9 мин

Количество просмотров 217K

image

Все знают, что сейчас программирование — это супервостребованная и супероплачиваемая профессия. Но немногие знают, что вакансий для начинающих очень мало. Все работодатели хотят, чтобы к ним пришёл человек, который уже что-то умеет. Напишет код, который не надо выкидывать. Джуниорских вакансий (не требующих опыта работы) мало, и конкуренция здесь очень большая. С одной стороны, существует огромная потребность в программистах. С другой — в начале карьеры вы можете столкнуться со сложностями. Работодатели обращают внимание в первую очередь на тех, у кого в резюме уже есть строчка о прошлом месте работы. Если у вас её нет, будет сложно.

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

Итак, как же новичку получить первую работу?

Название резюме

Оно должно как-то называться. Существуют два варианта.

  1. Допустим, вы программировали на разных языках. В школе наверняка писали на Pascal, а потом что-то делали на C++. Если вы постарше, то, возможно, знакомы с Delphi. Поэтому в названии резюме можно указать все языки, на которых вы писали. Авось какой-то заинтересует потенциального работодателя. Например, так: «Программист: delphi, python, php, html, java, c#, ruby, scala».
  2. Можно указать, что вы специализируетесь на чём-то одном, например на Python. Обычно, если в названии резюме перечислена куча языков, то понятно, что вы не умеете ничего. Всего коснулись поверхностно. В глазах работодателя вы будете человеком-оркестром, который пришёл на прослушивание в консерваторию. Не надо так делать. Зачёркиваем длинную простыню и оставляем просто «Программист на Python». Повышайте свою самооценку, не акцентируйте в резюме неуверенность в себе, связанную с нехваткой опыта.

Из этого следует правило: выберите один язык программирования и специализируйтесь на нём. В университете я писал на С++, потом понял, что связанные с ним вакансии меня не очень прельщают, поэтому надо двигаться в другом направлении. Я выбрал для себя C# и Java. Мне они оба очень понравились, и я долго не мог определиться, какой мне больше по душе: тут есть такая-то фича, здесь такая, казалось бы, одинаковые. Я купил две здоровенные толстые книжки — по C# Эндрю Троелсена и по Java Брюса Эккеля. На каждую я потратил по две недели и начал откликаться на вакансии по обоим языкам. Думал, куда раньше возьмут — в тот язык и буду углубляться. Сейчас я понимаю, что переложил ответственность за выбор языка с себя на мироздание, на судьбу, на работодателя.

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

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

Выбор языка

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

Так что при выборе языка обращайте внимание:

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

Сейчас по количеству вакансий наиболее востребованы следующие языки: Javascript, PHP, Java, C++, Python, C#, Ruby, Swift, Objective-C. Выбрав какой-то язык, скорее всего, вы на нём и остановитесь. Может быть, через два года разочаруетесь или решите перепрофилироваться. Но это будет немножко больно. С другой стороны, свой опыт вы сможете легко применить в другой сфере деятельности.

  • Если речь пойдёт про frontend — то есть разработку визуальной части сайтов, — то здесь всё просто, нужны три языка: HTML, CSS, JavaScript.
  • А вот для разработки серверной части вариантов много. Самый популярный язык — РНР. Мне на каждом докладе говорят, что про РНР плохо отзываются, какой-то он не такой. Многие высказывают гипотезы, что он умрёт. Но ничего подобного, половина сайтов написана на РНР, половина вакансий — на РНР, ВКонтакте — на РНР, как и многие другие крупнейшие проекты. Никуда язык не денется. Если в нём будут критические проблемы, то их просто исправят. Появился Ruby on Rails, классный движок — ну, ничего страшного, на РНР стали появляться фреймворки, в которые внедрили аналогичные фичи. Всё хорошо. Отдельно скажу, что Python многих прельщает простотой и универсальностью.
  • С точки зрения мобильной разработки есть всего два варианта. Если хотите писать под Android — это Java. Если под iOS — Swift или Objective-C. И то и другое — хорошие решения.
  • Разработка под desktop и серверы: Python, Javaб С++ или C#. Здесь есть простор для метаний. Python попроще, чем остальные. На Java можно писать под Android. На C# — углубляться в разработку игр и сайтов. C++ больше подходит для тех задач, где требуется высокая скорость работы. В остальном у них возможности совпадают, просто на Java сайты пишут реже.

Возникает резонный вопрос: если начинаешь с нуля, то имеет ли смысл изучать сразу новый язык? Например, в Apple перешли с Objectivе-C на Swift, потом появился Swift 2 и 3. Обычно я консервативен и считаю, что новое не всегда оправданно и действительно выстреливает. Появляется новый язык, по нему нет вакансий, но где гарантия, что они появятся потом? Может, на нём так и напишут с пяток проектов.

Что касается Objectivе-С и Swift, я давно присматриваю за этими языками, и буквально на днях количество вакансий на Swift сравнялось с Objective-C. Мое мнение, это очень серьезный показатель, что Swift будет только набирать обороты и со временем может вытеснить Objective-C.

Технологии

Итак, мы выбрали язык и указали его в резюме. Далее перечисляем технологии, которые мы знаем. Давайте снова разбираться, что круче. Допустим, вы программируете на PHP. Имеет ли смысл писать, что вы знаете С, С++, Pascal, C# и так далее? Не надо перечислять все технологии, которые напрямую не относятся к вашей компетенции. Надо назвать вакансию «программист: РНР». В таком случае работодателю неинтересно, что вы когда-то писали на С и Visual Basic. Весь этот длинный хвост можете не указывать.

Есть и другой вариант. Допустим, я программист на РНР, но знаю все эти технологии, потому что они относятся к веб-разработке: и РНР, и YII2, и HTML, разные фреймворки. Если будете искать вакансию веб-разработчика, то наверняка увидите здоровенную простыню дополнительных требований с кучей умных слов. И многие этого пугаются, особенно в веб-разработке, страшно, что надо столько знать… К этому надо стремиться: знать Webpack, работать с разными БД и так далее.

Многие для повышения авторитета сразу пишут, что я и это знаю, и это примерно знаю, но я новичок и готов получать пока 15—30 тысяч, и опыта работы у меня нет. Какое будет впечатление у работодателя? То же самое: человек-оркестр.

Есть и другая проблема. Допустим, работодатель поверит, что вы всё это знаете. Он же на собеседование придёт с этим списком, ткнёт в любую технологию и скажет: «Теперь мы говорим про React, что ты знаешь про него? А это что? А это? Ясно, React мы не знаем».

Вычёркиваем.

«Хорошо, поговорим про MySQL, напиши мне транзакцию, которая делает то-то и то-то».
«Ну, я в MySQL установил только среду разработки, два select-а сделал…»

MySQL тоже вычеркиваем. Всё остальное он даже смотреть не будет. Работодателю уже будет неинтересно, что вы полгода жарили РНР: он поймал вас на вранье. Так что зачеркиваем всё перечисленное.

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

Более того, даже не пытайтесь ознакомиться со всеми этими многочисленными технологиями. Если вы РНР-программист — так и напишите, что знаете РНР и немного HTML и CSS для верстки. Ещё знакомы с одним фреймворком — всё, работодателя это устроит. Он не будет вас гонять по YII, поскольку вы и не указали, что знаете его. Работодатель понимает, что вас можно гонять по РНР.

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

Образование

Должно ли в вашем резюме быть подтверждение того, что вы окончили какой-то университет, получили какие-то сертификаты, прошли курсы и так далее? Это хорошая вещь при первичном отборе, на которую обращают внимание многие кадровики. Им сложно ориентироваться по другим критериям. Поэтому они смотрят на опыт работы и на образование, чтобы сделать какой-то вывод.

Когда я набирал в команду джуниоров по C#, мы опубликовали вакансию и в течение двух-трёх недель получили 50 откликов. У нас не было кадровика, поэтому мы пошли программерским путём: всем кандидатам выслали тестовое задание. Кто его сделал, проходил дальше. И мне как работодателю не были интересны сертификаты и диплом. Я даже на резюме не смотрел, пока человек не присылал мне решение тестового задания. Но для кадровика это может быть важно.

Портфолио

Очень важная вещь на этапе отбора. Если у вас есть портфолио, то работодатель-программист сможет понять, в состоянии ли вы решить задачу аналогичную той, которую вы уже решали.
Что можно написать в своём портфолио? Если вы хотите разрабатывать сайты, то просто придумайте себе задачку и решите её за необходимое время. Сделайте небольшой сайт и выложите его, лучше всего на Github. И напишите: я создал небольшой интернет-магазин, использовал такие-то технологии, вот код. Для работодателя это будет показателем, что вы ещё и про Git знаете. Он понимает: если я возьму этого новичка на работу, он мне за два дня сделает примерно то же самое, с чем сам разбирался месяц. И не надо будет ему платить за то, чтобы он выучил, что такое Bootstrap, познакомился со всякими нужными штуками. Он сам уже это изучил и теперь в состоянии решить задачу за пару дней. Поэтому не пренебрегайте портфолио. Вам оно очень сильно поможет.

Опыт работы

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

Отклики на вакансии

Резюме готово, что делать дальше? Прежде чем откликаться на вакансии, надо немного психологически настроиться, чтобы процесс пошёл правильно. Представьте свой идеальный рабочий день, что бы вам хотелось получить в итоге? Иначе мы просто будем белкой в колесе, станем бежать за какой-то мечтой, каким-то счастьем. Представьте, как выглядит ваш офис, ваши коллеги, какое у вас самоощущение, какими проектами вы занимаетесь. Просто настройтесь на то, какие эмоции вы будете испытывать, когда станете ходить на работу. Сделайте запрос мирозданию: «Хочу, чтобы было так, так и так». И успокойтесь, всё у вас будет хорошо.

Расскажу о том, как я устроился в компанию GeekBrains. В какой-то момент мне надоело программировать. Это классное занятие, я пять лет ему отдал, но меня не очень удовлетворяли цели компании, в которой я работал. Я подумал, что мне было бы интересно открыть свою школу и учить людей. Дать им возможность получить новую специальность, новую профессию. Потом я увидел вакансию и начал преподавать в GeekBrains, совмещая это с основной работой. Затем я просто попросился к ним на работу.

Так выглядел мой разговор с генеральным директором GeekBrains.

Гендир: «А что ты умеешь делать? Ты на C# программируешь, а мне нужен Ruby».
Я: «Я не хочу программировать, я умею то, умею сё».

Через две недели я вышел на работу.

Наверно, вы представляете: «Я найду работу так: выложу резюме, на него откликнутся, я приду на собеседование, и всё получится». Но работа может найти вас совершенно другим способом. Например, вы зарегистрируетесь на фрилансерском сайте, выполните какой-то заказ, и у вас появятся постоянные клиенты. Или друг пригласит вас к себе работать. Не зацикливайтесь на способе достижения цели. Просто будьте открыты к предложениям, откуда бы они к вам ни пришли.

Не расстраивайтесь, если вас не позвали на собеседование после того, как вы откликнулись на вакансию. На начальных позициях предложение сильно превышает спрос. Я сам допускал эту ошибку, находил одно предложение о работе и думал: блин, мне это подходит, тут и компания недалеко от моего метро, и требования несложные. Мне кажется, что я им классно подхожу, а они, заразы, даже не посмотрели моё резюме. Ну что такое? Наверное, во мне что-то не так. Или они прочитали, но ничего не написали. Всё, резюме плохое, надо дорабатывать портфолио, что-то ещё делать. А на самом деле, может, им просто некогда. Они уже давно взяли кого-то на работу и просто не стали снимать вакансию, потому что у новичка ещё не закончился испытательный срок.

Не парьтесь, ребята. Отправьте 100, 200, 300 откликов, сколько найдёте. И законом больших чисел вы сообщите мирозданию, что реально хотите работу. Вас пригласят на пять собеседований, на одном из них вы устроитесь на работу — всё. Если вам посылают тестовое задание, не пренебрегайте им. По моему опыту, 90 % кандидатов отваливаются, когда получают тестовое задание.

Собеседование

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

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

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

Если вас взяли на испытательный срок, то не надо всех заваливать вопросами, иначе подумают, что вы дурак. Но не надо кидаться и в другую крайность, когда начинающему разработчику дают задачку, и он уходит в себя на три дня, потому что сам пытается во всём разобраться. А работодатель думает: неужели вам мало трёх дней на такую простую вещь? Так что не стесняйтесь задавать вопросы. Если вы больше часа занимаетесь какой-то задачкой и у вас не получается, подойдите к старшему, спросите, он вам поможет, всё будет хорошо.

Заключение

Друзья, и напоследок напутствие: не бойтесь экспериментировать. Ищите себя, находите то, чем вам нравится заниматься. Нет ничего хуже, чем десять лет просидеть на нелюбимой работе из страха, что не сможете устроиться на другую. Если вам нравится программировать — начинайте обучаться этому ремеслу, совмещайте учёбу с основной работой. Если хотите — приходите к нам в GeekBrains, и мы вам обязательно в этом поможем. Удачи вам, и до новых встреч!

Текст написал автор Тинькофф Журнала Тагир Алмасов
Текст написал автор Тинькофф Журнала Тагир Алмасов

Я пошел работать в «Макдональдс», когда учился в университете. А потом увлекся программированием — и изучил его с нуля.

Спустя восемь месяцев я уже работал в крупном банке на позиции фронтенд-разработчика. Еще через год переехал в Германию. Теперь работаю в Берлине и получаю около 2600 € в месяц. На обучение я потратил всего 300 ₽.

Я окончил Московский государственный лингвистический университет по специальности «лингвист-переводчик». Всегда любил иностранные языки, поэтому еще в школе думал, что всю жизнь буду работать в этой сфере. А вот с математикой и физикой у меня были проблемы, поэтому я и представить не мог, что в будущем стану программистом. Раньше мне казалось, что эта профессия доступна только тем, кто хорошо разбирается в точных науках.

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

Шаг 1. Понять: программирование — это не страшно

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

За час занятий с учениками я брал 500—1000 ₽, на выставках платили всегда по-разному , но обычно 2000—5000 ₽ в день. Вроде бы неплохие цифры, но трудозатраты часто сильно превышали вознаграждение, да и заказы попадались время от времени. Поэтому я решил поискать что-то другое.

Сначала я пошел в «Макдональдс»: хотел понять, смогу ли вообще совмещать постоянную работу и учебу. Потом немного поработал в агентстве, которое занимается продвижением в соцсетях, еще пытался попасть на стажировку в финансовые компании Ernst & Young и KMPG.

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

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

Как и многим российским студентам, трудовую книжку мне открыли в «Макдональдсе»
Как и многим российским студентам, трудовую книжку мне открыли в «Макдональдсе»

Шаг 2. Выбрать специализацию

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

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

Если упрощенно, веб-разработка охватывает все, что можно найти в интернете. И сайт Яндекса, и сайт школы, в которой вы учились, — это результат труда веб-разработчиков . Разница — в сложности используемых технологий. Чем сложнее устроен сайт, тем больше специалистов необходимо, чтобы он мог стабильно работать. Поэтому веб-разработчики делятся на несколько категорий.

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

Бэкендеры работают с начинкой сайта: базами данных, алгоритмами, функциями и сервисами, которые потом будут доступны пользователям. То есть эти ребята строят дом из плит, перекрытий и кирпичей, а потом быстро чинят там, где что-то вдруг сломалось.

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

Навыки и инструменты, которые осваивает веб-разработчик  в ходе своей карьеры. И это только начало — вот полная версия
Навыки и инструменты, которые осваивает веб-разработчик в ходе своей карьеры. И это только начало — вот полная версия

Я выбрал фронтенд-разработку, потому что мне было важно быстро начать работать. На фронтендера гораздо проще учиться, а результат его работы нагляднее: уже после первого онлайн-курса вы сможете за час собрать простенькую веб-страницу и хвастаться ею перед родными и друзьями. Тогда как результат целого месяца трудов в бэкенде и девопсе сможет оценить только человек, который в этом разбирается.

Шаг 3. Разобраться в терминологии

Сначала разберемся, что вообще придется изучать. Я буду сильно все упрощать.

Любой сайт работает благодаря трем элементам: HTML, CSS и JavaScript. Упрощенно их называют кодом сайта или просто кодом. Если вы разобрались в них, то уже сможете собирать и программировать полноценные веб-страницы и даже целые сайты.

HTML, или HyperText Markup Language, — в переводе с английского «язык гипертекстовой разметки». Это еще не полноценный язык программирования, а всего лишь набор команд, или тегов, которые помогают браузеру понять, как именно текст и другие элементы оформления должны располагаться на страницах сайта. Это примерно как схема, где в квартире после ремонта будет стоять диван, а где — холодильник.

CSS, или Cascading Style Sheets, — в переводе «каскадная таблица стилей». Из нее браузер узнает, как сайт должен быть оформлен: какими должны быть размер и тип шрифта, ширина полей, цвет фона и многое другое. Это все равно что выбирать цвет дивана или размер холодильника в вашу новую квартиру.

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

Теги HTML в редакторе кода отмечены розовым. Они помогают браузеру понять, где просто текст (<p> </p> — paragraph), где заголовок (<h2> </h2> — header), а где важный текст (<strong> </strong>)
Теги HTML в редакторе кода отмечены розовым. Они помогают браузеру понять, где просто текст (<p> </p> — paragraph), где заголовок (<h2> </h2> — header), а где важный текст (<strong> </strong>)
Код для CSS выглядит так. С помощью него задается размер, толщина и цвет шрифта, а также множество других параметров
Код для CSS выглядит так. С помощью него задается размер, толщина и цвет шрифта, а также множество других параметров
Так выглядят простенькие функции в JavaScript. С помощью этой функции программа понимает, как получить нужную информацию со стороннего сайта
Так выглядят простенькие функции в JavaScript. С помощью этой функции программа понимает, как получить нужную информацию со стороннего сайта

Шаг 4. Найти курсы

Теперь поговорим про курсы по веб-разработке . В интернете их примерно миллион. Так что можно просто вбить в поисковике «курсы фронтенд-разработчика» и выбрать первый понравившийся.

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

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

Некоторые курсы полностью бесплатные, другие — только до определенного уровня. Стоимость платных курсов зависит от их продолжительности и насыщенности. Например, недельный интенсив с ментором может стоить 14 900 ₽, а полный годовой курс с дипломным проектом в конце — уже 148 500 ₽.

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

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

В итоге я начал с русскоязычного сайта HTML Academy. Выбрал его, потому что курс по основам HTML и CSS там полностью бесплатный. Еще можно пойти, например, в Codecademy или на Яндекс-практикум. Я расскажу, как все устроено в HTML Academy.

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

Интерфейс курса по изучению HTML и CSS. Сначала читаешь теорию
Интерфейс курса по изучению HTML и CSS. Сначала читаешь теорию
Потом сразу выполняешь практическое задание, чтобы понять, как это работает
Потом сразу выполняешь практическое задание, чтобы понять, как это работает
Так выглядит структура курса на сайте HTML Academy. Уроки отличаются между собой и по объему, и по сложности. Бывает, что за час успеваешь пройти 2—3 урока , а иногда над одним приходится сидеть целый день
Так выглядит структура курса на сайте HTML Academy. Уроки отличаются между собой и по объему, и по сложности. Бывает, что за час успеваешь пройти 2—3 урока , а иногда над одним приходится сидеть целый день

Освоив бесплатный курс, я решил купить дополнительную подписку на месяц за 300 ₽. Сейчас, спустя 3 года, она стоит 590 ₽ на месяц или 4590 ₽ на год. Платная подписка дает доступ к продвинутым главам курса. Например, про то, как делать сложную анимацию без скриптов, только силами CSS.

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

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

Если есть время, лучше не спешить

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

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

Если у вас что-то не выходит, не берите подсказки и не пропускайте задания. Лучше еще два раза подробно разберите блок с теорией и еще десять раз внимательно прочитайте свой код. Так вы быстрее освоите язык и научитесь не психовать из-за малейшей ошибки в коде.

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

Курс по веб-разработке там очень обширный и охватывает много тем. Чтобы изучить их все, потребуется около 1800 часов, или 75 дней. Зато, окончив этот курс, вы будете обладать всеми необходимыми знаниями для начала карьеры — от верстки простой веб-страницы до визуализации данных и способов обезопасить сайт от хакерских атак.

Мне понравилось учиться на этом курсе: он простой и понятный. В глубине души даже не верилось, что только на HTML и CSS можно так легко собирать очень красивые страницы. Я все ждал, что встречу какую-то непреодолимую для гуманитария преграду.

И я ее встретил, когда дошел до JavaScript.

Освоить JavaScript оказалось гораздо сложнее, чем разобраться с тегами в HTML и CSS. Это уже полноценный язык программирования, и, чтобы в него вникнуть, придется понять довольно сложные концепции. Например, хойстинг (не путать с хостингом), замыкания, каррирование, контекст вызова функции, параметры и аргументы функции, синглтон-паттерн, инстанс объекта, интерфейс объекта и т. д.

Это как раз те штуки, которые ребята-технари изучают еще в вузах. Без фундаментального образования понять такое сложно. Мне удалось более-менее разобраться в них примерно за год. Помогло постоянное общение с более опытными коллегами: они подсказывали, какие термины что значат, где и какие статьи про это лучше почитать.

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

Шаг 5. Перейти к практике

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

Посмотреть чужой код просто: в браузере открываете нужную страницу, а потом вызываете «Инспектор кода» или просто кликаете правой кнопкой и выбираете «Посмотреть код» — в каждом браузере это делается по-своему . По сути, это такой бесплатный мастер-класс от опытных ребят: ты видишь каким способом они решили ту или иную задачу, а потом сравниваешь это с тем, как сделал ты.

«Инспектор кода» в браузере «Хром». Сверху я навел курсор на нужный блок сайта, и снизу сразу же  подсветилась относящаяся к нему часть кода
«Инспектор кода» в браузере «Хром». Сверху я навел курсор на нужный блок сайта, и снизу сразу же подсветилась относящаяся к нему часть кода

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

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

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

Это учебник по HTML5 — последней версии этого языка. Там указаны все основные теги, которые в нем используются
Это учебник по HTML5 — последней версии этого языка. Там указаны все основные теги, которые в нем используются
Если выбрать конкретный тег — здесь <header>, — учебник покажет, зачем он вообще нужен, в каких браузерах работает и как его применять
Если выбрать конкретный тег — здесь <header>, — учебник покажет, зачем он вообще нужен, в каких браузерах работает и как его применять

Небольшой совет: если не можете решить проблему сами, вбейте ее описание в поисковик. Скорее всего, вы не первый, кто ломает над ней голову, и опытные люди уже все придумали за вас. На мой взгляд, умение гуглить — это вообще один из важнейших навыков хорошего программиста. Оно позволяет сэкономить много времени и сил, а главное, избежать «костылей» — когда сначала городишь 100 строчек кода, а потом приходит кто-то поумнее и показывает, как то же самое делают всего три.

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

Один из моих первых проектов:  я собрал страничку, которая загружает случайную цитату про дизайн
Один из моих первых проектов: я собрал страничку, которая загружает случайную цитату про дизайн
А это уже проект посложнее — калькулятор, который я сам запрограммировал. Тут потребовались углубленные знания JavaScript
А это уже проект посложнее — калькулятор, который я сам запрограммировал. Тут потребовались углубленные знания JavaScript

Шаг 6. Найти работу

Где-то через три месяца после начала изучения первого курса по программированию я решил, что пора искать работу в качестве веб-разработчика . Подумал, что главное — попасть в тусовку, а там разберусь.

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

Еще я регулярно проверял сайты известных ИТ-компаний вроде Яндекса, «Мейл-ру » и «Авито». Читал статьи на сайтах «Типичный программист » и «Хабр » — это тематические ресурсы для всех, кто связан с разработкой и ИТ-сферой . По моим ощущениям «Типичный программист» больше для новичков, а вот на «Хабре» в основном сидят опытные разработчики.

Вакансии для разработчиков я искал на сайте «Хабр-карьера ». Он специализируется на ИТ-сфере , у него приятный интерфейс, а вакансии часто обновляются. Среди потенциальных работодателей там есть как стартапы, так и крупные технологичные корпорации вроде Тинькофф, Сбербанка или Яндекса.

В вакансиях на «Хабр-карьере » сразу указаны основные навыки, которые потребуются в работе. Это очень упрощает процесс поиска
В вакансиях на «Хабр-карьере » сразу указаны основные навыки, которые потребуются в работе. Это очень упрощает процесс поиска

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

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

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

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

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

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

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

Еще я не всегда понимал, что вообще от меня нужно, какую проблему должен решать мой код, как запустить проект, как проверить, что все работает правильно. В итоге я ушел из компании через три недели. За отработанное время мне заплатили около 13 000 ₽.

Шаг 7. Найти работу получше

После увольнения из Travelab мне на глаза попалась вакансия фронтенд-разработчика в крупном российском банке. В описании вакансии тоже значилось «Опыт работы — от 2 лет», что я благополучно проигнорировал. Мое письмо прочитали и — о чудо! — взяли меня на работу.

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

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

Я подписал договор о неразглашении информации, поэтому не могу назвать свою зарплату в банке. Скажу только, что это была отличная сумма для человека, который делал первые шаги в программировании. В Москве вилка зарплат на стартовых позициях — от 50 до 100 тысяч рублей, моя зарплата была ближе ко второй цифре. Со временем я понял, что даже в программировании твой заработок во многом зависит от умения торговаться. Поэтому начал искать позицию получше.

Сейчас я живу в Берлине и работаю в небольшой компании Justwatch. Занимаюсь разработкой приложения для смарт-телевизоров , которое рекомендует фильмы и сериалы на основе предпочтений пользователей и одновременно показывает, на каком стриминговом сервисе их можно посмотреть. После уплаты налогов у меня остается около 2600 € (232 445 ₽) в месяц. Это не предел, и можно зарабатывать больше. Например, мои более опытные коллеги получают 3500 € (312 907 ₽).

Шаг 8. Не переставать учиться

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

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

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

Теперь про учебу. Приступив к своему первому курсу по HTML, вы приоткрываете дверцу, которую потом будет сложно закрыть. Чтобы быть хорошим и востребованным программистом, нужно знать все актуальные инструменты разработчика, а их примерно миллион, и каждый день появляется парочка новых. А если не будешь постоянно учиться, очень быстро отстанешь от этого поезда. И вот тогда привет, рутина и унылые задачи типа «у нас на сайте кнопка сломалась — почини».

Хеппи-энд

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

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

И напоследок

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

Больше историй о деньгах и жизни в бесплатной рассылке Т—Ж

Каждую неделю мы присылаем подборку лучших статей про деньги.

Нашу бесплатную рассылку читают более 450 тысяч человек: как сменить профессию, получать больше и на чем заработать. Как тратить меньше, но жить лучше. Присоединяйтесь и вы:

→ Подписаться ←

Как я стал программистом: потратил на обучение 300 ₽, получаю 2600 €

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

Тем не менее, время, проведённое в университете, было основополагающим. Тогда я узнал, что есть программа обмена с Германией, с нуля выучил язык, прошёл отбор и провёл год в городе Эссен, где работал социальным работником, учился в местном университете и много путешествовал. По возвращении у меня была глубокая депрессия, так как я не понимал, что делать дальше. Это было очень яркое и захватывающее время, а после него наступил экзистенциальный кризис. Социальная работа в Германии уважается и хорошо оплачивается. Социальная работа в России… Лучше не будем об этом 🙂 Тем не менее я решил поработать социальным работником и в России, но это, мягко говоря, не шло ни в какое сравнение с тем, что было в Европе.

Я получил диплом, на дворе был 2020 год, разгар пандемии и тотальное непонимание, что делать дальше. Мой друг тогда устроился в компьютерный клуб админом и позвал меня с собой. Я подумал: «А почему бы и нет?». В этом даже была какая-то романтика – ведь все в детстве ходили в компьютерные клубы и играли в CS и Варкрафт? 🙂 В каком-то смысле я воплотил подростковую мечту. Но, как это всегда и происходит, детские мечты разбиваются о серые будни реальной жизни. Неофициальная работа с графиком 2/2 и зарплатой 18000 рублей – это не то, о чём стоит мечтать.

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

По сути, такое исследование нужно было проводить ещё перед сдачей ЕГЭ, но многие ли из нас в 18 лет обладают достаточным здравомыслием, чтобы чётко и осознанно принимать решения, влияющие на всю жизнь? В Европе молодые люди заканчивают школу в 21 год и обычно берут год на то, чтобы посмотреть мир и понять, чем хотят заниматься дальше. Думаю, такой подход помогает лучше понять как себя, так и окружающий мир: вход во взрослую жизнь становится более плавным и гармоничным.

Но вернёмся к исследованию. Одним из опрашиваемых был Марал из Казахстана – с ним я познакомился во Флоренции. Он упоминал, что работает программистом и часто ездит в отпуск за границу. Когда я с ним списался, он рассказал про свой путь фронтенд-разработчика, и я наметил план из конкретных шагов, по которому можно достичь такого же результата. По итогам своего исследования я решил выбрать именно программирование: оно способно было дать ту степень свободы и такие возможности, которые мне хотелось.

Многие задаются вопросом: «А как можно выучиться на программиста?» На мой взгляд, адекватных пути только три. Первый – получить высшее образование. Второй – устроиться на платные курсы от именитых компаний. Третий – учиться самостоятельно. Вариант с высшим образованием я отбросил сразу: у меня уже был бакалавриат, мне не хотелось тратить ещё несколько лет на учебу, которая не совсем соответствует современным трендам и используемым технологиям. Дорогие платные курсы я банально не мог себе позволить. У меня оставался только один путь – самообразование.

Через какое-то время я остался без подработки в компьютерном клубе. К сожалению, я успел изучить только HTML и CSS, поэтому стал искать варианты, чтобы иметь возможность дальше учиться программированию и зарабатывать.

Так я нашел работу рекрутером. Достаточно нетривиальный заход в IT, но чем только черт не шутит. Сначала я искал монтажников, потом аналитиков и инженеров. Параллельно я учил JavaScript и писал простенькие проекты вместе с Виталей – бывшим коллегой по компьютерному клубу, который тоже хотел стать программистом. Совмещать работу и учебу из разных сфер было сложно и энергозатратно. Приходилось постоянно держать мозг в тонусе, чтобы ежедневно переключаться с одних задач на совершенно другие. Но терпение и труд всё перетрут.

Затем я перешёл на другую работу, где искал исключительно программистов. Это оказалось познавательно и полезно – я одновременно смотрел на процесс и с точки зрения нанимающей стороны, и с точки зрения того, кто хочет устроиться на работу. Рекрутинг серьёзно прокачал мои софт скиллы и дал представление о рынке IT.

В августе 2021 года в Нижнем Новгороде проходила офлайн-конференция GP Days, которую организовывали Globus и Mish, и я решил её посетить. Это был невероятный опыт! Спикеры рассказывали о трендах и крутых технологиях в IT, тем самым мотивируя меня задаваться новыми вопросами и погружаться в тематику, вокруг было много людей, которым всё это тоже было интересно! Подобные мероприятия дают фантастический заряд и вдохновение, заставляют двигаться вперед. На конференции я познакомился с Глебом Михеевым, CTO Skillbox, который поддержал меня в моём начинании и попросил написать, как только я буду готов 🙂

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

Переломный момент произошел в феврале 2022 года: тот ужас, что происходил вокруг, захватил меня с головой. Я очень сильно переживал, постоянно находился в состоянии неопределённости. Казалось, что мир рушится: в чём смысл стараться делать хоть что-то? Но именно тогда я твердо решил во что бы то ни стало выучиться и стать программистом, как и хотел. На фоне происходящего кошмара я с головой ушёл в курсы программирования, параллельно делал проекты. На тот момент Виталя уже работал фронтенд-разработчиком и был для меня ментором – мы вместе писали проекты и изучали технологии.

Я вышел на рынок труда спустя год с небольшим после начала изучения фронтенд-разработки. Я решил попробовать найти работу самостоятельно через hh.ru: честно указал в резюме, что у меня нет опыта, есть только теоретическая база, портфолио с проектами и горящие глаза. Я откликался на каждую вакансию, где был указан тот стек, что я знаю, прикреплял к каждому отклику подробное сопроводительное письмо.

Вот моя личная статистика за тот период: 720 откликов, 300+ отказов, 11 тестовых. Из 11 тестовых 6 были на уровень middle и на их выполнение я бы потратил неделю, что не имело смысла. Из оставшихся 5 я отобрал 2 лучших, сделал их и прошел 2 финальных собеседования. Но, к сожалению, по обоим получил отказ – решили взять ребят с коммерческим опытом.

После этих отказов я решил поинтересоваться у всех знакомых, не нужен ли им в команду перспективный джун. Написал в том числе и Глебу Михееву. Он дал мне контакты Лёши Авдеева, CTO Mish, который тоже был на конференции GP Days в 2021 году. По счастливой случайности в компанию как раз нужен был Junior фронтенд-разработчик 🙂 Мы провели собеседование, пообщались, и я получил долгожданный оффер!

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

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

  • Если вы только начинаете искать себя, обратите особое внимание на то, что любая работа состоит из творческой части и рутинной. Насколько вы готовы к специфичной рутине выбранной профессии?
  • Постарайтесь найти ментора, который поможет на вашем пути. Ментор многократно ускоряет ваш рост, видит ваши слабые места, знает, на что именно стоит делать упор в обучении, контролирует прогресс.
  • Обучение должно быть систематическим и ежедневным. Минимум два часа в день – крайне желательно. «Догоняться» в какой-то из дней за шесть часов подряд – неэффективно.
  • Чтобы научиться программировать, нужно ПРОГРАММИРОВАТЬ! Просто повторять код за кем-то недостаточно. Придумывайте проекты и реализуйте их, выкладывайте результат на гитхаб.

Вот я и закончил профессию «Фронтенд-разработчик» на Хекслете. На руках заветный сертификат, но это только начало.

  • Знакомство с вёрсткой
  • Интенсивы
  • Про Хекслет
  • Про резюме и трудности при смене профессии
  • Про собеседования
  • Про проекты на Хекслете
  • Про Open Source
  • Заветная работа
  • Благодарности

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

Свой путь в «большое» программирование я начал в 2015 году, когда вдруг осознал, что действительно хочу стать разработчиком. Тогда я начал активно читать «Хабрахабр», при этом большую часть статей я не особо понимал, но все равно было очень интересно. Нужно было выбрать первый язык. Я пошерстил интернет на эту тему, перечитал уйму разных статей — и выбрал Python. В качестве курсов я выбрал Codecademy и начал читать Марка Лутца «Изучаем Python». Даже поставил себе цель на SmartProgress и каждый день описывал свой прогресс. Вот ссылка. Курсы на Codecademy оказались довольно поверхностными, а книга Лутца очень объемной.

Тогда я начал искать какие-то дополнительные ресурсы для изучения программирования, наткнулся на Хекслет и даже зарегистрировался на нем. Но учиться на нем тогда не начал, потому что на тот момент меня больше привлек сервис Checkio.org. У него был очень клёвый дизайн и много интересных задачек по Python.

Чтение Лутца, курсы на Codecademy и решение задач на Checkio, отписка на SmartProgress — в таком вялотекущем режиме прошел мой 2015-й год. Прогресса особого не было, нужно было писать какой-то свой pet-project, чтобы применять полученные знания. Но я не знал как. И забросил это дело.

Знакомство с вёрсткой

В 2016 году я озадачился тем, что хочу сделать собственный сайт, но не знаю как. Тогда я хотел запустить свой бизнес — конечно же в интернете. Собирал сайт на конструкторе, пробовал установить WordPress и сделать что-то на нём. Я хотел, чтобы всё было красиво, а получалось либо коряво, либо результат меня совсем не устраивал. Тогда я понял, что мне нужно изучить вёрстку. Я нашел Html-Academy и её интерактивные курсы — и меня затянуло. Я прошел все бесплатные курсы и даже на месяц купил подписку. Всё это обучение шло параллельно с основной работой. Тогда я начал верстать свои первые макеты, стало что-то получаться. Так прошел весь 2016 и половина 2017 года. Когда HTML и CSS я более или менее освоил, то понял, что совсем не знаю JavaScript. Я выбрал его как основной язык и начал активное изучение. Начал с книги «Eloquent JavaScript», тогда же я стал больше смотреть тематических видео на YouTube.

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

Интенсивы

Мое обучение шло довольно медленно. И я решил, что мне не хватает практики и командной работы. В начале 2018 года я принял решение пройти базовый курс по вёрстке от Html-Academy. Даже не смотря на то, что вёрстку на тот момент я более или менее знал, выбрал именно базовый курс — но самый сложный макет. Курс оказался очень интересным и насыщенным. На выходе я получил свёрстанный интернет-магазин, который не стыдно было положить в портфолио. Но так как на тот момент я уже больше изучал JS, а на втором курсе академии была продвинутая вёрстка, я купил интенсив от Loftschool. Потому что в нём, судя по описанию, было больше JavaScript и еще давали Vue.js. Летом я закончил этот курс, где сделал за все время собственный сайт-портфолио и немного изучил Vue. Но всё равно чего-то не хватало. Было много практических заданий, но как будто не было прочных фундаментальных знаний. В тот момент я начал активно читать Slack Хекслета и смотреть лекции на YouTube. И меня очень сильно зацепило. Я понял — вон оно, это именно то, что мне нужно! И с 1 сентября, я, как прилежный ученик, начал проходить курсы на Хекслет.

Про Хекслет

Я выбрал профессию «Фронтенд-JavaScript» и поставил себе цель — полностью пройти профессию и завершить все проекты. Что больше всего меня поразило, так это то, что на самом базовом курсе «Введение в программирование» даются очень глубокие фундаментальные знания. Особенно мне понравился сам формат обучения. Небольшая лекция и сразу практическая задача. Это позволяло учиться в комфортном режиме. Что было, как бальзам на душу, по сравнению с 2-х часовыми вебинарами на других курсах. Уровень практических задач заставлял мой мозг сильно напрягаться. Это не было похоже на Codecademy, плюс много непонятных терминов — СИКП, пары cons, car, cdr, рекурсия, каррирование. Что это вообще такое? Курс «Введение в программирование» пролетел незаметно. Я, не раздумывая, оплатил подписку и продолжил свой путь.

Мне очень понравилось, что если ты не можешь долго решить задачу, к каждой есть топики. В них можно задать свой вопрос, либо найти чей то ответ, который подтолкнёт тебя к верному решению. Также у Хекслета очень дружелюбное комьюнити в Slack — можно задать свой вопрос там. Спасибо всем ребятам, кто не раз помогал мне, когда я упирался в проблему.  Единственное, чего мне не хватило для более качественного обучения — личного наставника, к которому всегда можно обратиться за советом. Но насколько я знаю, у Хекслета уже есть такая возможность.

Про резюме и трудности при смене профессии

Работу программистом я начал искать в середине 2018 после окончания курса на Loftschool. Для начала нужно было составить резюме, и я решил оформить его на «Мой круг». В резюме я указал все свои учебные проекты и желаемую должность — frontend-разработчик. Но одного сервиса «Мой круг» было недостаточно, так как основная площадка для поиска работы — это HH. Вот тут начались проблемы — у меня уже было резюме на HH по основной специальности, я решил создать новое. Но с новым резюме я никак не мог пройти модерацию, потому что постоянно прилетал отказ.

Когда ты меняешь профессию, HH обязательно требует указывать твоё предыдущее место работы. На тот момент я этого не знал, поэтому в новом резюме указывал только учебные проекты и как последнее место работы — фриланс. Тогда я действительно занимался фрилансом — делал сайты для бизнеса для своих друзей. В конечном счёте, в резюме я добавил два последних места работы по специальности, а в разделе «О себе» подробно описал почему я решил сменить профессию. И моё резюме приняли.

Используя эти две площадки, я начал мониторить рынок и откликаться на вакансии. Я принял решение сразу позиционировать себя как frontend-разработчик — без приставок junior. На основной работе у меня был хороший доход, поэтому при смене профессии я решил, что буду искать примерно такой же уровень. Но тогда я еще был готов к просадке в 20% на начальном этапе.

Но всё изменилось в конце 2018 года. У меня нет собственного жилья, а мы с женой жили на съёмной квартире. В конце года у нас родился сын, и жилищный вопрос встал особо остро. Мы купили квартиру в ипотеку. Маленький ребёнок и ипотека — это самые большие статьи расходов и большая ответственность. Поэтому при поиске работы программистом я уже не мог позволить себе просадку и искал зарплату, которая равнялась бы основному доходу. Это накладывало определенные ограничения. Не каждый работодатель готов платить такую сумму за человека, у которого в портфолио только учебные проекты, но я не сдавался и продолжал уверенно идти к своей цели — активно откликался на все вакансии, которые мне попадались. Поначалу были сплошные отказы и первые отклики пошли не сразу, — но все-таки они были. И вот спустя 3 месяца меня приглашают на первое собеседование.

Про собеседования

Первое приглашение на собеседование я получил в какую-то аутсорсинговую компанию. Они занимались разработкой софта для банковского сектора и даже игр. Но это было не техническое собеседование, а скорее общее с HR и директором компании. В целом оно прошло гладко — из вопросов я больше всего запомнил часть про методологию scrum, agile (про них я ничего не знал). А также у меня спросили почему Vue, а не React? Мне не перезвонили, и я продолжил свои поиски.

Второе собеседование было в компанию, которая разрабатывала софт для государственных заказчиков. На этот раз это было чисто техническое собеседование. Собеседовал меня один на один тимлид компании. Гонял по всем вопросам — HTML, СSS, Git, performance, как работает браузер, сети, HTTP, JavaScript, Vue.js. На первую половину вопросов я ответил довольно бодро и уверенно. А когда пошли более глубокие вопросы по JS и Vue — начал немного плавать. В целом я оказался крайне доволен этим собеседованием, так как прошёл его достойно. Тимлид дал мне положительный фидбек и готов был взять на работу — нужно было согласование с hr и бизнесом. Но у них оказались другие планы. Через два дня на созвоне с HR она мне отказала, по причине того, что у меня нет коммерческого опыта разработки. И за такую сумму они не готовы меня нанять, так как им легче найти на рынке студента с меньшими амбициями. Я не сильно расстроился и продолжил искать дальше.

Летом 2019 на меня выходит HR крупной туристической компании и предлагает работу. Я соглашаюсь на скайп-интервью. Беседа с техническими специалистами показала, что они не очень уверены в моих знаниях и предложили выполнить тестовое задание. Я согласился. Нужно было реализовать небольшое SPA-приложение на Vue — корзину покупок. Две недели я активно делал это задание и старался сделать его максимально качественно. Я по максимуму прилизал приложение и задеплоил его на Github pages. Не успел только написать тесты, и отправил на проверку.

Неделю я ждал от компании ответа. Первично они оценили его положительно, но взяли время для окончательного принятия решения. И вот, спустя неделю, я получаю от них на почту свой первый оффер! Я был немного ошарашен. В оффере говорилось, что они по достоинству оценили мое тестовое и выбрали в качестве финального кандидата меня. Зарплату мне предложили такую же как на моей основной работе. Всё выглядело просто шикарно, но меня накрыл страх. Мне вдруг резко стало страшно. Страшно уходить с текущей работы, здесь я всё знаю, все стабильно. Что ждёт меня там? Я же ничего не знаю. Ничего не умею. А вдруг я не справлюсь? А вдруг меня уволят? Как я буду платить за ипотеку? Все эти вопросы роем кружились в моей голове и я, как будто находился в оцепенении. Я не знал что мне делать. Я созвонился с HR и начал более подробно расспрашивать про компанию и про работу.

Оказалось, что у компании сейчас нет свободных мест в офисе и на время, пока они ищут офис побольше, мне предлагали поработать месяц или два на удалёнке. Также в компании была очень маленькая белая зарплата, всё остальное чёрным налом. Эти два фактора очень сильно меня смутили и только усилили мои переживания. Какая удаленка, я же искал офис? Как я буду коммуницировать с командой? Я же зелёный джун, а вдруг я не справляюсь с задачами и не у кого будет спросить совета? Чёрная зарплата, — а вдруг мне выплатят не всю сумму или лишат за что-то? Все эти вопросы только усилили мою неуверенность в себе и в компании. И я отказался. Зато я получил бесценный опыт. Я понял, что даже джуном можно найти достойную зарплату, если грамотно подойти к выполнению тестового задания.

Поиски работы продолжились. После этого было еще несколько собеседований, всех уже не вспомнить. Но больше всего я запомнил своё самое провальное собеседование. Это была небольшая компания, которая занималась логистикой. Я нашел их на HH и откликнулся, даже не смотря на странный стек. На клиенте они использовали Backbone, Marionette, MVC-архитектуру. Меня позвали на собеседование. Не то чтобы я прям хотел работать в этой компании, скорее наоборот. Я согласился только ради опыта собеседования. Все пошло не по плану с самого начала — меня завели в переговорку и попросили подождать. Собес проводили сразу три разработчика, должности их я не знал. Они начали сразу немного в агрессивной форме. После вопросов обо мне, начали указывать мне на баги, которые нашли в моих учебных работах. И говорили об этом в ироничном ключе. Я сразу стал жутко переживать, и чувствовать себя неловко. Отвечая на один вопрос, меня могли перебить и тут же задать другой. Сложилось впечатление, что разработчики тешили своё ЧСВ. Потом мне дали самую простую задачку. Написать на листочке функцию анаграмму. Я конечно же знал, как перевернуть строку, но так как изначально я сильно растерялся, захотел почему то решить её именно через рекурсию. Но шестерёнки в моем мозгу, как будто заклинило, и я даже не смог выдать рабочее решение. Я попросил другую задачу, но опять же не смог её решить. В итоге интервьюер сказал, что собеседование на этом закончено. И поглумился над тем, что я джун, а прошу такую большую зарплату. Вот такой был факап. Но я не расстроился. Этот случай наоборот придал мне уверенности, и я продолжил свои поиски.

Про проекты на Хекслете

Параллельно с поиском работы я продолжал активно учиться на Хекслете и проходить проекты. Первый проект оказался не таким сложным — самое трудное было настроить окружение, CI/CD, разобраться, как работает npm, как опубликовать пакет и записать asciinemу. Проект который взорвал мой мозг — вычислитель отличий, вот где по-настоящему пришлось попотеть. Помню, были моменты, когда ты открываешь шаг и просто не понимаешь, как к нему подступиться. Это было больно — но через эту боль я чувствовал, что расту.

Самый интересный момент произошёл со мной в начале 2020 года. В начале января я оплатил четвертый проект. В то же время в Slack-канале job я увидел интересное объявление, которое меня заинтриговало, где пользователь Михаил запрашивал помощь в разработке Open Source проекта конференции IT Global Meetup. Стек: React, Storeon, Parcel. Опыта в опенсорсе у меня не было. Единственный PR, который я сделал – были примеры тестовых для hexlet/ru-test-assignments. Я тогда только закончил курсы по React/Redux, но не писал на этих технологиях. Я написал Михаилу, что так мол и так. Такой то опыт — готов помочь. И оказался в деле. Также со мной в команде оказались ребята из Slack-комьюнити Хекслета.

Про Open Source

Проект я тогда отложил и погрузился в этот Open Source. Мы работали с ребятами в команде, проводили совместные созвоны, распределяли задачи через issues на GitHub. Постоянно обсуждали какие-то решения в нашем телеграм-чате. В общем — это была настоящая командная работа. Не все фичи, которые мы разрабатывали, попали в итоге в продакшен, но с горем пополам этот проект был запущен. Конечно, пандемия коронавируса внесла свои коррективы в работу конференции IT Global Meetup, но это уже другая история. Этот проект очень сильно мне помог. Я почти сразу добавил его первым пунктом в своё резюме. И на всех последующих собеседованиях выглядел уже более привлекательно для работодателей.

Мой совет всем новичкам — не бойтесь опенсорса. Хотите получить реальный опыт работы, но не знаете как? Open Source —  ваш лучший выбор! Даже сейчас я стараюсь находить свободное время и контрибьютить в опенсорс. Например, в проекты Хекслета.

Заветная работа

В марте этого года мне неожиданно прилетает письмо на почту, примерно такого содержания. «Евгений, ваше резюме на HH еще актуально? Ищем сейчас фронтендера. Требования — такие…, задачи…, условия…. Смотрю на лейбл отправителя — компания «Газпромнефть». Я был заинтригован и тут же дал ответ — мол да, актуально. Списываемся в телеге, созвон, мне рассказывают более подробно про проект и стек. Звучит интересно, я договариваюсь на этот же день на собеседование. Приезжаю к ним уже через полтора часа. Беседую с руководителем и бекенд-разработчиком. По технологиям расспрашивает фронтендер. Всё проходит очень гладко. Мне задают вопрос, в случае успешного рассмотрения, через какой срок я готов выйти на работу ? Я говорю, что минимум через две недели. Прощаемся. На следующий день звонок. Евгений — твою кандидатуру утвердили. Радуюсь в душе. Ура! Меня готовы взять. Но вида не подаю. Говорю, что готов к ним выйти, но чтобы запустить процедуру увольнения, хочу получить от них официальный оффер. Мне говорят, что контора крупная и всё идёт через бюрократию долго. Я понимаю, что возможно ничего мне не светит в данной ситуации и тупо забиваю. Тем более в самом разгаре началась пандемия коронавируса и карантин. Продолжаю дальше ходить на свою работу и параллельно откликаться на вакансии. Каково же было моё удивления, когда спустя почти месяц, мне прилетает на почту официальный оффер. С требованием принять решение до конца дня. Снова всё тот же страх накатывает на меня. Сердце бешено колотится в груди, и я судорожно решаю, что же мне делать. Трезво оценив ситуацию и посовещавшись с женой, я понимаю — что это мой шанс и его нельзя упускать. Я же так давно его ждал. Я подписываю оффер и в этот же день пишу заявление на увольнение. Я прыгнул в омут с головой и ничуть об этом не жалею.

Читайте и другие истории успеха:
Решить первый проект во сне и стать программистом, или Как Хекслет подарил мне состояние потока

В итоге я работаю фронтенд-разработчиком в крупной компании, которая занимается цифровыми решениями. У меня интересный проект, связанный с большим объемом данных и их визуализацией. Мой стек на текущей работе: Vue.js, Vuex, Vue-router. Выучил я его, потому что активно использовал для выполнения тестовых заданий. Но данный стек — не приговор, в свободное время я пишу на React.

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

Благодарности

В конце своей истории я бы хотел высказать благодарность всем участникам проекта Хекслет. Ребята делают крутой продукт, который готовит на выходе настоящих специалистов. Этот проект я дико рекомендую всем своим знакомым, кто интересуется темой программирования и хочет попробовать себя в профессии. Я, кстати, уже даже привёл несколько человек.

Хекслет помог мне посмотреть на мир программирования под другим углом, я стал глубже разбираться в фундаментальных основах и по-другому анализировать и решать инженерные задачи. Также хотел сказать огромное спасибо наставникам и всем участникам комьюнити в Slack. Ребята — вы супер! Мои планы на будущее не ограничиваются фронтендом. Я собираюсь пройти профессию по бекенду и поглубже изучить Node.js. В свободное время продолжу контрибьютить в Open Source проекты.

Мой совет всем, кто только в начале пути. Ребята, верьте в себя! Ставьте себе цель и потихоньку идите к ней. Старайтесь выделять на обучение хотя бы 30 минут в день. Как можно раньше ходите на собеседования. Слушайте подкасты и посещайте конференции. Не зацикливайтесь на технологиях и расширяйте кругозор.
Таков мой путь. Он был не быстрым, но его надо было пройти.

Никогда не останавливайтесь:
В программировании говорят, что нужно постоянно учиться даже для того, чтобы просто находиться на месте. Развивайтесь с нами — на Хекслете есть сотни курсов по разработке на разных языках и технологиях

По данным аналитиков hh.ru более 40% вакансий в цифровом секторе приходится на специалистов в области информационных технологий, а разработчик — одна из самых востребованных IT-профессий. О перспективах сферы говорит и рост уровня оплаты труда: по результатам исследования сервиса «Работа.ру» за лето 2021 года средняя зарплата IT-специалистов выросла на 20%.

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

Шаг 1. Копим знания

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

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

Выход есть: поступить в вуз или онлайн-школу, где вы получите квалификацию с официальным документом о профессиональной подготовке и соберёте портфолио проектов. На учёбу в институте вам потребуется от 2 до 5 лет, а онлайн-курсы можно закончить за 1 год — подробности найдёте в статье про сроки освоения новых языков разработки. А разобраться в преимуществах и недостатках вузовского образования поможет наш материал «Нужно ли высшее образование программисту».

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

Дальше рассказываем, как найти работу начинающему программисту — спойлер: всё начинается с резюме.

Ежедневные советы от диджитал-наставника Checkroi прямо в твоем телеграме!

Подписывайся на канал

Подписаться

Шаг 2. Составляем резюме

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

Качественное резюме заинтересует рекрутёра, даже если у вас нет опыта работы в «Майкрософте» и десятилетий кодинга за плечами.

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

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

  1. Укажите один или несколько языков программирования в названии резюме. Например, «программист Java и Swift» или «программист Python» — чтобы работодатель сразу понимал, на чём именно вы специализируетесь. При необходимости создайте несколько резюме под каждое направление и направляйте работодателю то, что соответствует конкретной вакансии.
  2. Перечислите основные технологии, которыми владеете. Выделите те, что связаны с вашей специализацией и в которых вы сильны. Только честно, ведь работодатель знает, что вы новичок: если где-то что-то читали про фреймворки PHP или библиотеки Python, а на практике не разбирались — упоминать их в качестве навыков не стоит.
  3. Напишите про образование. О профильном высшем или среднем специальном образовании, оконченных курсах, хакатонах, митапах и конференциях для программистов, в которых участвовали.
  4. Прикрепите скриншоты дипломов и цифровые сертификаты. Не стесняйтесь приложить сертификаты о прохождении бесплатных курсов — работодателю важен сам факт завершённого обучения и ваша заинтересованность в развитии скилов.
  5. Расскажите об опыте работы. Если у вас есть опыт в программировании — делайте упор на него, если же релевантного опыта нет — кратко поясните, чем вы занимались до увлечения кодингом.
  6. Опишите софт-скилы, которые могут пригодиться в работе. Например, владение английским и навыки командной работы — важные скилы для программиста.
  7. Оставьте контактные данные. Телефон, почта, телеграм — можно указать приоритетный способ связи, но рекрутёры чаще всего звонят.
  8. Приложите ссылку на портфолио. Какие проекты добавлять в портфолио и где его размещать — поговорим подробнее в следующем разделе статьи.

Советы по оформлению резюме:

  • сократите формулировки, если текст не умещается на одной странице документа;
  • проверьте орфографию и пунктуацию — например, через сервис «Орфограммка»;
  • выстройте иерархию мест учёбы и работы;
  • подберите лаконичный шрифт, к примеру, Proxima Nova или Montserrat;
  • добавьте подзаголовки и перечисления, где это уместно;
  • настройте отступы и межстрочные интервалы;
  • загрузите свою портретную фотографию.

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

Шаг 3. Собираем портфолио программиста

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

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

Где брать проекты для портфолио:

  • автоматизировать рутинные задачи — разработайте чат-бота, который находит адреса кофеен поблизости, или напишите мобильное приложение со списком задач и таймером по технике Pomodoro;
  • участвовать в открытых проектах — помогайте разрабатывать и улучшать уже существующие проекты и фиксируйте свой вклад в код. Найти opensource-проекты помогут сайты CodeTriage и Good First Issues;
  • выполнять тестовые задания — отличный способ пополнить портфолио новыми работами и не ломать голову над техзаданиями. Подобрать интересный проект можно в подборке тренировочных тестовых заданий на GitHub.

Когда у вас накопится 3–5 полноценных проектов, пора собирать портфолио. Вы можете создать собственный сайт-визитку, особенно если специализируетесь в веб-разработке, или же разместить кейсы на популярных сервисах для IT-проектов GitHub и Bitbucket.

Советы по оформлению портфолио:

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

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

Шаг 4. Ищем вакансии и заказы

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

Обучающие курсы

Самый простой способ найти работу — окончить курс с гарантией трудоустройства. В программу входят консультации с hr-специалистами, размещение резюме студентов в базе для работодателей, тренировочные собеседования, подбор подходящих вакансий, а иногда и сопровождение на испытательном сроке.

Если вы рассматриваете формат «обучение + трудоустройство», переходите в нашу подборку курсов для программистов и выбирайте подходящую программу.

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

  • Тинькофф Финтех — трёхмесячные курсы для студентов от 18 лет и выпускников вузов, в рамках которых участники оттачивают скилы в одном или нескольких направлениях разработки, а лучшие получают работу в команде «Тинькоффа». Набор проходит весной и осенью, для поступления необходимо сдать экзамены по программированию, математике и др.;
  • Тинькофф Академия Бэкенда — двухлетний курс для студентов технических специальностей. В программу входят онлайн-лекции и живые семинары, много практики на сложных бэкенд-задачах и обратная связь от преподавателей. Для поступления нужно сдать экзамен и пройти интервью;
  • Школа программистов hh.ru — бесплатная программа обучения фронтенд- и бэкенд-разработке для студентов-технарей и начинающих программистов. Занятия проходят 2 раза в неделю онлайн: 4 месяца теории и 3 месяца практики в команде с фидбэком от экспертов. Успешные выпускники курса устраиваются в штат HeadHunter или получают рекомендации в IT-компании;
  • Школы разработки от Сбербанка SberGraduate — это школы по iOS-, Android- и фронтенд-разработке для студентов технических вузов и начинающих специалистов в Москве и Санкт-Петербурге. Вас ждёт бесплатное обучение, практика на реальных задачах и возможность работать полный день с выплатой зарплаты, а по окончании школы можно получить оффер в команду Сбербанка. Чтобы принять участие в проекте, нужно пройти тестирование и собеседование.

Стажировки

Набраться практического опыта и окунуться в будни программистов помогут стажировки. Небольшие компании чаще всего берут новичков на бесплатной основе, а организации покрупнее платят зарплату. Найти актуальные вакансии для стажёров можно через сайты-агрегаторы Students.Superjob и hh.ru или просто через поисковик.

Вот несколько предложений стажировок для начинающих программистов в крупных компаниях:

  • Avito Technical Internships — стажировки для бэкенд- и Android-разработчиков в отдел продуктовой разработки московского офиса «Авито». Продолжительность — 6–12 месяцев, платят 40 000 руб. в месяц при нагрузке 20 часов в неделю и компенсируют питание. Желающим нужно выполнить тестовое и пройти техническое и hr-интервью;
  • Стажировки в Яндексе — это офисная работа для начинающих фронтендов, бэкендов, мобильных разработчиков, специалистов по машинному обучению и др. Продолжительность — от 3 до 6 месяцев, для поступления нужно выполнить тестовое задание и пройти несколько интервью. Лучшим могут предложить бессрочный контракт с «Яндексом»;
  • Тинькофф Старт — стажировки для студентов и выпускников вузов с зарплатой, бесплатными обедами и спортзалом. Участники прокачивают знания во фронтенде, системной инженерии, Java- или Scala-разработке: решают «боевые» задачи с командой и получают поддержку от куратора. Рабочий день проходит полностью удалённо или с посещением офиса, по 20 часов в неделю в течение года или по 40 часов летом. Набор стартует 3 раза в год, нужно сдать онлайн-экзамены.

Биржи фриланса

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

  • Workspace — вы можете зарегистрироваться в каталоге фрилансеров по своему направлению и найти заказы на создание и доработку сайтов, баз данных, мобильных приложений, игр и др.;
  • Хабр Фриланс — здесь размещают заказы для IT-специалистов разной сложности: создание телеграм-ботов и плагинов, проектирование интернет-магазинов, мобильных приложений и программ для ПК;
  • Kadrof.ru — небольшая биржа с разовыми проектами для программистов, иногда встречаются предложения удалённой работы;
  • 1clancer.ru — сайт с заказами для 1С-программистов, а в отдельном разделе собраны вакансии в офис и на удалёнку.

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

Агрегаторы вакансий

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

Рекомендуем разместить резюме и мониторить объявления на популярных сервисах:

  • Яндекс.Объявления,
  • Авито,
  • SuperJob,
  • Indeed,
  • Trudvdem.ru и др.

Не бойтесь откликаться на вакансии: отправляйте хоть по 30, 50 или 100 откликов в неделю. Так вы сможете в короткие сроки найти заинтересованных в сотрудничестве работодателей.

Сайты компаний: офисная и удалённая работа

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

Принесли вам сайты крупных компаний, которые регулярно набирают новых сотрудников:

  • Яндекс — открыты офлайн-вакансии для программистов в крупных городах России, Минске и Праге;
  • Team VK — в проекты экосистемы «Вконтакте» требуются IT-специалисты разных направлений в офис и на удалённую работу;
  • Zoon — рекомендательный сервис ищет разработчиков в офис в Москве;
  • FunBox — в IT-компанию требуются разработчики PHP, JavaScript, Elixir, Erlang и других направлений. Работать можно удалённо или в офисе в Москве, Ульяновске или Казани;
  • Playrix — компания-разработчик мобильных игр набирает программистов разных специализаций с возможностью работы из дома или в офисах в России и СНГ;
  • Shopozz.ru — сервис покупок за рубежом ищет веб-программистов в офис в Самаре и на удалёнку.

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

Стартапы

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

Где найти работу программисту в стартапе:

  • StartupFellows — здесь стартаперы публикуют вакансии для мобильных и веб-разработчиков, но многие предлагают сотрудничество без оплаты;
  • Вакансии в топ-стартапах — канал в телеграме с объявлениями российских и зарубежных стартап-проектов;
  • Stackoverflow — агрегатор международных проектов с предложениями для разработчиков и программистов разных уровней подготовки;
  • Remote Tech & Startup Jobs — англоязычный сервис с вакансиями в стартап-компании по всему миру.

Группы с вакансиями в соцсетях

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

В телеграме:

  • GetIT Russia — здесь вы найдёте вакансии для разработчиков и других IT-специалистов. Новые объявления публикуют несколько раз в неделю;
  • Telegram IT Job — HR-чат, где работодатели ищут IT-специалистов в офис. Для быстрой навигации по сообщениям используйте хештег #вакансия;
  • Data Science Jobs — канал посвящён поиску работы в области дата-сайенса, машинного обучения, нейросетей и др.;
  • Job for Mobile — канал специализируется на вакансиях для мобильных разработчиков;
  • Game Development Jobs — крупный телеграм-канал, где размещают вакансии и заказы в области геймдева.

Во вконтакте:

  • Уютное сообщество программистов — вакансии для программистов собраны в обсуждении «Работа», в постах — полезные материалы, а обсудить вопросы по разным языкам программирования можно в тематических беседах;
  • Типичный программист — популярная группа с полумиллионом участников: объявления размещают в обсуждении «Вакансии», а в постах делятся лайфхаками и новостями из мира IT;
  • ITc | сообщество программистов — объявления о поиске сотрудников вы найдёте в обсуждении «Вакансии», а в ленте публикуются обучающие видео, книги и другие полезности для программистов.

Шаг 5. Откликаемся на вакансии

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

Составили рекомендации, которые помогут начинающему программисту получить работу.

  1. Персонализируйте отклик. Работодателю нужен заинтересованный сотрудник, а шаблонный текст в духе: «здравствуйте, хочу у вас работать, вот резюме» — едва ли поможет выделиться из сотни кандидатов. Всегда указывайте название должности, на которую претендуете, и выстраивайте отклик исходя из требований вакансии.
  2. Прикладывайте к отклику сопроводительное письмо. В нём кратко рассказывайте, почему хотели бы работать именно в этой организации, какими навыками и опытом обладаете, а главное — почему вы подходите на вакантную должность и какую пользу можете принести компании.
  3. Придерживайтесь делового тона. Программисту важно уметь чётко и понятно выражать свои мысли, чтобы продуктивно взаимодействовать с командой. Пишите отклик тезисно и по делу, следите за орфографией и пунктуацией, а шутки и мемы пока приберегите.
  4. Говорите о себе честно. Если навыков не хватает, отметьте, что готовы быстро обучиться. Не стоит преувеличивать свои знания и достижения — тайное станет явным на собеседовании или испытательном сроке.

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

Шаг 6. Выполняем тестовое задание

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

Обычно тестовое рассчитано на 2–3 часа. Если же работодатель просит создать для него целый интернет-магазин — его добросовестность под большим вопросом.

Допустим, вы получили адекватную задачу — разработать 3 экрана мобильного приложения. Ваша цель — максимально качественно выполнить задание по ТЗ и обязательно уложиться в срок.

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

А если тестовое задание не поможет устроиться на работу, его можно скорректировать, доработать и положить в портфолио. В любом случае, время потрачено не зря.

Шаг 7. Готовимся к собеседованию

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

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

  1. Поищите информацию о компании в интернете. Неизвестность всегда пугает, но, возможно, в гугле уже писали о том, как обычно проходят собеседования в интересующей вас компании. Постарайтесь разведать полезную информацию, чтобы знать, к чему готовиться.
  2. Проанализируйте текст вакансии. Большинство вопросов эйчаров связано с задачами и требованиями, которые прописаны в вакансии. Повторите теорию, но помните, что вы идёте не на экзамен: нужно разбираться в теме на практике.
  3. Составьте план ответа на возможные вопросы. Продумайте заранее, как отвечать на типовые вопросы: какие технологии вам интересны, что планируете изучать в дальнейшем, почему хотите работать именно здесь. Эйчар обязательно отметит, что ваши интересы совпадают с вектором развития компании, а значит, вы сможете принести проекту пользу.
  4. Минимизируйте стресс в день собеседования. Продумайте образ и подготовьте одежду, постройте маршрут до места назначения и распланируйте время, чтобы точно не опоздать. Хорошо выспитесь и вкусно позавтракайте, а в пути послушайте любимую музыку или почитайте книгу, чтобы сбросить напряжение.
  5. Продемонстрируйте софт-скилы. На интервью важны не только хард-скилы, но и умение общаться, справляться с нагрузками и конфликтами и «вписываться» в команду. Проявляйте дружелюбие и искреннюю заинтересованность в проекте, чтобы произвести на работодателя позитивное впечатление.

Помните, что не знать ответа на вопрос — нормально, быть новичком — тоже. Вы не становитесь плохим программистом, если после собеседования вам отказали.

Остановитесь, выдохните и проанализируйте, почему это могло произойти:

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

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

Шаг 8. Проходим испытательный срок

Испытательный срок — это нормально. При официальном трудоустройстве вы ничем не рискуете, и максимум через 3 месяца станете полноправным сотрудником компании. А если трудовые отношения не сложатся, сможете уволиться, не отрабатывая ещё 2 недели.

Ниже даём рекомендации, которые помогут успешно пройти испытательный срок.

Советы новичку на испытательном сроке:

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

Помимо решения рабочих задач, обращайте внимание на внутреннее состояние и задавайте себе вопросы:

  • интересно ли вам выполнять свои обязанности и задачи;
  • подходят ли вам условия работы и график;
  • устраивает ли вас коммуникация в коллективе и с руководством;
  • видите ли вы своё будущее в этом проекте.

Подведём итоги

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

Ниже вы найдёте чек-лист, который поможет наметить основные шаги на пути к карьере.

Как найти работу начинающему программисту: 

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

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

Поделиться своим опытом или попросить совета можно в комментариях — не стесняйтесь, мы тыс радостью ответим на вопросы и подбодрим вас!

Добавить комментарий