Вопрос

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

Когда вы начинаете, каков ваш первый шаг?вы планируете проект?сделать схему?написать код на бумаге?Как начать проект так, чтобы быть уверенным, что он добьется успеха?

Это было полезно?

Решение

Единственное, что мне помогает:Создайте минимально возможную его реализацию, которую можно было бы использовать, а затем используйте ее.

Другие советы

От 7 привычек высокоэффективных людей, Привычка 2:Начните с конечной цели.

В любом проекте вам нужна четкая цель, точка, в которой вы можете сказать: «Я закончил».Ясный результат укажет вам направление.Как только вы это получите, вы можете начать планировать, как туда добраться.Размер и сложность проекта будут определять степень детализации вашего плана, но в целом вы захотите регулярно ощущать прогресс в выполнении плана.

Мой следующий шаг — набросать дизайн необходимых модулей и API-интерфейсов между каждым модулем.Если API чисты, то модули, вероятно, правы.Затем я начинаю внедрять модули, тестируя их по ходу дела.

Я провожу много времени, обдумывая различные аспекты проекта, прежде чем даже коснусь клавиатуры.

Я просматриваю то, что узнал из предыдущих проектов, и записываю это в различные категории («технические», «продвижение» и т. д.).

Личный проект или нет, я всегда настраиваю контроль исходного кода.Git, Mercurial of Bazaar — примеры инструментов контроля исходного кода, которые не навязчивы, поскольку вам не нужно настраивать главный сервер.Просто введите простую команду для создания проекта, проверьте файлы и зафиксируйте.В будущем, когда вы испортите один из своих файлов, вы сможете «отменить» его.

Я также настроил легкую систему билетов, чтобы отслеживать 1.ISSUE и 2.IDEAS под «легким», я имею в виду, что если поддерживать два текстовых документа с этими списками, это достаточно хорошо.

Надеюсь это поможет.

Согласен с уже данным советом:

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

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

Мне сложно начинать что-то строить, если у меня нет четкого представления о том, как это должно выглядеть хотя бы на первом уровне декомпозиции.Подумайте, что вам нужно помимо функционала:высокая производительность?, сценарии расширяемости?, какие?, цели удобства использования?, высокая масштабируемость?, простота развертывания и установки? и т. д.Спроси себя:Какие компоненты мне придется построить, чтобы достичь этих архитектурных качеств?

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

Определите цель проекта.Похоже, вы ищете почти исключительно решение, а не проблему.

Программа бесполезна ни для вас, ни для кого-либо еще, если она не решит какую-либо проблему.Написание кода, позволяющего двигаться вперед, — это здорово, но после того, как вы начнете, вы потеряете интерес и концентрацию, потому что вы смотрите на код, а не на проблему.

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

Затем найдите некоторых из этих людей и предложите свое (частичное) решение, и вы вызовете интерес и предложения среди них всех.

ЭТО поможет вам продолжить работу над проектом.Взаимный интерес, обмен мнениями, даже разногласия — программное обеспечение нужно людям!Не создавайте решения (программное обеспечение) в поисках проблемы (людей).Вы начали с ВАС, со своей потребности или желания, но сосредоточились на коде и потеряли импульс к проекту.

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

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

Как и другие, мои личные проекты всегда имеют:

  • Конечная цель
  • Список задач
  • Небольшие полезные единицы
  • Управления источником

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

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

Это зависит от проекта – насколько он велик?

Если я пишу следующий клон Блокнота, я мог бы просто погрузиться в него; если бы я хотел создать свою собственную операционную систему, это потребовало бы гораздо больше работы, не связанной с программированием.

Мне нравится делать много диаграмм, в большинстве случаев я использую чистую бумагу формата А4 и карандаш.Нарисуйте пользовательский интерфейс, рабочий процесс, базовые классы и то, как вы собираетесь хранить любые данные — тогда кодирование станет просто читаемым компьютером способом записи того, что вы уже нарисовали.

Контроль источникаSVN — это пара нажатий/щелчков клавиш, поэтому накладные расходы невелики, а польза велика, удобно пробовать что-то и просто возвращаться к более раннему состоянию, если что-то не работает.

Затем просто создайте самый простой прототип, который будет работать — как только что-то действительно получится, гораздо легче воодушевиться и добавить что-то еще.Если это ошеломляет, я обнаруживаю, что проблема решена в моей голове, и этого достаточно.

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

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

Использование Fusion Source Control также важно.Установка SVN занимает 2 минуты.

Если вы хотите превратить его в общедоступный проект с открытым исходным кодом, Производство программного обеспечения с открытым исходным кодом предполагается, что его будет полезно прочитать (доступно как в Интернете, так и в печатном виде).

Если ваш личный проект похож на существующий проект с открытым исходным кодом, вам следует рассмотреть возможность внесения вклада в этот проект.Пара небольших вкладов (исправления ошибок и т. Д.) Более ценна, чем половина готового проекта.

Все вышеперечисленное, но начните закреплять план на месте.....

Зайдите на некоторые инструменты SmartSheet - даже если вы работаете самостоятельно, вы должны установить некоторые этапы и даты, и графичность с www.yworks.com

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top