Онлайн курсы по программированию и что они дают на самом деле

ada2510b07a5586c94775d1b79ef0838

Дополнительным бонусом немного нытья про рынок труда вообще и программистов в частности

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

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

Все эти чудесные люди практически в обязательном порядке проходят некие онлайн курсы и сразу по прохождении размещают резюме на вакансию junior-программист с ценником от 50 000 рублей. 

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

Итак, что вам дает типичный онлайн курс

  1. Базовые знания по теме курса.

  2. Умение работать в некоем интерпретаторе кода, причем у каждого ресурса он свой.

  3. Умение выполнять некие типовые задачи, часто по одной каждого типа.

  4. Уверенность в своих профессиональных компетенциях (потому что курс часто называется как-нибудь типа Web-разработчик уровень 1).

Что онлайн курс не дает (судя по стажерам)

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

  2. Умение гуглить. Как ни смешно, на курсах знания ограничены фиксированным набором приемов, шаг влево, шаг вправо — и у человека ступор. 

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

  4. Понимание своего места в рабочем процессе. Человек учит программу курса PHP, скажем, но при этом не понимает, что для уровня junior разработчика неплохо бы, например, уметь встраивать код в html, или что данные к нему приходят из фронта и не всегда так, как ему нравится. То есть человек умеет выполнять узкую задачу, на которую его натаскали, но за ее рамки выйти не может вообще.

  5. Умение задавать вопросы. Курсы часто не награждают людей за лишние вопросы, складывается менталитет «я задаю вопросы, значит я признаю, что чего-то не знаю, значит я не прошел задание».  

  6. Реальную оценку своих навыков. 

Про реальную оценку хочу поговорить подробнее. Когда человек закончил курс «Веб разработчик, уровень 2», он автоматически думает, что он уже состоявшийся веб разработчик, в сертификате же так написано! По факту же человек еще далек от уровня, когда его можно выпускать в разработку, он не может самостоятельно реализовывать даже простейшие задачи без ментора. У большинства таких соискателей уровень знаний не подходит даже для нашей стажировки, так как мы все же рассчитываем на подтягивание готовых начинающих специалистов, а не на обучение почти с нуля. 

Что я бы порекомендовал человеку, который хочет связать себя с web разработкой?

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

  2. Помимо курсов (и любых других источников знаний) поискать в сети тестовые задания разных компаний, штук пять, и попробовать их выполнить. 

  3. Найти в сети макеты сайтов в JPG и попробовать их сверстать. Дополнительный уровень сложности — сверстать пару макетов на flex, grid и блочной версткой. 

  4. Очень многие курсы JS фокусируются на нативном языке. Попробуйте писать те же задания с использованием простых фреймворков, посмотрите разницу.  Для начала я бы выбрал что то несложное, например jQuery.

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

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

Такой маршрут, безусловно, длиннее, чем просто пройти месячный курс и бежать на headhunter.ru, но намного надежнее, позволит вам набить меньше шишек, и главное — в итоге вы действительно будете понимать, как все работает и как взаимосвязаны фронт и бэк в современной веб-разработке. 

Теперь обещанное про легкие деньги и миграцию из других профессий. 

Мое мнение: если человек хороший специалист в своей профессии, он всегда будет востребован, а когда достигнет потолка по деньгам, сможет в крайнем случае открыть свое дело. Все профессии нужны, все профессии важны, как говорится. 

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

Но может быть, программирование действительно ваша судьба. Тут надо подойти к вопросу без розовых очков и понять, что первые лет -надцать у вас не будет ни трехчасового рабочего дня, возможно, не будет удаленной работы. Вам придется много (и постоянно) учиться, совершенствовать свои знания, причем часто в нерабочее время. Оклад первое время может также демотивировать. 

И попробуйтесь к нам на стажировку. Вдруг мы друг другу подойдем?  

© Habrahabr.ru