Перейти к материалам

Мы никогда не сможем стать разработчиками! «Медуза» сомневается, а «Яндекс.Практикум» нас переубеждает

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

Программирование — это очень абстрактно. Как выбрать область?

Все веб-разработчики делятся на три группы — в зависимости от типа задач, с которыми они работают. Фронтендеры отвечают за визуальную составляющую, за интерфейс, который видит пользователь. Бэкендеры следят за тем, как информация передается на серверы, как эти серверы взаимодействуют. Фулстек-разработчики совмещают обе функции. А слова вроде Java и Python обозначают языки программирования. 

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

Не знаете, понравится ли вам программирование? Пробуйте. Например, можете пройти бесплатный курс на 20 часов в «Яндекс.Практикуме». Суть в том, чтобы уделять хотя бы десять часов в неделю тому, чтобы изучить основы и написать собственный код. Только так вы ответите на вопрос, скучно это вам или интересно.

Придется же учить языки программирования, а они очень сложные, нужно много лет!

Языков программирования много, но те, которые используются чаще всего, можно пересчитать по пальцам. Относительно простыми считаются высокоуровневые языки: они включают уже готовые команды, в них прописана логика взаимодействия с компьютером. Довольно легким языком считается и JavaScript: он используется в создании сайтов, отвечает за визуальное наполнение и интерактивность. Еще один распространенный язык — это PHP. Больше 20 лет его применяют для разработки веб-приложений и сайтов (правда, сейчас все реже). 

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

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

Нужно знать математику, а тем, кто школьную программу не помнит, нечего и соваться

Для создания систем вроде «Яндекс» или Facebook, которые обрабатывают миллионы запросов в секунду, без знания математики точно не обойтись. Но для базового программирования, — например, написания несложных сайтов или работы с процессами в качестве бэкендера — достаточно базовых знаний. 

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

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

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

Если вы занимаетесь чем-то один час в неделю — это скорее хобби, у которого нет конкретной цели. В «Яндекс.Практикуме» считают, что за шесть-девять месяцев вполне реально освоить базовые навыки программирования и начать зарабатывать на своих умениях. Целые дни тратить не придется — по два часа в день или по десять часов в неделю. Правда, во время обучения нужно быть сосредоточенными и подходить к задаче честно: если за 10 часов вы чего-то не успели, значит, нужно заниматься дальше, пока не освоите запланированный на неделю объем.

Один онлайн-курс — это мало. С базовыми знаниями программирования никто не найдет работу

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

Разработчиков и так слишком много, огромная конкуренция! Пробиться невозможно

Ровно наоборот. Чем больше появляется новых сервисов и программ, тем больше разработчиков нужно для их обслуживания. А чем больше разработчиков, тем больше новых программ. 20 лет назад «Яндекс» представлял собой одностраничный поисковик, а сегодня это огромная компания, которая разрабатывает одновременно десятки сервисов — от музыкального плеера до службы такси. Разработчики, которые не боятся придумывать и умеют быстро решать конкретные технические задачи, по мнению специалистов «Практикума», будут востребованы всегда. 

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

Согласно исследованию «Яндекса.Практикума» и аналитической службы HeadHunter, самыми востребованными остаются IT-профессии — 38% всех вакансий относятся именно к этому сектору. Наиболее популярные среди них: веб-разработчики, аналитики и тестировщики. Также растет спрос на DevOps-инженеров и фулстек-разработчиков, которые выполняют функции сразу нескольких IT-специалистов.

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

В «Практикуме» уверены, что совершенно не важно, какой у человека бэкграунд — технический или гуманитарный, важна только его мотивация. Технарь, у которого нет стимула, гораздо слабее заинтересованного гуманитария — пусть последнему пока не хватает базы, он готов разбираться и работать над собой. Возраст тоже не имеет значения. Инструктору в автошколе все равно, сколько лет его ученикам, ведь люди впервые садятся за руль и в 17, и в 40 лет.

Программирование — это скучно, в нем нет ничего творческого, работа для роботов

Перед тем как писать код, нужно понять, какую задачу вы хотите решить, и придумать способ решения. Это полноценная творческая работа! Чтобы появились такие сервисы, как Uber, Facebook, Airbnb, Skyeng, Aviasales, было перепробовано множество творческих подходов и стратегий. Поиск подхода к решению задачи — уже творчество. 

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

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

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

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

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