# Понедельник 59 твитов
Привет! На этой неделе jsunderhood переходит в управление мне (@aminopyridin). Давайте знакомиться!
7:59Меня зовут Вероника Самохина.
Я работаю фронтендером в Контуре
Последние несколько лет преподаю фронтенд всем, до… twitter.com/i/web/status/1…
Занимаюсь стажировками
Руковожу кластером из 11 фронтендеров (целеполагание там и прочие штуки)
Занимаюсь формулиро… twitter.com/i/web/status/1…
⇒ я часто общаюсь с людьми и они мне что-то рассказывают. Поэтому у меня накопилось много историй, которыми я плани… twitter.com/i/web/status/1…
7:59Про что поговорим на неделе:
8:10Примерно так, распределено будет примерно по теме в день, но ничего не могу обещать, вдохновение может решить все перекроить)
8:10Начну, пожалуй, с треда о вещах, которые расстраивают начинающих преподавателей.
Полезно всем, кто планирует объяснять что-то новичкам
И вот такая история: спрашивает студент, прочитавший дома те… twitter.com/i/web/status/1…
Преподаватель, знакомый с многообразием мира, рассказывает, что есть команды, в которых всюду let пишут; есть те, в… twitter.com/i/web/status/1…
9:39В обратной связи после урока студент напишет «так и не понял, как переменную объявлять».
9:39Вывод из истории такой: обучая новичков в какой-то теме, нужно рассказывать им ровно один способ делать что-то до т… twitter.com/i/web/status/1…
9:39Но нужно понимать, что это совет для новичков в какой-то теме. Когда к тебе приходит проконсультироваться опытный к… twitter.com/i/web/status/1…
9:39В какой-то из книг я встречала упоминание об исследовании, в котор… twitter.com/i/web/status/1…
Так как само исследование я сейчас найти не смогла, то будем считать, что просто «далеко не все» запоминают.
И это… twitter.com/i/web/status/1…
У всех нас есть когнитивное искажение, касающееся того, какие вещи являются очевидными, а как… twitter.com/i/web/status/1…
Навык, который нужен любому ментору, наставнику, преподавателю — постоянно спрашивать, понимают ли те, кому ты расс… twitter.com/i/web/status/1…
9:39Напишу позже тред о таких вещах, которые мне казались очевидными, но они оказались неочевидными для среднестатистич… twitter.com/i/web/status/1…
9:39Тредик о том, что не знает типичная аудитория мидлов-фронтендеров, которой я преподаю.
Каждый приходящий в Контур… twitter.com/i/web/status/1…
11:31Когда я рассказываю про Реакт опытной аудитории, рано или поздно заходит разговор… twitter.com/i/web/status/1…
— Хорошо, а давайте вспомним про реактивность из других отраслей. Ну, вот реактивное движение, например, это про чт… twitter.com/i/web/status/1…
11:31А вот в психологии говорят про проактивное и реактивное поведение. Это про что?
— Ну, хорошие и плохие.
Какие-то та… twitter.com/i/web/status/1…
Тут фронтендеры радуют по сравнению с сишарперами — среднестатистический мидл-фронтендер слышал… twitter.com/i/web/status/1…
Чистой функцией что только не называют:
11:31В объяснении Реакта для начинающих есть необходимость объяснить одну, простую для опы… twitter.com/i/web/status/1…
Когда я только начинала проводить обучение по Реакту, я говорила что-то вроде «в фигурных скобочках может стоять пр… twitter.com/i/web/status/1…
11:31В этих ситуациях буквально в следующей же задачке кто-нибудь писал в фигурных скобочках цикл for и спрашивал, почем… twitter.com/i/web/status/1…
11:31Тогда я стала явно проговаривать, что циклы for, if, switch-case, объявление переменных нельзя писать в фигурных ск… twitter.com/i/web/status/1…
11:31Тогда преподавательский долг сосредоточить внимание на частой ошибке. И один из удобных способов так делать — дать… twitter.com/i/web/status/1…
11:31Я начала с вопросов типа:
— в фигурных скобках можно писать только конструкции, возвращающие значение. Давайте прид… twitter.com/i/web/status/1…
Тогда я подумала «да, к черту, буду спрашивать правильно, а не попроще».
— в фигурных скобках можно размещать тольк… twitter.com/i/web/status/1…
Так оказалось, что мидлы-фронтендеры обычно не знают, что такое expression и statement. Но после подробного разбора… twitter.com/i/web/status/1…
11:31Для полного катарсиса еще можно рассказать про if-expression в Kotlin.
Вот такие три темы не знает средняя аудитор… twitter.com/i/web/status/1…
11:31Время опросов. Четыре вопроса в тредике. Хочу понять про вас все)
11:38Знаешь ли ты термин «реактивность»?
11:38Знаешь ли ты термин «чистая функция»?
11:38Знаешь ли ты термины statement и expression?
11:38Сколько лет опыта в программировании у тебя?
11:38@jsunderhood Ну тут вопрос скорее к вашим рекрутерам и собеседующим, которые набирают таких "мидлов". Либо же у вас… twitter.com/i/web/status/1…
Про грейды я напишу еще на неделе, в общем про мидла так: он должен уметь делать типичные задачи так, чтобы не нужн… twitter.com/i/web/status/1…
@jsunderhood Ну тут вопрос скорее к вашим рекрутерам и собеседующим, которые набирают таких "мидлов". Либо же у вас… twitter.com/i/web/status/1…
14:42
Это просто занимательные наблюдения, без каких знаний, оказывается, можно жить спокойно и работать работу.
А всяко… twitter.com/i/web/status/1…
14:42Развлекательный тред: какие темы из Реакта ломают мозг неподготовленным сишарперам.
Иногда учиться Реакту заходят… twitter.com/i/web/status/1…
15:08Дело в том, что здесь задействуются сразу три неочевидные вещи:
15:08И как раз последнее — самое сложное. Потому что любому очевидно, что логический оператор должен работать с булевыми… twitter.com/i/web/status/1…
15:08Но в JS логические операторы ведут себя странно — значение приводят, делают выводы, а возвращают значение в неприве… twitter.com/i/web/status/1…
15:08Кстати, добить аудиторию можно вопросом к коду с картинки выше, «что будет, если забыть написать > 0, а массив буде… twitter.com/i/web/status/1…
15:08Когда я рассказываю, например, что setState — асинхронный метод, а значит, строчкой ниже еще… twitter.com/i/web/status/1…
Есть один учебный блок, в котором помимо прочего я рассказываю о хороших манерах при ра… twitter.com/i/web/status/1…
Опрос перед тем, как продолжать: знаешь ли ты такие термины, как debounce и throttling?
15:08Стандартно, фронтендеры чаще знают про debounce, а бэкендеры — про throttling. Причем бэкендеры, говоря про тротлин… twitter.com/i/web/status/1…
15:08У многих разработчиков есть некоторое пренебрежение к верстке и периодически… twitter.com/i/web/status/1…
Тогда я этим шутникам рассказываю, что после выхода HTML5 и CSS3 связка из HTML+CSS стала Тьюринг-полным языком про… twitter.com/i/web/status/1…
15:08Если вы сами пришли в мир JS после других языков, расскажите, что вам кажется или казалось странным/непривычным/неудобным в JS или TS?
15:08@jsunderhood а теперь было бы интересно узнать, что эта аудитория знает
Тут же как: их знания мне проверить сложнее, чем незнания. Поэтому не знают мои аудитории одинаково, а знают по раз… twitter.com/i/web/status/1…
@jsunderhood а теперь было бы интересно узнать, что эта аудитория знает
15:15
Бывают крутые ребята из других, незнакомых мне языков, которые рассказывают «а как у них»;
Бывают те, кто глубоко… twitter.com/i/web/status/1…
Лучшее, что может быть в жизни преподавателя — умная аудитория. Можно у них научиться чему-то крутому.
15:15Но чему может быть равен this в js не знают одинаково все =)
15:15Использование логических операторов в качестве ветвления (как на картинке).
История к картинке из этого твита:
Преподавала Реакт тестировщикам. Обсуждаем, что если не написать явно > 0, то пр… twitter.com/i/web/status/1…
- Использование логических операторов в качестве ветвления (как на картинке).
Если с тем, что HTML можно писать в… twitter.com/i/web/status/1…
15:41
Я очень люблю, когда учащиеся проверяют демонструционный код на прочность, жаль, только, они не всегда понимают, что они делают
15:41# Вторник 67 твитов
@jsunderhood Стоп, но ведь Реакт не реактивный?
Меня тут логично поправляют, что Реакт не реактивный. Я поняла, что действительно «реактивность» Реакта, (которая «… twitter.com/i/web/status/1…
@jsunderhood Стоп, но ведь Реакт не реактивный?
7:07
Исправляюсь: реактивное программирование на Реакте будет, если вы подключите RxJS =)
7:07Тредик о том, что не знает типичная аудитория мидлов-фронтендеров, которой я преподаю.Каждый приходящий в Контур… twitter.com/i/web/status/1…
Сегодня продолжу про всякое разное преподавание рассказывать, в частности, про сложные темы: архитектуру и чистый к… twitter.com/i/web/status/1…
Тредик о том, что не знает типичная аудитория мидлов-фронтендеров, которой я преподаю.
Каждый приходящий в Контур… twitter.com/i/web/status/1…
7:11
Развлекательный тред: какие темы из Реакта ломают мозг неподготовленным сишарперам.Иногда учиться Реакту заходят… twitter.com/i/web/status/1…
— про сишарперов, изучающих фронтенд
Развлекательный тред: какие темы из Реакта ломают мозг неподготовленным сишарперам.
Иногда учиться Реакту заходят… twitter.com/i/web/status/1…
7:11
@jsunderhood Меня давно беспокоит такой вопрос: является ли чистой функция на приложенной картинке? pic.twitter.com/CGe0M832Vn
Я бы сказала, что в js — нет. Просто потому, что множество возвращаемых значений неограничено. Для чистой функции н… twitter.com/i/web/status/1…
@jsunderhood Меня давно беспокоит такой вопрос: является ли чистой функция на приложенной картинке? pic.twitter.com/CGe0M832Vn
8:09
Второго пункта тут не выполняется, потому что нельзя предсказать результат и сравнить с предыдущим.
Но, возможно, я ошибаюсь =)
8:09Пока я пишу большой тред про архитектуру, отклонюсь немного в сторону — мини тред про незнание фундаментальных терм… twitter.com/i/web/status/1…
9:21Отвечу на это — мне бы тоже хотелось, чтобы все люди вокруг меня разбирались лучше в базовых терминах, чтобы у них… twitter.com/i/web/status/1…
9:21Когда я только начала заниматься переделыванием процесса найма, я хотела пользоваться первым — «давайте не будем на… twitter.com/i/web/status/1…
9:21К счастью, мне не дали это сделать, а просто выдали второй инструмент — теперь я могу всех нанятых людей на входе у… twitter.com/i/web/status/1…
9:21А не нанимать людей, которые могут работать работу, но не учились в университете и поэтому не в курсе, что такое np… twitter.com/i/web/status/1…
9:21Про учебный курс по архитектуре фронтенда.
Лет 5 назад, когда я только начала задумываться о том, что такое архитек… twitter.com/i/web/status/1…
Так, года 4 назад я собрала самых крутых фронтендеров компании (удивительно, но все самые крутые фронтендеры в Конт… twitter.com/i/web/status/1…
10:58Мне ответили в духе:
— Какая архитектура? Нет никакой архитектуры!
(а я видела решения, которые были приняты ребята… twitter.com/i/web/status/1…
В общем, ушла я со встречи с пониманием, что коллеги, которые умеют проектировать хорошую архитектуру, не могут это… twitter.com/i/web/status/1…
10:58Так как идея создать семестровый курс по архитектуре фронта для старших курсов университета меня не отпускала, я на… twitter.com/i/web/status/1…
10:58Курс в итоге сделан пока частично — только про Реакт и только на два занятия по 3 часа, вместо семестра (и испытан… twitter.com/i/web/status/1…
10:58И начинать как раз с умения спроектировать интерфейс функции или компонента (если речь про визуальные составляющие).
10:58Это если кратко. Если полнее, то она в себя е… twitter.com/i/web/status/1…
Наверное, это очевидно, но для меня было откровением: хорошая архитектура — это та, которая удовлетворяет требовани… twitter.com/i/web/status/1…
10:58— нижний уровень архитектуры —… twitter.com/i/web/status/1…
Как всегда, реальность не укладывается в простые модели...
Оффтопик:
Когда я поймала одного из крутых коллег, закры… twitter.com/i/web/status/1…
И я задумалась, что и вправду, когда говорю про фронтенд, последние годы имею в виду SPA на React. Хотя, вообще-то… twitter.com/i/web/status/1…
10:58Данные, если говорить про все приложение,… twitter.com/i/web/status/1…
«Поток данных это про flux-архитектуру, которая заменила неподходящий MVC, а еще там были MVP, MVVM (на котором анг… twitter.com/i/web/status/1…
10:58Да, когда Фейсбук показали flux-архитектуру, они действительно ее противопоставляли MVC.
Но оказывается, что, хотя… twitter.com/i/web/status/1…
В конце будут ссылки, в том числе с следованием о том, что flux — это тоже MVC =)
10:58Тут я прове… twitter.com/i/web/status/1…
Пользу архитектурную пока сложно оценить — пока еще не приходилось в этой части ничего менять. Но однозначно ребята… twitter.com/i/web/status/1…
10:58и в целом сам факт проектирования (и дизайн-ревью) до того, как кидаться писать код благотворно влияет на скорость… twitter.com/i/web/status/1…
10:58Хватит озарений, рекомендации:
10:58Но если захотите, прочитает… twitter.com/i/web/status/1…
Про кругозор.
В процессе одной из итераций работы над грейдами, мы экспериментально добавили такой критерий как «с… twitter.com/i/web/status/1…
От джуна мы хотели, чтобы он был в курсе происходящего: как минимум следил бы за новостями его стека или смотрел ка… twitter.com/i/web/status/1…
12:24От мидла хотели, чтобы он как минимум знал, где у него нехватает компетенций и закрывал дыры, а как максимум, проак… twitter.com/i/web/status/1…
12:24Но эксперимент признан скорее неудачным. Нам написали кучу негатива менеджеры. Негатив был двух сортов:
12:24Это происходит потому что есть удивительно много людей, которым «норм». Они что-то делают, задачи закрывают, обычно… twitter.com/i/web/status/1…
12:24То на проактивность руководители никак влиять не могут. Вот и получается, что они растят человека, ставя его в подх… twitter.com/i/web/status/1…
12:24Что делать с этим пока не знаем, будем пробовать как-то менять критерий.
А иначе получаются грустные истории:
Есть… twitter.com/i/web/status/1…
— ну, вот чего им не сидится спокойно, ведь уже есть же для всего решения! Нет, придумывают...
Раздражает его все… twitter.com/i/web/status/1…
Для этого пошли с этим потенциальным техлидом поговорить другие техлиды, чтобы понять что-то про него — он же один… twitter.com/i/web/status/1…
12:24И у тебя везде используется одинаковый стек Реакт, редакс и TS. Почему такой выбор?
Он им отвечает:
— В смысле? это… twitter.com/i/web/status/1…
Попробовали позадавать ему этот вопрос по-разному, и стало понятно, что как он выучил один подход, так другие никог… twitter.com/i/web/status/1…
12:24А для этого нужен кругозор, расширение которого исключительно в руках самих разработчиков.
Эта история, кстати, о… twitter.com/i/web/status/1…
12:24Так, давайте уже определимся что такое реактивность, хотя бы в твитnере.
->12:55Исправляюсь: реактивное программирование на Реакте будет, если вы подключите RxJS =)
Про чистый код.
Все еще о преподавании, а не о реальном мире, тут я часто работаю героем анекдота.
Встречаются два… twitter.com/i/web/status/1…
Кстати, про реальный мир. Всем приходящим к нам в компанию джунов и мидлов мы проводим, среди прочего, учебный блок… twitter.com/i/web/status/1…
14:32— Представь, вот мы всех их учили и они пишут... всякое. А что было бы, если бы не учили?..
14:32Понятно, что методологии в чистом виде и любые правила разбиваются о многогранность реальности, но все еще лучше ст… twitter.com/i/web/status/1…
14:32Занимательные опросы, 2 штуки.
14:322. Есть ли у тебя коллеги, которым нужно научиться писать более «чистый» код?
14:32Я запускала эти же опросы во флудилке фронтендеров Контура. И один из коллег, очень опытных и крутых написал в отве… twitter.com/i/web/status/1…
14:32И это логичное опасение. Еще вчера я писала, что запоминаем мы из хорошей лекции далеко не 100% (возможно, порядка… twitter.com/i/web/status/1…
14:32Если через год, например, просмотреть, прочитать тот же материал еще раз, то узнаешь много нового. Я, например, так… twitter.com/i/web/status/1…
14:32То есть, есть большая вероятность, что ты когда-то давно прочитал/посмотрел что-то про чистый код, запомнил оттуда… twitter.com/i/web/status/1…
14:32Кроме того, что после прочтения однократного запоминается не все, против такого обучения идет еще ощущение «мне это… twitter.com/i/web/status/1…
14:32Итак:
14:32У нашего учебного блока Чистого кода используется несколько приемов, которые стараются сломать предвзятость учащихс… twitter.com/i/web/status/1…
14:32Еще один полезный в обучении чистому коду подход: предложить решить какую-нибудь задачу, дать код решения другому ч… twitter.com/i/web/status/1…
14:32Порекомендую чего поизучать, если есть желание:
14:32Кстати, когда на собеседовании на стажировку мы спрашиваем студентов «Что такое, по-твоему, чистый код?», почти все… twitter.com/i/web/status/1…
14:32И хотя, в универе при приеме работ мы заставляем убирать бесполезные комментарии, по моему опыту обучения совсем на… twitter.com/i/web/status/1…
14:32# Среда 27 твитов
Сегодня будет тема грейдов, но позже. Пока я занята подготовкой к предстоящей конференции — приобретением нового ок… twitter.com/i/web/status/1…
8:12Новый цвет приобретён, теперь поеду писать для вас новые треды =) pic.twitter.com/496BSqXUj7
Обману всех и не буду рассказывать сегодня про грейды, расскажу про то, чему учиться, когда ты уже не джун и как се… twitter.com/i/web/status/1…
13:23Когда разработчик вырастает из джуна, случается часто проблема — есть ощущение белых пятен в каких-то темах, но еще… twitter.com/i/web/status/1…
13:231 тип: те, кто в джуниорстве успешно обучались на курсах, вроде «фронтенд для начинающих», чувствуя, что им надо по… twitter.com/i/web/status/1…
13:23От такой скуки может даже возникнуть ощущение «да, я уже все знаю...» и оно очень опасно, потому что приятно и не х… twitter.com/i/web/status/1…
13:232 тип: люди, которые «учатся в твиттере» — это условное название. Это когда ты встречая неизвестное слово, спрашива… twitter.com/i/web/status/1…
13:23Нужно понимать, что твиттер и конференции — это история про вдохновить и заинтересовать, но никак не про учиться.… twitter.com/i/web/status/1…
13:233 тип: люди, бесконечно углубляющиеся в какую-то одну тему. Когда нападает экзистенциальная пустота от ощущения, чт… twitter.com/i/web/status/1…
13:23У меня есть недавняя история про это: одни разработчик очень полюбил REST API: после прохождения первого курса про… twitter.com/i/web/status/1…
13:234 тип: «блин, надо чего-нибудь подучить, но не знаю чего. О, нашел рандомное слово, которое звучит круто, выучу его… twitter.com/i/web/status/1…
13:23Если спросить «а зачем», то ответит что-то невразумительное, что переводится как «я искал какие-нибудь штуки которы… twitter.com/i/web/status/1…
13:235 тип: «Я уже 1,5 года изучаю JS, курсы “JS за 21 день” уже не приносят ничего нового. Кажется, тут я все знаю... Н… twitter.com/i/web/status/1…
13:23Это были не самые лучшие варианты попыток учиться, которые я встречала.
Понятно, что есть и хорошие, и хорошие вст… twitter.com/i/web/status/1…
Про отношение к новым стекам.
Когда у меня случается разговор о том, что «чет мне скучно, выучить новый язык, что л… twitter.com/i/web/status/1…
Ситуация 1, самая простая: ты выбрал стек, начал в нем работать и понял, что тебя бесят задачи, которые есть в этом… twitter.com/i/web/status/1…
14:13Или наоборот, ты выбрал фронтенд или мобилку, а от наведения красоты тебя тошнит.
Тут все просто, бросай это как м… twitter.com/i/web/status/1…
Ситуация 2, посложнее: у тебя в команде появился новый стек и тебе очень хочется его попробовать или резкая необход… twitter.com/i/web/status/1…
14:13Тут можно так делать, если новый стек интересен тебе с целью перехода на него или если у тебя больше трех лет опыта… twitter.com/i/web/status/1…
14:13Ситуация 3: твой текущий язык — не первый, на котором ты работаешь. В этой ситуации ты и сам взрослый и самостоятел… twitter.com/i/web/status/1…
14:13Общее правило, которым я руководствуюсь: если у моего собеседника текущий язык программирования — первый на котором… twitter.com/i/web/status/1…
14:13У меня есть история университетсяких времен (я, кстати, на химика училась):
я не знала одинаково хорошо все языки п… twitter.com/i/web/status/1…
Похожая история и у моих студентов: они в университете изучают несколько языков, так, что немножко запоминают возвы… twitter.com/i/web/status/1…
14:13Так вот, эмпирическое правило из наблюдений родилось такое: если у тебя есть хотя бы три года опыта в одном языке,… twitter.com/i/web/status/1…
14:13А если вы хотите порасширять кругозор в языках программирования, то я сплагиачу советы от @_bravit:
14:13# Четверг 31 твит
Обману всех и не буду рассказывать сегодня про грейды, расскажу про то, чему учиться, когда ты уже не джун и как се… twitter.com/i/web/status/1…
Итак, сегодня продолжу что-то про рост рассказывать, а тем временем «в предыдущих сериях»:
twitter.com/jsunderhood/st…… twitter.com/i/web/status/1…
Обману всех и не буду рассказывать сегодня про грейды, расскажу про то, чему учиться, когда ты уже не джун и как се… twitter.com/i/web/status/1…
7:29
Про учебный курс по архитектуре фронтенда.
Лет 5 назад, когда я только начала задумываться о том, что такое архитек… twitter.com/i/web/status/1…
Холивар про реактивность: twitter.com/artalar_dev/st… и twitter.com/jsunderhood/st…
Холивар про чистые функции… twitter.com/i/web/status/1…
Про учебный курс по архитектуре фронтенда.
7:29
Лет 5 назад, когда я только начала задумываться о том, что такое архитек… twitter.com/i/web/status/1…
Пока я пишу большой тред про архитектуру, отклонюсь немного в сторону — мини тред про незнание фундаментальных терм… twitter.com/i/web/status/1…
В вопросе о том, что должны уметь разработчики, ни в частности, фронтендеры, раньше у меня был однозначный ответ —… twitter.com/i/web/status/1…
Пока я пишу большой тред про архитектуру, отклонюсь немного в сторону — мини тред про незнание фундаментальных терм… twitter.com/i/web/status/1…
8:51
Это было удобно — руководствоваться пониманием, что я, как хороший фронтендер, должна знать все — и дизайн, и менед… twitter.com/i/web/status/1…
8:51А потом от моих решений стали зависеть другие люди и все перестало быть так однозначно =)
Выяснилось интересное...… twitter.com/i/web/status/1…
«КОМПАНИЯ ХОЧЕТ ЭКОНОМИТЬ ЗА МОЙ СЧЕТ! Вы намеренно хотите сделать из меня фуллстека, чтобы не нанимать бэкендеров!… twitter.com/i/web/status/1…
8:51Если заявить, что сеньор бэкендер, пишущий бэк для веб-приложений, должен знать, как работает фронтенд, то потенциа… twitter.com/i/web/status/1…
8:51И я удивлялась: «Как так-то? Неужели вам не интересно понять, как устроен мир? Узнать шире, чем нужно?»
А потом пон… twitter.com/i/web/status/1…
И те, кому интересно поверхностно, но широко («сканеры»). И я отношусь ко вторым. И не я одна: есть много бэкендеро… twitter.com/i/web/status/1…
8:51Но это не отменяет и первый тип (Барбара Шер их назвала «дайверы»): люди, которые выбрали верстку и не лезут в оста… twitter.com/i/web/status/1…
8:51С тех пор вопрос о том, чему учиться оказывается не самым тривиальным. Я попробую обобщить несколько категорий, с р… twitter.com/i/web/status/1…
8:52Это те темы, без которых сложно… twitter.com/i/web/status/1…
Во фронте меньше полезны юнит-те… twitter.com/i/web/status/1…
Кстати, про безопасность. Фронтендеры расслабились, потому что Реакт, например, за них большинство уязвимостей закр… twitter.com/i/web/status/1…
8:52Как обычно, поделюсь ресурсами. Для умения аргументировано спорить мне нравится курс «Научное мышление»… twitter.com/i/web/status/1…
8:52А еще есть много всякого со звездочкой: навык публичных выступлений, умение писать тексты, умение говорить на менед… twitter.com/i/web/status/1…
8:52Про умение писать тексты
Я когда-то давно купила «Пиши, сокращай» @perepisal и постаралась научиться писать тексты… twitter.com/i/web/status/1…
Но после «Пиши, сокращай» вышла более профильная книжка — «Новые правила деловой переписки» (… twitter.com/i/web/status/1…
8:52Про умение говорить на менеджерском: когда-то давно, года 4 назад, была распродажа всех курсов @stratoplan и это лу… twitter.com/i/web/status/1…
8:52А мотивации к обучению могу прибавить отличным докладом Вадима Макишвили «36» youtu.be/xPPCzryZK44 — если не смотрели, то очень зря
8:52Пока еду домой, расскажу несколько рандомных историй, которые мне сейчас вспомнились с разными моралями.
История… twitter.com/i/web/status/1…
15:41И вот в качестве статьи поиска по DOM даем ребятам статью learn.javascript.ru/searching-elem… Там есть раздел о том, что «Все м… twitter.com/i/web/status/1…
15:41Через полгода приходит ко мне стажер, пишет код, который ищет все textarea в документе и вызывает с контентом от te… twitter.com/i/web/status/1…
15:41Зовет меня пожаловаться, что все сломалось, ошибок в консоли нет, на странице ничего не рисуется, что делать?!
Оказ… twitter.com/i/web/status/1…
История 2, которую мне рассказала одна менеджер разработки.
Был у нее подчиненный разработчик, который плохо рабо… twitter.com/i/web/status/1…
15:41И когда эта юная менеджер стала разбираться, что происходит, оказалось, что человек был уверен, что от него ждут ка… twitter.com/i/web/status/1…
15:41Он это понял из-за традиции оценки задач — считал, что раз задачи надо оценить, значит их надо как можно быстрее де… twitter.com/i/web/status/1…
15:41Поэтому я для своих ребят из кластера всегда с менеджерами проговариваю, что предсказуемость важнее скорости. Скоро… twitter.com/i/web/status/1…
15:41Что такое кластер. Так как у нас продуктовая разработка, то команды укомплектованы разработчиками всех ролей. И в т… twitter.com/i/web/status/1…
15:41А для этого нужен кругозор, расширение которого исключительно в руках самих разработчиков.Эта история, кстати, о… twitter.com/i/web/status/1…
Я приехала, поэтому остановлюсь на двух историях. Если хотите больше, то у меня есть пара докладов с историями:… twitter.com/i/web/status/1…
А для этого нужен кругозор, расширение которого исключительно в руках самих разработчиков.
Эта история, кстати, о… twitter.com/i/web/status/1…
15:41
# Пятница 50 твитов
@jsunderhood Могли бы чуточку раскрыть тему? В моей голове попытка выделить бизнес логику и отделить ее от архитект… twitter.com/i/web/status/1…
DDD предлагает описывать только бизнес-процесс, ну, например, вот есть какая-нибудь заявка, она может быть сначала… twitter.com/i/web/status/1…
@jsunderhood Могли бы чуточку раскрыть тему? В моей голове попытка выделить бизнес логику и отделить ее от архитект… twitter.com/i/web/status/1…
6:49
Этот процесс не изменится вне зависимости от фреймворка и прочих инструментов.
Описать его заранее поможет понять… twitter.com/i/web/status/1…
6:49Кстати, есть метрика состояния: количество бизнес данных / количество визуальных данных. Чем выше по дереву разметк… twitter.com/i/web/status/1…
6:49Пятничный тред про соревнования.
В школе и университете (я на химика училась) я активно участвовала в разных олимп… twitter.com/i/web/status/1…
Сейчас, оглядываясь назад, понятно, почему: когда очень не уверен в своих знаниях, нет причины идти и публично подт… twitter.com/i/web/status/1…
7:58Сначала я стала организовывать мероприятия для любителей попрограммировать соревновательно. Первым таким мероприяти… twitter.com/i/web/status/1…
7:58Смысл код-ретрита такой: несколько сессий по 45 минут, в каждой сессии:
7:58После первой сессии, в которой единственная цель — реализовать игру Жизнь, каждая следующая сессия предлагает разны… twitter.com/i/web/status/1…
7:58А еще бывают усложнения, например, в виде тороидального поля или времени жизни у клеток, после которого они точно у… twitter.com/i/web/status/1…
7:58Как видите, первый опыт организации соревнований был ни разу не соревновательным =)
Следующим был внутренний хака… twitter.com/i/web/status/1…
7:58Первая движуха, к которой я присоединилась, был adventofcode.com
Вот уже 6 лет каждый день с 1 до 25 декабр… twitter.com/i/web/status/1…
Очень люблю эту активность за то, что:
7:58После нескольких лет участия, я решила сделать активность более масштабной: мы решили сделать 25 дней видеоразборов… twitter.com/i/web/status/1…
7:58Следующее соревнование, в которое я включилась — codingame.com
У них, кроме задачек на разные темы для… twitter.com/i/web/status/1…
За что я люблю соревнования CodinGame:
7:58И самым топовым соревнованием для меня оказался ICFPC.
7:58Тут твиттер решил не показывать вам ссылки) Сейчас восстановлю посты
7:59В 2019 году я напросилась в команду к коллегам, провела прекрасно время, описала тут этот интересный опыт:… twitter.com/i/web/status/1…
8:16Всю статью с хабра пересказывать не буду, но любимым видио поделюсь:
youtu.be/EjL-5EuQeCU
Это было вводное виде… twitter.com/i/web/status/1…
8:16Sharpen your lambdas, pop your stacks and polish your registers: ICFP Contest 2021 is now less than one month away!… twitter.com/i/web/status/1…
Ну, а следующий ICFPC совсем скоро — 9-13 июля!
Собирай команду и присоединяйся к веселью!
Sharpen your lambdas, pop your stacks and polish your registers: ICFP Contest 2021 is now less than one month away!… twitter.com/i/web/status/1…
8:16
А вообще, мы много соревнуемся сами и устраиваем соревнования другим, если хочешь об этом узнавать, то мы пишем ано… twitter.com/i/web/status/1…
8:16Рассказала, в каких соревновательных штуках я участвовала, теперь расскажу про пользу, которую я вижу в участии в них.
8:33Самое главное — «коммьюнити». У всех таких движух есть чатики, обсуждения... Если вовлекать в такие активности колл… twitter.com/i/web/status/1…
8:33От обсуждения умными словами умных вещей происходит перекрестное переопыление умными мыслями в сообществе.
Вторая… twitter.com/i/web/status/1…
8:33Третья польза — изучение новых языков или подходов на задачах, которые не жалко. В работе сложнее браться за новые… twitter.com/i/web/status/1…
8:33Но больше всего пользы я получаю как организатор таких активностей.
Самые интересные вещи я выучила, пока делала к… twitter.com/i/web/status/1…
Если у вас чешутся руки в чем-нибудь поучаствовать, то присоединяйтесь к ICFPC 2021, а если хотите сами провести чт… twitter.com/i/web/status/1…
8:33Спонтанное размышление: если спросить у человека «что такое Чистый код?», то его ответ очень меняется, в зависимост… twitter.com/i/web/status/1…
17:54Он на вопрос собеседующего о том, какой код можно назвать чистым, ответил, что чистый код — это такой, в котором не… twitter.com/i/web/status/1…
17:54Мои студенты старших курсов уже не вспоминают про горизонтальные отступы, для них это очевидно. Студенты старших ку… twitter.com/i/web/status/1…
17:54Разработчики постарше уже вспоминают SOLID, DRY, KISS и другие аббревиатуры.
А совсем взрослых разработчиков я ка… twitter.com/i/web/status/1…
17:54Продолжу размышления о том, как по-разному ведут себя разработчики разных уровней.
У нас для приходящих опытных р… twitter.com/i/web/status/1…
18:17Я помогала ребятам выбрать команду по душе: вариантов много, выбирать тяжело.
Для этого я спрашивала ребят о том,… twitter.com/i/web/status/1…
Джуны:
— «Хочу Реакт, потому что я его пробовал и потому что он приятнее, чем просто скрипты писать»
— «Не хочу в с… twitter.com/i/web/status/1…
Однажды был такой диалог:
— Не хочу в команду, в которой легаси.
— Почему? Есть какой-то опыт?
— Нет, опыта нет, п… twitter.com/i/web/status/1…
Джуны не знают ничего о процессах, обычно, и им не важно как часто будут встречи, тет-а-теты, как задачи ставят...… twitter.com/i/web/status/1…
18:17Мидлы:
— Хочу Реакт/Ангулар и умею объяснять, почему Реакт/Ангулар — это хорошо
— Хочу туда, где хорошо построены п… twitter.com/i/web/status/1…
— «Хочу делать инфраструктурные продукты, чтобы вокруг меня были мои пользователи, чтобы они могли мне в чатике баг… twitter.com/i/web/status/1…
18:17— «Я хочу, чтобы моим продуктом пользовались тысячи и миллионы пользователей, чтобы чувствовать, как я приношу поль… twitter.com/i/web/status/1…
18:17Наличие других фронтендеров в некоторых случаях для мидлов является критерием, в некоторых — нет.
В целом у мидлов… twitter.com/i/web/status/1…
18:17Сеньоры:
— Вообще все равно, какие технологии
— Смогу ли я там влиять на процессы? — ну, то есть сразу не верит в х… twitter.com/i/web/status/1…
В общем такие выводы:
— Джуны боятся не разобраться и накосячить.
— Миддлы помладше хотят попробовать новое, а пос… twitter.com/i/web/status/1…
18:17@jsunderhood Хех, у меня тот случай, когда кроме легаси разного уровня старости(от совсем хренового до "не, ну жить… twitter.com/i/web/status/1…
На курсе для менеджеров разработки о том, как разговаривать с разработчиками, мы с ними начинаем с обсуждения значе… twitter.com/i/web/status/1…
@jsunderhood Хех, у меня тот случай, когда кроме легаси разного уровня старости(от совсем хренового до "не, ну жить… twitter.com/i/web/status/1…
18:30
А однажды я интервьюировала менеджеров разработки в стартапах о том, каким должен быть разработчик в стартапе. И у… twitter.com/i/web/status/1…
18:30Это я к тому, что в целом все мы живем в окружении легаси, и нужно просто отрастить панцирь покрепче, чтобы оно не так расстраивало.
18:30@jsunderhood у меня после этих тредов что я бенджамин баттон мира разработки, никогда не была джуном
Я не знаю ваш случай, но в целом так часто бывает, когда люди становятся разработчиками после каких-то других специ… twitter.com/i/web/status/1…
@jsunderhood у меня после этих тредов что я бенджамин баттон мира разработки, никогда не была джуном
18:42
Один интересный случай с выбором стажера был пару лет назад: одна команда выбрала своего будущего стажера очень быс… twitter.com/i/web/status/1…
18:42Команда ответила, что они как увидели подходящего, так и перестали смотреть дальше.
— как поняли, что этот — подхо… twitter.com/i/web/status/1…
— а чем взрослый вам подходит больше, чем студенты?
— так с ним будет меньше детского сада и больше осознанности.… twitter.com/i/web/status/1…
«я не хочу подвести команду. Дайте мне, пожалуйста, контакты команды, я обсужу с ними, как лучше поступить в этом с… twitter.com/i/web/status/1…
18:42# Воскресенье 39 твитов
Воскресное развлекательное: тред о том, как мы изобретали грейды.
1 этап: «разделим фичи языка по грейдам».
Где-то… twitter.com/i/web/status/1…
Расписали табличку какие методы и термины из языка (и верстки) должен знать джун, а какие уже мидл. Ну, вроде, замы… twitter.com/i/web/status/1…
12:18Посмотрели на получившуюся табличку, сказали «фигня какая-то» и выкинули результаты.
И пришли к выводу, что хотя… twitter.com/i/web/status/1…
12:18Если смотреть на моих учащихся, то, например, из методов массива почти никто не знает про reduceRight и мало кто вс… twitter.com/i/web/status/1…
12:18Генераторы, Map и Set — все из той же оперы. Мало кто ими пользуется достаточно часто, чтобы легко вспомнить про ни… twitter.com/i/web/status/1…
12:182 этап: программисты создают матрицу компетенций.
Где-то через год после начала первого этапа, родилась новая дви… twitter.com/i/web/status/1…
12:18Вначале придумали крупные критерии этой матрицы:
Техника/Мастерство
Продуктивность
Критическое мышление
Работа с п… twitter.com/i/web/status/1…
Потом пошли описывать индикаторы, которые доказывают наличие критерия и назначать их разным грейдам.
Идея была та… twitter.com/i/web/status/1…
12:18Соответственно, у каждого индикатора указан грейд, на котором мы ожидаем его закрытия. Если закрыто 80% индикаторов… twitter.com/i/web/status/1…
12:18Индикаторов получилось в сумме больше 100. Заполнение их раз в полгода на пересмотр отнимало больше целого дня у ра… twitter.com/i/web/status/1…
12:18Еще есть индикаторы, которые мы написали за сеньорские и которые стабильно отмечали выполняющимися большинство джун… twitter.com/i/web/status/1…
12:18Ну, и самая главная проблема — перфекционизм, который заставляет разработчиков хотеть закрыть все индикаторы, но не… twitter.com/i/web/status/1…
12:18Индикаторы были сделаны так, чтобы, если человек помимо всего прочего делает сверх того, что должен, то должна быть… twitter.com/i/web/status/1…
12:18В общем, боль и страдание принесли нам эти сотни индикаторов. Хотя стало немного прозрачнее за счет того, что компа… twitter.com/i/web/status/1…
12:18Этап 3: замена матрицы небольшим количеством критериев.
В какой-то момент решили попробовать сделать немного крите… twitter.com/i/web/status/1…
Собрали рабочие группы, которые состояли не только из разработчиков, но и менеджеров, предложили описать кто по их… twitter.com/i/web/status/1…
12:18На картинке один из 5 критериев для перехода из джуны в мидлы.
Показывать все критерии я пока не хочу, потому что… twitter.com/i/web/status/1…
12:18Самая сложная идея была такая — до уровня мидл, разработчик может дорасти в любой команде. А дальше — совсем не фак… twitter.com/i/web/status/1…
12:18И очень больно было некоторым менеджерам осознавать это. Они говорили: вот вы там придумали всякое, как мне растить… twitter.com/i/web/status/1…
12:18Отдельно, параллельно с изобретением критериев, развернулась история с тем, что трех грейдов не хватает. Обычно, ти… twitter.com/i/web/status/1…
12:18(от ведущих мы ждали лидерских качеств, это тимлиды, техлиды и прочие лиды) — до этого грейда можно расти лет 5 или… twitter.com/i/web/status/1…
12:18Вот сейчас занимаемся причесыванием грейдов и есть описательное видение, какие они примерно получатся:
— интерн: зн… twitter.com/i/web/status/1…
— мидл: это разработчик, который может делать типичные задачи самостоятельно, за ним не нужен присмотр
— мидл+: ра… twitter.com/i/web/status/1…
или принимать значительные архитектурные решения
— сеньор: разработчик, который кроме собственно деланья задач, уме… twitter.com/i/web/status/1…
— Лид: это сеньор, который успешно и неоднократно доказал свои лидерские качества. Может быть тимлидом, техлидом, ф… twitter.com/i/web/status/1…
12:18@jsunderhood а как вы решаете эту проблему? как растите/мотивируете разработчиков, которые упёрлись в потолок из-за… twitter.com/i/web/status/1…
Сейчас у каждого менеджера над ним есть менеджер бизнес-направления и обычно он заинтересован в том, чтобы выявлять… twitter.com/i/web/status/1…
@jsunderhood а как вы решаете эту проблему? как растите/мотивируете разработчиков, которые упёрлись в потолок из-за… twitter.com/i/web/status/1…
12:59
Потому что терять человека не хочется, если ему интересно расти, то нужно дать ему возможность расти.
Хотя бывают… twitter.com/i/web/status/1…
12:59А бывают случаи, когда у человека у единственного хватает компетенций (или смелости), чтобы заниматься конкретным п… twitter.com/i/web/status/1…
12:59Тогда такому человеку платят уникальные премии (и опционы) за уникальные компетенции, но в интересах мендежера не д… twitter.com/i/web/status/1…
12:59@jsunderhood А можно пожалуйста подробнее про техлида и фичалида - кто такие?И получается можно быть лидом без тимлидства?
У нас есть понимание, что некоторые лиды целиком про людей — мотивация, целеполагание, наставничество и вот это вот… twitter.com/i/web/status/1…
@jsunderhood А можно пожалуйста подробнее про техлида и фичалида - кто такие?
И получается можно быть лидом без тимлидства?
21:12
Есть техлиды — люди, которые в основном про принятие архитектурных решений, про разговоры типа «в следующем году на… twitter.com/i/web/status/1…
21:12Есть фичалиды — это одной ногой менеджеры разработки.
Это собственно те, кто берут на себя какой-то проект или фич… twitter.com/i/web/status/1…
Фичалиды — суперценные кадры в стартапах или командах с большой потребностью в работе с высокой неопределенностью.… twitter.com/i/web/status/1…
21:12В командах часто бывает тимлид и техлид в паре — один душевный и эмпатичный, а второй — хардкорный технарь. Бывает,… twitter.com/i/web/status/1…
21:12Тредик о том, что не знает типичная аудитория мидлов-фронтендеров, которой я преподаю.Каждый приходящий в Контур… twitter.com/i/web/status/1…
Ну, что ж, моя неделя подошла к концу, было интересно! Спасибо всем за вопросы и обсуждения.
Вот что успели обсуди… twitter.com/i/web/status/1…
Тредик о том, что не знает типичная аудитория мидлов-фронтендеров, которой я преподаю.
Каждый приходящий в Контур… twitter.com/i/web/status/1…
21:22
Я бы сказала, что в js — нет. Просто потому, что множество возвращаемых значений неограничено. Для чистой функции н… twitter.com/i/web/status/1…
twitter.com/jsunderhood/st… — про сишарперов и фронтенд
twitter.com/jsunderhood/st… — про архитектуру
Холивар про реактивно… twitter.com/i/web/status/1…
Я бы сказала, что в js — нет. Просто потому, что множество возвращаемых значений неограничено. Для чистой функции н… twitter.com/i/web/status/1…
21:22
Пятничный тред про соревнования.
В школе и университете (я на химика училась) я активно участвовала в разных олимп… twitter.com/i/web/status/1…
twitter.com/jsunderhood/st… — Про людей, не знающих «фундаментальные вещи»
twitter.com/jsunderhood/st… – Про кругозор… twitter.com/i/web/status/1…
Пятничный тред про соревнования.
21:22
В школе и университете (я на химика училась) я активно участвовала в разных олимп… twitter.com/i/web/status/1…
На курсе для менеджеров разработки о том, как разговаривать с разработчиками, мы с ними начинаем с обсуждения значе… twitter.com/i/web/status/1…
twitter.com/jsunderhood/st… — Польза от участия в соревнованиях
twitter.com/jsunderhood/st… — Как выбирают команды разработ… twitter.com/i/web/status/1…
На курсе для менеджеров разработки о том, как разговаривать с разработчиками, мы с ними начинаем с обсуждения значе… twitter.com/i/web/status/1…
21:22
Воскресное развлекательное: тред о том, как мы изобретали грейды.1 этап: «разделим фичи языка по грейдам».
Где-то… twitter.com/i/web/status/1…
twitter.com/jsunderhood/st… — Грейды
— Разные виды лидов
Воскресное развлекательное: тред о том, как мы изобретали грейды.
1 этап: «разделим фичи языка по грейдам».
21:22
Где-то… twitter.com/i/web/status/1…
# Ссылки
other
- https://youtu.be/nyFHR0dDZo0
- https://youtu.be/AdNJ3fydeao
- https://youtu.be/xPPCzryZK44
- https://youtu.be/EjL-5EuQeCU
- https://refactoring.guru/ru/design-patterns/catalog
- https://medium.com/front-end-in-regions-grodno/%D0%B0%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0-%D1%84%D1%80%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D0%B4%D0%B0-%D0%B1%D0%BE%D0%BB%D1%8C%D1%88%D0%BE%D0%B9-%D0%BA%D1%80%D1%83%D0%B3-46bce503d995
- https://blog.webf.zone/contemporary-front-end-architectures-fb5b500b0231
- https://www.amazon.com/Exercises-Programming-Style-Cristina-Videira/dp/0367350203/
- https://learn.javascript.ru/searching-elements-dom
- https://adventofcode.com/
- https://www.codingame.com/