Как стать программистом и найти первую работу

Обложка поста

Адаптированный перевод статьи «‎How to become a developer and get your first job as quickly as possible»

Иван Капцов

Рассказывает разработчик программного обеспечения Сэм Уильямс

Зачем становиться программистом?

Если вы планируете стать программистом, но не уверены, хорошая ли это идея, вот что поможет решиться:

  1. Спрос на разработчиков сейчас большой. Например, для тех, кто разрабатывает приложения на iOS и Android, конкуренция составляет менее 2 человек на место. При этом средняя зарплата по Москве 130–140 тысяч рублей, а зарплатный максимум — 300 тысяч в месяц. Самый большой конкурс на должность аналитика данных — 4,5 резюме на одну вакансию.
  2. Работа очень разнообразна и интересна. Разработчик может трудиться над огромным количеством проектов: от сайтов электронной коммерции до компьютерных игр, от мобильных приложений до искусственного интеллекта. Почти все навыки можно использовать в нескольких областях, поэтому вы не привязаны к одной работе.
  3. Работа может быть гибкой. Большую часть времени вам нужно будет читать и писать код, поэтому всё, что вам понадобится, — это компьютер. Всё больше разработчиков работают удалённо — из дома или путешествуя по миру.

Как стать программистом

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

Участвуйте в буткемпах

“Boot Сamp” – (дословно “Сапожный лагерь”) формат обучения, который использовали для лагерей по интенсивной подготовке солдат: вместо трёх лет обучение длилось всего три месяца. Такой формат взяли за основу обучения многие западные бизнес-школы.

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

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

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

Найдите наставника

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

Как получить первую работу

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

В поисках работы

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

Легче всего попасть в веб-разработку. Даже если вы не планируете заниматься этим в будущем, огромное количество вещей из веб-разработки вы сможете потом использовать в желаемой сфере. Вот примерный список требований для вакансии Junior Front End Web Developer:

Что нужно, чтобы получить должность?

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

Если у вас есть опыт работы в компании, это здорово, но не волнуйтесь, если нет — нас больше интересуют ваши примеры работ/портфолио.

Чем вы можете нас впечатлить (желаемые навыки)?

  • умением разрабатывать темы для WordPress с нуля;
  • уверенностью в настройке и интеграции плагинов WordPress;
  • пониманием jQuery;
  • опытом работы с PHP (пусть и небольшим);
  • пониманием поисковой оптимизации (SEO).

Требования, которые встречаются чаще всего:

  • Знание фронтенда: HTML, CSS и JavaScript;
  • Способность создавать адаптивные сайты;
  • Портфолио, демонстрирующее ваш опыт и навыки;
  • Понимание контроля версий.

Дополнительные навыки:

  • Библиотеки Javascript: jQuery, AJAX, Bootstrap;
  • Знание отладки.

Создайте план обучения

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

HTML и CSS

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

freeCodeCamp — это ресурс, который учит всему, что связано с разработкой сайтов. Именно благодаря этим пошаговым урокам я выучил HTML, CSS и JavaScript!

Начните с Responsive Web Design Certification и разделов Basic HTML, HTML5 и Basic CSS. Эти разделы знакомят вас с HTML и CSS, и в конце вы будете создавать формы и стилизовать HTML с помощью каскадных переменных.

Изображение, которое вы создадите в разделе Basic CSS: Cascading CSS variables

Чтобы улучшить свои навыки CSS, изучите раздел Applied Visual Design до Create a More Complex Shape Using CSS and HTML, а затем сделайте все задания в Responsive Web Design and CSS Flexbox. Остальные разделы пока можно пропустить.

Научившись использовать HTML и CSS для создания и стилизации веб-страницы, пройдите практику на Responsive Web Design Projects. Вы примените все ваши знания, чтобы создать пять веб-сайтов.

Контроль версий

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

Есть большой гайд An Intro to Git and GitHub. Вы можете изучить его до разработки на HTML и CSS и использовать контроль версий для проектов.

Теперь попробуйте сделать все свои проекты в локальном редакторе (например, VS Code) и загрузить их в CodePen, когда закончите. Это поможет накопить опыт.

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

JavaScript

JavaScript — это язык, на котором работают 94,8 % веб-сайтов. JavaScript позволяет сделать статический веб-сайт полностью интерактивным.

Изучите раздел Javascript Algorithms And Data Structures Certification на freeCodeCamp. На работе большую часть времени вы будете тратить на написание кода на JavaScript. Чтобы хорошо в нём разобраться, нужно сделать все задания.

Портфолио

Чтобы показать работодателям ваши умения, нужно портфолио. К счастью, у вас уже будет 10 проектов: 5 на HTML и CSS и 5 на JavaScript. Убедитесь, что вы загрузили всё на GitHub, чтобы будущие работодатели могли посмотреть и увидеть, как хорошо вы работаете.

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

Поиск работы

Резюме

Теперь вы должны соответствовать требованиям многих вакансий Junior Web Developer. Пришло время искать работу.

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

Можете выполнить не менее 80 % требований, предъявленных к вакансии? Смело подавайте резюме. Вы всегда можете сказать, что как разработчик-самоучка быстрее научитесь новому. Но откликайтесь только на те вакансии, которые сами считаете интересными.

В Сети масса примеров и сервисов по составлению резюме. Выберите себе наиболее подходящий.

Как общаться с рекрутерами

Рекрутеры знают, чего хочет компания, знают о рабочих местах, которых нет на досках объявлений, и хотят, чтобы вы получили работу… за это им платят. Чтобы ваше резюме попало в руки как можно большего числа рекрутеров, нужно подавать заявку на работу на разных сайтах. Например, на HeadHunter и Superjob, но постарайтесь найти и менее известные.

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

Продолжение обучения

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

Изучайте различные библиотеки

Библиотеки JavaScript как правило делают жизнь разработчика намного проще. Одна из самых популярных библиотек — это jQuery. Она помогает с манипулированием DOM, функциями объектов, массивов и многим другим.

Изучение jQuery — отличное начало для знакомства с работой с библиотеками JavaScript. Есть множество курсов и учебных пособий по jQuery, но мне нравятся уроки freeCodeCamp.

Завершите уроки HTML и CSS

Вернитесь к изучению HTML и CSS на freeCodeCamp и завершите остальные уроки: Applied Visual Design, Applied Accessibility, и CSS Grid.

Улучшите свой CSS (необязательно)

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

Узнайте, как работает JavaScript

Умение использовать JavaScript — это замечательно, но понимание того, как он работает, позволит вам писать код лучше.

Чтобы глубже понять JavaScript, рекомендую серию книг «Вы не знаете JS». Первые две книги помогут разобраться в основах JavaScript и заложить хороший фундамент. Их можно прочитать онлайн бесплатно или купить в печатном виде.

Создавайте проекты

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

Проекты должны улучшать ваши навыки, поэтому, если они слишком простые или сложные, остановитесь и начните проект на приемлемом уровне.

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

Как пройти интервью

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

  • Знайте своё резюме.
  • Знайте о компании.
  • Практикуйтесь
  • Придите пораньше, будьте вежливыми и уверенными в себе.
  • Задавайте вопросы.
  • Следите за ходом интервью.

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

Подробнее можно почитать в разделе: ‎«Всё, что нужно знать программисту для собеседования».

Заключение

Если вы хотите стать разработчиком, нужно стремиться устроиться на работу в IT-компанию как можно скорее. Неплохим вариантом будет позиция Junior Frontend Developer. Чтобы получить работу, вам необходимо:

  • выучить HTML, CSS и JavaScript,
  • создать портфолио с проектами.

Как только вы это сделаете, можете искать работу.

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

Не смешно? А здесь смешно: @ithumor