Что нужно знать о разработке не разработчику
Перейти к содержимому

Что нужно знать о разработке не разработчику

  • автор:

Что нужно знать о разработке не разработчику

Фронтенд-разработчик: кто это, что должен знать и чем занимается

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

Кто такой фронтенд-разработчик

Фронтенд-разработчик (Frontend Developer) — это специалист, который создает интерфейсы веб-сайтов и приложений. Проще говоря, разрабатывает внешний вид интернет-площадок: это картинки, выпадающие списки, анимация, карточки товаров и все, с чем может взаимодействовать пользователь. Например, то, каким ты прямо сейчас видишь этот сайт, — как раз результат работы нашего фронтенд-разработчика.

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

Также задача фронтенд-разработчика — сделать так, чтобы сайт был не просто привлекательным внешне, но и удобным для пользователей. Заходя на страничку, посетитель должен интуитивно понимать, как ему перемещаться на площадке и где искать нужную информацию. Вспомни, было ли такое, что ты не мог найти кнопку «Купить» в интернет-магазине или раздел «О компании»? Все это недочеты разработки frontend developer.

Чем занимается фронтенд-разработчик

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

• создание структуры для страницы сайта;

• проверка удобства для пользователей;

• адаптация страницы для разных типов устройств: компьютера, смартфона, планшета.

Что должен знать и уметь фронтенд-разработчик

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

Примерный список базовых инструментов, необходимых frontend developer, выглядит так:

• адаптивность и мобильный дизайн;

• тестирование и отладка;

• Git и системы контроля версий.

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

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

Для работы на больших проектах необходимо знание фреймворков, например React, Angular, Backbone, Vue.js, Ember. Фреймворки — это своеобразная база шаблонов, которая помогает разработчику создавать пользовательский интерфейс. Выбор инструментов здесь ограничен, но его вполне достаточно, чтобы решить типовую задачу при разработке.

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

Webpack и gulp.js — самые популярные сборщики проектов. Frontend developer необходимо знать, для чего они нужны и как ими пользоваться. Сборщик проектов определяет последовательность действий при автоматическом запуске приложения из командной строки.

Адаптивность и мобильный дизайн

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

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

Тестирование и отладка

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

Git и системы контроля версий

На некоторых проектах одновременно работает несколько frontend-специалистов, и может получиться так, что кто-то внесет ненужные или неправильные изменения в твой код. Так вот, знание систем контроля версий поможет отследить все правки, вернуться к исходной версии кода и исправить ошибки. Самая популярная программа для контроля изменений — Git. Обычно ее используют при командной работе, когда специалисты пишут код параллельно. Но знать Git должен и новичок в профессии.

Еще несколько инструментов, которые пригодятся в работе фронтенд-разработчика:

• MS WordPress, Drupal, Joomla;

• принципы построения бэкенда и серверные технологии, в частности Node.js, PHP, Ruby, .NET;

• инструменты дебагинга Chrome Dev Tools, Firebug;

• графические редакторы Photoshop, Illustrator.

Требования к frontend developer в вакансиях порой отличаются. Они зависят от конкретной компании и особенностей проекта. К примеру, чтобы стать частью команды SberLive, предоставляющей технические решения для организации и проведения событийных мероприятий Сбера, нужно иметь опыт работы с React, стейт-менеджерами, styled-components, обладать навыками в проектах TypeScript, уметь писать юнит-тесты. Преимуществом станет опыт работы с инструментами для организации монорепозитория, опыт разработки верстки писем, использования NodeJS/Express, CI/CD (Jenkins).

Чтобы получить должность фронтенд-разработчика на существующих и новых проектах Сбера, включая Platform V DataGrid, необходимо иметь опыт работы в frontend от 1,5 лет. Кандидат должен знать React, Git, Node.js (express, npm), Redux, иметь общее понимание работы систем управления состоянием и архитектуры клиентской части приложения. Не менее важное требование в Сбере — постоянно развиваться, проявлять инициативу, стать активным участником гильдии фронтенд-разработчиков.

Фронтенд-разработчик подключается к работе над проектом, когда готов макет от дизайнера. На этом этапе специалисту необходимо визуализировать сайт либо приложение и сделать его удобным для пользователей. Если в команде работает несколько frontend-специалистов, они могут разделить между собой обязанности.

• верстка страниц: добавление текста, картинок, анимации, интерактивных кнопок, иконок, чатов и других элементов;

• тестирование сайта или приложения: проверка работоспособности интерактивных кнопок, поиск и устранение различного рода ошибок;

• адаптация страниц под разные устройства и браузеры.

Обязанности фронтенд-разработчика могут незначительно отличаться в зависимости от конкретного проекта и размера команды.

Сколько зарабатывает фронтенд-разработчик

Заработная плата фронтенд-разработчика зависит от нескольких факторов. В первую очередь значение имеет опыт работы. Специалист, который только что освоил профессию и устроился в свою первую компанию, так называемый джуниор, может получать от 40 000 рублей. Месячный заработок опытного тимлида порой достигает 380 тысяч рублей. К тому же стоит учитывать регион — в крупных городах IT-специалисты зарабатывают больше, поэтому многие работают на удаленке. Средняя зарплата frontend developer составляет 155 000 рублей.

У профессии фронтенд-разработчика низкий порог входа. Чтобы начать, нужен минимум знаний в программировании, освоить которые довольно легко. Поэтому некоторые компании готовы взять на работу даже без опыта и профильного образования. В таком случае сотрудник проходит обучение внутри организации, где и отрабатывает полученные знания на практике. Заработная плата будет самой маленькой по рынку — от 30 000 рублей. Зато это хороший шанс попробовать себя в новой сфере и понять, стоит ли в нее углубляться.

Но заработок — не единственное, на что ориентируются IT-специалисты при поиске работы. Значение также имеет статус компании, значимость реализуемых проектов и условия, которые предлагает работодатель. Например, в Сбере кандидатов привлекает масштаб. Это одна из крупнейших финансовых компаний России, уровень влияния которой сложно переоценить. Многим важно быть причастными к таким гигантам.

Программирование с нуля: с чего начать и как выучить

Фото: Patricia de Melo Moreira / Bloomberg

Программирование — это процесс создания программ (программного обеспечения). Для этого программисты пишут исходный код на одном из языков программирования. Существует более 300 языков программирования, но для успешной карьеры можно выбирать из десяти самых популярных. Еще правильнее будет сначала определиться с областью, в которой вы собираетесь работать, и только потом приступать к выбору языка. Одним из лучших языков для начинающих является Python. Этот популярный язык общего назначения хорош лаконичностью и простотой синтаксиса, его активно используют в IT-компаниях России и мира. Другими популярными языками считаются Java и C. Они сложнее, особенно для новичков, но владение ими обеспечивает лучшее понимание того, что вы делаете и что происходит с вашей программой. Вместе с языком Pascal язык С обычно изучается в вузе на профильных факультетах. Использование других языков программирования зависит от цели деятельности. Например, в качестве серверных языков популярны php, Java, ruby. Из клиентских языков наиболее перспективен Java Script. Для разработки сложных высоконагруженных проектов требуется C++. На этом же языке пишутся игры. Еще одна перспективная сфера — разработка приложений для мобильных устройств. Тут используют Java, Objective-C, Swift. Любой опытный программист знает несколько языков, однако код на работе он пишет только на одном из них. Какой язык программирования учить прямо сейчас: 9 самых востребованных

Нужно ли программисту знать математику и английский?

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

Какой язык программирования учить, чтобы делать сайты?

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

Frontend-программист

Такой разработчик по определению стоит на «переднем крае» и отвечает за визуальную составляющую сайта: то, каким его видит посетитель. Frontend-разработчики следят за тем, чтобы все графические элементы исправно работали, контент отображался на всех устройствах, шрифты не «ползли», а картинки не загружались слишком долго. 1. Обучение HTML В первую очередь начинающий frontend-разработчик должен освоить HTML — язык гипертекстовой разметки. Это базовый инструмент, который позволяет вынести на страницу все основные элементы, будь то фотографии, таблицы или текст. 2. Обучение CSS Внешне написанная на HTML интернет-страница будет напоминать простейший текстовый документ. Чтобы «оживить» его, используется каскадная таблица стилей или CSS. Она меняет не структуру страницы, а ее внешний вид: шрифты, расположение элементов, тени и цвета. Другими словами, если HTML используется для описания логической структуры страницы, язык CSS отвечает за графические элементы и прописывается в отдельном файле. 3. Обучение JavaScript Наконец, чтобы элементы веб-сайта могли перемещаться и реагировать на действия пользователя, разработчик прописывает код на языке JavaScript. Он заметно сложнее первых двух, но результат стоит того: от скриптов зависит появление всплывающих окон или же перетаскивание элементов на странице (например, сортировка фото в соцсети). В отличие от CSS, код JavaScript встраивается в структуру HTML, поскольку влияет не на внешний вид элементов, а на их поведение на странице. Вчерашняя техника уже завтра: могут ли устареть языки программирования

Backend-программист

Красивая оболочка сайта не имеет смысла без начинки: видеоролики, гиперссылки и картинки должны быть связаны с сервером, базой данных, с другими интернет-сайтами. Программно-аппаратную работу сервиса берут на себя backend-разработчики. Они же отвечают за информационную безопасность (защиту от хакеров) и следят за нагрузкой на сервер (чтобы страница не «висла» из-за наплыва посетителей). 1. Обучение PHP Базовый инструмент backend-разработчика — язык программирования PHP. Он нужен, чтобы связать видимую пользователю страницу с сервером, где хранятся какие-либо данные. Например, чтобы не выкладывать на веб-сайт по одной фотографии при помощи HTML, можно запустить скрипт, автоматически подгружающий туда условную галерею, лежащую на сервере. Язык PHP настолько сильно упрощает работу по созданию сайта, что изучать его SkillBox рекомендует и frontend-разработчикам. 2. Обучение SQL Аббревиатура SQL расшифровывается как «структурированный язык запросов». В отличие с PHP, который нужен для связи сайта с сервером, языки SQL позволяют управлять уже самими базами данных. Сейчас существует множество подобных языков, самые распространенные из которых — это MySQL, MSSQL, PostgreSQL и прочие. Разработчики «полного цикла» в совершенстве владеют языками, необходимыми как для frontend-, так и для backend-программирования. Они являются универсальными специалистами, хотя, очевидно, глубина их погруженности в какую-то конкретно область веб-разработки уступает осведомленности узких специалистов.

А какие еще бывают программисты?

  • 1С-программист, в непосредственные задачи которого входит оптимизация готовой системы 1С и ее настройка непосредственно под каждое предприятие.
  • Инженер-программист, который чаще всего занят в сфере разработки программного обеспечения для автоматизации производства, он же обычно программирует бытовую технику.
  • Game Developer, который специализируется на создании компьютерных игр. Геймдевелоперы заняты в полном цикле жизни видеоигры: создание, тестирование, доработка, поддержка, обновления, модификация и т.д.
  • Android- и iOS-разработчики, которые занимаются созданием игр, программного обеспечения, интерфейсов и обновлений для устройств, созданных под брендом Apple, или Android-устройств.
  • Системный программист, в задачи которого кроме разработки программных модулей и их интеграции входит адаптация и модификация программных продуктов под конкретную систему, исходя из ее логики и задач. Он же может заниматься разработкой баз данных и их администрированием.
  • Передовым направлением в области программирования считается сфера Data Science. Она объединяет искусственный интеллект и данные, умение прогнозировать на основе статистических данных.

Куда пойти учиться на программиста?

Если есть возможность поступить в вуз, то лучше выбрать один из ведущих: МГУ, МИФИ, ВШЭ, СПБГУ, МФТИ, МГТУ им. Баумана, МАИ, ИТМО и т.д. Речь идет, естественно, о профильных факультетах. Выпускники этих университетов лидируют в рейтинге портала Superjob, составленного по критерию уровня стартовых зарплат программистов.

Фото:Jonathan Borba / Unsplash

Можно ли научиться программированию на онлайн-тренингах и курсах?

Можно. Начальные навыки программирования помогут приобрести такие популярные платформы, как Яндекс.Практикум, Сodecademy, Skillbox, GeekBrains, HTML Academy. После прохождения подобных курсов человеку становится легче понять, в сторону какого направления двигаться в профессиональном развитии.

Бесплатные курсы нередко открывают и спонсируют крупные российские компании: Mail.Ru Group, «Яндекс», «Лаборатория Касперского», Сбербанк, Тинькофф банк, «2ГИС», «Роснано», «Сколково» и HeadHunter.

Многие ведущие мировые вузы открывают курсы в онлайн. Например, курсы MIT можно найти на платформе Coursera.

Как освоить программирование самостоятельно?

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

Можно изучать, играя: некоторые обучающие сайты сами являются играми, например, Code Combat и CodinGame.

На GitHub можно найти огромную коллекцию бесплатных книг по программированию. Также доступен корпус электронных книг, охватывающий 24 языка программирования.

В сообществе программистов также много людей, готовых помочь следующему поколению программистов. Hack.pledge — сайт, который поможет найти наставника.

Кроме того, можно подписаться на тематические каналы в Telegram, например: канал для новичков в Python, сообщество веб- и Java Script-разработчиков, канал разработчиков Ruby и Ruby on Rails и другие.

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

Где найти самоучитель по программированию?

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

Что такое метод Франклина и как он может помочь в обучении программированию?

Это способ, позволяющий систематизировать информацию из лекций и самоучителей.

Его можно описать следующими ступенями:

  1. Читайте книгу. Когда в книге попадется образец кода, прочитайте его, сделайте заметки, которые могут помочь вам вспомнить эту информацию в будущем.
  2. Закройте книгу.
  3. Попробуйте набрать код, воссоздав его как можно ближе к оригиналу.
  4. Сравните свой код с оригиналом, исправьте ошибки, повторите пункты 1−3, пока не начнет получаться оригинальный код из книги.

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

Кстати, его можно применять не только при обучении программированию.

Нужен ли диплом и опыт работы после обучения веб программированию с нуля?

Считается, что высокие инженерные или исследовательские должности без высшего образования недостижимы. Также диплом необходим тем специалистам, которые захотят работать за границей. При этом многие российские HR-специалисты говорят, что при приеме на работу смотрят, в основном, не на строку «образование» в резюме программиста, а на реальный опыт работы. Кроме того, перед собеседованием или во время него претенденту, скорее всего, предложат выполнить тестовое задание.

С чего программисту начать поиск работы?

Анна Смирнова, менеджер по трудоустройству на программе «Веб-разработчик» в «Яндекс.Практикуме», советует четко определить свои намерения и цель, взвесить все риски и понять, сколько у вас есть времени на поиск работы и какие усилия вы готовы предпринять. Пример четко сформулированной цели — трудоустроиться за четыре месяца на позицию младшего разработчика в продуктовую компанию с полноценной командой разработки и закрепленным наставником.

Далее стоит продумать стратегию поиска. Стандартный подход — изучение вакансий на сайтах по поиску работы, в LinkedIn и телеграм-каналах. Но есть и другой вариант — нетворкинг. А именно, посещение митапов, профильных конференций и курсов, что поможет вам завести новые знакомства и искать возможности уже через них. Этот путь более тернистый в начале, но дает больший эффект, потому что вы задействуете «теплые» контакты.

Затем нужно подготовить резюме, портфолио и сопроводительные письма. Именно они создают первое впечатление о кандидате.

Как составить резюме, если нет опыта?

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

Еще один важный пункт — заполнение навыков. Например, на HeadHunter они работают как теги, по которым рекрутеры ищут кандидатов. Поэтому лучше описать максимальное количество технологий, которые вы изучали или с которыми приходилось работать, а не только базовые JavaScript, HTML и CSS.

Где брать проекты для портфолио?

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

Примеры самостоятельных проектов начинающего разработчика:

  • Тестовые задания. Выкладывайте решения тестовых заданий на GitHub. Так вы одновременно и участвуете в отборе на позицию начинающего разработчика, и расширяете портфолио.
  • Совместные pet-проекты. Это проекты, которые вы делаете для себя в свободное от работы время (это может быть личный блог, игра или телеграм-бот), с однокурсниками и единомышленниками, которых вы встретили за время обучения веб-разработке.
  • Участие в opensource-проектах. Лучше всего начинать с проектов, в которых есть разделение задач по уровню сложности. В этом сборнике на GitHub перечислены как раз такие проекты.

Что нужно знать программисту? Чек-лист требований

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

Фундаментальная база

Любая профессия стоит на крепком фундаменте. IT — не исключение. Чтобы стать специалистом, нужно обладать определенной базой знаний. Лучше всего, если они будут закладываться уже с детства. Итак, что прежде всего надо знать будущему программисту:

Математику

Нет, обучение IT не будет похоже на уроки алгебры в школе. Однако программист должен как минимум знать основные формулы и уметь выполнять простые операции. В то же время «погружение» в математику зависит от того, в каком IT-направлении хочет развиваться ребенок. Например, для написания сложных алгоритмов понадобится более глубокое освоение предмета. В будущем оно пригодится для «сложных» IT-профессий, среди которых аналитик Big Data или специалист по машинному обучению.

Логику

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

Алгоритмику и структуры данных

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

Базовые инструменты разработки

Что это за программист, который не знает, что такое IDE или контроль версий? Специалист также должен уметь оптимизировать коды программ, понимать суть ветвления и слияния и знать, как ими пользоваться. Звучит сложно? Понимаем. Но без этих знаний невозможно стать программистом.

Английский

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

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

знания программиста

Какими знаниями еще должен обладать программист?

«Человеческими». Это значит, что он понимает базовую психологию общения и готов к сотрудничеству. Речь идёт о развитии так называемых гибких навыков. В наше время мало быть просто хорошим специалистом. Необходимо работать как самостоятельно, так и в команде, уметь искать нужную информацию и разбираться в ней. Чтобы быть успешным программистом, нужно соответствовать строгим требованиям рынка, которые постоянно обновляются. Безусловно, спрос на IT-специалистов высокий, но по-настоящему успешные программисты даже не ищут работу. Как так? Хедхантеры гоняются за ними сами.

И им бы не удалось достичь высоких результатов, если бы они просто хорошо разбирались в своей сфере. Работа в IT, вопреки популярному мнению, мало похожа на добровольное заточение в серверной. Наоборот: специалисты постоянно поддерживают контакт, согласовывают действия и ищут компромисс. Без этого встанет работа любой компании! Поэтому обладать модными в наше время soft skills просто необходимо. Элементарные знания психологии, умение их применять и быть гибким — must have каждого программиста.

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

Практика и ещё раз практика

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

Одна из них — fullstack-разработчик. Этот универсальный профи способен и интерфейс сайта сверстать, и функционирование форм и кнопок запрограммировать, и сервер написать. Fullstack-разработчики могут работать с большим набором технологий и создавать веб-проекты в одиночку, одновременно выполняя задачи frontend-программиста и backend-разработчика.

Многофункциональные профи высоко ценятся на рынке и никогда не останутся без работы. Однако их путь начинался с малого — фундаментальной базы IT-знаний. А начать ее осваивать можно прямо сейчас! Помогите ребенку заложить прочный фундамент будущей профессии. Для этого зарегистрируйтесь на нашей платформе Informatics и выберите дату вступительного испытания. Мы проверим знания ребенка и поможем подобрать программу обучения.

Обязан ли разработчик развиваться?

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

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

Но действительно ли всё это надо? Разработчик в самом деле обязан проводить всё своё свободное время за написанием кода? А обязан ли разработчик постоянно развиваться?

Токсичность комьюнити

Как мантра, в комьюнити бесконечно повторяется возглас: «Разработчик обязан развиваться!» В самом этом тезисе нет ничего плохого, но пугает то, как часто, громко и жёстко он звучит.

Зайдите на Medium или любой другой ресурс со статьями и вбейте в поиск developer must или developer should — вы получите сотни статей, рассказывающих, что же разработчик обязан знать и делать. Разработчик обязан иметь блог, иметь пет и выучить 10 языков программирования. И даже в таком, казалось бы, абсолютно личном деле, как настройка редактора, расширений в браузере, требуют соответствия неким стандартам.

Каждый разработчик должен прочитать много книг! Двадцать! Хотя нет, лучше — триста! Получилось, правда, всего пять, но ведь «some of the best developers I know are always reading, true story».

Синдром самозванца и выгорание стали основой индустрии. Ежедневный поток тревожности бодрит лучше кофеина.

Токсичность работодателей

Мало того что окружение капает нам этим развитием на мозги — работодатели готовы усилить это и превратить в полноценный водопад нервозности.

Миру уже не нужны просто разработчики. Миру нужны 10x developers, top talents, rock-stars. Других и нанимать-то грешно. Ты не альфа, а бета? Иди дальше. У тебя нет пет-проектов? Ты недостаточно предан программированию! Всё как в известном анекдоте: «Фару, фару мне на лоб, чтоб ночью косить мог!»

Хуже того, компании начинают строить метрики, а потом пинать, пинать своих разработчиков: «Развивайся!» Одна из крупнейших IT-компаний РФ увольняет людей, у которых за полтора года не вырос грейд, другие — строят метрики T-shapeness и оценивают по ним работу команды, третьи — требуют сертификат, иначе ты плохой программист.

Если компания не осиливает такие экстремумы, то хотя бы воткнёт performance review каждые полгода, где бедные разработчики будут с глазами в пол обсуждать с руководителем, почему они не выросли за последние шесть месяцев. Или вообще запустит ревью сотрудниками сотрудников, где ещё посмотрит, насколько выдающиеся твои достижения. А по результатам ревью надо оценку выставить, жаль, дневника нет.

Человек спокойно работает себе мидлом, делает мидловские задачи и доволен жизнью? «Что-то засиделся ты в мидлах» — надо заставить его стать сеньором. Хороший сеньор? Дуй в техлиды. Или в тимлиды: раз ты целый сеньор, то хочешь управлять командой. Хочешь ведь, да?

А куда деваться разработчикам? Не развиваешься — и зарплату даже не проиндексируют. Надо заработать следующую лычку! Правда, и с этим сложно. Быстро пришло понимание, что на ревью слишком многие получают хорошие оценки — значит, надо нормировать! План-то у нас на 10% отличников, а кто не попал в 10%, тот сам дурак и плохо развивался. Нет бы 10x-девелопером быть.

К чему это приводит

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

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

«Я работаю днём, вечером что-то читаю, слушаю подкасты, видео смотрю. Я устаю. Но это не усталость, это моя лень, я просто, видимо, не так стремлюсь развиваться, не так ориентирован на свою профессию»

https://habr.com/ru/post/516038/

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

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

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

Так обязан разработчик развиваться или нет?

Нет, разработчик не обязан развиваться. Люди вообще друг другу ничего не должны.

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

А вот если вы хотя бы мидл, то такая опция для вас есть. В конце концов, не всем повезло найти своё призвание. Или ваше призвание вам известно, но не может прокормить вас. В этом нет ничего плохого!

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

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

Итого

Первое — вы не обязаны развиваться. И уж тем более вы не обязаны тратить всё своё свободное время на развитие рабочих навыков.

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

Третье — если вы руководитель, перестаньте насильно причинять добро.

Ну и последнее. Давайте прервём этот порочный круг и снимем стигму с просто качественной работы. Давайте перестанем транслировать вредную мысль, что все должны учиться 24/7.

Может быть, выгораний и стресса в IT станет чуть меньше?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *