Написать пост

Хочу стать программистом, прошёл курсы программирования, что делать дальше? Отвечают эксперты

Аватар Никита Прияцелюк

Очередные курсы позади, а работодатель всё ещё не стучится в дверь. Что делать начинающему программисту в таком случае? Узнаем у экспертов.

Обложка поста Хочу стать программистом, прошёл курсы программирования, что делать дальше? Отвечают эксперты

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

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

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

Выполняя задания, можно понять требования компаний, подтянуть знания и стать более подходящим кандидатом. С другой стороны, сделанные задания можно добавлять в портфолио. Поняв свои возможности и предъявляя небольшое портфолио, можно претендовать на работу джуниором. Частой ошибкой тут является просьба «нанять за еду» — это с большой вероятностью отпугнёт работодателя, ведь такая просьба девальвирует знания соискателя.

Для того, чтобы стать программистом, с моей точки зрения есть два важных этапа: первый из них — научиться программировать, освоить так называемые hard-skills. Для этого есть множество офлайн-курсов, направленных на получение первых проектов в своё портфолио. Также имеется огромнейший пласт онлайн-образования в данной сфере. Сейчас также набирает популярность методика обучения, пришедшая к нам из Америки — буткэмп. В отличие от других она направлена на интенсивное освоение знаний. Буквально за 2,5 месяца такие школы выпускают студентов уже с первыми проектами в портфолио, готовыми перейти ко второму этапу — научиться проходить собеседования. Это отдельное умение правильно самопрезентовать себя, научиться демонстрировать свои профессиональные навыки. Для того, чтобы освоить это, можно воспользоваться множеством ресурсов, представленных в интернете:

  • Pramp — сервис для того, чтобы отработать живые интервью. Вы звоните, вас активно интервьюируют;
  • Набор сервисов, которые предназначены для отработки решений задач с алгоритмами: Codewars, LeetCode, HackerRank, Coderbyte.

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

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

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

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

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

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

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

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

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

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

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

Как минимум — не останавливаться на достигнутом и продолжить саморазвитие. Это снова могут быть курсы, либо книги и интернет-ресурсы. Заведите открытый репозиторий (например GitHub или Bitbucket), и заполняйте его написанными вами программками.

Огромным плюсом для вас будет написанный вами (не на конструкторе сайтов) и развёрнутый на бесплатном хостинге сайт. Например, можно написать простой сайт, который показывает спортивные новости, используя любой бесплатный API, и красиво его оформить, используя фреймворк типа Bootstrap.

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

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

Даже на позицию джуниора после обычных курсов вас скорее всего не возьмут. И дело даже не в наличии портфолио, а в вашем неглубоком знании технологий и опыте закрытия задач. Я бы посоветовал посмотреть несколько десятков вакансий в вашей сфере и составить список требований. По факту это ваш roadmap, то, чему вы должны научиться на практике за 1–4 месяца, чтобы успешно устроиться на работу. Нужно шаг за шагом выделять на каждую технологию 2–4 недели, читая всё, что есть в интернете, и пробовать её применить.

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. Упомяните в портфолио свои курсовые, дипломные или магистерские работы, особенно если в них есть новизна, интересные системотехнические решения, свежие алгоритмы, актуальная проблематика.
  2. Включите pet projects, которые вы делаете для себя в свободное время. Покажите, как в них используются стек и архитектура, близкие к реальным. Код на GitHub, статистика использования, рабочий прототип и тому подобное подойдут в качестве контента.
  3. Если вы активный участник командных open source проектов, инди-игр, стартапов — не забудьте про них. Будущий работодатель оценит ваше умение работать в команде, понимать чужой код, культуру написания кода. Чем популярнее и крупнее продукт, тем лучше.
  4. Фриланс. Если в результате подработки появился завершённый продукт, который приносит пользу заказчикам и сам по себе интересен — включайте его в портфолио. Это демонстрирует, помимо прочего, самостоятельность и умение общаться с заказчиками.
  5. Работа на реальных проектах. Передовые крупные компании охотно берут начинающих программистов на стажировку и дают шанс попробовать себя в «боевой» разработке под контролем наставников. Для вас такой опыт — одна из весомых строчек в портфолио. Опишите конкретную функциональность продукта, реализованную вами.

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

В том, что делать сразу после обучения, никакой особенной стратегии нет, почти все программисты после обучения находят работу, участвуют в проектах, совершенствуют технический бэкграунд, набираются опыта. Ключ к действительно хорошей карьере лежит в нетехнических навыках. Важно развивать проактивность, внимательность к требованиям, дипломатичность, пиетет к своей репутации. Поэтому мой совет звучит так: занимайтесь спортом, проводите больше времени с близкими, высыпайтесь, хорошо питайтесь, читайте интересные книги. Чего уж точно я бы не стал советовать, так это: «Выучите <technology name>, <development approach name> и <programming language name>».

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

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

Самое главное — практиковаться. Никому (в том числе и вам самому) не нужны теоретические знания, важны навыки.

Если нет реальных задач, на которых можно практиковаться — можно взять несколько самых известных самоучителей в выбранной вами сфере (для 1С это, например, книги Радченко и Хрусталёвой), пройти их и выполнить все практические занятия.

Закрепили знания о синтаксисе и применимости базовых механизмов языка? Рассмотрите основные фреймворки на нём (для 1С — библиотека стандартных подсистем, БСП). Умение не изобретать велосипед, а брать за основу уже работающие решения добавит вам очков в сравнении с другими начинающими специалистами.

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

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

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

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

  1. Не переставайте развиваться и набирать опыт — читайте книги, проходите курсы (да, ещё одни), решайте задачи из интернета, пишите свои проекты, учитесь обрабатывать ошибки и фиксируйте всё это, чтобы было потом что показать работодателю.
  2. Составьте хорошее резюме или сопроводительное письмо, из которого работодатель сможет узнать о ваших интересах и опыте. Включите в него свои самые сложные и интересные проекты, опишите ваши интересы и направление, в котором хотите развиваться. И не забудьте проверить резюме на наличие ошибок.
  3. Найдите стажировку в какой-нибудь компании. Не факт, что она будет оплачиваемой, зато в случае её успешного прохождения вас вполне могут трудоустроить. Альтернативой стажировке могут быть какие-нибудь курсы от компаний, которые проводятся для обучения программистов нужным компании технологиям.
  4. Проходите собеседования, чтобы набраться опыта в этом деле и научиться правильно презентовать себя. Также можно прийти на мероприятие вроде митапа, где часто бывают представители компании, чтобы лично пообщаться с ними и создать хорошее впечатление.

Напоминаем, что вы можете задать свой вопрос экспертам, а мы соберём на него ответы, если он окажется интересным. Вопросы, которые уже задавались, можно найти в списке выпусков рубрики. Если вы хотите присоединиться к числу экспертов и прислать ответ от вашей компании или лично от вас, то пишите на experts@tproger.ru, мы расскажем, как это сделать.

Следите за новыми постами
Следите за новыми постами по любимым темам
30К открытий30К показов