Программист самоучка как найти работу

Как программисты-самоучки в реальности получают работу

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

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

Вопрос с Quora:

Как программисты-самоучки в реальности получают работу?

Мне 17 лет и я занимаюсь программированием с 14-ти. Основной упор на Java, я получил 5 баллов по предмету AP Computer Science. Я довольно хорошо разбираюсь в Java (синтаксис, основные классы, GUI/JFrame и т.д.) и неплохо знаком с HTML5 и CSS3. Кажется, мне не хватает многих знаний, чтобы реально претендовать на работу в индустрии (например, как работают СУБД и какую из них следует использовать), и мне интересно, как другие программисты изучают такие вещи. Я планирую пойти в колледж по специальности «Разработка программного обеспечения», но меня начинает расстраивать мысль, что колледж — необходимое условие, чтобы получить работу. Есть ли какие-то курсы, которые я пропустил, хотя должен был изучить их, или что-то другое, чего я не сделал?

Мой ответ:

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

У программиста-самоучки много общего с тем, кто самостоятельно научился игре на гитаре. Не знаю, играл ли ты когда-нибудь на гитаре, так что объясню, как происходит обучение.

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

Далее происходит одно из двух. Или человек находит самоучитель игре на гитаре в каком-то виде, ИЛИ он идёт на YouTube и начинает пробовать играть свои любимые песни. Как правило, второй вариант эффективнее.

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

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

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

В конце концов игра на гитаре станет «естественной», а изучение новой песни — обычным и безболезненным делом. «Язык» гитары для него станет чем-то естественным, вроде человеческой речи.

Всё это происходит в течение тысяч часов практики. Даже если практиковаться несколько часов в день, процесс занимает годы.

Так какое это имеет отношение к программистам-самоучкам?

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

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

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

Чувствуешь разницу?

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

Например, сегодня каждый веб-разработчик (и его брат) используют WordPress. Задолго до WordPress я написал для себя 3 или 5 разных систем управления контентом на PHP и MySQL. Я делал игры. Писал мобильные приложения. Фреймворки. SAAS-приложения.

Никто не платил мне за это. Всё это я делал для удовольствия или для обучения, или из любопытства.

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

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

Так что могу дать совет, с помощью которого ты получишь огромное преимущество над теми, кто такого почти не делает…

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

В конце концов у тебя получится что-то работающее и довольно приличное.

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

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

Тебе 17… К 20-ти годам ты легко можешь вложить более 2000 часов в разработку своего навыка, в портфолио будет 10-20 проектов и ты выучишь многие уроки, которые учащиеся на курсах никогда не выучат.

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

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

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

Так что вылезай из скорлупы и создай что-нибудь. Пиши код!

Программист самоучка

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

Итак, условия задачи:

  1. Джуниор не имеет профильного диплома. Максимум, что есть в активе из образования – «корочки» профильных курсов.
  2. Опыт работы отсутствует вообще либо минимальный: стажировки, небольшой срок работы в каких-то малоизвестных компаниях, возможно, даже не совсем по профессии: тестировщиком, сисадмином и т.д.

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

Страхи и отказы: что с этим делать

Нужно смириться с тем, что будут и отказы

Никто не обещал, что вам будет легко. Просто это нужно принять и не бояться двигаться вопреки сложностям. Отправляйте резюме и запросы по максимуму вакансий, никто не знает, где именно вам повезет. И даже если вы ждете ответа от 10 компаний, не стоит останавливаться в поиске. В конце концов, если вдруг вам скажут «да» в нескольких фирмах одновременно, тем лучше! У вас будет выбор. А отказать тем, кто вам стал не интересен, вы имеете полное право.

Важно: На рынке труда выбирают не только вас, но и вы!

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

Основные страхи, которые нужно преодолеть:

  • Отказали по итогам собеседования? Ничего страшного, скорей всего, просто нашли кого-то вашего уровня, но уже с нужным опытом. Никаких самокопаний и размышлений на тему «я никому не нужен»! Просто движемся дальше.
    Помните: с теми же сложностями сталкиваются новички в любой сфере – с дипломом и без него. Это не вы чем-то плохи, а просто – объективная реальность. Вам тоже обязательно повезет.
  • Выполнили тест и нет отклика? Читаем выше: может быть, вам просто не повезло в этот раз. С другой стороны, вы получили практический опыт. При этом стоит проанализировать свой результат и поискать ошибки. А вдруг вы и правда чего-то не знаете? Лишний повод подтянуть знания.
  • Вы шлете резюме в компанию мечты, но вам даже не отвечают? Мечты должны сбываться. Не бойтесь посылать запросы повторно. Работайте над резюме. Постарайтесь выйти на специалистов в нужном вам отделе, минуя HR. Как угодно – через форумы и социальные сети, с предложением решения какой-то задачи или просто включите «наглость» и напишите на email. Помните – можно все, что не запрещено. И вполне может быть, что вас заметят. Но без фанатизма – все хорошо в меру.

И самое главное: оценивайте себя объективно, насколько это возможно. И разумно соотносите свои возможности и запросы.

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

А теперь перейдем к тому, что стоит иметь в числе преимуществ и как себя правильно подать.

Что ждут от джуниора самоучки?

Hello world

В большинстве случаев интерес к программистам без диплома и солидного опыта проявляют работодатели-программисты, которые занимаются поиском сотрудников без помощи «кадровиков». Причина очевидна – HR специалисты не могут оценить ваши знания и навыки. Они ориентируются на опыт работы, дипломы, курсы и т.д.  Впрочем, и тут есть исключения. Но лучше строить свою стратегию поиска, исходя из того, что вас будут оценивать опытные коллеги.

На что обращают особое внимание:

  1. Знание языков программирования. Никто не ожидает, что начинающий программист будет знать множество разных языков. Более того, если в резюме вы укажете такой обширный список, велика вероятность, что о вас подумают – «знает ничего обо всем». Выбирайте специализацию с умом. И указывайте только такие языки, где вы реально можете что-то показать.
    Просто представьте, что на собеседовании вас попросили набросать код в C#, а вы его указали просто потому, что читали учебник. Все. Собеседование провалилось. А если вы перечислите только такие языки, где вы и правда готовы демонстрировать знания, вероятность положительного решения заметно возрастет.
  2. Портфолио. В процессе обучения вы, скорей всего, что-то писали. Пусть и для себя. Не стесняйтесь показать свои решения. В том числе с открытым кодом. Чем больше будет подобных работ – тем лучше.
    Работодатель-программист сможет оценить ваш уровень знаний и умение находить оригинальные варианты решения задач.
  3. Тестирование. Часто при поиске сотрудников-джуниоров в качестве первого этапа запускают тест. Это нормальная практика, позволяющая отсеять тех, кто тест вообще не напишет, а также напишет безграмотно.
    Обязательно пишите тесты, вам практика только на пользу, а работодатель сможет оценить ваши плюсы на основе чтения кода.
  4. Резюме. Не поленитесь изучить основные правила и подходы к его составлению. Во-первых, нужно показать умение составлять документы в соответствии со стандартами. Во-вторых, к составлению резюме есть много подходов, позволяющих показать плюсы и скрыть минусы. Пользуйтесь примерами от опытных коллег и советами HR специалистов в интернете.
    Нужно понимать: ваше резюме будет читать изначально, скорей всего, секретарь или рядовой сотрудник-кадровик. И даже если оно попадет сразу на стол к руководителю-программисту, все равно будет просмотрено «по диагонали». Потому очень важно составлять этот документ так, чтобы информация о ваших плюсах была на самом виду.

Собеседование: как себя вести

Уверенность на собеседовании

Ура! Вас позвали на собеседование. Обычная реакция новичка в профессии – страх и неуверенность в себе. Что ж, если вы будете «заикаться» и путаться в азах профессии из-за нервной реакции, скорей всего, об этой работе можно забыть.

А потому берем себя в руки. Вспоминаем об основном правиле рынка труда: выбирают не только вас, но и вы тоже. Как вариант, может помочь мысль: «На такую должность и оклад найти специалиста лучше у них не выйдет, это я к ним снисхожу». Даже если это совсем не так, именно такое ощущение внутри помогает.

Работодатели – такие же люди. Они также чувствуют психологический настрой соискателя. И если вы покажете уверенность в себе, то отношение будет на порядок лучше. Само собой, самоуважение – это ни разу не хамство. Даже если вам безумно страшно, не скатывайтесь на этот уровень. Как и на уровень «ну, пожалуйста, возьмите меня».

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

Если работодатель видит, что вы – спокойны и заинтересованы не просто получить любую работу, но задаете вопросы о своих интересах, это дополнительный плюс. У работодателя складывается ощущение: «видимо, у человека есть и другие варианты, значит, он того стоит».

Поговорим о резюме

Как писать резюме

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

Особенности составления документа для программистов:

  1. Отправляйте работодателям резюме, где в первых строках будет указаны нужные им знания (языки программирования, фреймворки и прочее).
  2. Если вы знаете несколько разных направлений, составьте по каждому их них отдельное резюме. И отправляйте с учетом специализации.
    Например, для веб-студии – в резюме будет php, html, JavaScript и т.д. А для должности системного администратора лучше рассказать подробнее о глубоком знании операционных систем, умении настраивать сервера, локальную сеть и пр.
  3. Не бойтесь писать об отсутствии опыта работы. В идеале вместо этого можно указать ссылки на портфолио и на какую-то проектную работу, где вы принимали участие в любом качестве (тестировщик, кодер) – и не забудьте честно указать, что вы там делали. Честность – важный фактор. Учтите, что к разработчикам проектов могут обратиться.

Фриланс и работа в компании

Фриланс

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

Плюсы фриланса:

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

Минусы фриланса:

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

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

Причины такие:

  1. Возможность получить практический опыт и наработать портфолио.
  2. На международных фриланс-биржах много HR-хантеров от мировых лидеров индустрии. Если вы покажете себя классным специалистом, они к вам сами обратятся с очень достойными продолжениями.

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

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

Недавно мы с Алексеем Паршуковым, Unit Lead в SkyEng, ex-CTO DocDoc, проводили вебинар «Быстрый старт в Программировании с нуля» и обсудили различия в изучении языков программирования, суть профессии программиста, как устроиться на работу и какие бывают работодатели. Посмотреть вебинар вы можете по ссылке, а статью по нему прочитать прямо сейчас :)

Что такое работа программистом?

У профессии программиста есть очевидные плюсы, о которых всем известно:

  • Хорошие зарплаты

От 100 т.р. по регионам России, 250-300 т.р в Москве, за рубежом от 10 тысяч долларов.;

  • Гибкий график

Разработчик — это преимущественно удаленная работа;

  • Востребованность на международном рынке

Это одна из самых простых профессий для иммиграции.

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

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

И еще один недостаток, о котором мало кто говорит, — достаточно сильная дискриминация по возрасту. Если вы студент, то найти работу будет достаточно просто. Если вам 30-40 лет, то вам рады в любой технологической компании. Если вам чуть за 40, то уже будет сложнее. Но если вам за 50, то вы, скорее всего, работу нигде не найдете. Об этом стоит помнить, такое существует.

Как понять, подходит ли вам работа программистом?

Здесь не так важно, какое у вас образование, закончили ли вы институт по профессии. Главное, чтобы у вас была сильно развита усидчивость. Почему это так важно?

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

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

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

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

Какие бывают работодатели?

Фриланс

Как правило, это небольшие задания за небольшие деньги. Их можно достаточно быстро сделать. Они размещаются на биржах фриланса. Основная биржа в России — freelance.ru. Основная международная — upwork.com.

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

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

Студии/Интеграторы/Аутсорсеры

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

Из плюсов:

  • Большой поток совершенно разных проектов

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

  • У большинства этих компаний выстроены достаточно четкие процессы

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

  • Высокий уровень

У них можно хорошо научиться разрабатывать программное обеспечение.

Из минусов:

  • Не все компании классные

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

  • Мало свободы

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

Для того, чтобы попасть в эти компании, нужно знать прикладные языки программирования. Например, PHP, Python, Java, Javascript.

Это хорошее место для начала карьеры.

Стартапы/Небольшие компании

Таких компаний сотни. Каждый день открывается десяток новых, но девять из них обязательно закроется.

Есть масса преимуществ, почему стоит попробовать работать в стартапе:

  • Это очень драйвово и весело;
  • Проще всего заработать действительно большие деньги.

На ранних этапах, зачастую, учредитель активно делится своими акциями, особенно, если стартап взлетит и будет быстро расти, то вы очень скоро станете миллионером;

  • В проектах нет Legacy, нет старого кода, от которого хочется плакать
  • Большое количество свободы

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

Но есть и минусы:

  • 9 из 10 компаний закрываются

Многие из них закроются ещё в течение первого года, так и не запустив продукт;

  • Слабая возможность обучения

Как правило, в эти компании приходят не самые лучшие специалисты, не всегда там будет чему научиться;

  • Непредсказуемость

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

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

Банки/Энтерпрайз

Плюсы:

  • Стабильность;
  • Хорошая зарплата;
  • Низкий уровень ответственности

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

Минусы:

  • Очень низкая скорость работы

Вы можете год или два пилить фичу, так ее и не выпустив, потому что за это время она потеряет свою актуальность. Зарплату, конечно залпатят, но эта штука очень демотивирует;

  • Специфический опыт

Как правило, это какой-то свой банковский софт. В основном, это старый код, в котором не очень приятно и не очень интересно работать;

  • Сменить сферу деятельности здесь будет довольно сложно

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

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

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

Плюсы:

  • Актуальные технологии;
  • Отлаженные процессы;
  • Команда профессионалов;
  • Высокий уровень стабильности.

Минусы:

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

У каждой компании этот набор инструментов свой, и данный опыт будет не слишком релевантен для рынка и для перехода на другое место.

Как выбрать язык?

Зависит от того, чем вы хотите заниматься и в какую компанию хотите пойти.

PHP, например, очень популярный язык. Он используется в куче российских и зарубежных компаний, в том же Facebook. Но нет никакого смысла учить PHP, чтобы устроиться в Twitter, потому что он там не используется. Если вы хотите в Яндекс, надо учить Python или Java. Переучиваться с PHP на Java очень непростой процесс.

Лучше всего сразу определить для себя 2-3 компании, в которых вы бы хотели работать. Узнать, какие они используют языки программирования и изучать их. Либо, отталкиваться от понравившегося языка и затем искать компании, которые его используют.

Какие бывают разработчики?

Backend

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

Типичные языки: PHP или Python, а так же менее распространенный Ruby.

Frontend

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

Fullstack

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

Мобильная разработка

По сути, это тот же фронтенд, но здесь используются другие языки. Здесь нет смысла вникать в языки программирования, которые использовались 5 лет назад, такие как Objective-C и Java. Сейчас используются Swift и Kotlin. Все новые приложения пишутся именно на этих языках, а старые под них переписываются.

GameDev

Это отдельная сфера. Здесь, как правило, используется C++ и специальные библиотеки, такие как Unity и т.п. Разработчик, который умеет делать мобильное приложение на Kotlin, не сможет написать игру, потому что используется совершенно другой стек, совершенно другие технологии.

Desktop

Это то, что нативно запускается у вас на компьютере. Например, браузер, Word и т.д. Чаще всего используется C++, С#. Мощные приложения пишут на C++. Иногда десктопные приложения пишут на Delphi, потому что это намного проще и дешевле.

Это самый популярный продукт в России. Он используется, так или иначе, в любой российской компании. Его главный минус в том, что кроме России он нигде не используется. Он очень узкий, из 1С очень сложно уйти, но вакансий очень много и они неплохо оплачиваются.

DevOps

Это системные инженеры, которые настраивают компьютеры. Сейчас компьютеров нужно много, продукты сложные. Facebook, например, использует десятки тысяч серверов и для того, чтобы их было проще администрировать, чтобы код быстрее закатывался с компьютеров разработчиков в продуктивную среду и быстрее докатывался пользователям, нужны инженеры, которые умеют это дело преобразовывать, автоматизировать, автоматически вводить в строй десятки тысяч серверов. Они делают это при помощи программных инструментов. Самый востребованный язык в этой сфере Python и Bash. Изучение питона любым системным администратором поднимет его зарплату минимум в полтора-два раза.

AI/ML/BigData/Криптовалюты

Чаще всего разработчики этих сфер используют все те же самые языки. ML и анализ данных это в основном Python и иногда чуть-чуть Java. Криптовалюты используют C++. Здесь особенность в том, что требуется хорошее знание математики и глубокое знание прикладных инструментов. Обычный разработчик на питоне вряд ли сможет за неделю переквалифицироваться в разработчика ИИ, так как потребуется более глубокое погружение.

Как не нужно выбирать язык и направление?

  • Не ориентироваться на зарплаты

Согласно исследованиям опубликованным на Habr, самым высокооплачиваемым языком является Eclipse. Это довольно модный, молодежный, позитивный и современный язык. Но что случится, если вы сегодня начнете его учить? Сейчас на hh.ru всего 11 опубликованных вакансий. И даже если вы зайдете на место с высокой зарплатой, это не значит, что через несколько лет он будет все также актуален. В таком случае можно оказаться невостребованным, а переключение с одного языка на другой — достаточно сложная история;

  • Не стоит выбирать модные, экзотичные, ограниченные или вымирающие языки

На экзотичные языки (Scala, Eclipse) очень мало вакансий и, как правило, они все для опытных разработчиков. Устаревшие языки обычно дают в институте/школе, например, Pascal. У них нет никакого прикладного применения, они не востребованы на рынке. Как и не стоит начинать с 1С из-за его ограниченности.

  • Не стоит начинать со сложных языков

Не лучшим решением будет начать с С/С++. В интернете есть даже такой мем: изучить С++ за 40 дней. Это сложный в освоении язык. Необходимо потратить много времени, чтобы у вас начало что-то получаться и вас стали ценить на рынке. Если вы собираетесь идти в геймдев, то альтернативы никакой нет, придется учить С++. Но, например, в Яндекс можно попасть Java и Python разработчиком.

Хорошие языки для старта

  • HTML/JavaScript

Они просты в освоении. На них проще всего почувствовать нравится ли и подходит ли вам программирование. Знания этих языков будут полезны вам в любой выбранной далее области;

  • PHP/Python

Тоже просты в освоении. Очень много вакансий с позицией junior. И с течением времени, вы сможете использовать эти знания при переходе на более крутые позиции. Можно сделать карьеру разработчика от junior до senior за 2-3 года, достигнув высоких показателей по зарплате;

  • Java/C#

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

С чего проще начать?

  1. Сделайте свою HTML-страничку.

  2. Попробуйте подключить 1-2 строчки JavaScript, поймите что такое циклы, условия.

  3. Прочитайте книгу по любому языку программирования для чайников. В свое время была очень популярна книга «PHP для чайников». С нее многие начинали и искали свою первую работу после прочтения.

  4. Пройдите курсы. Курсы полезны с точки зрения практического опыта.

  5. В идеале, пройдите стажировку. Она даст вам много полезного практического опыта, после чего можно будет найти работу в каком-то другом месте, даже если вас не трудоустроят по месту прохождения стажировки. Минусами стажировки может стать fill-time занятость и низкая оплата труда или даже стажировка без оплаты.

  6. Устройтесь на работу мечты. Скорее всего, с первого раза у вас это не получится. Первая работа, обычно, дурацкая. Но через полгода-год можно уже пробовать свои силы в той компании, которая вам нравится. Или запустите собственный проект.

Как не нужно делать?

  • Не стоит идти в смежные профессии: тестирование или тех. поддержка

Если вы уже в этой сфере, то, конечно, стоит пробовать свои силы в разработке, но если вы юрист или только закончили ВУЗ и не знаете, как строить карьеру, то не нужно выбирать такой сложный и долгий путь. Сразу изучайте программирование, прикладные инструменты и ищите работу программиста. Вполне возможно осуществить это в сжатые сроки;

  • Не нужно устраиваться в IT-компанию на другую должность

Например, работа курьером в Яндексе никак не поможет вам устроиться туда же программистом;

  • Не надо упарываться трудоустройством в топовую компанию

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

Нюансы работы разработчиком

  • Первое место работы не будет долгим

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

  • Есть смысл переезжать в Москву и далее на запад

Даже если вы попали на удаленную работу, целесообразно двигаться в направлении развития. Так вы будете расти намного быстрее. И самое главное, это напрямую влияет на зарплату. Разница между зарплатой в регионах и в Москве будет около 50%, и гораздо больше в штатах, если вы туда переедете;

  • Не стоит выбирать узкую специализацию

На рынке программисты с широким спектром навыков намного более востребованы, нежели узкие специалисты;

  • Развивайте софт скилы

Это даст вам возможность эффективно коммуницировать в компании, понимать друг друга. Чем больше вы растете профессионально, тем меньше будет требоваться знание непосредственно программирования, нежели знание того, как эффективно добиваться результатов в команде;

  • Понимайте свою мотивацию

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

Как подготовиться к собеседованию?

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

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

Что спрашивают у джунов на собеседовании?

  • Тестовое задание

Практически все компании будут просить вас сделать тестовое, его обязательно нужно будет сделать;

  • Примеры кодов

Лучше заранее сделать какое-нибудь задание на фрилансе или какой-нибудь pet-project, поработать над ним хорошенько, сделать так, чтобы он выглядел красиво;

  • Подготовить ответы на вопросы о вашем опыте и кем вы видите себя через 5 лет

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

Стоит изучить азы на следующие темы:

  • Объектно-ориентированное программирование;
  • Базы данных. Не обязательно учить огромный двухтомник по оптимизации SQL, но как делать SQL запросы в базовом виде стоит знать;
  • Паттерны проектирования;
  • Система управления версиями (Git)
  • Базовые возможности языка. Например, как подключаются пакеты PHP.

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

Хотите узнать ещё больше о работе программистом?

Записывайтесь на наш шестимесячный онлайн-курс «Профессия: Программист» 👉 Узнать подробности!

В этом материале о том, как найти работу начинающему программисту вы узнаете:

  1. Как составить резюме программисту без опыта и найти работу
  2. Где искать вакансии и работу начинающим и junior разработчикам без опыта, чтобы получить работу
  3. Как собрать портфолио начинающего программиста
  4. Как junior-у написать сопроводительное письмо
  5. Как выполнять тестовые задания программистам без опыта
  6. Как программистам новичкам проходить собеседования, чтобы обзавестись работой

Составьте резюме программиста без опыта, чтобы найти работу

Рассказываем, как получить работу программисту. Главный сайт по поиску работы в России — HeadHunter. Форма резюме hh — стандарт для всех, кто ищет работу. Поэтому сначала сделайте резюме программиста там.

На что обратить внимание в резюме, чтобы получить работу программиста:

  • не перечисляйте все технологии программирования, с которыми вы знакомы. Сфокусируйтесь на главной, которая будет нужна в работе. Если нужно, можно добавить 2-3 вспомогательные. Например: JavaScript + HTML + CSS
  • указывайте даже тот опыт работы, который не относится к IT и программированию. Это поможет рекрутеру оценить ваши софт скиллс и разглядеть в вас ценного работника
  • указывайте все образование, которое у вас есть. Загрузите сертификаты курсов и/или дипломы, даже если они не связаны с программированием
  • укажите софт-скиллс, если они важны в вашем рабочем направлении. Свободный английский для разработчика важен. А вот навыки переговорщика на джуниор-позиции вряд ли понадобятся в работе.

Даже если вы проходили образовательные курсы по программированию, но сомневаетесь в их качестве, это не страшно. Все равно прикладывайте сертификаты к резюме, когда ищите работу. Мы поговорили с Фаиной Лернер, директором по управлению персоналом в EPAM. Вот что она об этом сказала:

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

А вот что думает HR-менеджер DataArt Дарья Анурова о том, как нужно составлять резюме начинающим разработчикам и программистам, чтобы получить работу:

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

Не надо писать красиво и высокопарно. Вы работаете в технической сфере. От вас ожидают логики. В том числе при составлении резюме: соцдем + опыт + портфолио»

Когда составите резюме на HeadHunter, зарегистрируйтесь на других площадках по поиску работы: Superjob, Geekjob и др. Вот полный список.

Где искать вакансии и работу начинающим программистами и junior разработчикам без опыта:

Сайты с вакансиями для программистов без опыта:

  • HeadHunter
  • Superjob
  • Geekjob
  • vc.ru
  • Linkedin (работает только через VPN)
  • Работа ру
  • Хабр Карьера

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

  • @solvery
  • @tproger_official
  • @getitrussia
  • @qa_jobs
  • @it_hunters
  • @jobskolkovo
  • @jobGeeks
  • @javascript_jobs
  • @ru_pythonjobs
  • @myjobit
  • @mobile_jobs
  • @logic
  • @remowork_ru
  • @distantsiya
  • @remoteit
  • @fordev
  • @mobile_jobs
  • @devops_jobs
  • @fordevops
  • @webfrl
  • @devjobs
  • @gamedevjob

Если вы хотите работать разработчиком в какой-то конкретной компании, то найдите на ее сайте раздел «вакансии» и следите за ним. Он есть у всех корпораций. Например:

  • Яндекс
  • Mail.ru
  • Сбербанк

Соберите портфолио начинающего программиста, чтобы найти работу

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

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

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

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

Пишите сопроводительные письма от Junior программиста

Теперь вы можете откликаться на вакансии и активно искать работу программиста. Площадки для поиска работы — как поисковые системы. Впишите в центральную графу «разработчик + свое направление». Для удобства используйте фильтры поиска работы: по опыту работы, знаниям, географии и другие.

Чтобы получить работу программиста, изучите требования к кандидатам. В среднем они будут одинаковые по каждому уровню и направлению. Выпишите навыки и технологии, которыми нужно владеть, чтобы получить работу программиста. У вас с ними ок? Если не хватает 1-2 технологий, то сейчас самое время подтянуть квалификацию и добрать недостающие знания. Все равно их придется использовать в работе программиста.

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

Вот как выглядит идеальный junior программист с точки зрения Дарьи Ануровой, HR-менеджера DataArt:

«Обязательно наличие хоть какой-то практики + базовые теоретические знания. Плюс разговорный английский, он нужен на любом уровне»

Как получить работу программисту без опыта: 6 проверенных советов для junior разработчиков от профессионалов Как найти Как стать Как научиться

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

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

Вот что советует писать в сопроводительном письме программиста Олег Кузнецов, директор по развитию ПО в Lipt-Soft, чтобы получить работу:

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

Тестовые задания на вакансии начинающих разработчиков, чтобы найти работу

Многие работодатели просят кандидатов программистов выполнить тестовое задание, перед тем, как проводить собеседование о получении работы программиста. Это один из главных критериев при выборе будущего сотрудника. Обычно оно адекватное и занимает 1-3 часа времени. Выполните его как можно лучше. Если есть опытные товарищи, которые могут проверить содержание и подсказать, где вы накосячили — купите им шоколадку и попросите о помощи.

Только не вздумайте просить их полностью выполнить тестовое за вас. Это не одно и то же. Обман раскроется. Вы испортите свою репутацию в IT-рынке. Получить работу програмиста будет намного сложнее.

Как найти работу программисту без опыта: 6 проверенных советов для junior разработчиков от профессионалов Как найти Как стать Как научиться

Собеседования программистов без опыта работы

Если вы все сделали правильно, то некоторые компании позовут вас на собеседование. Разговоров может быть даже два: до выполнения тестового и после него. Базовые правила прохождения собеседования при приеме програмимста на работу похожи на базовые правила джентльмена:

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

Вот что советует тем Junior-разработчикам, которые хотят получить работу программиста, директор по разработке ПО Lipt-Soft Олег Кузнецов:

Многие читали истории о том, что приходится решать сложные задачи по информатике на «бумаге» или по телефону, проходить несколько раундов интервью. Но это встречается только у крупных работодателей: Yandex, Google, Facebook. Большинству HR-ов достаточно демонстрации желания учиться и отличного отношения к делу.

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

Интервьюер пытается получить ответы на несколько вопросов:

хорошо ли вы впишитесь в команду?
интересны ли вам технологии, которые используются на проекте?
как вы общаетесь?

Эти вопросы напрямую могут не задать прямо, но обязательно зададут косвенно. Например:

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

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

Будьте готовы ответить на главный вопрос: «Почему именно мы?» Интервьюеры хотят знать, что именно привлекает вас в их компании: миссия, крутые технологии, классный продукт или отличная команда.

Если переживаете за уровень своих технических навыков и не уверены, что сможете получить работу программиста, потренируйтесь на Stepik или Leetcode.

Как найти первую работу программисту без опыта: 6 проверенных советов для junior разработчиков от профессионалов Как найти Как стать Как научиться

Резюме: как начинающему программисту без опыта найти первую работу

  1. Составьте резюме разработчика на HeadHunter
  2. Опубликуйте его на HH и остальных площадках, где можно найти работу программисту без опыта
  3. Соберите портфолио начинающего разработчика, чтобы получить работу программиста
  4. Откликайтесь на вакансии программистов без опыта с сопроводительным письмом
  5. Выполняйте тестовые задания для разработчиков, чтобы обзавестись работой программиста
  6. Проходите собеседования и устраивайтесь на работу программистом

Как найти работу программисту, даже новичку без опыта?

Как найти работу программисту, даже новичку без опыта?

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

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

Как устроиться программистом без опыта работы?

Несмотря на высокую конкуренцию на рынке ИТ, крупные компании готовы брать в команду талантливых новичков. Потому что:

  • Они уже имеют базу знаний, а остальному быстро учатся.
  • Новичков не нужно переучивать (как это бывает с устоявшимися профи) и легко «слепить» под себя.
  • Им не нужно платить большую зарплату, в то время как разработчики с опытом стоят дорого.
  • В них есть «искра», от энтузиастов большая отдача.

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

Где и как искать вакансии начинающим разработчикам?

  • Знакомые. Опыт можно получить, выполняя задачи для знакомых, друзей или родственников. Денег вы на этом вряд ли заработаете, но получите готовый кейс, который можно показать потенциальному работодателю. Плюс запустится «сарафанное радио», а это тоже возможность получить рабочее место.
  • Митапы, хакатоны, конференции. Здесь встречаются люди из разных направлений ИТ: делятся опытом, совместно решают задачи, налаживают знакомства. Новичку такие мероприятия полезны вдвойне: можно и опыт перенять, и с «нужными» людьми из индустрии пообщаться. Есть вероятность, что о вас вспомнят, когда понадобится человек на позицию trainee или junior. Обязательно оставляйте свои контакты новым знакомым!
  • Вакансии на сайтах ИТ-компаний. Часто компании размещают на сайтах тестовые задания для кандидатов или предлагают специальные программы для новичков. Например, в Яндекс можно попасть через программу Буткемп. Подпишитесь на новости в группе Клуб фрилансеров – мы анонсируем там мероприятия, помогающие устроиться на работу в разные компании.
    Кстати, здесь большая подборка тестовых заданий, на которых можно прокачать навыки и написать кейсы для портфолио.

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

  1. Стажировки или обучающие курсы. Крупные компании устраивают стажировки (чаще неоплачиваемые) для новичков или организуют собственные обучающие курсы, чтобы затем предложить место в команде лучшим кандидатам.
  2. Биржи фриланса. Здесь встречаются вакансии, в том числе удаленные, от компаний и разовые заказы от частных лиц. Вам могут платить мало (а иногда и вовсе предложить работать за отзыв), но для отработки навыков и наполнения портфолио — вполне подходят.
  3. Агрегаторы вакансий. Тут можно найти работу как в малых компаниях вашего региона, так и в ИТ-гигантах (Яндекс, Mail.ru, Тинькофф и т.д.).
  4. Сайты компаний. Часто на сайтах крупных компаний есть раздел «Вакансии». Если их постоянно мониторить, то можно устроиться на работу мечты даже без опыта.
  5. Соцсети. Во ВКонтакте, Телеграме, Facebook есть профильные группы с вакансиями (в конце статьи будет большой список сайтов и групп для поиска работы).
  6. Стартапы. Здесь тоже нет больших зарплат, зато от новичков не требуют глубоких знаний и навыков — всему обучают в процессе работы.
  7. Удаленная работа. Многие компании сегодня нанимают разработчиков удаленно, в том числе готовы рассматривать начинающих специалистов. В этом обзоре собрано почти 50 таких организаций.

Как устроиться на работу программистом: 5 шагов для достижения цели

Итак, вы нашли подходящую вакансию, на которую хотите устроиться, что делать дальше?

  1. Определите, какие именно навыки требуются от кандидата.
  2. Составьте резюме.
  3. Откликнитесь на вакансию.
  4. Подумайте, какие вопросы могут задать на встрече.
  5. Смело отправляйтесь на собеседование.

Рассмотрим каждый шаг подробнее.

1. Как определить необходимые знания и навыки для получения первой работы?

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

Например, если компании требуется Web-разработчик (fullstack), то, скорее всего, от вас ждут навыков в PHP, HTML, CSS, JavaScript, Python, SQL. В описании задач упор идет на frontend-разработку — нужны три языка: HTML, CSS, JavaScript.

Уверены, что объема ваших знаний достаточно? Откликайтесь на вакансию, предварительно состав хорошее резюме.

2. Как подготовить резюме?

Грамотно составленное и оформленное резюме имеет большое значение. В нем желательно отразить информацию, которая касается конкретной вакансии — только релевантный опыт и знания, без лишней «воды» и самолюбования.

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

Что нужно обязательно включить в резюме:

  1. Образование. Пишите все: ВУЗы, курсы, участие в олимпиадах, хакатонах, воркшопах. Это многое расскажет о вашем «багаже» и раскроет личность. Важно знание английского языка — чем выше уровень, тем лучше.
  2. Опыт работы. Опишите задачи, которые доводилось решать, и лучше в формате кейсов (стояла такая-то задача, решил ее таким-то путем, получил вот такой результат).
  3. Портфолио. Для программиста лучшее портфолио — хранилище кодов Github. Так работодатель увидит ваши скрипты и сможет оценить уровень подготовки.
  4. Ключевые навыки. Перечислите свои фундаментальные (ОС,сети, алгоритмы и структура данных, базы данных) и прикладные (языки, фреймворки, библиотеки и т.д.) навыки. Но не все сразу, а только важные для конкретной вакансии.
  5. О себе. Здесь не надо писать, что вы коммуникабельный, легкообучаемый и усидчивый. В вас хотят видеть человека, с которым предстоит тесно общаться. Опишите круг своих интересов, хобби, то есть дайте работодателю точки соприкосновения, чтобы легче было найти общий язык.

Что сыграет против вас:

  1. Отправка файла в текстовом формате. На ОС Mac и Linux документ не откроется. Сохраняйте и отправляйте резюме в формате PDF. Его смогут открыть и прочитать на любых устройствах.
  2. Отправка резюме в теле письма. Чтобы им поделиться, получателю придется совершить лишние действия, а это раздражает. Да и читать такую «простыню» неудобно. Проявите уважение — отправьте резюме вложенным файлом.
  3. Ошибки. Грамотный человек заметит все ваши ошибки и опечатки — впечатление даже от самого хорошего резюме будет испорчено. Перед отправкой вычитайте текст и/или «прогоните» его через сервис типа «Орфограммка».
  4. Повествование от первого лица. Не должно быть никаких «Я». Пишите от третьего лица в прошедшем времени: изучил, написал, сделал и т.д.

3. Как правильно откликаться на вакансии?

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

Если в вакансии не перечислены требуемые языки, то отталкивайтесь от описанных задач. Например, если фигурирует разработка мобильных приложений, то, скорее всего, тут нужен Java, Swift или Objective-C.

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

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

4. Как подготовиться и пройти собеседование?

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

Чем больше вопросов вы проработаете, тем увереннее будете чувствовать себя на собеседовании и быстрее получите первую работу. Не стесняйтесь задавать уточняющие вопросы. Отвечайте по существу, без пространных размышлений на отвлеченные темы. Не «якайте» и не пытайтесь казаться большим профессионалом, чем вы есть.

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

5. Что делать, если не взяли?

Не опускать руки. Проанализируйте моменты, на которых откровенно «плавали». На каком вопросе стало понятно, что вы не подходите? Чего не хватило? Где-то были нечестны и это всплыло?

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

Может потребоваться пройти несколько собеседований, чтобы получить первую работу. Это нормальная практика и она не говорит о том, что устроиться на работу программистом сложно. Знайте, что каждое собеседование, даже если вас не взяли, приближает к получению работы.

Как может развиваться карьера программиста?

В программировании есть два пути развития:

  1. Горизонтальный. Специалист расширяет компетенции, становится экспертом в своей области, формально оставаясь на той же должности. Происходит нишевание. Чем выше экспертность, тем выше востребованность разработчика и, соответственно, зарплата. Это развитие по вектору от Junior к Middle и далее к Senior.
  2. Вертикальный. От разработчика – к руководителю команды. Как правило, чтобы стать руководителем, необходимо вначале продвинуться на позицию Senior-программиста.

Отличия между Junior, Middle и Senior

Границы тут условные. Нельзя сказать, что отработав условные 5 лет, человек точно перейдет в категорию Middle — некоторые и за 10 лет могут не нарастить скиллов для этого уровня.

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

Junior

Middle

Senior

Опыт работы

0,5-2 года

2-5 лет

от 5-7 лет

Знания и навыки

  • Разбирается в языке и технологиях.
  • Работает под руководством ментора.
  • Понимает и может применять стандартные архитектурные решения.
  • Быстро и качественно решает типовые задачи.
  • Работает самостоятельно по краткому ТЗ.
  • Создает архитектуру ПО.
  • Пишет фреймворки и инструменты, которыми потом пользуются младшие коллеги.
  • Понимает бизнес-процессы.
  • Принимает технологические решения в проекте.

Задачи, которые решает

  • Технические задачи, четко описанные в конкретных рамках.
  • Юнит-тесты.
  • Правки мелких багов.
  • Бизнес-задачи, закрывающие конкретный бизнес-функционал или проблему.
  • Самые сложные и нестандартные бизнес-задачи.

Ответственность

Минимальная

За конкретный проект или функционал, которые написал сам.

Отвечает за архитектуру, скорость и эффективность всего кода проекта или компании.

Зарплата

$500-1000

$1000-2000

$2500-6000

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

Приведенная классификация не означает, что позиция Senior — вершина карьеры программиста. Всегда есть, куда расти.

Куда может расти Senior-разработчик?

После нескольких лет работы на позиции Senior программист может вырасти до:

  • Software Architect. Архитектор ПО проектирует программные решения и продумывает, как именно будут взаимодействовать между собой компоненты системы.
  • Team Lead. Рост идет в менеджмент: организация процесса работы по проекту, распределение задач, ответственность за результат всей команды.
  • Project Manager. Функционал расширяется еще больше: управление командой, распределение задач, риск-менеджмент, знание смежных отраслей.
  • Delivery Manager. Такой специалист совмещает функции Software Architect и Project Manager. Это относительно новая позиция и встречается пока редко.

Советы, как программисту быстрее найти работу

  1. Прокачивайтесь всегда, везде и при любой возможности.
  2. Наполняйте портфолио кейсами.
  3. Если нет реальных заказов, выполняйте чужие ТЗ.
  4. Храните свои наработки на Github.
  5. Налаживайте связи с людьми.
  6. Перенимайте чужой опыт.
  7. Учитывайте прошлые ошибки.
  8. Ищите вакансии на всех возможных ресурсах.
  9. Не забывайте про «сарафанное радио».
  10. Не бойтесь откликаться на интересные вакансии, даже если навыков для трудоустройства пока недостаточно.
  11. Вникайте в суть вакансии и в откликах демонстрируйте понимание потребностей работодателя.
  12. Прорабатывайте список возможных вопросов перед собеседованием.
  13. На собеседовании держитесь уверенно.
  14. Если не взяли на работу, анализируйте слабые места, прокачивайтесь и делайте новые попытки.

Список полезных сайтов для поиска работы

Биржи для фрилансеров:

  1. FL.ru
  2. Kwork.ru
  3. Хабр Фриланс
  4. Kadrof.ru
  5. Upwork.com

Сайты, где программисты могут искать работу:

  1. HH.ru
  2. Яндекс.Работа
  3. Хабр Карьера
  4. IT Mozg
  5. IT Работа

Группы в Facebook:

  1. Программисты
  2. IT Recruitment
  3. Работа IT

Группы в сети ВКонтакте:

  1. Типичный программист
  2. Клуб фрилансеров
  3. ITc сообщество программистов
  4. Уютное сообщество программистов
  5. ITmozg
  6. Веб-программист
  7. Программисты C/C++
  8. Я веб-программист (php, js)
  9. 1С-Битрикс
  10. Типичный верстальщик
  11. Верстка сайтов
  12. Верстальщики
  13. DigitalHR

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

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

Рекомендуем

Как успешно пройти собеседование при приеме на работу?

Все мы периодически ищем работу и проходим собеседования. Даже фрилансерам, не работающим в офисах, важно иметь такие навыки. Данная статья …

Как создать команду из фрилансеров?

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

Понравилась статья? Поделить с друзьями:
  • Как найти друзей в фри фаер
  • Как найти каналы на телевизоре тошиба
  • Читать новеллу я неправильно воспитал злодея как мне это исправить
  • Как найти производную частного формула
  • Как найти проверка обновлений