Сергей Кригер

Сергей Кригер

Темы
Неделя
Mar 16, 2020 → Mar 20, 2020

Архив недели @_sergeikriger

Понедельник


Всем привет, Я Сергей (@_sergeikriger) - фронтенд разработчик из Германии и большой фанат доступного веба. По приглашению @DmitryMakhnev эту неделю (с 16 по 22 марта) я буду вести jsunderhood. Поехали!

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

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

Писать буду не очень много, потому что, во-первых, "кр. сестр. тлнт", а во-вторых, все давно сказано, чего повторяться. Будет несколько тем по дням в отдельных тредах. Вопросы и комментарии приветствуются.

Вот список тем на неделю: - Доступность - Около фронтенда - Выступление на конференциях - Soft skills (мой приоритет) - Работа в Германии - Стать разработчиком после 30 и выжить - Digital Minimalism и почему это важно Let's go!

Сегодня говорим про доступность. На этом канале какое-то время назад @ta_fokina очень здорово разобрала эту тему. Поэтому повторяться не буду, от себя добавлю некоторые вещи, которые считаю важными.
notion image

Доступность - это не фича, которую можно либо иметь, либо нет. Доступность - это естественное состояние сайта, когда им могут пользоваться абсолютно все.

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

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

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

Доступность - это часть профессии как JavaScript, React, flexbox, grid и еще тысяча вещей. Доступность надо учить, а выучив, пользоваться. По-моему, очевидно...

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

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

Youtube канал с миллионными просмотрами от слепого блоггера Molly Burke. Девица просто жжет! . . . youtube.com/user/MollyBurk…

Тифлострим на канале tiflo.info - передача про незрячих и не только. Посмотреть на мир со стороны не зрячих, узнать их проблемы с интернетом, найти решения проблем - все там. Большой респект @Olegshevkun. . . . tiflo.info/category/strea…

Истории незрячих людей на канале @aliya_nurullina "Типичный незрячий". Много историй на разные темы, включая интернет. . . . vk.com/tipicalblind

Вместо заучивания известных паттернов доступных интерфейсов, попробуйте поставить себя на место людей с ограничениями. Пройдитесь по сайту без мышки, выключите экран и включите скринридер, попробуйте режим свитч кнопки. Гораздо важнее понять ЗАЧЕМ, нежели КАК.

Есть мнение, что доступность нужно уметь "продать" бизнесу, чтобы получить на это бюджет. Нет! Доступность это часть профессии и вам не нужно разрешение на верстку доступного сайта, также как на верстку сайта адаптивного, кроссбраузерного или быстрого.

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

На первых порах доступность занимает какое-то время. Научитесь верстать доступные интерфейсы быстро и у бизнеса не будет вопросов, мол "зачем тратить время на ерунду".

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

🔥Тред (Я Сергей)
Отвечать буду на только на конструктивные комменты, весь треш будет вежливо игнорироваться. Если хотите что-то спросить лично - @_sergeikriger в личку.

🔥Тред (Я Сергей)
@jsunderhood Общался со слабовидящим человек достаточно долгое время, пока он не переехал в другую страну. В большей степени благодаря ему понял, насколько неудобными бывают интерфейсы в целом. А благодаря @pepelsbey понял, что делать интерфейсы для людей не сложно. Их просто не нужно ломать.

Вторник


Привет, сегодня говорим на темы около фронтенда. Знать JS/CSS/HTML это must have для фронтендера, но чтобы комфортно существовать в компании, нужно также знать и окружение. В этом треде о том, какие знания вокруг фронтенда нужно иметь и насколько стоит во все это углубляться.
notion image

Опережу тех, кто уже подумал "ну началооооось..." и определю диапазон сегодняшней темы - это для тех, кто только-только пришел в разработку, немного освоился в JS/CSS/HTML и потихоньку начал смотреть вокруг. Если вы матерый волчара, скорее всего вы все это знаете.

"Ээээ, хардкор давай, мясо с кровью, чтобы капало!.." Сори, сегодня не про это. На сегодня тут 7,388 человек и, поверьте, тех для кого AST, VDOM и Interface Segregation это слова из другого мира, достаточно. Кому интересно - вперед, кому нет - будет еще $mol на вашей улице.

Если в компании нет привычки к менторству джунов, то часто человек пришел, поднаторел чуток в своей песочнице и не знает, куда идти дальше. Для компании все равно (работает же), а для карьеры беда.

Чтобы быть полезным для компании (особенно для маленькой), надо быть в меру универсалом, то есть уметь делать чуть больше, чем фронтенд. Не обязательно быть экспертом во всем, но понимать надо.

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

Фронтенд - это индустрия со многими специализациями внутри. ЗНАТЬ ВСЕ И СРАЗУ не получится, лучше сконцентрироваться на том, что интересно и быть В КУРСЕ того, что происходит рядом.

JavaScript гуру, способный поправить интерфейс и задеплоить проект. Верстальщик железобетонных интерфейсов со знанием React. Надежный фронтенд разработчик, который может написать простой mock server на Nodejs. Ну понятно о чем речь...

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

Фронтендер должен... ...знать Linux на уровне навигации, работы с файлами, поиска с find и grep, а также основную структуру файлов в OS вроде .bashrc, /etc/hosts и т.д.

Фронтендер должен... ...уметь доставать данные из наиболее ходовых баз. Пускай даже примитивными запросами типа SELECT * FROM table WHERE date BETWEEN [yesterday] AND [today]; Иначе придется каждый раз кого-то просить.

Фронтендер таки должен... ...знать Vim, ну хоть самые основы. Открыть/закрыть файл, передвигаться по документу, скопировать текст без мышки - хотя бы это. Всегда казалось, что это лишнее, пока не пришлось дебажить GUI у робота на Linux сервере.

Фронтендер не должен... ...падать в обморок от слов кластер и kubernetes и хотя бы смутно понимать, что это не название каких-то азиатских блюд.

Фронтендер не обязан… …писать на go или haskell, но должен понимать в чем разница между ними и основные области их применения.

Фронтендер должен... ...знать bash на уровне сэкономить время на печатание комманд. Если сможете прокинуть параметры, еще лучше.

Фронтендер должен... ...уметь быстро поднять проект в любом окружении. Docker в помощь.

Фронтендер должен... ...уверенно понимать процесс деплоя - куда что уходит, где хостится, как доходит до конечного пользователя.

Фронтендер должен... ...уметь проследить HTTP запрос через все сервисы и знать какие данные откуда берутся.

Фронтендер должен... ...уметь нарисовать схему системы (или ее части), в которой он работает. Без деталей, но чтобы понимать общую архитектуру. Это помогает говорить с командой на одном языке.

Фронтендер просто обязан… …читать на английском. Смогли разобраться с Redux и GraphQL, умеете обращаться с webpack, а английский выучить не можете - ну не верю!

Фронтендер должен… …постоянно инвестировать в себя. Опыт показывает, что сотни потраченные на книги, курсы или правильный софт довольно быстро возвращаются тысячами.

Фронтендер должен… …уметь настроить (ну хоть примитивно) CI/CD на проекте. Свой же код будет легче не за факапить, если есть правильный пайплайн.

Парадоксально, но фронтендер не обязан… ...вести твиттер и уж точно наличие твиттера это не показатель успешности или квалифицированности. Нравится узнавать новости через RSS, email подписку или еще как-то - пожалуйста, почему нет.

Фронтендер не обязан… ...иметь собственные opensource проекты или контрибьютить в другие. Никто не спорит, что это полезно, но если компания не берет хорошего разработчика из-за плохой статистики на гитхабе, может ну ее такую компанию?

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

🔥Тред (Я Сергей)
Кажется прошлая неделя всех не хило взбударажила - люди все еще спорят в комментах. @jin_nin вы просто $molодец 👍💪

Среда


Привет! 3-й день на карантине и сегодня пару слов про конференции и митапы, как важную составляющую профессионального развития разработчика.
notion image

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

Я не считаю себя уж очень хорошим докладчиком. В моем случае талант (которого нет) относительно неплохо компенсируется содержимым докладов и тщательной подготовкой. Чего, к слову, достаточно для неплохого (но не для отличного) доклада.

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

Как сказал мой коллега, который сам выступал на больших конференциях, если за 15 минут до выхода на сцену тебя потряхивает, это нормально. По личному опыту дрожь проходит минут через 5-6 (если еще живой).

Если идёте на многофункциональную конференцию типа @RITFestRussia, очень советую не ограничиваться только фронтендом. Загляните к соседям на девопс, project management или куда-то ещё - расширяет кругозор.

Из последних спикеров, которых я слышал, но до которых мне как до луны, это Денис Мишунов (@mishunov), Вадим Макишвили и Илья Климов (@xanf_ua). Не знаю, парни, как вы это делаете, но это просто огонь!

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

CDD - Conference Driven Development © Выступление это очень хороший стимул углубить знания и чему-то научиться. В процессе подготовки узнаешь столько нового. Никто же не хочет выглядеть идиотом на сцене.

Про Diversity на конференциях Очень хорошо понимаю тему, но, по-моему, тут налицо подмена понятий. Равный доступ разных людей НА ОДИНАКОВЫХ УСЛОВИЯХ часто путают с ОБЯЗАТЕЛЬНЫМ УЧАСТИЕМ спикеров из недостаточно представленных групп (underrepresented).

Я ЗА diversity и это ОЧЕНЬ ЗДОРОВО, что в программе конференций могут быть представлены совершенно разные спикеры из разных социальных групп. Штука в том, что помимо выхода на сцену, хорошо бы еще, чтобы и доклад был интересный (что не всегда так).

А что, если дать возможность подаваться АБСОЛЮТНО ВСЕМ и выбирать ЛУЧШИЕ ЗАЯВКИ по качеству тем и по профессионализму докладчиков? Понятно, что мнение не популярное, но от diversity по принуждению уж сильно разит совком: чтобы и врачи, и учителя, и обязательно кто-то из народа.

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

🔥Тред (Я Сергей)

Четверг


Привет! В очередной день "околофронтендной" недели говорим про soft skills. Тема уже довольно хорошо исследована, поэтому просто приведу список из 7 софт скилов наиболее актуальных лично для меня.
notion image

#1 Умение говорить "нет". Например, простое умение отказаться от задачи, если она вне вашей компетенции. - Слушай, сервак полетел, не посмотришь? - Нет. Исключением, наверно, может быть челлендж или то, что нужно для роста.

#2 Умение оценивать работу. Знать свои возможности уметь точно оценить время на задачу и уровень сложности. Если ваша оценка ниже, чем у коллег, значит ниже, все работают по разному. Лучше так, чем потом в стрессе провалить дэдлайн.

#3 Умение слушать и слышать. Не продавливать свою линию, а услышать оппонента и аргументированно либо согласиться, либо нет. По моему опыту процентов 40-50 проблем в коммуникации из-за неумения слушать.

#4 Умение находить компромисс. Особенно помогает, когда вводишь начинающего разработчика в проект или при парном программировании. Редко когда задача решается только одним способом, иногда полезно и уступить.

#5 Умение делать работу комфортной. Если вместо недели на задачу нужно полторы (и они есть) - просите полторы. Глупо тратить полжизни на работу, которая не приносит удовольствие, а только стресс. Результат, конечно, важен, но и процесс тоже.

#6 Умение конструктивно спорить. Не упираться лбом и повторять одно и тоже, а найти правильные слова для конкретного человека. Считаете свой подход лучше, сумейте объяснить почему.

#7 Умение видеть проблему целиком. Не просто пилить свой модуль, а знать, что он делает для системы, в которой он находится, и какие задачи решает эта система. Бывает очень полезно проследить всю цепочку от бизнес требований до написания кода.

Как не смешно, но хорошая память тоже soft skill. Босс: С этого дня на общие собрания запрещено приносить телефоны. Через 2 недели Босс: Сделайте фотографию с  доски, я сотру. Я: У меня нет с собой телефона. Босс: Как так? (достает свой и фоткает) Постоянно с этим сталкиваюсь.

Несколько ссылок по теме. "Осознанное развитие и карьера" (очень интересно) . . . youtube.com/watch?v=47Ef2f…

"The state of soft skills" от @frontendweekend . . . youtube.com/watch?v=N69EeX…

"Soft Skills для интровертов" от @dark_mefody и @Neesoglasnaja . . . youtube.com/watch?v=UE9aGH…

🔥Тред (Я Сергей)

Пятница


Привет, Сегодня говорим про работу в Германии - что, как, стоит ли. Сразу скажу, что в России разработчиком не работал, сравнивать не с чем.
notion image

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

Есть мнение, что переезд заграницу это навсегда - уехал и с концами. А что если не "уехать", а "съездить", не "жить", а "пожить"? Мир глобальный, где хотите, там и живите. Вернетесь или нет - не важно, но опыт получите бесценный.

Если уже есть и профессия, и опыт, то уехать работать в Германию не так сложно. Есть программа Blue Card, по которой можно относительно быстро получить визу. Если подходите по всем критериям (о них дальше), то весь процесс может занять от нескольких недель, до пары месяцев.

Чтобы получить Blue Card, нужно 2 вещи: - высшее образование (желательно по профессии, но не обязательно) - контракт или гарантия контракта с немецкой компанией с зарплатой не меньше 43,056 евро в год (на 2020, меняется каждый год) В остальном все дело техники.

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

Make it in Germany Все, что надо официально знать про Blue Card со ссылками на источники. . . . make-it-in-germany.com/en/visa/kinds-…

Surfin Birds Блог об иммиграции в Германию от @igor_lkm и его супруги. Дизайн, конечно, идиотский, но контент на 5+. Их личный опыт со всеми деталями. . . . surfin-birds.ru

Работу можно искать в разных местах, вот мой список: xing.com linkedin.com de.indeed.com Мне больше везло с linkedin.

Как правило процесс устройства на работу в Германии состоит из нескольких шагов (мой опыт): - созвон с HR - интервью по профилю - техническое задание - разговор с командой - интервью с начальником - подписание контракта Дальше подробно про каждый шаг.

Созвон с HR Все стандартно - тех стэк, сильные стороны, языки, инструменты, дурацкие вопросы типа "вы занимаетесь фронтендом, а на Java пишете?" и пр. Думаю HR везде одинаковый. Этот барьер существует и его надо пройти.

Интервью по профилю Тут все интереснее. Как правило час разговоров на технические темы: рассказать про проекты, интересные задачи, которые решали, предпочтения и пр. HR уже нет, а есть кто-то из старших разработчиков или CTO. К этому шагу надо готовиться.

Техническое задание По результатам тех интервью присылают задачу с условиями вроде - написать на реакте поиск с Google Books API с автокомплитом - сверстать часы на SVG и JS - по шаблону сверстать сайт на любом стеке Тут надо выложиться, будут проверять. Им же с вами работать.

Разговор с командой Если прошли тест, могут пригласить в офис, поговорить с будущей командой, обсудить ваше решение теста за ланчем (ну или по скайпу). Будьте готовы объяснить что, почему и зачем. Кстати, на этом шаге вы тоже можете понять, что команда "не ваша" и отказаться.

Разговор с командой (продолжение) Был случай, когда после разговора с командой мне отказали, хотя тест сдал на отлично и в срок. Кажется, не понравился одному разработчику, с которым должен был работать в паре. Так и не понял почему.

Интервью с начальником Условия работы, контракт, планы на будущее и пр. Это и есть тот берег, на котором надо договариваться - не стесняйтесь спрашивать.

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

Зарплата Какую запросите, такую и дадут (в разумных пределах, конечно). Больше рыночной редко, если вы не гений, меньше - запросто. Поэтому сумму в голове надо держать еще до интервью.

Pay inequality is a big problem in tech, especially for underrepresented groups like women and minorities. The best way you can help is by sharing yours. I’ll go first. 🏫: B.A. - C.S. ⏳: 5.5 years 🏷: Staff/G06 🌎: NYC 💸: $205k base, $500k equity over 4 yrs #KnowYourWorth
Недавно был интересный тред по зарплатам. Не знаю что на людей нашло, но все вдруг начали постить кто сколько получает. . . . twitter.com/ZacSweers/stat…

В Германии не принято обсуждать зарплату с коллегами, а иногда это может быть и запрещено по контракту. Может запросто оказаться что ваш коллега получает много больше вас - просто запросил больше.

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

В Германии нет разделения на верстку и программирование. Там все фронтендеры и должны уметь и то, и это. Давно мечтаю найти компанию, в которой можно будет только верстать, но, видимо, не случится. Короче, завидую всем верстальщикам.

Недавно наткнулся на отличный канал Senior Software Vlogger про работу в Германии и не только. Там всего больше и подробнее. Рекомендую. . . . youtube.com/user/rojkovdima

На этом заканчиваю свою неделю на jsunderhood, спасибо всем, кто читал. Буду проверять комменты до воскресенья вечера. По всем вопросам после пишите в личку (@_sergeikriger). Всем пока!

🔥Тред (Я Сергей)

Ссылки