Все знают, что сейчас программирование — это супервостребованная и супероплачиваемая профессия. Но немногие знают, что вакансий для начинающих очень мало. Все работодатели хотят, чтобы к ним пришёл человек, который уже что-то умеет. Напишет код, который не надо выкидывать. Джуниорских вакансий (не требующих опыта работы) мало, и конкуренция здесь очень большая. С одной стороны, существует огромная потребность в программистах. С другой — в начале карьеры вы можете столкнуться со сложностями. Работодатели обращают внимание в первую очередь на тех, у кого в резюме уже есть строчка о прошлом месте работы. Если у вас её нет, будет сложно.
Из собственного опыта скажу, что я окончил хороший университет и ожидал, что меня сразу завалят предложениями о работе. Но моё резюме вызывало минимальный интерес. Я получил два приглашения на собеседования, и никто меня не отрывал с руками.
Итак, как же новичку получить первую работу?
Название резюме
Оно должно как-то называться. Существуют два варианта.
- Допустим, вы программировали на разных языках. В школе наверняка писали на Pascal, а потом что-то делали на C++. Если вы постарше, то, возможно, знакомы с Delphi. Поэтому в названии резюме можно указать все языки, на которых вы писали. Авось какой-то заинтересует потенциального работодателя. Например, так: «Программист: delphi, python, php, html, java, c#, ruby, scala».
- Можно указать, что вы специализируетесь на чём-то одном, например на 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, и мы вам обязательно в этом поможем. Удачи вам, и до новых встреч!
Автор: GeekBrains