Как стать автором
Обновить
2
0
Dmitry Chernov @Blue-Brain

Пользователь

Отправить сообщение

Как мы учим языки. Часть 1: Гипотезы Стивена Крашена

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров21K

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

Читать далее
Всего голосов 17: ↑16 и ↓1+19
Комментарии25

Как мы учим языки. Часть 2. Почему вы не выучите язык в Дуалинго

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров85K

У Duolingo огромная база пользователей — по несколько десятков миллионов человек на каждый популярный язык. Естественно, они выбрали это приложение не просто так: у такого сервиса есть большое количество плюсов, а самое главное — «ощущение, что я учу язык». О том, что не так с приложениями для изучения языков и как мы осваиваем языки, мы поговорим в этой статье.

Читать далее
Всего голосов 64: ↑58 и ↓6+65
Комментарии175

Как мы учим языки. Часть 3: Эффективное освоение языка

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров13K

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

Читать далее
Всего голосов 5: ↑4 и ↓1+7
Комментарии9

VR-тур на A-Frame + React

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров2.8K

Всем привет! Меня зовут Егор Молчанов, я разработчик в команде CRM для менеджеров ипотечного кредитования в компании Домклик. Хочу поделиться своим опытом создания VR‑тура с помощью фреймворка A‑Frame и библиотеки React. Для этого написал свой небольшой pet‑проект, который мы сейчас разберём.

Читать далее
Всего голосов 19: ↑18 и ↓1+22
Комментарии2

Телеграм-боты на NodeJS

Уровень сложностиПростой
Время на прочтение29 мин
Количество просмотров55K

Кратко расписал об основных методах для работы с телеграм-ботами на NodeJS: текстовые сообщения, видео, фото и аудио-сообщения, контакты, геолокация, платежная система и проверка подписки на канал.

Читать
Всего голосов 15: ↑13 и ↓2+13
Комментарии4

Работа над ошибками. Правдивая история переезда на Sentry в масштабах большой продуктовой компании. Григорий Кошелев

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

Ошибки — это интересная штука, потому что даже в названии самого доклада есть двойное дно. Это работа над ошибками, которые мы допускаем в своем софте, в программах, сервисах. А также работа над ошибками – это создание pipeline, чтобы все это обработать, чтобы все в конце было хорошо.


Sentry — инструмент мониторинга исключений (exception), ошибок в ваших приложениях.



Работа над ошибками – это длинная история про то, как мы большой компанией переходили на Sentry. Этот переход у нас занял порядка двух лет. И маленький спойлер: этот переход еще не во всех местах завершен, но мы делаем работу над ошибками и вроде у нас все хорошо получается.

Читать дальше →
Всего голосов 15: ↑13 и ↓2+14
Комментарии0

Предвзятый и субъективный взгляд на резюме разработчика

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

Привет! Недавно мои коллеги из hh.ru провели вебинар, где разбирали резюме разработчика. Я решил поделиться своей точкой зрения на этот счет.


image


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

Читать дальше →
Всего голосов 31: ↑25 и ↓6+25
Комментарии30

Ведение Telegram-канала с помощью GitHub Actions

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


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


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


И вот, среди прочих родилась простая идея: "А почему бы не автоматизировать отслеживание новых выпусков ИТ-подкастов с помощью Telegram-бота и GitHub Actions? Чтобы просто подписаться на telegram-канал и получать актуальные выпуски подкастов по мере их выхода.


Конечно, можно скачать специализированные приложения, типа "Poket Casts", либо подписаться на RSS, но лично для меня использование Telegram-канала является самым удобным, простым и привычным.


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

Читать дальше →
Всего голосов 8: ↑7 и ↓1+10
Комментарии1

Компоненты высшего порядка в React

Время на прочтение12 мин
Количество просмотров40K
Недавно мы публиковали материал о функциях высшего порядка в JavaScript, направленный на тех, кто изучает JavaScript. Статья, перевод которой мы публикуем сегодня, предназначена для начинающих React-разработчиков. Она посвящена компонентам высшего порядка (Higher-Order Components, HOC).


Читать дальше →
Всего голосов 35: ↑32 и ↓3+29
Комментарии7

Чем функциональные компоненты React отличаются от компонентов, основанных на классах?

Время на прочтение13 мин
Количество просмотров107K
Чем функциональные компоненты React отличаются от компонентов, основанных на классах? Уже довольно давно традиционный ответ на этот вопрос звучит так: «Применение классов позволяет пользоваться большим количеством возможностей компонентов, например — состоянием». Теперь, с появлением хуков, этот ответ больше не отражает истинное положение дел.

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



Я, в любом случае, не рекомендую переписывать существующие компоненты с применением новых технологий если на то нет веских причин, и если вы не против оказаться в числе тех, кто раньше всех начал этими технологиями пользоваться. Хуки — это всё ещё новая технология (такая же, какой была библиотека React в 2014 году), и в руководства по React ещё не попали некоторые «передовые методики» их применения.
Читать дальше →
Всего голосов 37: ↑35 и ↓2+33
Комментарии3
Мы на Хабр Карьере провели исследование: узнали у российских айтишников, как за прошедшие несколько недель изменились их карьерные планы, кто сейчас активно ищет работу с релокацией, кто — собирается переучиваться. Собрали информацию про айти-компании: кто сокращает сотрудников, а кто продолжает нанимать; какие прогнозы дают специалисты про свое профессиональное будущее и про будущее своих компаний. Мы смотрим на это исследование, как на слепок российского ИТ-сектора — здесь и сейчас.
Читать далее
Всего голосов 25: ↑24 и ↓1+41
Комментарии60

ResizeObserver — новый мощный инструмент для работы с адаптивностью

Время на прочтение5 мин
Количество просмотров38K
Доброго времени суток, друзья!

«Отзывчивый» является одним из стандартов веб-разработки. Существует большое количество разрешений экрана, и это количество все время увеличивается. Мы стремимся поддерживать все возможные размеры экранов с сохранением дружелюбного пользовательского интерфейса. Отличным решением данной задачи являются медиа-запросы (media-queries). Но что насчет веб-компонентов? Современная веб-разработка основана на компонентах, и нам нужен способ делать их отзывчивыми. Сегодня я хочу рассказать о ResizeObserver API, позволяющим следить (наблюдать) за изменениями размеров конкретного элемента, а не всей области просмотра (viewport), как в случае с медиа-запросами.
Читать дальше →
Всего голосов 9: ↑8 и ↓1+7
Комментарии20

Понимание критического пути рендеринга

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

Браузеру предстоит пройти много шагов, прежде чем HTML-ответ от сервера будет преобразован в пиксели на экране. Последовательность этих шагов, необходимая для первого отображения страницы, называется «Критический путь рендеринга» (ориг. Critical Rendering Path).


Читать дальше →
Всего голосов 22: ↑21 и ↓1+20
Комментарии11

Разбор: как и зачем применять PureComponent в React

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

29 Июля вышел React 15.3, и первым пунктом в release-notes значилось добавление поддержки React.PureComponent, который заменяет своего предшественника pure-render-mixin. В этой статье обсудим, почему же этот компонент так важен и где его использовать.
Читать дальше →
Всего голосов 23: ↑23 и ↓0+23
Комментарии11

Чисто функциональные структуры данных

Время на прочтение7 мин
Количество просмотров41K
Признаюсь. Я не очень любил курс структур данных и алгоритмов в университете. Все эти стеки, очереди, кучи, деревья, графы (будь они не ладны) и прочие “остроумные” названия непонятных и сложных структур данных ни как не хотели закрепляться в моей голове. Как истинный “прагматик”, я уже на втором — третьем курсе свято верил в стандартную библиотеку классов и молился на дарованные нам (простым смертным) коллекции и контейнеры, бережно реализованные отцами и благородными донами CS. Казалось, все что можно было придумать — уже давно придумано и реализовано.

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

И сейчас, я хочу показать вам небольшую частицу этого мира. Через замочную скважину, мы на секунду заглянем в этот удивительный мир, чтобы рассмотреть одного из наиболее ярких его обитателей — функциональное красно-черное дерево (КЧД).
Читать дальше →
Всего голосов 73: ↑68 и ↓5+63
Комментарии21

Универсальный роутинг для React приложений

Время на прочтение5 мин
Количество просмотров15K
Если попытаться в двух словах описать, в чем заключается функция роутинга на фронтэнде веб-приложений, то можно придти к выводу, что каждый популярный фреймоворк совершенно по-разному представляет это себе. Даже, сравнивая версии одного и того же фреймоворка, можно придти к выводу, что функции и API роутинга наиболее подвержены изменениям (часто без обратной совместимости). Например 4-я версия роутинга в React была переработана настолько радикально, что некоторые популярные проекты на githab.com так и не перешли на эту версию.

За всем этим просматривается общая тенденция, которая, по моему мнению, заключается в том, что функционал роутинга в многих популярных фронтэнд фрейморках перегружен. В связи с этим, он становится жестко связанным с другими компонентами, которые могли быть выделены из роутинга (например с навигацией, историей, ссылками и т.п.). Поэтому, наверное, многим знакомо то чувство, когда использование роутинга становится неудобным, а его расширение просто невозможным. По сравнению с гибкими и расширяемыми компонентами, роутинг в популярных фронтэнд фрейморках выглядит на порядок менее удобным и совсем не расширяемым. Особенно это относится первым версиям (до 4-й) роутинга в React.

В этом сообщении я рассмотрю некоторые исторические моменты, которые привели к такому положению дел с роутингом, а также использование библиотеки universal-router, совместно с React.
Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Комментарии13

Лексическая область видимости функций в JavaScript

Время на прочтение5 мин
Количество просмотров39K
Почитав недавние посты для новичков JavaScript, решил написать небольшой топик про один интересный вопрос, которого ни один из авторов пока не касался, а именно, вопрос про область видимости функций в JavaScript.
Читать дальше →
Всего голосов 65: ↑54 и ↓11+43
Комментарии49

Собеседование для фронтенд-разработчика на JavaScript: самые лучшие вопросы

Время на прочтение9 мин
Количество просмотров212K
Недавно мне довелось побывать на встрече участников проекта FreeCodeCamp в Сан-Франциско. Если кто не знает, Free Code Camp — это сообщество, нацеленное на изучение JavaScript и веб-программирования. Там один человек, который готовился к собеседованиям на позицию фронтенд-разработчика, попросил меня подсказать, какие вопросы по JavaScript стоит проработать. Я немного погуглил, но не смог найти подходящего списка вопросов, на который я бы мог дать ссылку и сказать: «Разбери эти вопросы и работа твоя». Некоторые списки были близки к тому, что мне хотелось найти, некоторые выглядели очень уж простыми, но все они были либо неполными, либо содержали вопросы, которые вряд ли кто станет задавать на реальном собеседовании.

image
Читать дальше →
Всего голосов 58: ↑41 и ↓17+24
Комментарии118

CORS, CSP, HTTPS, HSTS: о технологиях веб-безопасности

Время на прочтение8 мин
Количество просмотров39K
Автор материала, перевод которого мы публикуем сегодня, говорит, что существует множество причин изучать веб-безопасность. Например, вопросами безопасности интересуются пользователи веб-сайтов, которых беспокоит возможность кражи их персональных данных. Безопасность заботит веб-разработчиков, которые стремятся к повышению уровня защиты создаваемых ими проектов. То же самое можно сказать и о начинающих программистах, которые ищут работу и готовятся к собеседованиям. Цель этой статьи заключается в том, чтобы понятным языком рассказать о некоторых важных технологиях веб-безопасности. Прежде чем приступить к разговору об этих технологиях, при упоминании которых обычно оперируют сокращениями вроде CORS, CSP и HSTS, рассмотрим пару базовых концепций безопасности.

image
Читать дальше →
Всего голосов 22: ↑21 и ↓1+20
Комментарии2

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Работает в
Дата рождения
Зарегистрирован
Активность