Хотите расти как разработчик и найти крутую работу? Не протирайте штаны — займитесь Open Source проектами. Так легче всего попасть в лучшие команды разработчиков и положить себе в резюме настоящий проект, вместо нелепых «примеров кода». Но найти подходящий проект для участия сложно. Начинаются лень и отговорки, а за ними — отсутствие профессионального роста, критики по-настоящему крутых программистов, уныние и застой.
На Cult of Martians мы собираем интересные задачи для современных веб-программистов. Можно выбрать подходящую по сложности, продолжительности и специализации. Задачи не выдуманы «из воздуха» — каждая решает насущную проблему, и решить ее можно через создание нового Open Source проекта или улучшение существующего. Решайте задачи, прокачивайтесь, присылайте решение на оценку. Лучших могут пригласить к себе на работу компании, программистам которых понравится ваше решен ие.
Для новичков, задача на пару дней
PostCSS был переведен c line
/column
на offset
.
Теперь надо такую же задачу сделать для [SugarSS], парсера альтернативного синтаксиса для PostCSS. Этот синтаксис строится на отступах — как Sass в SCSS. Поэтому он имеет другой парсер.
Польза: строка в резюме с PR в популярный проект.
Для новичков, задача на пару дней
KeyUX — JS-библиотека, которая добавляет хороший UX работы с клавиатуры на сайт.
Один из паттерном — группы фокуса, когда :focus
внутри какой-то группы (например, вкладок или меню) перемещается стрелками, а не Tab.
KeyUX добавялет такое поведение смотря на свойство role
, но эти роли ограничены и не подходят для всех сценариев. В веб-сообществе есть идея добавить свойство focusgroup
в спецификацию HTML для таких вещей.
Задача — добавить ограниченную поддержку focusgroup
в дополнение к role
.
Польза: строка в резюме, которая показывает знание технологий доступности в веб-разработке.
Для новичков, задача на пару дней
Browserslist предупреждает, когда caniuse-lite (с базой браузеров) давно не обновляли.
Надо в это предупреждение добавить время с последнего обновления caniuse-lite. За время последнего обновления можно взять время последнего релиза браузера в базе данных.
Browserslist: caniuse-lite is 15 month old. Time to run:
npx update-browserslist-db@latest
Why you should do it regularly: https://github.com/browserslist/update-db#readme
Польза: строка в резюме с PR в популярный проект.
Для новичков, задача на пару дней
PostCSS, в случае синтаксической ошибки, показывает строку, где она произошла.
Но если это минифицированный CSS-файл, то всё его содержимое будет в одну строчку и ошибка заполняет весь экран консоли.
В таком случае надо выводить лишь 20 символов до начала ошибки и 20 символов после конца.
Польза: строка в резюме с PR в популярный проект.
Для новичков, задача на пару дней
Вышла новая библиотека для работы с цветов в JS.
Нужно попробовать перевести рендер графиков в цветовом миксере OKLCH на неё.
Польза: строка в резюме, которая показывает знание технологий доступности в веб-разработке.
Для новичков, задача на пару дней
KeyUX добавляет на сайт обработку событий с клавиатуры, чтобы пользоваться сайтом с клавиатуры было удобнее.
У нас есть набор функций, но нет видео, которое бы показывало их в действии.
Нужно помочь сделать запись экрана.
Польза: строка в резюме, которая показывает знание технологий доступности в веб-разработке.
Для новичков, задача на пару дней
Нужно добавить поддержку ⌘+Z и ⌘+Shift+Z в OKLCH Color Picker. Пользователь должен иметь возможность отменить и повторить последние изменение цвета.
Польза: строка в резюме с PR в популярный проект, которая показывает знание JS.
Для новичков, задача на пару дней
Bun — альтернатива Node.js и npm. В том числе, она может устанавливать JS-зависимости, создавая свой собственный bun.lockb
файл.
В Browserslist есть скрипт update-browserslist-db
, который обновляет caniuse-lite
в проекте, чтобы использовалась свежая база данных браузеров.
Сейчас update-browserslist-db
поддерживает только npm, pnpm, yarn. Нужно добавить поддержку Bun.
Польза: строка в резюме с PR в популярный проект, которая показывает знание Node.js.
Для новичков, задача на пару дней
Tinybench — минималистичная система бенчмарков для Node.js. Она отлично вписывается в философию Nano ID, так как имеет мало зависимостей.
Нужно попробовать перевести бенчмарк Nano ID с benchmark
на tinybench
.
Польза: строка в резюме с PR в популярный проект, которая показывает знание Node.js.
Для новичков, задача на пару дней
KeyUX добавляет на сайт обработку событий с клавиатуры, чтобы пользоваться сайтом с клавиатуры было удобнее.
Например, он добавляет для списков с role="menu"
(табы, меню навигации) навигацию стрелочками. Так, вместо огромного списка для Tab-навигации, у нас выделяются изолированные блоки, между которыми мы перемещаемся Tab-ом, а внутри — стрелочками.
Но такая навигация нужна не только role="menu"
, но и многим другим role
(но у каждой немного отличается поведение, будьте внимательны).
Польза: строка в резюме, которая показывает знание технологий доступности в веб-разработке.