Материалы составлены командой энтузиастов при изучении программирования на hexlet. Начало 2021 год
Материалы разбиты по темам, но не отсортированы, добавлены в хронологическом порядке
- Template gulp 2023
- Template webpack-5 2022
- Установка Docker на MacOS
- Хекслет: кодинг в прямом эфире. Пишем cli-утилиту с нуля
- Webpack - Полный курс за 3 часа [2020] Минин Вл.
- Окулов Антон Вебпак для начинающих
- Настройка Webpack 5 для начинающих. Описание принципа работы webpack. Html, css, scss, pug, jQuery
- Лучшее видео от разработчика JetBrains
- Webpack 5 CSS Walkthrough: Sass, PostCSS and more!
- как разделить конфиги
- Запросы к серверу с библиотекой Axios
- Стас Курилов — Глубокое погружение в webpack
- Webpack 5 CSS Walkthrough: Sass, PostCSS and more!
- Docker для фронта — как с ним работать
- Лучшие туториалы по установке Docker и Docker compose
- Локальный сервер базы данных из json
- Модульность стилей в вебпак
- Справочник команд гита
- Основы работы с Git, GitHub и GitHub Actions
- Краткий и понятный док по гиту
- Для оформления страницы на github-е
- Описание GIT на котах 1
- Описание GIT на котах 2
- Top 30 Git Commands You Should Know To Master Git CLI на англ.
- How To Create a Github Profile ReadMe на англ.
- How To Use Github's New Personal README and Wakatime на англ.
- Update a pinned gist to contain WakaTime stats на англ.
- GitHub - gelstudios/gitfiti: abusing github commit history for the lulz на англ.
- Рисуем коммитами на Гитхабе
- Monorepo Explained
- Правила формирования имени commits
- 5 коротких видео о теории вероятности, сочетаниях, и вариантах может быть полезно для алгоритмических задач
- Формулы комбинаторики Элементы комбинаторики, формулы для числа перестановок, размещений, сочетаний.
- КОМБИНАТОРИКА для ЧАЙНИКОВ | ОЛИМПИАДНАЯ МАТЕМАТИКА
- Пример перенос формулы Аккермана в код
- Треугольник Паскаля 1. Построение «сверху вниз»
- #26. Треугольник Паскаля как пример работы вложенных циклов | Python для начинающих
- Комбинаторика, число сочетаний
- Именование.pdf
- Анимация стилей при помощи requestAnimationFrame (видео 21) | Продвинутый курс JS
- Курс Harvard | Деревья. Основы программирования, на русском
- Курс Harvard CS50 - Лекция: Бинарное дерево, на англ
- Курс Harvard CS50 - Лекция: Хеш-таблицы, деревья и префиксные деревья
- Курс Harvard Стек - очередь - куча - хэш таблица - префиксные деревья - бинарное дерево, на русском
- Основы javascript 15 - Объект window и BOM (объектная модель браузера)
- Переводы 3 из 10 статей курса Дэна Абрамова Just JavaScript
- Переводы 3 из 10 статей курса Дэна Абрамова Just JavaScript
- Переводы 3 из 10 статей курса Дэна Абрамова Just JavaScript
- Основы javascript 15 - Объект window и BOM (объектная модель браузера)
- Объемная статья по архитектуре фронтенда
- Объяснение понятия “состояние” в JavaScript на примере приготовления простого блюда
- Создание связного списка с помощью JavaScript.
- Правильно ли ты уложил все в своей голове?) Небольшой гайд для начинающих: Хочу стать frontend разработчиком: базовые знания и план обучения
- ООП на простых примерах. Объектно-ориентированное программирование
- Знакомство с ООП на примере JavaScript
- Охота на мифический MVC. Обзор, возвращение к первоисточникам и про то, как анализировать и выводить шаблоны самому ч1
- Охота на мифический MVC. Обзор, возвращение к первоисточникам и про то, как анализировать и выводить шаблоны самому ч2
- Разбираемся с асинхронностью в JavaScript
- Разбираемся с промисами в JavaScript
- Разбор Promise и создание собственной имплементации
- Промисы в JS
- Асинхронность в JavaScript. Таймеры, промисы, async/await
- Рефакторинг и Паттерны проектирования Рефакторинг — это контролируемый процесс улучшения вашего кода, без написания новой функциональности. Паттерны проектирования описывают типичные способы решения часто встречающихся проблем при проектировании программ.
- Журнал «Код» программирование без снобизмаю Зачем нужен jQuery
- Хуки, формик
- про реакт хуки от лапочки Дэна
- Запросы к серверу с библиотекой Axios
- Redux и React. Все о Redux. Понятная теория для всех. React + redux
- Очень простое объяснение redux и middleware: Редакс в реальной жизни
- Redux - что это такое и зачем нужна библиотека JavaScript с простым API
- Разрабатываем чат на React с использованием Socket.IO
- Довольно интересно разбирает тонкости webpack + react | Д.Лаврик
- Открываем все секреты React Context API
- Eslint и код-стайл для React-приложения
- Новые хуки useTransition и useDeferredValue в React 18
- Style Guide | Redux | англ.яз
- Secure Your React and Redux App with JWT Authentication | Авторизация JWT в редакс | англ.яз
- Controlled and uncontrolled form inputs in React don't have to be complicated - Gosha Arinich | Статья про формы в реакте | англ.яз
- Jotai, primitive and flexible state management for React | Крутая библиотека для стейта и кейсы с примерами работы | англ.яз
- React Icons
- Настройка ESLint для реакта
- Как организовать структуру папок в реакт проекте
- Встроенная типизация у реакта
- Проблема перерендера
- Бета учебник по реакту от разрабов
- Тестирование JavaScript от А до Я (Jest, React Testing Library, e2e, screenshot)
- Jest. Unit Тестирование в JavaScript
- На 100% правильный способ делать контрольные точки в CSS
- Для тех кто хочет верстку чуть лучше понять
- Для тех кто хочет верстку чуть лучше понять
- Для тех кто хочет верстку чуть лучше понять
- Для тех кто хочет верстку чуть лучше понять
- Для тех кто хочет верстку чуть лучше понять
- Верстка сайта с нуля в Figma
- Модульность стилей в вебпак
- Сравнение производительности CSS и CSS-in-JS в реальном мире. Обзор подходов css-in-js + бонус холивар в комментах
- Ресурс для создания спиннера и не только
- Лучшие книги для начинающих программистов по версии наставников Хекслета
- Как правильно читать технические книги
- А.В. Столяров “Азы Программирования”
- Луис Атенсио "Функциональное программирование на JavaScript"
- Адитья Бхаргава «Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих»
- Тестирование книга бесплатная по тестированию, можно пробежать глазами за час, расширить "кругозор"
- Петцольд Чарльз Код
- Unix/Linux Руководство системного администратора
- Продуманная оптимизация Наконец появилась толковая бесплатная книга о серверной оптимизации на русском. Написано толково и с юмором. Рекомендую!
- Новая бесплатная книга от Эдди Османи по шаблонам проектирования
- Барбара Оакли. Думай как математик. Как решать любые задачи быстрее и эффективнее
- Выразительный JavaScript. Перевод книги Marijn Haverbeke "Eloquent JavaScript"
- Ридван Привет! Хочу внести свои 5 коп. В общем книга "Грокаем алгоритмы". Классная книга, только язык python режет глаза. Я порыл по интернету и нашёл примеры на самом неадекватном родном JS. Добавил их в конец книги, включил в содержание, чтобы на планшете было удобно перепрыгивать. Сильно не пинайте!
- Вы пока еще не знаете JS Симонс
- SICP на JS (English only)
- Шпаргалка по JS
- Head First Паттерны проектирования
- Документация для разработчиков на человеческом языке
- Кладезь годноты
- Vlad's blog 5 things you can do to improve as a developer If you found value in this thread you will most likely enjoy my tweets too so make sure you follow me on Twitter for more information about web development and how to improve as a developer. All developers want to get better But doing this can be ha... (35 КБ)
- Twitter Followers & Dollars Simplified менеджмент, на английском
- Еженедельные рассылки с новинками JS
- Еженедельные рассылки с новинками NodeJS
- Еженедельные рассылки с новинками React
- ссылки на репл с касл
- Обзор книги Стива Макконнелла "Совершенный код" (ITVDN)
- Ресурс,созданный для студентов Хельсинкского университета
- Основные паттерны задач в литкод
- База для программиста. Материалы, которые научат и помогут программировать. Книги и лекции, видеоуроки и советы, тесты знаний и обсуждение горячих тем.
- Курс для новичков в программировании. Толковый программистНаткнулся на полезную для начинающих разработчиков рассылку. Конкретно и применимо В одном из писем рекомендует Хекслет)
- Полный курс по JavaScript
- JS для детей
- React JS фундаментальный курс от А до Я
- Курс по структурам данных для JS
- Udemy | Фундаментальный JavaScript. С практикой и проектами
- Udemy | Node.js - с нуля, основы и построение архитектуры приложений
- Docker: Основы
- Курс Дэна Абрамова Just JavaScript
- Школа разработки интерфейсов 2021
- Запись “Карьерная прожарка”
- Карьерный трек на Хекслете
- Вебинар "Негативные паттерны мышления, которые влияют на поиск работы и карьеру" от 31.03.2021, 18:
- Ранняя специализация == преждевременная оптимизация Почему никогда не поздно учиться и менять сферу деятельности? Дэвид Эпштейн предпринял попытку доказать общественности, что культ ранней специализации порочен, более того, не способствует революционным открытиям и прогрессу цивилизации. А это значит, что стереотипное восприятие, критика и высмеивание людей с широким спектром интересов, пробующих себя в разных сферах, начинающих что-то новое в любом возрасте не имеют никаких оснований.
- Как стать фронтенд-разработчиком: детальный роадмап для начинающих Проверьте себя, что уже знает или хотя бы слышали
- Глеб Михеев | Как войти в айти, расти и развиваться?
- Фронтенд для новичка. Куда идти и что делать?
- Портфолио начинающего разработчика
- Coderslang: Стань Программистом | Собеседование JavaScript
- Плейлист с собеседованиями
- Плейлист с собеседованиями
- Плейлист с собеседованиями
- Плейлист с собеседованиями
- Плейлист с собеседованиями
- Руководство по оформлению профиля в LinkedIn: примеры и лайфхаки — Карьера на vc.ru
- Илья Якямсев "Эффективность не работает", конференция FrontDays 2018. Чувак словил жесткую депрессию и рассказывает, что в айтишке это неизбежно, но жить с этим можно. Ну и рассказывает собственно как с этим жить. Очень смешной, но и очень полезный доклад!
- Вы и ваша работа *
- Список требований к junior js разработчику EPAM
- Скриншот с прокруткой. Как сделать длинный снимок экрана Windows? Скриншот в браузере.
- Программы, стажировки, новое медиа: live с Кириллом Мокевниным , 1: 08: 40 про окончание курса
- Markdown блокнот, очень удобный, кросс платформенный
- Блокнот стоит 15$ но того стоит
- Алгоритм решения задач
- Илья Якямсев "Эффективность не работает", конференция FrontDays 2018
- Как установить Midnight Commander (mc) в Ubuntu 18.04 Bionic Beaver
- 11 потрясающих инструментов для разработки внешнего интерфейса, которые вы должны использовать в 2022 году
- Для тех кто мало спит - посмотрите, полезно
- Подборка игр и тренажёров для начинающих разработчиков интерфейсов — Академия Яндекса
- StandUp Москвич (полный концерт) 18+ Стендап - Илья Якямсев
- ПРОДУКТИВНЫЙ БРАУЗЕР. Лучшие расширения для Chrome
- Идеи для приложений на реакте с использованием редакса из доки по редаксу | англ.яз
- Идеи для проектов
- How to get the most out of Frontend Mentor
- СИКП на JS (на английском)
- Общий список бесплатных API для использования в программном обеспечении и веб-разработке.
- Проект 3, шаг 2, примеры. Yup
- Проект 3, шаг 2, примеры. On-change
- Проект 3, шаг 3, i18next - организация текстов, на испанском языке, но все оочень наглядно
- Проект 3, шаг 3, Интернационализация приложения в React (и не только)
- Все вебинары
- Олег Афанасьев
- 26.08.21 | JS Алгоритмы и структуры данных. Иван Гагаринов
- 01.09.21 | JS Функциональное программирование. Динислам Абдулсаламов
- 02.09.21 | JS Решение задач с рекурсией, общий алгоритм. Иван Гагаринов
- 13.10.21 | Стрим с Глебом
- 20.10.21 | JS-ассинхрон. Масскодинг с Динисламом Абдулсаламов
- 25.10.21 | JS-асинхрон. Проектирование функций, разбор частых ошибок в первом проекте. Иван Гагаринов
- 29.10.21 | Запись лайва с Глебом Андреевым
- 03.11.21 | Разбор статических методов Promise. Олег Афанасьев
- 03.11.21 | Запись встречи Q&A по второму модулю. Динислам Абдулсаламов
- 04.11.21 | Эффективная отладка кода. Глеб Андреев
- 11.11.21 | Абстракция с примерами. Иван Гагаринов
- 12.11.21 | Типовые задачи на собеседованиях. Олег Афанасьев
- 27.11.21 | Алгоритмы поиска (бинарный поиск, поиск в ширину, поиск в глубину). Олег Афанасьев
- 02.12.21 | Полиморфизм + немного про ООП и контекст (this). Иван Гагаринов
- 09.12.21 | Q&A по второму модулю. Глеб Андреев
- 22.12.21 | С чего начать решая задачу. Иван Гагаринов
- 23.09.21 | Написание тестов с Иваном Гагариновым
- 23.12.21 | Промисы: как с ними работать. Иван Гагаринов
- 26.12.21 | Авторизация на основе утверждений/предмета. Олег Афанасьев + Олег поделился ссылкой на репл с касл
- 30.12.21 | Сложность алгоритмов и Big O Notation. Олег Афанасьев
- 29.12.21 | Решение алгоритмических задачек. Роман Куракин
- 19.01.22 | CI И github actions, Роман Куракин
- 26.01.22 | Рекурсия. Иван Гагаринов
-
Правила рекурсии.
Ivan Gagarinov:hexlet. Сложности с рекурсией возникают, когда вы начинаете записывать рекурсивные процессы. Даже в случае списка или алгоритма мытья посуды написать их с нуля оказывается гораздо сложнее, чем просто осознать факт рекурсивности. Секрет написания рекурсивных функций в том, чтобы не думать о рекурсии! Если слишком много думать о рекурсии, то заболит голова. Писать рекурсивные функции нужно, руководствуясь следующими простыми правилами: 1. определите конечную цель (или цели) 2. определите, что происходит, когда цель достигнута 3. перечислите все имеющиеся возможности 4. определите, какие действия следует повторять 5. убедитесь, что каждая из возможностей приближает к цели Правило 1: определите конечную цель (или цели) Обычно рекурсивные процессы завершаются. Как выглядит этот конец? В случае списков конец - это пустой список, в случае мытья посуды - это пустая раковина. После того как вы распознаете рекурсивность процесса, первым шагом к его реализации в виде рекурсивной функции будет выяснение, чем же вы должны закончить. Иногда бывает, что цель не одна. Телемаркетологу для завершения работы бывает необходимо обзвонить 100 человек или же сделать 5 продаж. В этом случае цель - сдеалть 100 звонков или совершить 5 продаж. Правило 2: определите, что происходит, когда цель достигнута. Для каждой установленной в правиле 1 цели необходимо определить, каким будет результат. В случае мытья посуды результатом будет то, что вы помоете посуду. Функции должны вернуть значение, значит, нужно определить, какое значение должно возвращаться в конечном итоге. Типичная проблема возникает, когда программисты начинают думать о результате как о конце длинного рекурсивного процесса. Обычно в этом нет необходимости, и это слишком сложно. Зачастую ответ очевиден, если задать вопрос: "Что произойдет, если я вызову функцию на итоговом значении?". Например, итоговое состояние последовательности чисел Фиббоначчи - это 1, ведь по определению dib 1 = 1. В более простом примере нахождения количества книг в вашем шкафу путём подсчёта книг на каждой полке конечное состояние - это когда больше не остаётся полок. Количество книг, если полки закончились - 0. Правило 3: перечислите все имеющиеся возможности Если вы пока не в конечном состоянии, то чем заняться? Звучит так, будто у вас тут много работы, но, как правило, для прихода в конечное состояние имеется только одна или две возможности. Если у вас нет пустого списка, то у вас есть список, в котором что-то есть. Если раковина не пуста, то у вас есть раковина с посудой. В случае теле маркетолога, есл вы еще не обзвонили 100 человек или не сделали 5 продаж, то у вас есть две возможности - вы можете позвонить и что-то продать либо позвонить и и ничего не продать. Правило 4: определите, какие действия следует повторять Это правило почти идентично правилу 2, только здесь вам нужно отыскать повторяемые действия. не накручивайте и не пробуйте развернуть рекурсию. В случае списка вы можете взять элемент и взглянуть на хвост. При мытье посуды вы моете тарелку, ставите ее сушиться и опять смотрите в раковину. Телемаркетолог либо делает звонок, оформляет продажу и повторяет, либо фиксирует, что звонок был сделан без продажи, после чего снова повторяет. Правило 5: убедитесь, что каждая из возможностей приближает к цели Это важное правило! Для каждого из действий, найденных в правиле 4, вам необходимо спросить себя, "приближает ли это действие меня к цели?". Если вы будете все время брать хвост от списка, то получите пустой список. Если вы продолжите убирать посуду из раковины, то получите пустую раковину. Оформление продаж или фиксация звонков в итоге приведет какой-то из счетчиков к цели. Но предположим, что вы хотите бросать монетку, пока не выпадет орел. Цель в том, чтобы получить орла. Как только вы его получите, вы остановитесь. Одна из возможностей - выпадение решки, если выпала решка, то вы бросаете монетку снова. К сожалению, очередной бросок не гарантирует, что вы когда-либо получите орла! По статистике вы должны прийти к завершению, так что на практике все должно быть в порядке, но это функция, запускать которую потенциально опасно(представьте, что вместо монетки вы используете что-то с еще меньшим шансом на успех). - Мобильное приложение по первому проекту Brain Games. Ч.1
- 27.01.22 | Деревья и их обход; Динислам Абдулсаламов
- 03.02.22 | Q&A по второму модулю. Роман Куракин
- 17.02.22 | Настройка окружения. Иван Гагринов
- 03.03.22 | Принцип TDD. Глеб Андреев
- 03.03.22 | Typescript - основы. Иван Гагаринов
- 10.03.22 | Вебинар “Unit тесты“. Роман Куракин
- 07.04.22 | Вебинар «Как устроен npm-пакет? Тонкости работы с npm». Айдар Шайхутдинов
- 13.04.22 | Вебинар “Как устроен Redux и как с ним работать“. Глеб Андреев
- 20.04.22 | Вебинар «Как устроен JS-движок на примере V8?». Айдар Шайхутдинов
- 27.04.22 | Вебинар "Инструменты тестирования фронтенд-приложений". Иван Гагаринов