Как стать востребованным Junior программистом? Приходи учиться к нам!
История существования Direct Line насчитывает уже более двадцати лет, шестнадцать из которых мы посвятили разработке сайтов для компаний по всему миру. Мы хотим поделиться своим опытом, поэтому мы решили открыть DL Academy — место, где будут преподавать лучшие специалисты нашей компании. DL Academy предлагает офлайн курсы для программистов, обучаясь на которых вы узнаете все о сфере IT из первых рук, поработаете бок о бок с практикующими разработчиками и станете востребованным junior программистом. Выберете интересующую вас программу в DL Academy и освойте профессию, о которой давно мечтали.

Кто такие junior программисты и что они делают?
Если вы подписаны на группы Вконтакте, телеграм-каналы с вакансиями или хотя бы раз заходили на Headhunter в поисках работы, то наверняка видели объявления, в которых компании ищут junior developer или проще говоря младших программистов. Junior программист — это первая ступень в карьере IT специалиста. Следующий уровень развития специалиста — это middle developer, а за ним следует senior или старший программист. В этой статье мы подробно остановимся на том, кто такие джуны, сколько они зарабатывают и что должен уметь начинающий программист.
Как правило, младшими программистами называют тех специалистов, которые только окончили университет, онлайн или офлайн курсы и не могут похвастаться опытом работы от года до трех, поэтому многие работодатели ищут младших программистов с минимальным опытом или вовсе без него.
Джуны приходят в компании и работают там под присмотром и руководством более старших и опытных коллег и набивают руку на практических заданиях.
Зарплата джуна варьируется в зависимости от региона и от языков программирования, которыми он владеет, но, в целом, за пределами Москвы эта цифра составляет от 20 до 40 тысяч рублей. Но хорошая новость в том, что если ты любознательный и упорный, то в позиции джуна ты надолго не задержишься и уже через год или даже полгода, в зависимости от индивидуальных успехов, можно будет идти на повышение и становиться middle разработчиком.

Ключевые навыки, необходимые junior программисту
На самом деле, навыков и знаний, которыми необходимо обладать начинающему специалисту не так уж и много:
- Язык или языки программирования. Чем больше вы умеете — тем лучше. Часто одного Java или PHP недостаточно для того, чтобы получить место в хорошей компании, однако надо с чего-то начинать и Pyton подойдет для новичков лучше всего. Это универсальный язык, который сейчас пользуется большим спросом, к тому же люди даже незнакомые с кодом смогут его освоить. DL Academy предлагает курсы для Frontend и Backend разработчиков, на которых в течении полугода вы будете изучать теорию и параллельно создавать проекты с использованием HTML, CSS, Python и других языков. После завершения программы у вас будет не только уверенная база знаний, но и практический опыт.
- Придется разобраться в таких понятиях, как объектно-ориентированное программирование, функциональное программирование, шаблоны проектирования, принципы S.O.L.I.D. Это одни из наиболее главных концепций и основа, которая лежит в образовании программиста.
- Английский язык. Не совсем очевидный, но абсолютный мастхэв для любого человека, который мечтает о карьере в IT. Во-первых, это основа языков программирования, а, во-вторых, сейчас многие проекты ведутся интернациональными командами, поэтому вполне вероятно, что вам придется общаться со своими коллегами именно на английском.
- Последнее в списке, но не по значимости: умение и желание учиться, упорство и терпение. Не все будет получаться сразу, программирования это постоянный поиск и исправление своих ошибок. Многие люди, которые пытаются самостоятельно обучиться программированию сталкиваются с тем, что код, вроде бы написанный верно, не работает. У некоторых не хватает терпения и опыта для того, чтобы найти и осознать ошибку, и она забрасывают программирование, уверенные в том, что это не для них. Поэтому для начинающих лучше всего подходят офлайн курсы — там опытные специалисты быстро найдут проблему и доступно объяснят, что пошло не так. Это очень важно иметь поддержку практикующего профессионала, совместная работа поможет junior программисту быстрее освоить основные для работы навыки. На курсе по программированию от DL Academy с вами будут работать наши лучшие разработчики, проверять ваше домашнее задание и давать развернутые комментарии по вашим проектам.
Где найти работу начинающему программисту?
В первую очередь можно разместить свое резюме и откликаться на вакансии на таких площадках, как, например, HeadHunter или LinkedIn (если у вас все хорошо с английским). Также можно просматривать тематические телеграм-каналы и паблики Вконтакте. Будьте готовы предоставить свое резюме, а также укажите проекты, над которыми вы работали. Иногда junior программистов просят пройти тестовые задания, чтобы оценить их навыки, поэтому не удивляйтесь и не расстраивайтесь, работодатель просто хочет убедиться в том, что вы ему подходите.
Студентам DL Academy мы предлагаем уникальную возможность — начать свою карьеру в нашей международной компании Direct Line.
Этим могут воспользоваться только наши лучшие студенты, но если вы не вошли в их число, то не стоит расстраиваться, ведь обучение в DL Academy это не только знания, но и помощь с составлением резюме, подготовка к собеседованиям, а также специальная база подходящих вам вакансий. После обучения мы не оставляем джуна на произвол судьбы, а ведем его до самого момента трудоустройства.
Самое главное для человека, который мечтает о карьере в IT — это иметь мотивацию и желание постоянно изучать новое, ведь рынок информационных технологий непрерывно развивается и меняется. Если вы любознательный и увлеченный человек, то программирование станет для вас не только работой, но и увлечением на всю жизнь.
Как стать джуном, которого берут на работу (frontend-разработка)
Привет, Хабр! Я — начальник отдела разработки небольшой IT-компании, и мы — те самые люди, которые не ищут на работу сеньоров, и мы готовы брать не только мидлов, но даже и джуниоров, и готовы растить их до уровня крепких мидлов. Однако 80% приходящих на вакансию frontend-разработчика соискателей, даже называющих себя мидлами, с опытом работы, по сути оказываются не то что джуниорами — вообще не программистами. Что же на самом деле должен знать джун, чтобы попасть в компанию, подобную нашей? И как к этому прийти, если за плечами нет высшего программистского образования или богатого опыта программирования в школе? Я расскажу об этом и о том, как устроено техническое собеседование в нашей компании.
Базовый уровень программирования
Итак, к нам приходит среднестатистический кандидат, который прошел курсы по JavaScript, сделал там пару проектов. Потом узнал, что во многих местах хотят React, сходил на курсы по нему, тоже сделал пару проектов, выложил их на Github. Приходит к нам, уверенный в себе. И мы его просим написать функцию, которая выбирает из строки все большие буквы, или реализовать «вручную» какой-нибудь метод из array. И половина кандидатов в этом месте выбывают из строя. Кто-то вообще не может это сделать, у кого-то на двухминутную функцию уходит больше получаса. Зачем мы вообще это спрашиваем и почему с этого начинаем?
Дело в том, что когда вы начинаете делать реальные проекты, то такие микрозадачи (просто чуть более сложные или чуть менее стандартные) регулярно начинают возникать:
- то нужно покрасить гласные буквы;
- то написать правильное окончание у слова с числительным (2 ракетки, но 5 ракеток, и вам нужно в автоматическом режиме подставить окончание);
- то вычислить новые положения всех точек змейки после очередного шага; и так далее.
И эти кусочки обычно являются очень маленькими фрагментами той задачи, которую вы решаете. И если сначала на каждый такой кусочек у вас уходит по полчаса, то как только вы овладеваете этим инструментарием, вы начинаете писать это за две минуты, практически не задумываясь. И ваша работа ускоряется в 10 (!) раз.
(Да, бывалые программисты здесь мне скажут, что нужно предусматривать много граничных условий, и речь идет не о 2 минутах, а больше, и вообще если есть библиотека, которая это умеет из коробки, то лучше ее подключить. Но примерный смысл работы библиотеки всегда лучше знать, чтобы мочь сделать вручную то же самое, но слегка модифицированное; а кроме того, человек, который пишет этот кусок кода за полчаса, а не за две минуты, граничные условия не напишет просто никогда).
Почему он этого не знает?
А у среднестатистического соискателя этой части обучения не было. Чаще всего он даже понятия не имеет о том, что она существует. Это во многом связано с тем, что курсы гораздо лучше продаются, когда человек получает на них быстрый результат. Но на таких курсах, даже 5-месячных, не остается времени на собственно базовое программирование — и поэтому в учебном проекте преподаватель предусматривает самые легкие пути с минимумом проблем. А шаг вправо-шаг влево от этого дается студентам с огромным трудом.
И эту часть очень важно где-нибудь добрать. В идеале, для того чтобы понять, подходит ли вам работа программистом, имеет смысл сначала пойти на какие-нибудь курсы чистого программирования (условия, циклы, работа с массивами и строками, запись в хранилище и чтения из хранилища) на плюс-минус любом языке и посвятить этому хотя бы три месяца. Зная, что после этих курсов вы станете программистом, но на работу вас еще никуда не возьмут. И если вы будете чувствовать, что вам нравится то, что вы делаете в рамках этих курсов, — вот тогда уже идите учитесь конкретному языку и его предметной области.
Но можно эту часть выучить и после того, как вы прошли курсы по javascript и React. И у вас сразу станет больше шансов стать айтишником, чем у 95% остальных выпускников курсов. Потому что действительно сложно потратить несколько месяцев, решая какие-то задачки, которые, как кажется, не имеют практического применения, мучая строки, массивы и циклы. Но это только кажется: в реальной работе вы будете иметь с ними дело очень часто.
Матчасть
Но, допустим, перед нами соискатель, который научился базовому программированию. Следующее, что мы просим на собеседовании, — найти на странице все кнопки и покрасить их в какой-нибудь цвет. В этом месте отваливаются еще 30% соискателей. Возможно, с этого стоит начинать разговор — с человеком, который не знает ответа на эту задачу, можно распрощаться за 7 минут, а в предыдущей на это уходит минут 15-20 обычно 🙂 Но как так, спросите вы? Человек сделал 4 проекта, разве он ни разу не делал чего-то подобного за это время?
Ну, во-первых, проекты обычно довольно небольшие. Даже если там много файлов, интересный код хранится от силы в 1-2. И там несколько раз они, конечно, выбирали элементы, но не настолько часто, чтобы это вошло в пальцы и в голову. И проблема вовсе не в том, что эти люди не были усердны, и даже не в том, что задачи на курсах достаточно невелики и упрощены. Проблема еще и в том, что при подготовке кандидаты решают какие-то задачи, ожидая, что на собеседованиях могут спросить примерно про что угодно, от стрелочной функции до каких-нибудь throttle и debounce. Но на самом деле есть несколько классов задач, с которыми frontend-разработчик имеет дело практически каждый день. В нашей рабочей практике (и в фирме, и времен фриланса) этих классов всего три:
- работа с DOM-моделью (изменение стилей, атрибутов, html-кода);
- работа с событиями (как минимум — обработка кликов по кнопкам, в том числе — сгенерированным в процессе работы);
- отправка данных на сервер и обработка ответа (и тут, кстати, тех, кто походил на курсы базового программирования, ждет приятный сюрприз, потому что, например, если поднять сервер на PHP, то окажется, что там ровно и есть базовое программирование +/- работа с базой данных (ну, на уровне, когда надо всего лишь отправить на фронт какой-то ответ для тестирования), вот оно и пригодилось нечаянно).
И вот эти штуки, хотя бы в базовой версии, тоже надо знать очень хорошо, а применяемые команды и их синтаксис — наизусть (благо, их не так уж много). Как выбрать элемент — по тэгу, классу, атрибуту, его значению; как поменять стили, как поменять атрибуты, innerHTML и insertAdjacentHTML. Как обработать событие, что там внутри event (хотя бы target и currentTarget); как быть, когда кликабельные элементы сгенерированы или когда их очень много. Как отправить на сервер данные (fetch или даже хотя бы $.ajax). И, вы не поверите, если вы знаете наизусть синтаксис этих штук и применили их в реальных задачах раз по сто — ваша скорость разработки увеличивается еще в 5-10 (!) раз. То есть разница по скорости разработки между обычным соискателем и соискателем, который знает базовое программирование и базу матчасти языка, может доходить до 100 (. ) раз.
И вот как раз с этого места мы готовы называть его способным джуном и учить его дальше. Потому что дальше, до мидла, там еще очень много всего.
Что должен знать мидл
Собеседование с мидлом начинается, на самом деле, по той же схеме:
- сначала задачка на базовое программирование;
- потом на выбор элементов и покраску/скрытие/изменение атрибутов;
- потом какое-нибудь простое событие и обсуждение стрелочных функций;
- потом отправка данных на сервер и разговоры про GET/POST;
- и пару слов про git (его, слава богу, хотя бы в базовом варианте умеют использовать даже джуны).
Но уже и тут можно спросить гораздо больше всяких деталей, которые джун пока не знает или еще не запомнил.
А дальше можно разговаривать в очень разных направлениях. Мы задаем много вопросов, но не ждем, что соискатель-мидл ответит на все — крепкий мидл должен знать процентов 70-80, начинающий — 30-40. Обычные вопросы в нашем случае такие:
- всякие подробности про промисы;
- какие-то другие способы взаимодействия с сервером, кроме ajax (например, websocket);
- сборщики (webpack, gulp), разделение кода по компонентам;
- event loop, всякие детали событий, кастомные события;
- прототипы и полифиллы;
- filter, map, reduce;
- работа с линтером;
- тесты и заглушки;
- декораторы, throttle и debounce;
- регулярные выражения.
Соответственно, если джун в курсе про что-то из этого, то это плюс и к общему впечатлению, и к пути до уровня мидла. Но знание базы гораздо важнее, и бонусы его не заменят.
Движение от джуниора к мидлу
Тем, кто только стал джуниором, для начала лучше идти в организации, в которых используют vanilla js, может быть, с небольшими усовершенствованиями, и первые год-два проводить именно здесь. Почему я так думаю? Ведь если вам удастся устроиться сразу React-разработчиком, вам, скорее всего, будут платить больше денег!
Дело в том, что если вы работаете с обычным js, вы гораздо лучше понимаете, что и как устроено изнутри (и потом вам будет легче понимать и то, как устроены конструкции в React-е). У вас становится гораздо больше опыта работы с css-свойствами, больше способов сбора данных с кнопочек и форм; вы начинаете гораздо легче читать чужой код, потому что вы видели несколько способов и синтаксисов сделать то, что вы делаете, некоторые из них вы переняли; вы уже пробовали настраивать всякие штуки типа сборщиков и линтеров, потратили на это довольно много времени и знаете кой-какие нюансы. И дальше, когда вы идете уже непосредственно работать с React-ом, то вы все это уже умеете, и в 95% случаях вам не приходится учить еще и это. Потому что возможности мозга ограничены, и при большом объеме того, что нужно понять сразу, вы рискуете не справиться. Точнее, не справляться примерно первые несколько лет работы. И вам будет очень трудно, вы регулярно будете хотеть бросить работу, а ваши коллеги, которые уже имеют этот бэкграунд, будут обгонять вас в росте с космической скоростью.
По сути, работа на обычном js отодвигает вверх ваш потолок роста в ближайшие годы. И ради этого стоит пожертвовать частью зарплаты прямо сейчас. И при этом необходимо следить, что вы не забываете, если этого нет в вашей работе, параллельно изучать все остальное — хотя бы из списка из предыдущего параграфа. Хотя, конечно, лучше иметь ментора, с которым можно переписываться и один-два раза в месяц созваниваться, чтобы обсуждать, что именно вы сейчас учите, зачем оно вам может пригодиться, не пора ли уже на следующий уровень и так далее. И это, опять же, резко поднимает потолок роста, но далеко не все себе могут это позволить 🙂
И если путь «сначала js — потом фреймворки» будет соблюдаться (а когда-то это был естественный путь разработчика), то как раз и будет получаться, что с фреймворками работают мидлы и сеньоры. Проблема в том, что кто-то когда-то это заметил и поставил телегу впереди лошади: решил, что если вы пройдете курсы по React-у, то вы уже мидл. Но это так не работает 🙂
О реальных сроках роста
Существуют ли вообще люди, которые за полгода смогли пройти курсы, хорошо устроиться на работу и потом быстро вырасти? Да, они существуют. Проблема в том, что 90% из них имеют несколько лет бэкграунда самостоятельного кодинга, или школьного/университетского программирования, то есть это совсем не те люди, которые пришли с нуля. У них получится так быстро, а у вас нет 🙂
В реальности требуется около года на то, чтобы спокойно выучить все, что нужно джуну (если вы знаете, что именно учить). Когда я говорю о трех месяцах на базовое программирование, я имею в виду занятия хотя бы через день, а такую интенсивность может выдержать далеко не каждый взрослый человек с работой, семьей и ипотекой, решивший сменить профиль деятельности. Если вы занимаетесь два раза в неделю — закладывайте полгода на базу, месяцев пять на курс по матчасти и месяца два-три на практику и выучивание базовых конструкций матчасти. То есть чуть больше года — реальный срок развития с нуля до джуна.
Путь от джуна до слабого мидла довольно естественно проходится за год, и он уже обычно проходится на работе, без работы здесь никак. До крепкого мидла вы растете еще год-два, и здесь уже важно не только то, что происходит на работе, но и то, ботаете ли вы что-то дополнительно, чтобы иметь более полную картину знаний.
Дальше начинается путь к сеньору, и он занимает еще минимум пару лет. Но про это лучше думать, уже будучи более-менее приличным мидлом.
Как войти в IT
Резюмирую. Путь, по которому стоит войти в IT и стать джуном, которого берут на работу, в первую очередь включает в себя обучение базовому программированию. Если у вас этого еще нет, но уже есть курсы js и/или react — потратьте на это три-шесть месяцев, и процент интервью, которые вы будете проходить, резко возрастет. И к этому добавьте знание и практику матчасти по работе с DOM, событиями и ajax. Откровенно говоря, в этот момент вам должно казаться, что вы можете сделать на сайте примерно всё, что угодно. И это не очень далеко от правды, но. Многих технологий вы еще не знаете, как и многих деталей и нюансов DOM-модели. Еще вам предстоит изучить способы делать многое проще и быстрее; научиться хорошей организации кода; и так далее. И вот этому уже вы будете учиться на работе.
А вас будут учить с удовольствием, потому что, с учетом скорости вашей разработки по сравнению с обычными соискателями, вы будете уже честно отрабатывать решением реальных задач хотя бы часть потраченного на вашу учебу времени ваших старших коллег.
Удачной вам учебы и дальнейших поисков работы!
Без опыта в IT: как junior-программисту найти первую работу

Бизнес-процессы уходят в онлайн. Всем нужны удобные сайты и приложения, чтобы привлекать больше клиентов. Компании перебивают офферы друг друга — хотят заполучить нужного специалиста как можно быстрее. И не важно, что дорого. Спрос растет быстрее предложения. Дефицит кадров ощущается все острее. Именно так проживает 2021 год рынок труда в IT-сфере.
Исследование HeadHunter показывает, в России сохраняется низкая конкуренция и высокий спрос в IT: на одну вакансию претендуют до двух кандидатов. А программисты остаются самыми востребованными специалистами — 49% вакансий от общего числа в отрасли.
Зарплаты разработчиков увеличились на 30-80% за время пандемии, и рост продолжается. Все больше компаний соглашаются на условия самого кандидата — хотят быстро договориться с подходящим соискателем и не потерять его.
Когда на рынке высокий спрос, разработчику без опыта трудоустроиться легче. Но надо понимать, что профессия требует постоянного развития и обучения. Руководители ожидают, что junior-специалист быстро дорастет до следующего грейда, иначе тратить на него время никто не захочет. В статье расскажем, как начинающему программисту найти первую работу. Советами поделились опытные разработчики:

Константин Военков
Руководитель разработки онлайн-университета Skypro

Николай Субоч
Ведущий разработчик в Тинькофф Банке, ведущий эксперт курса онлайн-университета Skypro

Михаил Черемухин-Рерберг
Middle-разработчик в Альфа-Банке, ментор в онлайн-университете Skypro
Как попасть в профессию
Ситуации, когда работу выбирали один раз и на всю жизнь, остались в прошлом. Руководители реагируют уже не так остро, если встречают кандидата из другой сферы. А чаще даже не встречают — удаленный формат работы и найма стал привычной практикой, тем более в IT-направлениях. Начать карьеру в разработке можно разными способами. Остановимся на трех основных.
1. Учитесь в профильном вузе
Классическое образование отличается тем, что теории дают много, но как применять знания на практике понятно не всегда. Четыре года обучения пролетают, а выпускник даже не представляет, чем он будет заниматься на работе. Как студенту получить опыт в процессе учебы рассказал Николай Субоч:
«Типичный junior — выпускник университета или студент старших курсов. Он может поинтересоваться стажировками от крупных компаний. Обычно университеты сотрудничают с работодателями и дают такую возможность своим студентам. Например, устроиться на летних каникулах на интересную стажировку и попрактиковаться. Возможно, поступит предложение остаться в штате.
Другой вариант — выпускник готовит дипломную работу со своим научным руководителем по теме Computer Science. Тогда сам преподаватель может подтолкнуть студента выступить на профильных конференциях по своей теме. Мир IT узкий. Выпускник узнает о стажировке из таких мероприятий или от научного руководителя».
2. Учитесь на курсах
Онлайн-образование предлагает программы, в которые входит помощь в трудоустройстве. Вы учитесь до 10 часов в неделю, совмещая работу и личную жизнь. В конце курса представители онлайн-университета помогают вам подготовиться к собеседованиям и составить резюме.
Михаил Черемухин-Рерберг вспоминает, как получил первую работу программиста:
«Считаю, что мне повезло. Я учился на курсах около года и попал в базу выпускников. Ребята из московского стартапа каким-то чудом нашли в этой огромной базе именно меня . Собеседование было легким, спрашивали даже больше по софт скилам, чем хардам. Посмотрели мои тестовые проекты, поняли, чего ждать: как я пишу код, есть ли структура, соблюдаю ли техники.
Главный критерий, который мне помог устроиться, и поможет другим — работодатель должен понять, собираетесь ли вы развиваться самостоятельно. Если вы способны обучаться сами, большой пласт проблем уходит — вы не бегаете с каждым вопросом к старшему, не отвлекаете его. Вы ищете решение и разбираетесь сами».
3. Изучаете программирование самостоятельно
Пожалуй, самый сложный и долгий путь. Выучить язык программирования нетрудно. Но для работодателя важнее, чтобы вы понимали процессы разработки, знали принципы и подходы программирования, разбирались в основах Computer Science. Все это сложно освоить без наставника. А когда в приоритете основная работа и семья, времени на обучение уходит больше: вас некому подгонять, вы начинаете и бросаете несколько раз.
«У работодателя будут дополнительные вопросы к junior-специалисту, если он во взрослом возрасте решил сменить профессию и освоить разработку самостоятельно. Все компании хотят брать новичка, который за год-два вырастет до уровня middle. А если человек долго остается на позиции junior, от него пользы меньше, чем потраченного времени».
Как проходит собеседование у новичка
Работодатель понимает, что обсуждать прошлый опыт с начинающим разработчиком бессмысленно. Практических кейсов либо нет, либо они не относятся к программированию. Разберем, что проверяют на собеседованиях у начинающего разработчика.
➤ Мотивацию и способность к обучению
Каждый руководитель понимает, в junior-специалиста придется вкладывать много времени и сил. Поэтому выбирает себе заинтересованного и самостоятельного сотрудника, чтобы быстро вырастить его до middle-разработчика.
«Я смотрю, какие знания у кандидата и их динамику. Если специалист получил свои знания за короткий период времени — для меня это хороший знак. Значит, он легко обучается и быстро дорастет до следующего уровня»
«Я спрашиваю, как человек развивается в профессии: что читает, слушает, интересуется ли смежными областями. Проверяю общую эрудицию в отрасли».
➤ Навыки общения
«Программист не просто пишет код, он решает проблемы. Поиск решения и определение проблемы — важные этапы разработки. Программирование — это про борьбу со сложностью. Чем проще вы решаете проблему, тем лучше. Чтобы выбрать оптимальное решение для конкретной задачи, приходится общаться и понимать людей с другим мировоззрением. Поэтому программисту важно развивать soft skills».
Не переживайте: в первый рабочий день вам не поручат вести переговоры и защищать проект перед советом директоров. Первое время вы работаете в основном со своим руководителем. Он ставит перед вами задачи и помогает адаптироваться в компании. Со временем вы освоитесь, познакомитесь с коллегами и поймете, как улучшить свои навыки коммуникации.
➤ Фундаментальные знания
Процесс найма программистов сильно отличается от компании к компании. Одни работодатели задают теоретические вопросы по чек-листу и фиксируют, правильно вы ответили или нет. Другие — выводят на простой разговор, чтобы разрядить обстановку. Иногда вам дают тестовое задание, вы делаете его в указанные сроки и отправляете на проверку.
«Junior-разработчика любят спрашивать про базовые алгоритмы и структуру данных. Проверяют мыслит ли он в терминах Computer Science. Просят реализовать несложную задачу на языке программирования. Если хотите подготовиться к алгоритмическим секциям, заходите на сайт leetcode.com. На нем весь мир тренируется решать алгоритмические задачи».
➤ Практический опыт
От начинающего разработчика не ожидают успешных рабочих проектов, но учебные кейсы лучше иметь. Так вы на практике покажете свой уровень знаний. У работодателя будет меньше вопросов — процесс трудоустройства пройдет легче.
Программисты используют хранилище кодовой базы, куда сохраняют свои проекты. Одно из них — GitHub. Это хороший способ показать работодателям, что вы умеете, и как развивались ваши навыки.
Три главных совета junior-разработчикам от опытных коллег:
✔ покажите заинтересованность и желание развиваться самостоятельно — руководитель должен быть уверен, что вы быстро станете middle-разработчиком;
✔ подготовьте практические проекты, они могут быть учебными — работодатель поймет ваш уровень знаний и количество вопросов к вам сократится;
✔ соблюдайте культуру общения — проявляйте уважение к собеседнику, будьте вежливы и открыты. На старте карьеры soft skills ценятся высоко.
Где учиться на разработчика
Если вас привлекает IT-сфера, вы хотите быстро развиваться, работать удаленно и оставаться востребованным специалистом, за которого борются компании, — присмотритесь к курсам онлайн-университета Skypro.
Вы закончите программу уверенным junior-разработчиком: создадите практические проекты для портфолио, разберетесь в индустрии, поймете, как работать в современных IT-командах. Наставники и кураторы курса поддержат вас в процессе учебы. А HR-специалисты подготовят к собеседованиям и помогут найти первую работу.
- обучение
- карьера программиста
- карьера в it-индустрии
- junior
- junior developer
- Блог компании Skypro
- Веб-разработка
- Разработка мобильных приложений
- Учебный процесс в IT
- Карьера в IT-индустрии
Как стать разработчиком с нуля
Рассказываем, что нужно знать айтишнику и как стать программистом с нуля ✔️ Отучиться на программиста самостоятельно и войти в IT реально!
Как стать программистом и с чего начать, если нет практического опыта, а представление о программировании весьма размытое? Подробно рассказываем, как стать востребованным программистом с нуля и на что обращать внимание в ходе обучения.
- Кто такой программист
- Почему вы хотите начать программировать
- Что нужно знать, чтобы стать программистом
- Какое направление в программировании выбрать в 2023 году
- Десктопная разработка
- Data Science
- Как стать разработчиком на Андроид
- План развития iOS разработчика
- Как стать разработчиком игр
- Как стать Python разработчиком
- План развития Java-программиста
- Бэкенд разработка — с чего начать?
- Как стать фронтенд разработчиком
- Full Stack разработка
- Какой язык программирования выбрать в 2023 году
- Где выучиться на программиста
- Классификация разработчиков
- Как стать Junior-разработчиком
- Где работают программисты
- Как найти первую работу в IT
- Что спрашивают у Джунов на собеседовании
- Что делать, если вам не хватает знаний до вакансии Джуниор-программиста
- Заключение
1. Кто такой программист
Программист — это специалист по разработке компьютерных программ. Под разработкой понимается продумывание архитектуры программы, её реализация, оптимизация и тестирование. Далее мы разберёмся, как стать настоящим айтишником и что для этого нужно знать.
1.1 Чем занимается программист
Это зависит от специфики выбранной отрасли, но в целом всё сводится к написанию и тестированию кода. Важно понимать свои обязанности и не скатываться в звание тыжпрограммиста, которому поручают всё — от установки Windows до починки техники.
1.2 Можно ли стать айтишником с нуля
Разумеется. Для этого существуют материалы, ориентированные на новичков: туда входят статьи, подборки книг, обучающие приложения, задачки, видеоуроки и туториалы.
А вот как стать крутым программистом с нуля и с чего начать — другой вопрос. К примеру, Senior разработчика от джуна отличают годы практики и колоссальный опыт, так что только терпение и труд.
2. Почему вы хотите начать программировать
IT — перспективная отрасль, которая сулит хорошим специалистам немаленькие зарплаты. Но если деньги — единственная причина, подумайте трижды. Вам предстоит работать в офисе, дома, забывать о выходных и возможности расслабиться: все мысли в тасках и багах. А всё, что обязательно нужно знать начинающему программисту, курсы не дадут: будьте готовы доучиваться.
Если же вы питаете неподдельный интерес к процессу, смело ступайте на стезю разработки.
3. Что нужно знать, чтобы стать программистом
Чтобы стать успешным и востребованным программистом, нужно обзавестись рядом hard skills и soft skills. Первые отвечают за технические умения и знания, вторые — за качества, которые помогают эффективно работать и находить общий язык с командой.
3.1 Hard skills
У каждой профессии свой набор хард скиллов. У программиста это общие технические знания (математика, информатика, алгоритмизация) и набор навыков, свойственный конкретному стеку.
3.1.1 Основы информатики
В такой сложнотехнической профессии понадобятся даже самые азы, а именно:
- какие типы данных бывают и чем они отличаются друг от друга;
- понимание систем счисления — двоичной и шестнадцатеричной;
- булева алгебра;
- понимание принципов выполнения операций ЭВМ.
3.1.2 Математика
А как же стать настоящим программистом, если плохо с математикой, и насколько важна математика в разработке? Требования разнятся в зависимости от сферы: для работы с графикой нужно знать геометрию, а для машинного обучения — теорию вероятностей и статистику. Но базовые знания математики никогда не будут лишними, особенно если вы осваиваете программирование с нуля.
3.1.3 Алгоритмы
Это то, что нужно обязательно знать, чтобы стать программистом. Алгоритмами называют последовательность действий, которая преобразовывает входные данные в некий результат. Наверняка вы слышали об алгоритмах поиска и сортировки — это они и есть. Разобравшись, как устроены алгоритмы, вы сможете создавать свои решения сложных задач и даже комбинировать их.
3.1.4 Принципы ООП
Объекто-ориентированное программирование — это подход в разработке, при котором за основу берутся абстрактные объекты, а не функции или процедуры. Данный подход используется в большинстве современных языков программирования, поэтому крайне важно понимать основные принципы ООП:
- абстракция;
- наследование;
- инкапсуляция;
- полиморфизм.
3.2 Soft skills
Софт скилы, они же гибкие или мягкие навыки, — это совокупность нетехнических неспециализированных навыков, которые тем не менее важны для производительности и профессионального развития. Это то, что также нужно знать программисту для эффективной работы.
3.2.1 Знание английского
Необходимость английского языка в программировании зависит от ваших конечных целей. Если вы видите программирование своим хобби, то можно обойтись базовыми знаниями английского и помощью онлайн-переводчика. Но если вы серьёзно настроены на карьеру разработчика, английский язык необходим.
3.2.2 Умение работать в команде
Программирование — это почти всегда командная работа. Как минимум, чтобы стать программистом, нужно уметь взаимодействовать с PM, тимлидом и просто камрадом по проекту.
Речь идёт не о социопатии и необходимости быть душой компании. Чтобы стать разработчиком, нужно слушать и слышать, задавать вопросы, признавать ошибки и исправлять их плечом к плечу, а не сваливать вину на сослуживцев при первой же возможности.
Для эффективной командной работы следует понимать и использовать гибкие методологии разработки. Почитайте об Agile, Scrum и Kanban — пригодится.
3.2.3 Стрессоустойчивость
Ответственность программиста сравнима с бухгалтерской. Так, запущенный на продакшене код с ошибкой может удалить часть или все данные, потревожить клиентов заказчика и вообще сделать последнему убытки.
Кроме того, вам нужно спокойно принимать пожелания и вносить правки, если требуется, не срываясь на проджект-менеджера и тем более заказчика. Хорошим подспорьем станут книги «Как разговаривать с кем угодно, когда угодно и где угодно» и «HBR Guide. Эмоциональный интеллект».
3.2.4 Постоянное саморазвитие
Не думайте, что программирование можно раз освоить и забыть. Отрасль богата переменами, нововведениями — уходом старого и появлением нового. Это и языки, и фреймворки, и сопутствующие технологии, которые всё время меняются и совершенствуются для более эффективной разработки.
Настраивайтесь на постоянные митапы, вебинары и курсы повышения квалификации. А ещё не забывайте о сертификатах, которые нужно получать и подтверждать с разной периодичностью.
3.2.5 Тайм-менеджмент
Контроль времени на решение поставленных задач существенно экономит и само время, и ресурсы, а также увеличивает продуктивность. Тайм-менеджмент для разработчика базируется на тех же концепциях, что и для любой другой профессии.
При планировании рабочего дня учитывайте дедлайны, используйте тайм-трекер и таблицу Эйзенхауэра:
4. Какое направление в программировании выбрать в 2023 году
Прежде чем думать, как стать айтишником с нуля самостоятельно, стоит определиться с направлением. По данным Stack Overflow Developer Survey 2020, популярность IT-специальностей такова:
В опросе приняло участие 65 000 разработчиков из разных стран.
Но что насчёт России? Согласно данным «Университета 20.35» за 2020 год, в топ-10 востребованных удалённых ИТ-профессий России вошли:
- Java-разработчик
- Аналитик данных
- Разработчик на языке C#
- PHP-разработчик
- Специалист службы поддержки
- Продуктовый аналитик
- Разработчик 1С
- Kotlin-разработчик
- Системный администратор
- Системный аналитик
А вот зарплаты айтишников по специализациям за второе полугодие 2020:
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
Проценты на диаграмме отражают разницу с предыдущим периодом, а прочерк означает, что данных для сравнения недостаточно.
5. Десктопная разработка
Десктопными называют приложения, которые устанавливаются на компьютер и работают под управлением ОС. Как известно, чтобы стать айтишником с нуля, сперва в любом случае нужно практиковаться на консоли и десктопе.
Хотите заниматься этим на серьёзном уровне? Здесь всё просто: если планируете разрабатывать под Windows — учите язык C#, под Linux — C++ или C, под macOS — Swift.
5.1 Программы для Windows
Стоит отметить, что для создания десктопных приложений можно использовать почти любой язык: Java, Python и даже Delphi. Мы же затронем самые оптимальные и популярные языки.
5.1.1 C# / C++
Для серьёзного высокопроизводительного приложения подойдут «плюсы». Но если жёстких требований к производительности нет, лучше обратиться к GUI-платформе Windows Presentation Foundation в составе .NET Framework. Писать на C# проще, и развивается это язык динамичнее того же C++.
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
Также есть вариант объединить мощность C++ и удобство .NET. Например, пользовательский интерфейс на C#, а подключение «плюсовых» библиотек через C++/CLI.
Чуть больше вы сможете узнать из нашего гайда по программированию на C++ с нуля.
5.2 Для Linux
5.2.1 C
Linux — это семейство Unix-подобных операционных систем, и так сложилось, что ядро Linux написано на языке C. Да, Си считается устаревшим, поэтому многие программисты предпочитают ему Python, Java, Perl, иногда Ruby. Но драйверы, модули ядра и большая часть системного ПО всё же написаны на языке программирования Си, и для Linux-программ он приоритетен.
Если вас интересует, как стать разработчиком на языке C, загляните в материалы по изучению Си.
5.2.2 C++
По сути, это усовершенствованный С. Браузеры, графические окружения, утилиты GNU и прочее программное обеспечение под Linux написаны на C++. А ещё на «плюсах» написан Qt — графический фреймворк, который используется во многих кроссплатформенных программах и является бесплатным для разработки свободного ПО.
5.3 Для macOS
5.3.1 Swift
Swift — родной язык для Apple-приложений, так что он оптимален для разработки под macOS. Выбрать можно и Objective-C, но последний проигрывает в скорости работы.
- прост в изучении;
- легко читается;
- поддерживает современные синтаксические конструкции;
- есть опционалы, которые «спасают» от null.
6. Data Science
Языки программирования Python и R — общепринятый стандарт для Data Science, так как они оба отлично подходят для работы со статистикой.
6.1 Python
Как стать Python программистом с нуля самостоятельно? На самом деле, не так уж сложно: у языка Пайтон простой синтаксис, много библиотек, развёрнутая и понятная документация. Но есть и минусы, такие как отсутствие удобных средств ORM и не самая высокая скорость работы.
Для Data Scientist у Python есть немало библиотек и фреймворков:
6.2 R
R в свою очередь характеризуется богатой ML-экосистемой, поддержкой векторных вычислений и синтаксисом, заточенным под нужды статиста. Из минусов — меньшее комьюнити и не самый простой синтаксис.
Но у языка R есть свои инструменты для Data Science:
- Esquisse и Ggplot2 — библиотеки для создания графиков.
- Dplyr — аналог Pandas для R.
- Shiny — пакет для интерактивных веб-приложений с визуализацией исследований.
И это не говоря о randomForest, Caret и других библиотеках с методами машинного обучения.
7. Как стать разработчиком на Андроид
В 2019 году компания Google объявила Kotlin предпочтительным языком программирования для создания Android-приложений. Это спровоцировало новую волну споров по выбору языка.
Ответ таков: чтобы стать Android-разработчиком, нужны оба языка, но при этом ознакомиться с их отличительными характеристиками не помешает.
7.1 Java
- много библиотек и готовых решений;
- большое комьюнити;
- разные сферы применения, если вдруг надоест Android-разработка;
- документация Kotlin предполагает, что вы знаете Java.
7.2 Kotlin
- лаконичный синтаксис;
- актуальная IDE, тесно связанная с языком разработки (Android Studio и Kotlin созданы JetBrains);
- предсказуемое развитие;
- перспективы.
8. План развития iOS разработчика
А как же тогда стать разработчиком iOS? Здесь всё гораздо проще, так как основной язык всего один.
8.1 Swift
Этот язык программирования разработан Apple и многое заимствовал из Objective-C, а также C++.
- компактный язык программирования;
- производительность приближена к C++;
- тестирование кода в реальном времени со Swift Playgrounds;
- постепенно распространяется на другие платформы.
9. Как стать разработчиком игр
Что нужно знать программисту, чтобы войти в геймдев? Сперва необходимо определиться, как устроены игры. Хороший вариант для начинающих — готовые движки, такие как Unity и Unreal Engine (но последний сложнее и серьёзнее).
Далее стоит определиться с платформой, под которую вы хотите разрабатывать игры. Поэтому на вопрос, что нужно знать разработчику игр, ответить не так просто.
9.1 Игры на iOS или macOS
Поговорим о программировании игр на Swift. Для начала необходимо установить «яблочную» IDE Xcode: в ней поддерживается разработка как на iOS, так и на macOS. Среда бесплатная и функциональная. В ней создайте новый проект с шаблоном Single View Application или Game. Тут уж к чему душа лежит:
- Single View Application предназначен для приложения с одним экраном. Шаблон включает в себя компонент View Controller для настройки вида с конструктором Interface Builder.
- Это специальный игровой шаблон. В нём предусмотрены фреймворки для двумерной визуализации, 3D-графики без OpenGL и низкоуровневый API, с которым можно писать действительно высокопроизводительные игры.
9.2 Браузерные игры
Вообще, создать браузерную игру можно и на HTML/CSS/JavaScript, но мы затронем PHP.
9.2.1 PHP
PHP актуален для разработки браузерных игр, хоть и не заточен под них специально. Такие компании, как Funzio, Gameforge, Goodgame Studios и другие продолжают использовать этот язык в своих играх.
Есть исчерпывающий видеокурс по созданию браузерной игры на PHP — от настройки окружения до регистрации и авторизации:

9.2.2 JavaScript
После ухода тяжеловесной технологии Flash из браузеров у JavaScript-разработчиков появилось много возможностей. Сейчас есть сильная альтернатива — элемент Canvas в HTML5 для создания двухмерных изображений через JavaScript-команды.
Чтобы понимать принцип создания игр на JS, проанализируйте код рандомайзера с угадыванием чисел.
Как только освоите азы, попробуйте написать что-то сложнее. В этом видеоуроке как раз используются чистый JavaScript и HTML5 Canvas:

9.3 Игры на Unity
Это популярная платформа для разработки игр. Очень дружелюбна к новичкам: можно бесплатно загрузить и обучаться с помощью курсов, словарей и других материалов, которые предоставляет компания и участники сообщества. Платформа поддерживает создание 2D- и 3D-игр.
Игры на Unity пишут с использованием языков C# и JavaScript. Почитайте, как создать простую 2D-игру на Unity.
9.4 Современные большие и требовательные игры
Речь о тяжеловесных многопользовательских играх с сильной нагрузкой на сервер. Такая задача под силу языкам C и C++.
9.4.1 C++
Что нужно знать начинающему программисту о C++? Это самый популярный язык программирования для геймдева: быстрый, мощный, с большим набором полезных инструментов. C++ — практически неограниченные возможности в среде масштабных проектов, в том числе в создании 3D-игр со сложной графикой и анимацией.
Не даром ведущие разработчики многопользовательских игр, такие как Blizzard Entertainment, работают с C++. На нём написаны World of Warcraft, Diablo, StarCraft, Counter-Strike и другие популярные игры. В основе Xbox и PlayStation также лежит C++.
9.4.2 С
Да, язык не такой популярный, как «плюсы», но по-прежнему хорошо справляется с большими нагрузками — альтернатив на низком уровне нет. Когда дело доходит до компиляции, сложно представить, какой бы язык мог конкурировать с Си.
10. Как стать Python разработчиком
Чтобы стать питонистом, нужно начинать с азов, таких как принципы ООП и синтаксис языка. А понимание того, как стать программистом Python, придёт с определением сферы деятельности. Основных направления для Пайтон-разработчиков два:
- Data Science
- Веб-разработка
Поскольку первое направление мы уже разобрали, сосредоточимся на веб-разработке. Что же что нужно знать Python веб-разработчику? Обратите внимание на фреймворки Django и Flask. Для эффективной работы с бэкендом достаточно одного из них, но в идеале следует понимать оба.
Python можно использовать для создания десктопных приложений, геймдева и мобильной разработки, но наилучших показателей с этим языком можно достичь в перечисленных направлениях.
Разработка на Python с нуля: роадмап программиста
11. План развития Java-программиста
А как можно стать Java разработчиком, если никогда не был программистом? Базис для всех языков плюс-минус одинаков: синтаксис, переменные, условия, циклы, ООП. Для решения специфических задач нужно освоить инструмент сборки и управления проектом Maven. Будет полезен и набор open source сервисов Netflix Stack.
Дальше всё зависит от выбранного направления в Java:
- веб-разработка;
- Android разработка;
- программирование для десктопов;
- Big Data.
Все материалы по этим направлениям, инструменты и путь развития вы найдёте в дорожной карте Java-программиста.
12. Бэкенд разработка — с чего начать?
Как стать бэкенд разработчиком? Нужно понимать, как устроены операционные системы, уметь работать с терминалом, знать стандарты POSIX и концепции построения сети, управлять вводом и выводом (I/O), процессами, а также памятью.
Как освоить бэкенд-разработку в 2022 году: дорожная карта
12.1 Обучение PHP
Как вы могли догадаться, стать бэкенд-разработчиком без знания языка невозможно.
PHP принято считать стандартом бэкенд-разработки, так как на нём написано множество веб-проектов, включая Facebook, Viber, Yahoo, YouTube, Wikipedia и даже движок WordPress, на котором вы сейчас читаете эту статью.
Другие преимущества PHP:
- простая установка и настройка;
- кроссплатформенность;
- выполнение программы до достижения ошибки в коде;
- большое комьюнити.
12.2 Обучение Node.js
Как известно, стать бэкенд веб-разработчиком на JavaScript можно с программной платформой Node.js. Она позволяет запускать JavaScript-код без браузера на бекенде, а в пакетной экосистеме npm есть много готовых решений.
12.3 Обучение Java
Мы уже разобрались, как можно стать Java программистом с нуля — поговорим прицельно о роли языка в бэкенде.
Для новичка Java сложнее, чем условный Python или PHP, да и код выйдет более громоздким. Однако это мощный инструмент в создании больших веб-проектов вроде eBay или LinkedIn, которые как раз и написаны на Java.
12.4 Обучение Django
Задаётесь вопросом, как стать веб разработчиком, зная Python? Используйте для этого Django — полнофункциональный веб-фреймворк, который предоставляет достаточно готовых решений для серверной части.
12.5 Основы SQL
Это язык запросов для работы с базами данных. Вы вряд ли вы найдёте по нему гайд в разделах «Как стать программистом», ведь SQL нужно не учить, а понимать.
Держите материалы, которые позволят разобраться в основах SQL:
- Основные команды SQL, которые должен знать каждый программист
- 27 распространённых вопросов по SQL с собеседований и ответы на них
13. Как стать фронтенд разработчиком
Итак, frontend программирование — с чего начать? Вам нужно освоить HTML, CSS и JavaScript — три кита, на которых стоит фронтенд-разработка.
13.1 Обучение HTML
Разметка — это каркас сайта. Чтобы работать с фронтендом, следует хорошо понимать анатомию HTML-разметки, знать основные атрибуты и теги, обеспечивать доступность и освоить SEO хотя бы на базовом уровне.
Для лучшего понимания рекомендуем ознакомиться с видеокурсом «HTML5 для начинающих».
13.2 Обучение CSS
Далее идут каскадные таблицы стилей. В разрезе CSS вам нужно освоить:
- компоновку;
- центрирование и выравнивание;
- видимость элементов.
Это базис. Следующим этапом можно переходить к медиа-запросам, которые позволят учитывать технические параметры разных устройств. В создании адаптивного отзывчивого дизайна помогут CSS Grid и Flexbox.
13.3 Обучение JavaScript
Ну и как стать эффективным фронтенд разработчиком без знания JavaScript? Именно он отвечает за функциональность сайта и возможность с ним взаимодействовать: заполнение и отправка форм, нажатие кнопок, прослушивание событий и многое другое.
Не спешите осваивать фреймворки — сперва чистый JavaScript. Это язык со слабой типизацией, а значит операция вроде 2 + “2” вместо ошибки выдаст результат 22. Так что есть с чем разбираться и без фреймворков.
Больше полезных материалов и инструментов для фронтенд-разработчика вы найдёте в дорожной карте по фронтенду.
14. Full Stack разработка
Эдакий гибрид frontend- и backend-разработки. Данное направление набирает популярность. Сейчас сложно найти чистых фронтендеров или бэкендеров: для взаимодействия этим специалистам нужно знать, за что отвечают их коллеги по вебу.
Фуллстек-разработчик не будет одинаково хорош в разработке серверной и клиентской части. Но как стать чистым Full Stack разработчиком, и чем вообще занимаются эти специалисты?
Хороший пример — CRM-разработчик. В его обязанности входят:
- Работа с базами данных клиента: создание событий, автоматизация процессов и интеграция приложений посредством API.
- Настройка аналитики в формате репортов/дашбордов.
- Создание простенького, но понятного интерфейса для работы с готовым продуктом.
Здесь также применимы инструменты вроде Bootstrap или Angular, но без фанатизма — важно создание рабочего функционального продукта.
Как стать full stack разработчиком
15. Какой язык программирования выбрать в 2023 году
Всё ещё не определились с языком? Для начала взгляните на рейтинг TIOBE:
А теперь давайте пробежимся по самым популярным языкам программирования, затронем их сильные стороны и уточним сферы применения.
15.1 Python
Как уже говорилось ранее, стать Python программистом с нуля самостоятельно несложно, ведь у языка низкий порог вхождения и понятный синтаксис. Пайтон рекомендуется к изучению в вузах в качестве базового языка.
Основные сферы применения Python:
- Data Science
- Веб-разработка
15.2 JavaScript
О сферах применения JS говорить не стоит: язык давно стал лидером в веб-разработке, сперва захватив фронтенд, а теперь и отжимая бэкенд за счёт Node.js. Если хотите разрабатывать веб-приложения, учите JavaScript.
15.3 Java
Java — это кроссплатформенный язык программирования, мощный обработчик и внушительная библиотека. У Java много готовых решений и исчерпывающая документация.
Основные сферы применения Java:
- Веб-разработка
- Android разработка
- Десктопная разработка
- Big Data
15.4 C++
Быстрый, универсальный и полезный в качестве фундамента язык. Да, пусть Python в разы проще, но за сложностью C++ скрываются и преимущества. Освоив «плюсы», будет легче понять Java, C# и JavaScript, в основу которых легли принципы C++.
Главные сферы применения C++:
- Геймдев
- Интернет вещей (IoT)
- Операционные системы
- Ускорение существующих приложений
15.5 С#
C# часто сравнивают с Java, и у них действительно много общего. Код на C# удобочитаемый, а синтаксический сахар обеспечивает высокую скорость разработки.
Основные сферы применения C#:
- Геймдев
- AR/VR
- Десктопная разработка
По этому видеокурсу вы узнаете, как стать C# разработчиком.
15.6 PHP
Это бессмертная классика серверной части веб-приложений. PHP бюджетен, прост в освоении и успел обрасти внушительным комьюнити. Пусть современные сайты и пишутся то на Java, то на Node.js, существует огромная база написанных на PHP веб-приложений, которые всегда будут нуждаться в поддержке.
15.6 Kotlin
Здесь только Андроид. Но, как говорилось ранее, чтобы стать Android разработчиком с нуля, стоит начать с изучения Java, а только после переходить на Kotlin.
15.7 Swift
Если хотите писать десктопные и мобильные приложения для Apple устройств, осваивайте Swift. Это компактный и производительный язык программирования, который постоянно совершенствуется компанией Apple.
15.8 На что обратить внимание при выборе
На отрасль, в которой желаете развиваться. Но чтобы понять, как стать программистом и с какими трудностями придётся столкнуться, рекомендуем начать с C или C++, после которых любой другой язык освоить куда проще.
Если же вы точно определились, с чем именно хотите работать, смело выбирайте язык, который для этого подходит. Опирайтесь на рейтинги популярности, просматривайте вакансии по желаемому направлению в вашем городе, сравнивайте уровень востребованности и зарплаты.
16. Где выучиться на программиста
Чтобы ответить на вопрос, где учиться на программиста, необходимо рассмотреть все доступные варианты.
16.1 Самостоятельная учеба
Обилие книг, видеоуроков и сервисов вроде Scratch позволяет освоить базис, не выходя из дома. Но как выстроить план обучения, чтобы стать программистом с нуля самостоятельно? Обратитесь к стандартным программам обучения или роадмапам. Чаще всего основы включают в себя:
- Знакомство с программированием.
- Разнообразие IT-направлений.
- Основы выбранного языка: синтаксис, объекты и классы, функции, списки и словари, условия, циклы.
- Hello World.
- Модульное тестирование.
- Безопасность.
16.2 ВУЗ
Это более основательный подход, и, вопреки распрсотранённому заблуждению, «корочка» IT-специалиста действительно ценится, особенно в крупных компаниях. Если вы серьёзно настроены на карьеру в IT и думаете, как отучиться на программиста, выбирайте вуз.
16.3 Практические курсы
К курсам можно относиться по-разному, но если у вас нет профильного образования и вы не хотите тратить несколько лет в вузе, курсы — хороший вариант. К тому же, современные курсы покрывают практически все нужды, обеспечивая обучение основам программирования, более продвинутым темам, помогая с составлением резюме и трудоустройством.
16.4 С помощью ментора
Мы уже разобрались, как можно стать айтишником с нуля дома, но не затронули менторство. Всё потому, что оно не всегда подразумевает обучение на дому: это может быть как онлайн-репетитор, так и индивидуальные занятия оффлайн.
Ментор не только объяснит материал, но также обратит ваше внимание на ошибки, которые вы допускаете на практике. Внимание наставника не растекается по группе людей, а сосредоточено именно на вашей работе, что даёт более прицельное обучение программированию.
17. Классификация разработчиков
Когда люди говорят, что программисты много зарабатывают, они чаще всего подразумевают сеньоров. Давайте разберёмся, какие уровни IT-специалистов существуют и чем разнятся.
17.1 Стажёр
Стажёр — это вчерашний студент, который набивает шишки на практике. Обычно это низкооплачиваемые сотрудники, которых компания нанимает специально, чтобы взрастить нужного специалиста.
Стажировка может быть как оплачиваемой, так и неоплачиваемой: всё зависит от договорённости с нанимателем. Продолжительность стажировки оговаривается индивидуально. Чаще к стажёру приставляют ментора от компании.
17.2 Junior разработчик
Как правило, чтобы стать Джуниор программистом, достаточно освоить синтаксис языка, простые задачи решать самостоятельно, а сложные — заручившись помощью более опытного коллеги. Младший разработчик постоянно учится, совершенствует свои навыки. Его код нуждается в постоянном ревью.
17.3 Middle разработчик
У такого программиста уже есть опыт в разработке, он самостоятельно выполняет сложные задачи, но по-прежнему нуждается в ком-то, кто направит. Чаще стек технологий Мидла ограничен необходимым базисом. Нередко он знает, как выполнить поставленный таск, но не до конца понимает, как его решение интегрируется в готовый проект.
17.4 Senior разработчик
Сеньор, или старший разработчик, уже обладает широким кругозором, знает несколько языков программирования и технологий, способен с нуля создать архитектуру проекта с учётом его будущего развития. Senior программисты продолжают совершенствовать навыки, но при этом способны генерировать собственные идеи и делиться ими с командой.
Переход между перечисленными уровнями требует не столько времени, сколько усердия со стороны самого разработчика.
18. Как стать Junior-разработчиком
Здесь опять всё упирается в выбранную отрасль: у каждой специальности свои требования. Давайте разберёмся, что нужно знать младшему программисту на примере веба и мобильной разработки.
17 вопросов джуну: что должен знать Junior-разработчик
18.1 Frontend Junior
Сразу оговоримся, что алгоритмы, Git, тестирование и прочий базис мы затрагивать не будем, так как это актуально для всех направлений.
Итак, что же нужно знать младшему Frontend разработчику в 2023 году?
- HTML5, понимать разметку, освоить базовые теги, атрибуты и вложенные элементы.
- CSS3 — позиционирование, компоновка и выравнивание элементов, их видимость, отзывчивый дизайн и подходы mobile-first.
- Если мы говорим о JavaScript, то сперва следует выучить основы языка, а лишь потом двигаться к фреймворкам.
- Понимание MongoDB.
18.2 Backend Junior
К младшему бэкенд программисту иные требования. Он должен знать:
- Принцип работы интернета и операционной системы.
- Язык серверного программирования: PHP, Java, JavaScript (Node.js), Python (Django) или другой.
- Базы данных — реляционные и NoSQL.
- API — REST, JSON.
Плюсом будет умение установить и настроить хотя бы один из популярных веб-серверов: Nginx, Apache, Caddy или MS IIS.
18.3 Junior iOS
Чтобы влиться в iOS-разработку, нужно:
- Знать язык программирования Swift.
- Иметь практический опыт работы с IDE Xcode.
- Понимать сущность MVC, а также то, как «яблочные» приложения строятся на основе этого паттерна.
- Уметь запускать приложения на устройствах и распространять их.
18.4 Junior Android
Как уже говорилось, начать следует с выбора языка, но за основу лучше взять именно Java, а при необходимости дополнительно изучить Kotlin. Далее:
- Практический опыт работы с Android Studio.
- Понимание Android Architecture: паттерны MVVM, MVI, MVP.
- Изучение жизненного цикла Activity.
- Умение создавать гибкие интерфейсы с использованием фрагментов.
- Запуск приложений на устройствах.
19. Где работают программисты
Сложно ответить на вопрос, где в целом работают программисты, потому что сегодня профессия требуется чуть ли ни в любой сфере.
19.1 Фриланс
Как стать айтишником на фрилансе? Для этого есть немало площадок: Upwork, Weblancer, Kwork, FL и другие. Но будьте готовы нарабатывать портфолио и репутацию, а для этого первое время придётся перебиваться дешёвыми заказами.
Большой плюс — знание английского и умение строить вопросы на получение исчерпывающих ответов: вы сами себе PM, тимлид и разработчик.
19.2 Компании аутсорсеры
Также ласково называемые галерами. А всё потому, что от сотрудников часто требуется многозадачность за зарплату одного специалиста.
Но не всё так плохо. Во-первых, аутсорсинг — это готовые задачи, которые на фрилансе нужно выбивать, доказывая свою профпригодность. Здесь же менеджеры сами договариваются и берут нужный таск. Во-вторых, корпоративная жизнь предполагает бесплатный чай/кофе, абонементы в спортзал, тимбилдинги, корпоративы и вообще комфортную работу. Не всегда, но в крупных компаниях это так.
19.3 Стартапы и небольшие компании
Неплохо для начинающих программистов и опасно для опытных, которые готовы ради этого бросить более крупную «рыбу». В стартапах всегда есть риски:
- итоговая зарплата окажется ниже обещанной;
- выплачиваться будет с задержкой;
- компания в любой момент может закрыться, не выдержав конкуренции.
Но это хороший опыт для стажёров, которые всё ещё думают, как стать программистом, младших разработчиков и тех, кто хочет уйти от фриланса.
19.4 Банки и энтерпрайз
Здесь потребуется разработка, направленная на решение проблем бизнеса, а не конечных пользователей. Именно поэтому в банки и бизнес-отрасли часто набирают только Senior-программистов, так как нужно дописывать и поддерживать готовые проекты, нередко с Legacy-кодом. Зарплаты обычно выше средних на рынке, а от самого разработчика требуется терпение и исполнительность.
19.5 Продуктовые компании
Если аутсорсинг сосредоточен на разноплановости, ограниченных сроках и бюджете, то продуктовая компания — на эффективном управлении своими решениями. Во втором случае никто не будет требовать от вас проект на вчера и ведение сложных переписок с кучей недопониманий. К тому же, вы явно будете видеть свой вклад в развитие одного большого проекта.
Как стать разработчиком продуктовой компании? Точно так же, как и аутсорсинговой, но будьте готовы, что требования могут быть выше, ведь компания ищет программиста непосредственно для себя, а не для левого дяди.
Где ещё можно работать программистом? Это фриланс, open source и собственные проекты.
20. Как найти первую работу в IT
Всё чаще поднимается вопрос поиска и найма недооценённых специалистов — без диплома или соответствующего опыта работы. Исходя из этого, что же всё-таки нужно знать начинающему программисту?
Для начала вы должны показать, что нанять вас выгодно. В этом помогут теоретическая база, опыт в других сферах, знание английского и мотивация. Можно изобразить это так:
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
20.1 Где брать проекты для портфолио
Если в поисках ответа на вопрос, где можно выучиться на программиста, вы выбрали курсы, практический опыт гарантирован: курсы для разработчиков не обходятся без написания проектов. То же касается и вузов, где присутствует обязательная практика.
Сложнее будет, если вы самоучка. Но и здесь можно что-то придумать:
- писать небольшие программы по туториалам;
- искать задания на фрилансе и выполнять их самостоятельно;
- принимать участие в разработке open source проектов.
20.2 Как составить резюме, если нет опыта
- Нормально назовите резюме. В названии должны быть желаемая должность и ФИО кандидата, как здесь: «Junior Java — Пупкин Иван Иванович».
- Резюме может быть в формате Doc, PDF или сайта-визитки, если вы веб-разработчик.
- Добавьте адекватное фото и контакты.
- Укажите места, где учились и повышали квалификацию.
- Не копирайте бездумно инфу из разделов, что нужно знать, чтобы стать крутым программистом: вы должны доказать эти знания на собеседовании.
- Если нет опыта работы, указывайте, сколько времени практикуетесь в том или ином языке/технологии.
Последний пункт в резюме программиста может выглядеть примерно так:
- Java — 1 year;
- PHP — 0,5 years;
- JavaScript — 0,5 years.
20.3 Где искать вакансии и работу
О фриланс-сервисах мы уже говорили, потому затронем платформы по поиску работы в офисе или в ремоут-режиме. Для России и стран СНГ лучшие сайты с вакансиями для программистов это:
20.4 Как общаться с рекрутерами
Как вы понимаете, стать хорошим программистом в обход общения с HR невозможно. На собеседовании не стесняйтесь озвучивать свои желания и вопросы. Если на всё кивать головой, как автомобильная собачка, после трудоустройства можно обнаружить себя в крайне некомфортных условиях работы. Мы подготовили 13 вопросов работодателю, которые стоит задать на собеседовании.
Несмотря на это, нужно вести себя в меру сдержанно, демонстрировать серьёзность и говорить о своей мотивации.
21. Что спрашивают у Джунов на собеседовании
Огромный пласт вопросов приходится на теорию, чуть меньше занимает практика. Перед собеседованием изучите информацию о компании — обязательно спросят, почему именно она вас заинтересовала. Также подготовьтесь к каверзным вопросам рекрутера.
Будут и логические задачи. При этом ответ не обязательно должен быть верным — важно озвучивать ход мыслей, показывать, как именно вы пришли к тому или иному решению.
Из задач встречаются алгоритмы поиска и сортировки, расчёты, работа со строками и списками, оптимизация готовых решений. Держите несколько сложных задач с собеседований с разбором и кодом.
Другие вопросы, которые могут прозвучать на собеседовании:
- Принципы ООП и их понимание.
- Команды Git — как сделать пуш, коммит и т. д.
- Основные SQL-запросы.
Всё остальное будет касаться выбранного языка.
22. Что делать, если вам не хватает знаний до вакансии Джуниор-программиста
Трудоустроиться после первого же интервью почти нереально. Не расстраивайтесь из-за отказов, а используйте их с пользой. Как же стать востребованным айтишником с нуля? Будьте готовы набивать шишки на собеседованиях, запоминать или записывать вопросы, которые ранее не встречались, включать их в программу подготовки к собеседованию.
23. Заключение
Надеемся, этот гайд ответил на вопрос, как стать программистом, дал полезные советы и материалы, а также мотивировал на покорение новых вершин.
Остались вопросы? Задайте их в комментариях.

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