Проекты — лучший способ учиться.

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

В Интернете есть масса идей проектов для новых разработчиков, чтобы они могли развить свои начальные навыки. Но опытные разработчики также могут извлечь выгоду из некоторых побочных проектов!

Вот список из 20 проектных идей для расширения ваших знаний в области разработки программного обеспечения.

Список

  1. Используйте библиотеку для создания сервера авторизации OAuth 2. Реализуйте различные потоки в соответствии со спецификацией OAuth.
  2. Собрать данные из Интернета. Приберись. Загрузите его в инструмент анализа данных. Затем создайте несколько визуализаций. Например, попробуйте создать облака слов из статей Википедии.
  3. Создайте файл Dockerfile и docker-compose.yml для веб-приложения с базой данных, уровнем кеша, сервером nginx/Apache, внутренним API и внешним интерфейсом JavaScript.
  4. Напишите сценарий bash/zsh, который проходит по каталогам, перебирает файлы и запускает некоторые команды для этих файлов. Убедитесь, что скрипт может принимать аргументы и флаги настроек.
  5. Разработайте внешний компонент, который открывает всплывающее окно, принимает пользовательский ввод и передает информацию обратно на главную страницу. Кроме того, попробуйте разработать iframe, который можно встроить в сайт и передавать информацию обратно.
  6. Установите файл cookie безопасного сеанса (только для сервера), который содержит информацию о разрешенных действиях пользователя в качестве JWT.
  7. Передавайте конфиденциальную информацию между двумя API, используя HMAC для подписи данных.
  8. Реализуйте средство решения судоку, которое использует параллелизм/потоки для быстрого заполнения матрицы.
  9. Реализуйте очередь, которая поддерживает извлечение слева и справа, используя ручное выделение памяти на близком к железу языке.
  10. Запустите модели регрессии по данным переписи, чтобы сделать прогнозы о населении США.
  11. Получите Raspberry Pi и реализуйте простой веб-сервер для включения/выключения света с помощью запроса API.
  12. Напишите и организуйте задачи Airflow для извлечения последних твитов из Твиттера (используя расписание или команду) одновременно для разных дескрипторов Твиттера. Сохраните твиты в хранилище данных. Бонусные баллы за добавление шага уменьшения карты для анализа.
  13. Создайте базу данных временных рядов и API для приема и хранения журналов из приложения. Обрабатывать одновременные запросы с некоторым типом очереди. Внедрите Elasticsearch для быстрого поиска.
  14. Напишите и установите свою собственную простую программу для командной строки. Добавьте свою программу в $PATH . Бонусные баллы: разместите его в Интернете и поддержите wget , curl или даже brew install
  15. Разверните любой или все вышеперечисленные проекты у крупного поставщика облачных услуг (AWS, GCP, Azure, Digital Ocean и т. д.) и узнайте, как различные облачные сервисы работают вместе, как подготовить экземпляры и т. д. Посмотрите, сможете ли вы настроить CI/CD. в облако. (Предупреждение: это может быть дорого, если вы не будете осторожны, поэтому убедитесь, что вы провели свое исследование!)
  16. Напишите модульные, интеграционные и сквозные тесты для ваших приложений. Практикуйте насмешки, параметризацию и небольшие тесты, которые выполняются быстро. Запустите тесты на провайдере CI, таком как CircleCI, TravisCI, Jenkins и т. д.
  17. Изучите PostGIS и начните выполнять команды SQL для геопространственных данных. Верните данные в формате GeoJSON. Используйте что-то вроде MapboxJS для отображения результатов.
  18. Предоставьте GraphQL API для набора данных. Или добавьте слой данных Apollo во внешний проект для буферизации запросов к REST API.
  19. Создайте ИИ, который всегда выигрывает или играет вничью в крестики-нолики (никогда не проигрывает). Можно использовать простой алгоритм минимум-макс, чтобы выиграть игру. Протестируйте свой API программно со всеми возможными пользовательскими входами (по сути, играйте во все возможные игры).
  20. Напишите программу, которая открывает изображение, находит наиболее распространенный цвет, выполняет заливку этого цвета другим цветом и записывает результат. Теперь заставьте программу работать одновременно со многими изображениями.

Хотите больше подробностей?

В этом видео на YouTube я расскажу вам о реализации и мыслях о 5 из этих проектов…

Новые видео каждую неделю, так что подписывайтесь, если вам нравится канал.

Это занимает слишком много времени?

Некоторые из этих проектов могут занять некоторое время.

Если вам нужны быстрые победы, у меня есть еще один список из 10 сложных проектов, которые вы можете сделать за полдня.

Создайте импульс. Есть масса возможностей!

Дополнительные ресурсы

Я пишу ежедневное электронное письмо для разработчиков программного обеспечения, развивающих их карьеру. Присоединяйтесь к нам!

Join Medium for $5 - Access all of Medium + support me & others!