Нотатки про програмування, музику, подорожі та плівку
Про мене  •  Список нотаток  •  Плівка

Самообучение

Последнее время я думал о том как оптимизировать и улучшить качество собственного обучения.

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

Обычный кейс изучения
Возьмем на пример изучение SignalR. Обычно мы ищем гайды или какой-то базовый getting started и делаем по нему простенький Hello world, который по сути только демонстрирует работу технологии, но не показывает примеры реального использования.

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

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

  1. Базы данных (можно использовать разные ORM).
  2. Архитектура приложения (как разделить на части приложение, DI).
  3. Построение WebAPI.
  4. Авторизация (ASP.NET Identity, JWT etc.).
  5. Многопоточность.
  6. Работа с файловой системой.

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

Эту идею можно развивать все дальше и дальше. Решили попробовать мобильную разработку — написали клиент для вашего чата и т. д.

P.S. Ну и кроме всех описанных плюсов вы можете прокачать свой Github профиль.

Надіслати
Поділитись