{"id":14277,"url":"\/distributions\/14277\/click?bit=1&hash=17ce698c744183890278e5e72fb5473eaa8dd0a28fac1d357bd91d8537b18c22","title":"\u041e\u0446\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c \u043b\u0438\u0442\u0440\u044b \u0431\u0435\u043d\u0437\u0438\u043d\u0430 \u0438\u043b\u0438 \u0437\u043e\u043b\u043e\u0442\u044b\u0435 \u0443\u043a\u0440\u0430\u0448\u0435\u043d\u0438\u044f","buttonText":"\u041a\u0430\u043a?","imageUuid":"771ad34a-9f50-5b0b-bc84-204d36a20025"}

5 советов разработчикам без опыта и студентам: как начать работу в IT

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

1. Выберите нишу, а затем — язык программирования

Разработка имеет множество направлений. Кому-то хочется уйти во Front-End, кому-то — в Game Dev, Enterprise, Mobile или Back-End и так далее. Как выбрать лучшее и с чего начать?

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

Вы заметите: хорошая зарплата зависит не только от опыта разработчика и ниши, но и от языка программирования. Например, согласно исследованию GitHub — крупнейшего web-сервиса для хостинга (то есть хранения) IT-проектов — десятку популярных языков возглавил JavaScript, затем идут Python, Java, Typescript, C# и так далее.

Рейтинг языков программирования github.com

Приведенный рейтинг 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», есть весомый повод исправить ситуацию.

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

0
11 комментариев
Написать комментарий...
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Timon

Можно одним словом описать - труба

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Victor Pomortseff

Стажировка может и должна быть оплачиваемой.
У нас стажер - это такой "пре-джун", трудоустроенный на условиях 20 часов в неделю и оплачиваемый соответственно (половина минимальной для разработчиков ставки, правда, как сказал один из стажеров это почти столько же, сколько ему предлагали на полной ставке инженера у одного местного оператора мобильной связи).
Оплачиваемая стажировка потому, что стажер под руководством наставника сначала учится основам, но достаточно быстро начинает помогать в решении несложных задач. Сначала какие-то вспомогательные вещи, затем уже небольшие, несложные, типовые боевые задачки. Т.е. он становится членом команды и работает в команде.
Предложение о переходе в штат на полный день может быть сделано как по истечении срока стажировки (полгода), так и до истечения срока если человек показывает хороший прогресс.

А вот что есть "помощь в трудоустройстве"? Этот момент вызывает вопросы. Есть заявки от работодателей на подготовку специалистов и человека учат под конкретную заявку? Или вся "помощь" заключается в рекомендациях как правильно написать резюме?

Рейтинги достаточно однобоки. Они просто показывают... Трудно сформулировать... Моду, что ли... Вот сейчас модно мобильная и вебразработка. И по рейтингам можно подумать что весь IT сводится только к этому, а все остальное там так, постольку-поскольку. Это очень поверхностный взгляд на вещи.

Ответить
Развернуть ветку
Sergey Logvinov

Советы простые
1. Контора должна быть проверенная, изученная с собственными доверенными инсайдерами.
2. Зарплата должна быть не ниже среднерыночной
3. Позиция должна быть инженерной, по специальности  - разработчик или тестер. 
4. Лучше стремиться в конторы с именем на рынке.

Ответить
Развернуть ветку
Game Topia

Статья о том, что хотят видеть новички, а не о том, как на самом деле.

Ответить
Развернуть ветку
Haulmont
Автор

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

Ответить
Развернуть ветку
Михаил Короленко

Кто хочет начинают работать на 2 или 3 курсе. Я сейчас на 3-м курсе с 1 годом опыта работы. Год назад получил 4 предложения о стажеровке за 3 недели. Зарплата была смешная, но это был отличный старт. Дам ответный совет компаниям: бегите в ВУЗы как можно раньше. На 3-м курсе выбора уже почти нет.

Ответить
Развернуть ветку
S M

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

Ответить
Развернуть ветку
Igor F. Burovnikov

Начинать надо вот с чего:
1. Убедись, что у тебя - технический склад ума.
2. Научись решать любые проблемы как инженерные задачи.
3. Получи понятие о процессе разработки, тестирования и сопровождения ПО.
Сколько я видел людей, "научившихся" кодить, но понятия не имеющих, с какого конца решать задачу, как выявлять потребности пользователя и не задумывающихся, как их поделие будут потом поддерживать!
Хватит клепать погромистов с одним QuickStart'ом в голове.

Ответить
Развернуть ветку
Иван Покровский

То есть если я ноль в программировании, меня с нуля могут всему обучить?

Ответить
Развернуть ветку
8 комментариев
Раскрывать всегда