Игорь — преподаватель на интенсиве «JavaScript, уровень 1».

Попросили его рассказать о своём опыте, разнице между преподаванием и практикой и за что можно полюбить JavaScript.

Расскажи о своём пути и как нашёл своё призвание

Я очень давно в веб-разработке, первые сайты делал ещё в школе, деньги разработкой начал зарабатывать на третьем курсе. После университета переехал в Москву, там работал в Бюро Горбунова и Студии Лебедева. Через какое-то время, мне надоела поточная разработка, захотелось стабильно развивать один проект, так я оказался в Островке. Через два года, неожиданно для себя, попал в JetBrains.

Однажды я узнал, что ребята из Академии ищут преподавателя для курса по JavaScript. Так я стал не только программистом, но и преподавателем.

Что сложнее: преподавать или программировать

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

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

Брать проект по силам, чтобы сделать наверняка или идти на риск, если представится возможность

Идти на риск! Мы учим что-то новое когда занимаемся тем чего не умеем. Нехоженые тропки всегда интереснее: на них встречается много нового. Но, важно рискуя, не подвести тех, кто на тебя рассчитывает и идти на риск стоит когда это не несёт серьёзной угрозы. Не для тебя самого, конечно. Поэтому у каждого хорошего программиста должен быть свой пет-проджект.

За что можно полюбить JavaScript, а за что не очень

JavaScript очень хорош как первый язык программирования: на нём легко начать писать, там нет больших и сложных обвязок — как, например, в Java — без которых нельзя просто начать писать код. Здесь ты быстро получаешь результат.

Многие разработчики, считают, что JavaScript — недоязык, что он ограничен в возможностях и плохо спроектирован. Да, в нём есть несостыковки и странные моменты, как и в других языках. Но если его правильно использовать, JavaScript достаточно хорош.

Мне он нравится тем, что удобно программировать в функциональном стиле. Кроме этого, в нём элегантно и здорово реализована объектная модель: разработчики языка умудрились сохранить все принципы объектно-ориентированного программирования, не создавая сложных, дополнительных конструкций.

Откровенно слабое место JavaScript в том, что в нём изначально очень плохо реализована модульность. Этот просчёт разработчиков языка до сих пор приходится прикрывать неудобными костылями и велосипедами.

Любимая лекция на интенсиве

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

Как следить за всеми изменениями в индустрии, можешь посоветовать интересные ресурсы

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

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

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

Часто спрашивают, что изучать сначала: HTML и CSS или JavaScript, если планируешь стать фронтенд-разработчиком

Очень круто, что каждый может ответить на этот вопрос для себя самостоятельно. Фронтенд — очень широкая область: можно просто верстать сайты и в глаза не видеть JavaScript, а можно только программировать и совсем не пользоваться вёрсткой. Например, делать интерактивные визуализации на канвасе или браузерные игры. Хотя, всё-таки, в большинстве случаев разработчикам нужно уметь и верстать, и программировать. Мой путь был из вёрстки к программированию. Забавно, что он совпадает с привычной последовательностью прохождения интенсивов Академии: сначала HTML и CSS, потом JavaScript. Видимо потому, что если идти таким путём, сложность возрастает постепенно. Но легко представить и обратный процесс: ты начинаешь программировать, понимаешь, что не хватает навыков вёрстки, и восполняешь недостаток. Такой путь подойдёт тем, кто приходит в JavaScript с других языков.

Где вам пригодится JavaScript

Мы попросили Игоря рассказать новичкам немного о JavaScript и возможностях.