Тредик о том, что не знает типичная аудитория мидлов-фронтендеров, которой я преподаю.
Каждый приходящий в Контур разработчик проходит через 1,5 недели обучения. Фронтендеров мы учим реакту, редаксу, TS, асинхронному JS и всякому другому. Про такие группы и расскажу
Значение слова «реактивность»
Когда я рассказываю про Реакт опытной аудитории, рано или поздно заходит разговор о том, что реакт он так назван, потому что реактивное программирование.
— Кто знает, что такое реактивное программирование?
Тишина...
— Хорошо, а давайте вспомним про реактивность из других отраслей. Ну, вот реактивное движение, например, это про что?
— Ну, это когда быстро!
— Это не обязательно, медузы тоже двигаются реактивно, но не очень-то быстро.
А вот в психологии говорят про проактивное и реактивное поведение. Это про что?
— Ну, хорошие и плохие.
Какие-то такие диалоги получаются в средней группе. Хотя иногда меня радуют ребята, говорящие «реактивное программирование — это эксель» и они правы =)
«Чистая функция»
Тут фронтендеры радуют по сравнению с сишарперами — среднестатистический мидл-фронтендер слышал термин «чистая функция», а среднестатистический мидл-сишарпер — нет.
Но если попросить объяснить, что это, то начинаются сложности.
Чистой функцией что только не называют:
- функцию, возвращающую значение
- функцию, которая легко читается — в соответствии с правилами «чистого кода»
- функцию, которую можно протестировать
еще и Реакт со своим PureComponent добавил путаницы
expressions and statements
В объяснении Реакта для начинающих есть необходимость объяснить одну, простую для опытных реакт-разрабов, вещь — что можно и что нельзя писать в фигурных скобочках в JSX.
Когда я только начинала проводить обучение по Реакту, я говорила что-то вроде «в фигурных скобочках может стоять произвольный JS, который возвращает значение — ведь вам нужно результат подставить вместо скобочек».
В этих ситуациях буквально в следующей же задачке кто-нибудь писал в фигурных скобочках цикл for и спрашивал, почему не работает. Я напоминала, что только конструкции, возвращающие значение можно и человек дописывал return в тело цикла. И все еще не работало 🤷
Тогда я стала явно проговаривать, что циклы for, if, switch-case, объявление переменных нельзя писать в фигурных скобочках. Аудитория реагировала в духе «ну, кому придет в голову так делать?» и через две задачки так делали.
Тогда преподавательский долг сосредоточить внимание на частой ошибке. И один из удобных способов так делать — дать аудитории самой придумать ответ, что именно нельзя писать в фигурных скобочках.(Вопросы вообще вовлекают в материал, могу написать об этом отдельно)
Я начала с вопросов типа:
— в фигурных скобках можно писать только конструкции, возвращающие значение. Давайте придумаем такие, которые нельзя в них записать. Ну, такие, которые значение не возвращают.
— console.log и alert не возвращают ничего!
Тогда я подумала «да, к черту, буду спрашивать правильно, а не попроще».
— в фигурных скобках можно размещать только тот код, который является expression, statement запрещены. Кто знает, что такое expression?
Так оказалось, что мидлы-фронтендеры обычно не знают, что такое expression и statement. Но после подробного разбора теории языков программирования мне говорят:
— всего-то? Ну, и кому придет в голову писать if в таком месте?
Для полного катарсиса еще можно рассказать про if-expression в Kotlin.
Вот такие три темы не знает средняя аудитория мидлов фронтендеров. Но удивительно, что если спросить их опросом в чатике, то все все знают =) Проверю аудиторию jsunderhood опросом в следующем посте