Зачем нужен домашний проект и как выбрать тему для него

13.03.2014 at 18:23

Насчет программирования дома для себя чаще всего возникают два вопроса: для чего это нужно и что бы такое написать. На эти вопросы я и постараюсь ответить.

Польза от домашнего проекта

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

Выбор темы

  • Утилита для себя. Например, изучение python я начал со скрипта, который копировал на плейер рандомные песни из моей музыкальной коллекции.
  • Утилита для работы. Сюда входят различные скрипты автоматизации, кодогенераторы и т.д.
  • Утилита для знакомых. Обращайте внимание на слова других людей о каком-либо ПО. Один из моих домашних проектов начался с того, что моя жена пожаловалась мне на отсутствие нормальной программы для скачивания музыки с vk.com.
  • Для изучения веб-орентированного языка можно написать сайт о сайте. Создали хитрый виджет на сайте — написали об этом. Добавили в движок темы — и об этом написали.
  • Плагины. Для файлового менеджера, для браузера, для среды разработки.
  • Если ничего из вышеперечисленного не подходит — вы всегда можете написать игру. Игру можно писать на любом языке. Написание игры позволяет отточить практически любой навык — работа с графикой, сложные алгоритмы, проектирование интерфейса и т.д.

Напоследок один совет — никогда не пишите то, что никому не нужно. Такой проект не принесет удовольствия и скорее всего не будет доделан.