Прошлый список тренировочных проектов набрал 50к прочтений и 600 добавлений в избранное. Вот еще один список интересных проектов для практики, для тех кто хочет добавки.
1. Текстовый редактор
Цель текстового редактора — уменьшить усилия пользователей, пытающихся преобразовать их форматирование как валидную разметку HTML. Хороший текстовый редактор позволяет пользователям форматировать текст по-разному.
В какой-то момент каждый использовал текстовый редактор. Так почему бы не создать его самостоятельно?
2. Клон Reddit
Reddit — это агрегация социальных новостей, рейтинг веб-контента и сайт для обсуждений.
Reddit — занимает большую часть моего времени, но я продолжаю зависать на нем. Создание клона Reddit — это эффективный способ изучения программирования (при одновременном просмотре Reddit).
Reddit предоставляет вам очень богатый API. Не упускайте какие-либо функции и не делайте как попало. В реальном мире с клиентами и покупателями, вы не сможете работать как попало, или вы быстро потеряете работу.
Умные клиенты сразу же догадаются, что работа выполняется плохо, и найдут кого-то другого.
Reddit API
3. Публикация пакета NPM с открытым исходным кодом
Если вы пишите код на Javascript, скорее всего, вы используете менеджер пакетов. Менеджер пакетов позволяет повторно использовать существующий код, который написали и опубликовали другие люди.
Понимание полного цикла разработки пакета даст очень хороший опыт. Есть много вещей, которые вам нужно знать при публикации кода. Вам нужно подумать о безопасности, семантическом управлении версиями, масштабируемости, соглашениях об именах и обслуживании.
Пакет может быть любым. Если у вас нет идеи, создайте свой собственный Lodash и опубликуйте его.
Lodash: lodash.com
Наличие чего-то, что вы сделали в Интернете, ставит вас на 10% выше других. Вот некоторые полезные ресурсы об открытых источниках и пакетах.
4. Учебный план freeCodeCamp
FCC curriculum
freeCodecamp собрал очень всеобъемлющий курс по программированию.
freeCodeCamp — это некоммерческая организация. Она состоит из интерактивной обучающей веб-платформы, онлайн-форума сообщества, чатов, публикаций Medium и местных организаций, которые намереваются сделать доступным для всех изучение веб-разработки.
Вы будете более чем квалифицированы для своей первой работы, если вам удастся завершить весь курс.
5. Создайте HTTP-сервер с нуля
Протокол HTTP является одним из основных протоколов, по которым контент попадает в Интернете. HTTP-серверы используются для обслуживания статического контента, такого как HTML, CSS и JS.
Возможность реализовать протокол HTTP с нуля расширит ваши знания о том, как все взаимодействует.
Например, если вы используете NodeJs, то вы знаете что Express предоставляет HTTP-сервер.
Для справки, посмотрите, сможете ли вы:
- Настроить сервер без использования каких-либо библиотек
- Сервер должен обслуживать содержимое HTML, CSS и JS.
- Внедрение маршрутизатора с нуля
- Следить за изменениями и обновлять сервер
Если вы не знаете с чего, воспользуйтесь Go lang и попытайтесь создать HTTP-сервер Caddy с нуля.
6. Десктопное приложение для заметок
Мы все делаем заметки, не так ли?
Давайте создадим приложение для заметок. Приложению необходимо сохранять заметки и синхронизировать их с базой данных. Создайте нативное приложение с помощью Electron, Swift или чего-то еще, что вам нравится, и что подходит для вашей системы.
Не стесняйтесь сочетать это с первым челленджом(текстовый редактор).
В качестве бонуса попробуйте синхронизировать десктопную версию с веб-версией.
7. Подкасты (клон Overcast)
Кто не слушает подкасты?
Создайте веб-приложение со следующими функциями:
- Завести аккаунт
- Поиск подкастов
- Оценивать и подписываться на подкасты
- Остановка и воспроизведение, изменение скорости, функции вперед и назад на 30 секунд.
В качестве отправной точки попробуйте использовать iTunes API. Если вы знаете какие-либо другие ресурсы, напишите в комментариях.
affiliate.itunes.apple.com/resources/documentation/itunes-store-web-service-search-api
8. Захват экрана
Привет! Я снимаю свой экран прямо сейчас!
Создайте десктопное или веб-приложение, которое позволит вам захватить ваш экран и сохранить клип как
.gif
Вот несколько советов, как добиться этого.
Перевод выполнен при поддержке компании EDISON Software, которая профессионально занимается разработкой приложений и сайтов на PHP для крупных заказчиков, а так же разработкой облачных сервисов и мобильных приложений на Java.
Комментарии (11)
BerkutEagle
11.12.2018 06:35+1Может когда автор говорит «создайте свой собственный Lodash», он подразумевает «запилите популярную либу с ~20кк скачиваниями в неделю, как у Lodash»! Нормальная такая тренировка получается.
shpaker
11.12.2018 09:04Очень странный список, большая часть которого от фронтендеров до фронтендеров. И как-то сбоку прилепили непонятно зачем написание HTTP-сервера, который заведомо будет рожден мёртвым. И все под соусом js, ноды и электрона… О дивный, новый мир!
Free_ze
11.12.2018 12:03непонятно зачем написание HTTP-сервера, который заведомо будет рожден мёртвым
А остальное будто будет полезным) Интерес здесь чисто академический. Просто читать сухие стандарты или изучать протокол через толщу инструментов — это не самые веселые способы получить знания.shpaker
12.12.2018 19:53+1Как показывает практика — ради академического интереса проекты делаются очень не продуктивно и весь кайф пэт-проджектов в том, чтоб написать что-то, что можно самому юзать, а ещё лучше и друзьям/коллегам подсунуть.
Free_ze
12.12.2018 21:49Практика, возможно, у нас с вами отличается) Меня наколеночные поделки не восхищают, пэт-проекты тянутся длинной очередью в ожидании наличия вдохновения, базируются на проверенных технологиях и глубоко прорабатываются (что бывает и не в радость). А потыкать какую-то неизвестную область, технологию или подход — это запросто на пару-тройку вечеров, накидать какой-то proof of concept. Тут не нужна продуктивность, цель же — опыт и знания, а не сам «продукт».
shpaker
13.12.2018 10:23Возможно мы с вами по разному понимаем слово проект, которое у данного поста в заголовке. Я просто по дефолту под проектом понимаю не proof of concept, а что-то долгоиграющее.
worldmind
11.12.2018 11:03+1Правильный совет — сделайте, то чего вам не хватает.
Fly3110
11.12.2018 21:39+1Самый правильный совет. Мне, вот, не хватало проги, которая будет синхронизировать буфер обмена между двумя компами, я знаю, что такие есть и жаба 20 баксов не душит заплатить, но решил написать свое :)
adictive_max