Зачем нужен домашний проект и как выбрать тему для него
Насчет программирования дома для себя чаще всего возникают два вопроса: для чего это нужно и что бы такое написать. На эти вопросы я и постараюсь ответить.
Польза от домашнего проекта
- Самообучение. Очень сложно изучать новую технологию по книжкам. Намного больше знаний останется в голове, если учиться на отдельном небольшом проекте. Тему проекта лучше выбирать подходящую для технологии.
- Портфолио / Резюме. NDA часто мешает отправлять примеры своего рабочего кода потенциальному работодателю или клиенту. Домашний проект решает эту проблему. Так же можно показывать его вместо тестовых заданий и не тратить на них время.
- Разнообразие. Написание своего 3D шутера поможет не скиснуть от скуки тому, кто на работе пишет сайты-визитки. А библиотека для распознавания улыбки на фото — отличный способ отдохнуть от занудного энтерпрайза.
- Хобби. Если ваш домашний проект является вашим хобби — вам не нужна эта статья. Все, что нужно, вы уже знаете :-)
Выбор темы
- Утилита для себя. Например, изучение python я начал со скрипта, который копировал на плейер рандомные песни из моей музыкальной коллекции.
- Утилита для работы. Сюда входят различные скрипты автоматизации, кодогенераторы и т.д.
- Утилита для знакомых. Обращайте внимание на слова других людей о каком-либо ПО. Один из моих домашних проектов начался с того, что моя жена пожаловалась мне на отсутствие нормальной программы для скачивания музыки с vk.com.
- Для изучения веб-орентированного языка можно написать сайт о сайте. Создали хитрый виджет на сайте — написали об этом. Добавили в движок темы — и об этом написали.
- Плагины. Для файлового менеджера, для браузера, для среды разработки.
- Если ничего из вышеперечисленного не подходит — вы всегда можете написать игру. Игру можно писать на любом языке. Написание игры позволяет отточить практически любой навык — работа с графикой, сложные алгоритмы, проектирование интерфейса и т.д.
Напоследок один совет — никогда не пишите то, что никому не нужно. Такой проект не принесет удовольствия и скорее всего не будет доделан.