Как стать автором
Обновить
409.3
KTS
Создаем цифровые продукты для бизнеса

Метакласс — школа от KTS

Время на прочтение8 мин
Количество просмотров2.9K

Привет!

В KTS мы уделяем особое внимание наставничеству и росту разработчиков. С самого создания компании старшие разработчики преподавали в ВУЗах — МГТУ им. Баумана, Московский политех — и в 2018 году мы решили сделать собственную школу разработки.

В школе мы постарались сформировать действительно полезные прикладные программы, после которых студент готов пойти к нам на стажировку. Традиционно мы ведем курсы для начинающих фронтендеров на React, Backend-разработчиков на Python, мобильных разработчиков, а также менеджеров и аналитиков. По итогам курса отбираем ребят на стажировку: сейчас в компании работает около 20 наших выпускников.

В этой статье мы хотели бы рассказать о новом потоке бесплатной школы на примере курса «Начинающий React-разработчик» и поделиться интервью со студентом — а теперь и нашим разработчиком — который аж два раза учился в школе.

Что будет в статье:

Разбор по модулям нашего курса «Начинающий React-разработчик»:

  1. Введение

  2. Основы React

  3. Архитектурные подходы в React

  4. Менеджеры состояния во Frontend-приложении

  5. Инфраструктура Frontend-приложения

Интервью со студентом школы Кириллом Гаджиевым, где он рассказывает:

  1. Об опыте программирования до школы

  2. Как узнал про школу и почему решил учиться

  3. Что в учебе было сложным

  4. Сколько времени отнимали занятия

  5. Об обратной связи от преподавателей

  6. О чувстве новых знаний...

  7. и насколько легко они давались

  8. Сколько навыков из курсов удалось применить на практике

  9. Что изменилось после обучения

  10. Как изменилась карьера

  11. Что больше всего понравилось в школе

  12. Как пришел работать в KTS

Разбор программы курса «Начинающий React-разработчик»

Модуль 1 — Введение

Начнем с небольшого повторения. Вспомним основы HTML, CSS, JS. Разберем, что вообще из себя представляет JS. Для обучения студенту нужно уже знать это на базовом уровне, а мы просто освежим в памяти. В современных приложениях без этого не обойтись.

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

Для простоты мы будем использовать Create React App — утилиту от Facebook, которая позволяет легко создать шаблон приложения. Нужна она для более простого старта разработки, чтобы новичок не грузил голову сборками и другими подобными тонкостями. 

CRA дает команды для сборки фронтенда. Утилита использует для работы Babel и webpack. Еще CRA сама создает оптимизированную сборку приложения, но в 5 модуле мы научим студентов делать свои собственные. 

Программа модуля 1:

  1. Вёрстка и стилизация

  2. Основы JavaScript

  3. Введение в TypeScript – типизация в современном Frontend-приложении

  4. Create React App – создаем первое приложение на React

Модуль 2 — Основы React

В этой части мы рассказываем основы React и как он работает. Объясняем, как правильно сделать MVP приложения: например, как выделять компоненты и использовать базовые React-хуки.

Программа модуля 2: 

  1. UI-Компоненты — строительные блоки пользовательского интерфейса

  2. React-компоненты

  3. JSX-разметка в React-приложении

  4. Как грамотно структурировать проект

  5. Жизненный цикл React-компонента

  6. React-хуки

  7. Как работает React

Модуль 3 — Архитектурные подходы в React

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

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

На модуле есть темы, без которых приложение может работать достаточно хорошо. Это React-context и паттерны проектирования HOC и renderProps. Но это те вещи, которые помогут масштабировать приложение. Мало кто из студентов их применяет, потому что это понимание приходит спустя какое-то время.

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

Программа модуля 3: 

  1. React-роутинг. Построение навигации в приложении

  2. Работа с сетью, загрузка данных из API

  3. React-context — передача данных через дерево компонентов

  4. Паттерны проектирования в React: HOC, renderProps

  5. Расширенные инструменты стилизации React-приложения

Модуль 4 — Менеджеры состояния во Frontend-приложении

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

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

Программа модуля 4: 

  1. Как писать на React оптимально. В чём смысл оптимизации React-приложения. Мемоизация

  2. Управление состоянием в React. Менеджеры состояния Redux, MobX

  3. Погружение в MobX

  4. Композиция сторов

Модуль 5 — Инфраструктура Frontend-приложения

В этой части расскажем про сборку.

До этого мы делали упор на Create React App и с его помощью изучали весь React, но теперь сделаем собственную сборку. Для этого подключим Typescript и разберем все инструменты, которые нужны для этого: Babel, webpack.

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

Программа модуля 5: 

  1. Сетап современного React-приложения. Расширенная настройка инструментов

  2. Babel

  3. Webpack

  4. Typescript

Интервью со студентом Кириллом Гаджиевым

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

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

До первого раза я год отучился в Технопарке: семестр на подготовительной программе и еще семестр на основной. На этом потоке я расширил знания и закрепил их, сделал проект. Курс проходил по веб-разработке на Python и Django. Еще в программе было немного материала по фронтенду — то, что касалось верстки и стилей.

Спустя год я прошел школу еще раз. К этому времени я отучился еще год в Технопарке и устроился на первую работу стажером-разработчиком в Mail.ru. Этот курс был посвящен именно фронтенд-разработке. Я хорошо закрепил эти знания, потому что в Технопарке на курсе фронтенда дают основы для глубокого понимания JavaScript, но у них нет работы с фреймворками вроде React. Еще я не до конца понимал асинхронные операции в Redux.

До обучения в KTS я изучал эту часть в интернете по видео в открытом доступе, пробовал делать что-то сам. Понимание было отрывочным. А теперь закрепил все комплексно. Еще познакомился с новыми вещами, например, SSR.

Так что в обоих случаях результатом обучения были систематизация и закрепление знаний.

Как ты узнал про школу? Почему решил учиться?

Я учился в МГТУ Баумана, и у нас вели пары Игорь Латкин и Сергей Чернобровкин. Как-то раз они скинули в чат потока объявление о своей школе. Я пришел на отбор из интереса, прошел его и решил — почему нет? Дело было летом, я еще не работал и решил прокачаться.

Что в учебе было сложным?

Школы были оффлайн. Самое сложное было заставить себя приезжать издалека трижды в неделю на три часа. Между парами я сидел дома, делал домашние задания. Еще я почему-то не сразу начал пользоваться IDE, вместо этого работал в текстовом редакторе Sublime Text. Из-за этого я часто ловил глупые ошибки, которые долго исправлял.

А на втором потоке школы было сложно совмещать работу и учебу. Хотя я работал неполный рабочий день, времени все равно не хватало. Домашку я делал, пока ехал в электричке.

Сколько времени отнимала учеба?

На первом потоке я тратил много времени на домашние задания.

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

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

Как тебе обратная связь от преподавателей?

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

И в конце курса тоже активно собирали обратную связь, общались со студентами.

Чувствовал ли ты, что набираешься новых знаний?

Однозначно да. На курсах были темы, которых раньше я вообще не касался. На первой школе я впервые познакомился с Webpack. Основная часть курса была на Django, а потом ребята уходили в сторону фронтенда: рассматривали, как устроен проект, инструменты вроде Webpack, JS. Я узнал кое-что по верстке, взаимодействию с сетью.

На второй школе я узнал про SSR, как примерно он реализуется под капотом, про асинхронность в Redux.

Насколько легко давались новые знания?

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

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

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

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

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

У меня получился комплексный опыт прокачивания и от KTS, и от Технопарка. Не могу сказать, что что-то из этого было бесполезно. В обеих школах я получил много знаний, которые сейчас использую.

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

Что изменилось после окончания обучения?

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

Как изменилась карьера, чем занимался после окончания?

Обучение в школе проходило летом. Перед началом второй школы я устроился Mail.ru. Меня звали на собеседование еще зимой, и я его даже прошел. Я отказался, потому что подумал, что будет слишком сложно совмещать учебу, работу и еще 3-й семестр Технопарка. Но позже, весной, я снова взвесил свои силы и решил, что смогу.

Поэтому, когда летом меня снова позвали в Mail, но уже в другую команду — я согласился.

Что в школе понравилось или запомнилось больше всего?

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

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

Расскажи немного о том, как пришел работать в KTS?

Я всегда поддерживал связь с кем-то из KTS. Например, с Виталием Черковым, моим другом и одногруппником. Мы сейчас вместе работаем на одном проекте. С Виталием мы вместе учились на потоке первой школы. Я видел, что за 3 года работа все еще ему нравится, и он растет как специалист. 

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

Сейчас закончился испытательный срок, на новом месте все хорошо.

Короче, об обучении и смене места работы я не пожалел. 

Мы уже в 7 раз запускаем нашу бесплатную школу

В августе начинаем занятия по 2 направлениям: frontend на react и backend на python. В этот раз учеба будет проходить онлайн на нашей платформе для образования.

В сентябре стартует курс по android-разработке.

Ознакомиться с программами курсов можно тут: 

Приходите учиться и прокачивать навыки!


Интервью с нашими студентами-выпускниками:

Статья о том, как мы разрабатывали систему проверки студентов:
От тестов до IDE в браузере: как мы разрабатывали систему проверки студентов для онлайн-школы

Теги:
Хабы:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Публикации

Информация

Сайт
kts.tech
Дата регистрации
Дата основания
Численность
101–200 человек
Местоположение
Россия