Самообучение
Последнее время я думал о том как оптимизировать и улучшить качество собственного обучения.
Перед изучением чего-либо нового, будь то синтаксис языка или технология, всегда нужно составить четкое представление зачем оно создано, как и где используется и какие проблемы призвано решать. Разные дороги требуют разных колес.
Обычный кейс изучения
Возьмем на пример изучение SignalR. Обычно мы ищем гайды или какой-то базовый getting started и делаем по нему простенький Hello world, который по сути только демонстрирует работу технологии, но не показывает примеры реального использования.
Подход, который я использую
В первую очередь необходимо придумать какой-то проект, реализация которого может охватить как можно большее количество разных подходов и техник.
Суть в том чтобы обкатывать новые техники на уже существующем приложении.
Хорошим примеров является написание своего мессенджера. Суть в том, что при его написании можно обкатать множество разных вещей:
- Базы данных (можно использовать разные ORM).
- Архитектура приложения (как разделить на части приложение, DI).
- Построение WebAPI.
- Авторизация (ASP.NET Identity, JWT etc.).
- Многопоточность.
- Работа с файловой системой.
Вернемся к нашим веб-сокетам. Теперь вместо написания простого примера, который не решает задачу, попробуйте прикрутить их в текущий проект. Реализуйте уведомления, подгрузку сообщений в чате и т. д.
Так вы сможете наглядно понять как работает та или иная технология и какие задачи может решить в связи с другими.
Эту идею можно развивать все дальше и дальше. Решили попробовать мобильную разработку — написали клиент для вашего чата и т. д.
P.S. Ну и кроме всех описанных плюсов вы можете прокачать свой Github профиль.