Отзыв по курсу «Разработчик JavaScript» | OTUS
Прямо сейчас идет открытый вебинар «Машинное обучение на службе Data Science» . Присоединяйтесь!

Отзыв по курсу «Разработчик JavaScript»

JS_feedback_VK_1000x700_4.4-30470-15d9f5.png

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

Принятие решения

Я бы слукавил, если бы не упомянул о том, каким волнительным и важным явилось это событие — запись на курс «Разработчик JavaScript». Действительно, это был мой первый платный серьёзный курс по программированию, предполагающий образовательный ценз на уровне Junior. Я надеялся что он у меня есть (я ведь всё ещё не имел реальной боевой практики в энтерпрайзе), пройдя входной тест.

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

Выбор сделан

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

Всё это вместе развеяло сомнения. И я не ошибся в этом.

Первое впечатление

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

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

Каким всё оказалось на самом деле

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

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

Домашние задания, ревью и обратная связь

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

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

Самостоятельные задачи градируются по нарастающему уровню сложности, плавно обрастая новыми требованиями и технологиями, постепенно превращаясь в полноценные проекты, покрытые тестами. Хорошо оформленные, они реально могут стать кейсами, которые можно показать на техническом интервью, когда будете общаться с сеньором. Особенно это стало явным, когда мы начали изучать фреймворки. В процессе изучения каждого из них (React, Vue и Angular) предполагается постепенное развитие предложенной идеи приложения, что очень круто. А в секции про Vue было интереснейшее задание по контрибьюции в сторонний проект. Конечно, это происходило в рамках OTUS, но он был максимально приближен к реальным OpenSource условиям. Это было очень интересно. Остались только лучшие впечатления.

Я застрял!

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

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

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

Погружался в паттерны проектирования и реализацию некоторых из них в JS. — Сначала прочитывал о паттерне в Head First Design Patterns. — Затем читал о нём в книге GOF. — И, наконец, изучал книгу Addy Osmani Learning JavaScript Design Patterns, рассматривая конкретную реализацию этого паттерна на родном языке.

В конце концов, ко мне пришло понимание, что основной проблемой является мой слабый навык решения задач в принципе. Распознав его, как самое узкое место, я решил сконцентрироваться и принялся решать программистские задачки на codewars.com.

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

Приняв это как ключевую категорию результатов, я и сейчас посвящаю этому довольно объёмную часть своего времени.

Как думаете правильно ли это? Не шаг ли это в сторону и отсрочка результата?

Я завёл небольшой репозиторий на GitHub для решений наиболее ярких и сложных задач в VSCode. Покрываю их простыми тестами с помощью Mocha и Chai, применяя концепции TDD, которые так подробно рассматривались на одном из занятий в секции NodeJS. Нужно сказать, что это занятие очень ярко отпечаталось у меня в памяти и было одним из лучших. Хотя трудно давать рейтинг, все они были хорошими и полезными.

Также практикую отладку кода с помощью этой IDE, используя настройки окружения для отладки во время тестирования из этого мануала. Можно отметить, что отладка в VSCode NodeJS приложения или просто кода запускаемого на ноде доставляет удовольствие, т.к. в процессе её видно, как указатель заходит в модули Node, и можно видеть, как всё устроено— хорошая возможность изучать этот код.

Настроил линтер Eslint в соответствии с Airbnb JavaScript Style Guide "eslint-config-airbnb-base": "^13.1.0", попутно изучая практики такого стиля. Хотя Валерий Карпов / The Code Barbarian писал в одной из своих замечательных статей, прямо в самом первом абзаце, что не все практики совершенны и, порой стайл-гиды заходят слишком далеко.

Закономерно посматриваю в сторону функционального программирования. Очевидно, что стиль к этому располагает, как и асинхронное программирование в целом, несмотря на то, что реализация концепций Async/Await позволяют вернуться к классическим конструкциям синхронного стиля, таким как if/else, for/of, try/catch при обращении с асинхронным кодом.

Комьюнити

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

Было приятно и удивительно полезно находить интересные, новые знакомства с единомышленниками, которых в обычной жизни очень мало. С ними, например, можно «спаяться» на новую горячую книгу по программированию (какой явилось новенькое второе издание Рефакторинга с примерами на JS Мартина Фаулера), обсудить текущую ДЗ или просто по-болтать за жизнь. Удивительно, какими дружелюбными, интересными и адекватными людьми наполнено это комьюнити.

Благодарности

Хочу поблагодарить преподавателей, ставших близкими, не чужими людьми, к которым я исполнился большого уважения и благодарности. Александра Коржикова (Автор курса, Javascript, NodeJS, Web Components, Polymer), Владимира Клёпова (React), Михаила Кузнецова (Vue) и Юрия Дворжецкого (Angular) за их старания, отзывчивость, искреннюю заинтересованность в нас, студентах. Все преподаватели постарались на высший балл, сделали полную отдачу и даже больше.

Невозможно обойти вниманием и методический отдел OTUS, заботившийся, как о студентах, так и преподавателях. Вовремя сообщали об изменениях и важных объявлениях. Следили, чтобы каждый студент получил обратную связь, и вообще, не оставался не замеченным, чувствовал себя на курсе максимально комфортно. Это Дарья Вьюнова (руководитель центра методической подготовки и преподаватель курса «Онлайн-преподаватель») , Александр Зырянов (методист по работе с преподавателями), Валерия Курилова (методист по работе со студентами), Рагозина Екатерина (комьюнити-менеджер) и все остальные. Благодарю вас за внимательность и чуткость. Хоть ваши старания за кулисами не так очевидны для нас, студентов, всё же без вас этот курс был бы невозможен.

Результат

Завершая отзыв, хочу немного поделиться совсем личным (надеюсь это не покажется слишком откровенным). Тем не менее, считаю всё-таки важным упомянуть об этом.

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

Мда... как вспомню, так вздрогну... Хорошо, что всё это уже позади! Этот курс реально дал мне действительный фундамент для уверенности в себе, в своей компетенции разработчика. Дал возможность прокачать резюме, насытить его достойными кейсами использования технологий, новыми проектами. Позволил отрефакторить и развить основной демонстрационный проект для интервью и технических собеседований.

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

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

Пожелание

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

Всем пока. Пишите мне в слак. @dandgerson Dmitry G. Anderson

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
Популярное
Сегодня тут пусто