«Мастер совершает больше ошибок, чем новичок — попыток»

Прошлый список тренировочных проектов набрал 50к прочтений и 600 добавлений в избранное. Вот еще один список интересных проектов для практики, для тех кто хочет добавки.

1. Текстовый редактор


image

Цель текстового редактора — уменьшить усилия пользователей, пытающихся преобразовать их форматирование как валидную разметку HTML. Хороший текстовый редактор позволяет пользователям форматировать текст по-разному.

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

2. Клон Reddit


image

Reddit — это агрегация социальных новостей, рейтинг веб-контента и сайт для обсуждений.

Reddit — занимает большую часть моего времени, но я продолжаю зависать на нем. Создание клона Reddit — это эффективный способ изучения программирования (при одновременном просмотре Reddit).

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

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

image

Reddit API

3. Публикация пакета NPM с открытым исходным кодом


image

Если вы пишите код на Javascript, скорее всего, вы используете менеджер пакетов. Менеджер пакетов позволяет повторно использовать существующий код, который написали и опубликовали другие люди.

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

Пакет может быть любым. Если у вас нет идеи, создайте свой собственный Lodash и опубликуйте его.

image

Lodash: lodash.com

Наличие чего-то, что вы сделали в Интернете, ставит вас на 10% выше других. Вот некоторые полезные ресурсы об открытых источниках и пакетах.

4. Учебный план freeCodeCamp


image

FCC curriculum

freeCodecamp собрал очень всеобъемлющий курс по программированию.

freeCodeCamp — это некоммерческая организация. Она состоит из интерактивной обучающей веб-платформы, онлайн-форума сообщества, чатов, публикаций Medium и местных организаций, которые намереваются сделать доступным для всех изучение веб-разработки.

image

Вы будете более чем квалифицированы для своей первой работы, если вам удастся завершить весь курс.

5. Создайте HTTP-сервер с нуля


Протокол HTTP является одним из основных протоколов, по которым контент попадает в Интернете. HTTP-серверы используются для обслуживания статического контента, такого как HTML, CSS и JS.

Возможность реализовать протокол HTTP с нуля расширит ваши знания о том, как все взаимодействует.

Например, если вы используете NodeJs, то вы знаете что Express предоставляет HTTP-сервер.

Для справки, посмотрите, сможете ли вы:

  • Настроить сервер без использования каких-либо библиотек
  • Сервер должен обслуживать содержимое HTML, CSS и JS.
  • Внедрение маршрутизатора с нуля
  • Следить за изменениями и обновлять сервер

Если вы не знаете с чего, воспользуйтесь Go lang и попытайтесь создать HTTP-сервер Caddy с нуля.

image

6. Десктопное приложение для заметок


image

Мы все делаем заметки, не так ли?

Давайте создадим приложение для заметок. Приложению необходимо сохранять заметки и синхронизировать их с базой данных. Создайте нативное приложение с помощью Electron, Swift или чего-то еще, что вам нравится, и что подходит для вашей системы.

Не стесняйтесь сочетать это с первым челленджом(текстовый редактор).

В качестве бонуса попробуйте синхронизировать десктопную версию с веб-версией.

7. Подкасты (клон Overcast)


image

Кто не слушает подкасты?

Создайте веб-приложение со следующими функциями:

  • Завести аккаунт
  • Поиск подкастов
  • Оценивать и подписываться на подкасты
  • Остановка и воспроизведение, изменение скорости, функции вперед и назад на 30 секунд.

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

image

affiliate.itunes.apple.com/resources/documentation/itunes-store-web-service-search-api

8. Захват экрана


image

Привет! Я снимаю свой экран прямо сейчас!

Создайте десктопное или веб-приложение, которое позволит вам захватить ваш экран и сохранить клип как .gif

Вот несколько советов, как добиться этого.



Перевод выполнен при поддержке компании EDISON Software, которая профессионально занимается разработкой приложений и сайтов на PHP для крупных заказчиков, а так же разработкой облачных сервисов и мобильных приложений на Java.

Комментарии (11)


  1. adictive_max
    11.12.2018 04:57
    +1

    3. Публикация пакета NPM с открытым исходным кодом
    Пакет может быть любым. Если у вас нет идеи, создайте свой собственный Lodash и опубликуйте его.
    Пожалуйста, никогда так не делайте. NPM и так уже превратился в свалку, не надо добавлять туда ещё больше мертворождённых пакетов «чтобы потренироваться».


  1. BerkutEagle
    11.12.2018 06:35
    +1

    Может когда автор говорит «создайте свой собственный Lodash», он подразумевает «запилите популярную либу с ~20кк скачиваниями в неделю, как у Lodash»! Нормальная такая тренировка получается.


  1. shpaker
    11.12.2018 09:04

    Очень странный список, большая часть которого от фронтендеров до фронтендеров. И как-то сбоку прилепили непонятно зачем написание HTTP-сервера, который заведомо будет рожден мёртвым. И все под соусом js, ноды и электрона… О дивный, новый мир!


    1. Free_ze
      11.12.2018 12:03

      непонятно зачем написание HTTP-сервера, который заведомо будет рожден мёртвым

      А остальное будто будет полезным) Интерес здесь чисто академический. Просто читать сухие стандарты или изучать протокол через толщу инструментов — это не самые веселые способы получить знания.


      1. shpaker
        12.12.2018 19:53
        +1

        Как показывает практика — ради академического интереса проекты делаются очень не продуктивно и весь кайф пэт-проджектов в том, чтоб написать что-то, что можно самому юзать, а ещё лучше и друзьям/коллегам подсунуть.


        1. Free_ze
          12.12.2018 21:49

          Практика, возможно, у нас с вами отличается) Меня наколеночные поделки не восхищают, пэт-проекты тянутся длинной очередью в ожидании наличия вдохновения, базируются на проверенных технологиях и глубоко прорабатываются (что бывает и не в радость). А потыкать какую-то неизвестную область, технологию или подход — это запросто на пару-тройку вечеров, накидать какой-то proof of concept. Тут не нужна продуктивность, цель же — опыт и знания, а не сам «продукт».


          1. shpaker
            13.12.2018 10:23

            Возможно мы с вами по разному понимаем слово проект, которое у данного поста в заголовке. Я просто по дефолту под проектом понимаю не proof of concept, а что-то долгоиграющее.


  1. worldmind
    11.12.2018 11:03
    +1

    Правильный совет — сделайте, то чего вам не хватает.


    1. Fly3110
      11.12.2018 21:39
      +1

      Самый правильный совет. Мне, вот, не хватало проги, которая будет синхронизировать буфер обмена между двумя компами, я знаю, что такие есть и жаба 20 баксов не душит заплатить, но решил написать свое :)


  1. LeqWiser
    12.12.2018 12:19

    Привет! Я снимаю твой экран прямо сейчас!


  1. hottabxp
    12.12.2018 22:50

    Вот бы такой список для Desktop приложений.