В Haulmont приходят как опытные специалисты, так и разработчики без опыта. Мы часто общаемся с новичками, которые не знают, с чего начать путь в IT. Собрали полезные ресурсы и рейтинги, а еще спросили руководителей нашей программы по трудоустройству начинающих разработчиков, как изучить рынок, выбрать язык программирования и о чем не забыть на собеседовании. Если вы уже опытный разработчик, будем рады узнать ваш опыт и советы для новичков.
1. Выберите нишу, а затем — язык программирования
Разработка имеет множество направлений. Кому-то хочется уйти во Front-End, кому-то — в Game Dev, Enterprise, Mobile или Back-End и так далее. Как выбрать лучшее и с чего начать?
Конечно, лучше то, что нравится вам. Но существуют и более конкретные показатели, на которые можно опереться.
Посмотрите, много ли позиций открыто в выбранной вами нише, какой в них порог вхождения и какие есть перспективы для роста. Изучите рейтинг вакансий и уровень зарплат. Например, вот подробное исследование от hh.ru с разбивкой по регионам и формату работы (офис/удаленка).
Вы заметите: хорошая зарплата зависит не только от опыта разработчика и ниши, но и от языка программирования. Например, согласно исследованию GitHub — крупнейшего web-сервиса для хостинга (то есть хранения) IT-проектов — десятку популярных языков возглавил JavaScript, затем идут Python, Java, Typescript, C# и так далее.
Приведенный рейтинг GitHub — лишь одно из исследований. Чтобы понять, какой язык программирования изучать, смотрите рейтинги с разбивкой по сферам. Тогда вы увидите: в мобильной разработке преобладает Swift, в Back-End — Java, во Front-End — JavaScript. Выбирайте язык в пределах вашей специализации. Чем популярнее язык, тем больше на него открытых вакансий и выше конкуренция.
Можно пойти не массовым путем, а нишевым — то есть изучать более узкие языки, например, Kotlin, Go, Rust, Ruby. Кстати, позиции со знаниями таких языков могут оплачиваться выше.
2. Выберите стажировку/программу трудоустройства
Если в вашем городе много IT-компаний (это особенно актуально для Москвы, Санкт-Петербурга и некоторых городов-миллионников), посмотрите, на чем они специализируются и обучают ли языку программирования с нуля. Некоторые работодатели в условиях высокой конкуренции готовы вложить силы в развитие своих сотрудников, и для вас это может стать отличной возможностью.
Такие программы бывают короткими (от пары месяцев до полугода) и длительными (от полугода и больше). Разница между ними не только во времени.
Как правило, длительная стажировка рассчитана на специалистов «с нулевым» уровнем. Скорее всего, ваше обучение не будет оплачиваться и займет много времени, зато у вас будет ментор, возможность освоить язык программирования и посмотреть на работу IT-компании изнутри.
На коротких стажировках молодые разработчики зачастую обучаются конкретным технологиям — Spring, BigData, UJS, React — и работе на проектах. Но все зависит от специализации компании и выбранного курса. Здесь уже пригодится знание основ языка программирования
Если хотите обучаться и в то же время получать зарплату и профессиональный опыт, выбирайте программы по обучению и трудоустройству. У нас в Haulmont есть такая программа под названием Bench (Бенч). Так как мы не обучаем разработчиков с нуля, то ждем специалистов с хорошими знаниями Java core и сразу предлагаем работу и зарплату. Молодые коллеги знакомятся с нашими технологиями и функциональностью реальных клиентских решений, общим стандартом оформления кода, нашей платформой Jmix, технологиями и фреймворками, которые мы используем в компании. В других компаниях свои условия и предложения — не бойтесь спрашивать.
3. Ресурсы для учебы и самообразования
Для начала поговорим про студентов. Дело в том, что вам доступен богатый перечень бесплатных и действительно полезных лицензий и софта от ведущих производителей ПО и технологий. Например, JetBrains, авторы популярной во всем мире среды разработки IntelliJ IDEA и языка Kotlin, предоставляют студентам (и преподавателям тоже!) бесплатные образовательные лицензии. В этот пакет входит доступ к почти 20 продуктам и средам разработки компании, включая саму IntelliJ IDEA.
Рано или поздно вам предстоит познакомиться с системами контроля версий и репозиториями: без этого в разработке никуда. Так что советуем уже сейчас изучить Git и GitHub.
Git — это самая популярная система контроля версий. Она позволяет сохранять код в контрольных точках (чтобы в случае ошибки откатиться в то состояние, когда всё работало), отслеживать изменения в файлах и редактировать их с другими разработчиками. Система контроля версий также пригодится, если вы работаете в командных проектах.
GitHub — это web-сервис, своего рода, соцсеть для разработчиков, куда можно выложить свой код и задавать вопросы, общаться с комьюнити в Open source-проектах. К тому же, для студентов их преподавателей сервис предоставляет пакет с бесплатным доступом к GitHub Pro, облачным сервисам, средам разработки и доменам.
Чтобы воспользоваться лицензиями, вам нужно подтвердить свой студенческий статус — вы легко найдете необходимые инструкции на страницах сервисов.
Существует богатый перечень продуктов и образовательных программ от Microsoft. Однако некоторые услуги доступны по вузовской лицензии. Если вы не уверены, спросите, подключен ли ваш университет к этой программе.
Но что, если вы уже не студент? Здесь не можем не сказать про курсы и онлайн-школы — сейчас их много на любой бюджет, и они легко находятся по первому запросу в поисковике. Из неочевидных решений советуем обратить внимание на обучение от авторов языка программирования, который вы хотите освоить, или лидеров IT-рынка. Например, существуют курсы от уже упоминаемых JetBrains. В программе есть модули для совсем новичков. Также есть ресурсы для подготовки к сертификации от Oracle — одних из разработчиков Java. Они будут полезны более опытным специалистам. И не забывайте про Git и Github — даже без студенческого пакета знание этой системы контроля версий и web-репозитория необходимо.
Конечно, разработка — это про постоянное самообучение. Так что книги, ролики на YouTube и тематические ресурсы должны стать регулярной рутиной. Читайте технические материалы на Хабр и Tproger. На этих площадках разработчики делятся знаниями и опытом, компании (и ваши будущие работодатели) ведут блоги, рассказывают о своих технологиях и новых релизах. Это позволит вам оставаться в курсе IT-новостей, популярных технологий и направлений.
4. Не бойтесь тестового задания и собеседования
Да, чтобы попасть на стажировки и программы по трудоустройству, нужно пройти тестовое задание и собеседование. Для многих это становится сюрпризом и стрессом. Но благодаря тестовому вы точно узнаете, хватает ли вам знаний и будет ли интересно учиться. Обычно на выполнение дается пара недель, но всегда можно договориться об удобных для вас сроках.
Тестовое прошло успешно? Идем на собеседование. И опять отметим, что в каждой компании они проходят по-разному. Хотя одно можно сказать точно: не бойтесь, что вас будут экзаменовать. Когда мы собеседуем Junior developers, то не ждем глубоких познаний в области разработки enterprise-приложений. Сосредоточьтесь на объектно-ориентированном программировании в целом и Java Core (или того языка, который вы изучили). Расскажите об особенностях языка, его синтаксисе и основных классах.
Часто начинающие разработчики говорят про образование и опыт работы (если он есть), но забывают рассказать о технологиях, с которыми они знакомы. Если вы знаете основные фреймворки: Spring, Hibernate и умеете работать с такими инструментами как Git и BugTracker — обязательно расскажите о них. Это будет вашим преимуществом в глазах работодателя.
Будьте честны и не завышайте свои знания — это легко выяснится на встрече. Кроме теоретических вопросов на собеседовании вам дадут практические примеры, чтобы посмотреть, как вы понимаете код. Здесь вы сможете показать свои реальные знания на практике.
5. Чем выделиться среди других новичков
Если вы уже знаете основы языка, подумайте над собственным проектом.
Возьмите предметную область, которая вам интересна, придумайте задачу, декомпозируйте и автоматизируйте ее. Да, будет много сложностей, багов и неизвестных слов. Но в итоге можно получить опыт, с которым можно двигаться дальше.
Затем опубликуйте проект на GitHub — хорошо, что вы уже знакомы с ним — и прикрепите в резюме. Работодатель приятно удивится вашему знакомству с популярным web-сервисом и общей вовлеченностью в Open source.
И еще кое-что: большая часть документации к языку программирования, фреймворкам и технологиям, а также книги и статьи об актуальных технологиях написаны на английском. Так что, если ваш уровень все еще «London is the capital of Great Britain», есть весомый повод исправить ситуацию.
Надеемся, эти советы помогут вам в начале пути. А что бы вы посоветовали начинающим разработчикам? Поделитесь своим опытом.
Комментарии (9)
iiwabor
01.09.2021 12:16+14Все "советчики" дают "полезные" советы, аккуратно обходя главную и критическую проблему - при устройстве на работу нужен опыт ( обычно 1-3 года), без опыта не берут, а получить этот самый опыт можно только работая по специальности и у вчерашнего студента его нет и быть не может.
И никакие ни книги, ни ВУЗы, ни курсы - бесплатные или платные, этого опыта не дадут, а "помогаем с трудоустройством" это зачастую просто рекламный трюк .
Разорвать этот порочный круг можно только комплексно:
Самостоятельно решать задачи, близкие к реальным - например на CoDeWars и дойти до высокого уровня
Участвовать в конкурсах - например на Kaggle и занять место в десятке
Замутить свой Пэт-проект и обязательно довести его до продакшн
Сделать проект какой-нибудь там, где сейчас работаешь - например провести анализ рынка или уже проведенных продаж при помощи нейронной сети или ML, сайтик сделать для компании или заапгрейдить какое-нибудь ПО и тому подобное
Ходить абсолютно по всем собеседованиям не взирая на то, что далеко от дома или вакансия не подходит по каким-то критериям - набираться опыта прохождения собеседований, анализировать и исправлять свои ошибки, доучивать то, знаний чего не хватает и однажды тебе повезет. Без везения никуда, так как не все в жизни зависит от тебя - например, ты все правильно ответил, тестовое решил, но HR или лид сегодня встали не с той ноги, или начальство решило других посмотреть, или специалист на эту вакансию на самом деле не особо сейчас нужен, или звезды не так сошлись и тп. Чем больше собеседований - тем выше шансы.
Учить английский до уровня upper-intermediate
В резюме, в графе опыт работы, должна стоять цифра, отличная от нуля. После того как вы прошли первые 6 пунктов, это вполне допустимо
И само главное - не сдаваться, не раскисать после неудач и верить в себя. Без внутренней уверенности в себе ничего не выйдет.
lyusion Автор
02.09.2021 11:59+1Спасибо за советы и ресурсы. А критическую проблему отсутствия опыта предлагаем решить благодаря стажировкам и программам по трудоустройства. Такие вакансии вполне доступны для специалистов без опыта. Программа трудоустройства — это работа, которая приносит стаж, зарплату и знания, которые пригодятся в дальнейшем. И тогда, как вы верно заметили, графа «опыт работы» уже не окажется пустой.
AliceMarah
02.09.2021 12:57Это всё да, но есть ещё вариант – оформить хороший профиль linkedIn, запостить туда своё красивое резюме, и добавить штук 200 людей в контакты, процентов 95 из которых рекрутеры. Из той пары сотен рекрутеров, которые посмотрят профиль, уж парочке нужно будет закрыть вакансию на трейни без опыта.
Стоит ли говорить, что линк в разы лучше в плане поиска работы, чем самому отвечать на каждую вакансию на условном ворк.юа?
ayakushev
02.09.2021 12:57у вчерашнего студента его нет и быть не может
У меня дочь в этом году закончила институт. Опыт работы в ИТ (full-time) - два года. Но в целом согласен, что начать трудовую карьеру достаточно тяжело. Тем не менее с ней большинство успешно справляются, если судить по тому, что как-то первый опыт у людей появляется.
iiwabor
03.09.2021 10:34Как раз похоже, что большинство НЕ справляются и уходят кто куда, иначе не было бы такой нехватки специалистов в IT
PavelMelnik94
02.09.2021 20:37+2Я сейчас нахожусь в таком поиске около 4 месяцев. Живу в миллионнике.стажировок на город - 4 крупные канторы. 3 из них развернули без фидбека сразу, на 4 попросили записать видео с тем как я проговорю отрывок на английском. Английский мой на уровне чтения ответов на стаковерфлоу, поэтому и этот вариант отпал.
Откликаюсь я на вакансии где я на 80% или меньше подхожу. В силу воспитанности(или глупости), мне не нравится врать. Если в стеке из 10 позиций я подхожу на 7-8, Окей, так им и скажу.Если на 3-5, то совесть не позволит откликнуться и врать что у меня есть какой-то хотя бы косвенный опыт, если такого нет. В любом случае, это будет легко проверить.
За 4 месяца получил около 300+ отказов и около 10 приглашений.
Отказы: смотреть на их прогрессивное количество не грустно, но грустно то, что разворачивают на корню, отписавшись шаблоном с хедхантере "к сожелению работадатель пока не готов ..".Никакого фидбека. Было пару раз аля "Мы бы вас подтянули в пробелах, но нам важно что бы у вас уже был большой опыт с graphql" - другое дело.все ясно и понятно. На когда ты метишь на джуниора реакта, а в резюме указаны хорошие навыки верстки, и в портфолио есть примеры с ссылками на гитхаб, то откликнувшись на вакансию "новичок-верстальщик с базовыми знаниями верстки за 25к России" и тебе отказывают без фидбека - это очень странно.
Приглашения:
все мои созвоны такие:
-Здравствуйте Павел, вы ещё в поисках вакансии джуниора реакт?
-да
-хорошо, какой у вас опыт коммерческой разработки и английский?
-коммерческий-почти. Английский - чтение документации.
-тогда извините, нам нужен английский для созвонов с заказчиками т.к. они все американцы.
Так прошли около 7 созвонов.
Я искренне верю что мне пока английский не так критичен и пока моих минимальных познаний мне хватает.
Разговаривать с заказчиками? Утопия
Может я, дурак, не понимаю чего-то, но о чем и зачем джуниору разговаривать с заказчиками.
Сейчас есть более важные вещи на которых нужна максимальная концентрация. и так времени не хватает.
Оставшиеся 3 приглашений - это те, где мне не задавали глупых вопросов а дали тестовое, которое я успешно провалил, но сделал выводы. И эти отказы были очень приятны.
Советов не прошу. Просто крик души. Спасибо.
Статья - розовые очки для наивных
iiwabor
03.09.2021 10:31Тебя продадут заказчику как миддла минимум, и заказчики будут напрямую давать замечания и комментарии.
Хороший английский повышает шансы и ЗП в разы, плюс ты сможешь работать по всему миру (удаленно или релокация).
puyol_dev2
Какие-то очень общие слова. Лучше расписать как можно более подробно в своем резюме какими проектами занимались и какие технологии использовали, если это даже пет проект