Оттачивай навыки алгоритмики и кодирования.
В этом репозитории собраны задачи, решение которых поможет закрепить навыки программирования и подготовиться к техническим собеседованиям.
Вместе с задачами поставляется система для автоматической проверки решений написанных на JavaScript.
- Убедись, что git и node v10.13.0+ установлены на твоем компьютере
- Склонируй репозиторий
- В папке с проектом из терминала выполни
npm ci
Теперь можно приступать к решению задач!
Задачи находятся в папке /problems. Каждая задача оформлена в виде отдельного .js
файла.
Каждый файл имеет следующую структуру:
- Комментарий с
- описанием условия задачи
- примером вызова функции, передаваемых аргументов и ожидаемым результатом
- JSDoc для параметров и возвращаемого функцией значения
- Заглушка тела функции. Пиши свое решение здесь
- Инструкция
module.exports = …
делает функцию доступной для автоматического тестирования
Система автоматичекой проверки решений может быть запущена в одном из трех режимов.
Рекомендуется использовать автоматическую проверку в связке с pre-commit. А каждую решенную задачу оформлять в виде коммита, чтобы не запускать лишние тесты.
Запускается командой
npm run test
Эта команда проверит правильность решений для всех файлов в которые были внесены изменения и git статус которых not staged for commit
.
Запускается командой
npm run test:watch
Эта проверка работает по тому же принципу, что и ручная, только тесты запускаются автоматически на каждое сохранение файла.
Каждую решенную задачу рекомендуется оформлять в отдельный коммит. Pre-commit проверка автоматически запускается на выполнение команды git commit
. Тесты выполняются для всех файлов добавленных в содержание коммита.
При решении задач в IDE Visual Studio Code подключение отладчика происходит в пару кликов:
- В меню среды разработки выбрать
View -> Debug
. Слева отобразится панель отладчика - Выбрать
Debug js-problems
как конфигурацию отладчика (видеоверсия) - Через меню запустить отладчик
Debug -> Start Debugging
. git статус отлаживаемого файла должен бытьnot staged for commit
.
Данный ресурс создавался, преимущественно, для тех, кто испытывает проблемы с английским языком. Невходящие в их число могут попробовать свои силы на следующих сайтах:
Как альтернативный русскоязычный сборник задач можно рассматривать сайт "Школа программиста", но без системы для автоматической проверки JavaScript решений.
Любой желающий может помочь проекту, например:
- добавлением новых задач в сборник
- расширением тест-кейсов
Для этого оформляйте свои предложения в виде задач.
Проект разрабатывается под лицензией MIT.