Насколько важно завершать проекты? [закрыто]


42

Я студент (еще не учился в универе) и занимаюсь программированием около 5 лет. За это время я переключался с языка на язык, от API к API и от проекта к проекту. Я пытался настроить себя на одну вещь, но я теряю интерес. Весь мой компьютер полон наполовину законченных проектов (и как минимум в четыре раза больше отформатировано с моего диска).

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

Может ли это быть причиной моего падения мотивации? Кроме того, когда я подам заявление на поступление в университет (и, надеюсь, в будущем это будет работа по программному обеспечению), это может стать проблемой?

В итоге:

Насколько важно завершить побочные проекты, будь то карьера, мотивация или образование?


8
Я не думаю, что это плохо, когда мы говорим о личных проектах. У меня есть много проектов, которые я начал, потому что я хотел чему-то научиться или протестировать инструмент и остановился, когда узнал, что я хотел, несмотря на то, что сам проект не был закончен: изучал продукт, а не программное обеспечение и продукт было сделано! Вы закончите все проекты и, когда они вам понадобятся, закончили оплачивать счета. Наслаждайся пока можешь! : D
Vitor Py

2
Я слышал, что разница между программистом-любителем и профессиональным программистом заключается в том, что профессионал находит способ завершить проекты. Поиск помощи - один из способов отвязаться и закончить проекты. :-) Как уже говорили другие, не так важно завершать ваши личные проекты, хотя изучение того, как завершить проект, - это то, чему стоит научиться.
Гилберт Ле Блан

1
Ты заканчиваешь то, что начинаешь? это общий вопрос интервью.
Адитья П

1
@AdityaP: И ответ "Нет". Компания говорит: «Мы не знаем, стоит ли делать X или нет. Но если мы подождем, пока не узнаем, конкуренция далеко впереди нас. Поэтому мы запускаем X сейчас. Может быть, через полгода мы отменим проект и потерять полмиллиона. Или, может быть, через полгода мы пойдем полным ходом и заработаем десять миллионов ». Завершение всего, что вы начинаете, идиотское.
gnasher729

Ответы:


40

Очевидно, что завершение проекта важно в «реальном мире», поскольку, если проект не будет завершен и сдан, вы (или ваш работодатель) не получите оплату.

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

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

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

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


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

1
@ G3D - честно, но весь сайт как проект еще не «закончен». Я постараюсь уточнить это немного.
ChrisF

48

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

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

1) Никогда не получайте публичный кредит за то, что вы делаете (если это то, что вы хотите)

2) Никогда не сможете зарабатывать деньги на том, что вы сделали (если это то, что вы хотите)

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

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

Полезные стратегии для медлительных программистов

  • Составьте список всех хороших вещей, которые могут произойти, если вы закончили проект, и всех плохих вещей, если вы этого не сделаете. Тогда прикрепите это к своему монитору :)

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

  • Установите ежедневную цель: «Сегодня я собираюсь сделать это»

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

  • Остерегаясь больших экскурсий по рефакторингу, я сломал свое приложение на четыре месяца из-за обширного рефакторинга, и разработка замедлилась до ползания просто потому, что я не мог запустить его и был демотивирован работать над ним. Делайте рефакторинг, но постарайтесь не делать все сразу :)

  • Составьте список всего, что нужно сделать, чтобы закончить (я рекомендую todolist abstractspoon) Если мы не знаем, сколько еще осталось, то узнаем ли мы, когда закончим? Работа в направлении неизвестной цели может быть довольно демотивирующей

  • Пройдите по списку и обрежьте все, что не является абсолютно необходимым (включите его в категорию «хорошо»). Завершение продукта даст вам толчок, и тогда все это можно будет сделать. Лучше выпустить что-нибудь, чем ничего . Даже у iPhone не было всего в начале.

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

  • Установите минимальное рабочее время. Если вы действительно устали от проекта, установите минимальное время для работы над проектом каждый день, даже если это всего лишь 15 минут или час. Скорее всего, если вы начнете, вы будете работать дольше.

/ я ухожу, чтобы закончить его следующее большое приложение / язык программирования / убийца facebook;)


21

Весь мой PC полон наполовину готовых проектов

Вы уверены, что они даже наполовину закончены? Ценность фактического завершения чего-либо заключается в том, что только тогда вы по-настоящему понимаете, насколько велика задача завершить что-либо. Программистам присущ оптимизм, чтобы считать, что почти 80% делали большую часть времени, но всегда оказывается, что оставшиеся 20% потребуют, по крайней мере, столько же времени и усилий, сколько первые 80%.

Поэтому я очень рекомендую завершить хотя бы один проект. Платящих клиентов не волнует, выполнен ли проект на 50%, 80% или 99%. Только 100% выполненных работ.


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

3
Первые 90% работ, естественно, занимают 90% времени. Последние 10% работы занимают остальные 90% времени.
Buttons840

Так очень верно. Последний хобби-проект, который я сделал, был «завершен» через 5 часов. Однако добавление всех наворотов заняло еще 10 часов.
Карра

5

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

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

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


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

5

Гордитесь своей папкой с незавершенными проектами и не мучайтесь! Если бы вы были в другой дисциплине, например, в искусстве, тогда незавершенные проекты не имели бы большого значения, дело в том, что вы идете, и это само по себе достойно восхищения. Вы могли бы сидеть дома смотреть телевизор вместо этого? Или тратить все свое время на сайты Stack Exchange (упс!)

Microsoft никогда не поставляла трехмерный API-интерфейс «Фаренгейт», на который я когда-то надеялся, они никогда не поставляли файловую систему «база данных», которая должна была заменить NTFS, и они убивали проект «Seadragon» DeepZoom, который мог бы быть потрясающим. Они, вероятно, не смогли завершить и завершить сотни других продуктов, не обязательно из-за мотивации «охватывать, расширять и тушить». Они также поставили целые операционные системы, которые были намного меньше, чем «завершено на 98%». Делает ли это их бедными заканчивающими?

«Completer-Finisher» - это фраза из модели команды Belbin . Может быть, вы «Специалист» или «Исследователь ресурсов» и подходите для команды, в которой другие выполняют задачи завершителя. Видя вещи таким образом, вы можете взглянуть на ситуацию более позитивно.


3

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

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

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


2

Во-первых, это важно для самоудовлетворения. Вы достигли чего-то с нуля до ясного конечного состояния. Затем вы можете выбросить один элемент из своего «проекта в стек», и для меня это всегда было облегчением.

Для вашей карьеры, а точнее для собеседований, пока вы не закончили свой проект, вам нечего показать или рассказать ... Показ половинного проекта никогда не бывает хорошим. Это может быть глючит, безобразно или просто не работает. Вы даже не можете упомянуть их интервьюерам, иначе они спросят «Почему вы их не закончили?» ... Если вы отвечаете «У меня нет времени», это означает, что вы не можете правильно планировать свои задачи, Вы не настойчивы. Более того, у вас было время начать другие проекты, поэтому ваш аргумент был бы неверным. Вы должны найти умный ответ ...


2

Я был в той же ситуации, что и Джон Малкольм, но я тратил время не на те места. Для личных проектов я решил снизить свои стандарты в пользу полной функциональности. Это означало отсутствие ajax, никакой локализации, небольшой проверки, никакой аутентификации, нумерации страниц, базового интерфейса, никаких модульных тестов и так далее. Просто включите деловую часть ... Я называю это "прямой линией". Решение будет полным и должно работать в идеальных условиях. Как только это будет сделано, если проект все еще будет интересным, я продолжу итерацию рефакторинга, пока не потерял интерес.


2

У меня есть подобный опыт, и последние 5-10% даже небольшого проекта с домашним животным могут быть убийцей .

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


1

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

«Корабли настоящих программистов».


9
Это также то, что отделяет работу от игры.
Том Андерсон

1

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

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

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

Слишком много незавершенных проектов ведут к трате . Отходы - один из самых сильных врагов постного мяса .

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


1

Просто и ясно: если вы хотите закончить, закончите! Если вы не хотите, не надо! У вас нет никого, кто ждал доставки, так зачем мучаться? Делать хобби проекты не то же самое, что отраслевые проекты. Они очень разные. Никто не спросит вас, почему вы не закончили свои хобби-проекты, если вы не скажете им, что оставили их незаконченными. В сети существует миллиард кодов хобби-проектов. Вы думаете, что кто-то действительно заботится о них? (кроме ленивых студентов Univ, ищущих быстрый и готовый проект последнего года обучения)


1

Сет Годин много писал о том, как привыкнуть к судоходству:

http://the99percent.com/tips/6249/seth-godin-the-truth-about-shipping

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

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

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

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


0

Это очень важно.

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

Суть заключается в следующем ... Sales Drive Все . Без продаж нет зарплат. Без продаж нет капитальных улучшений. Без продаж нет компании. Продажи приходят от клиентов. Клиенты будут платить только тогда, когда они удовлетворены. Удовлетворенность означает, что готовый проект работает и работает хорошо.

Чтобы использовать футбольную аналогию: красная зона - последние 20 ярдов перед линией ворот. Это самая изнурительная часть выигрыша. То же относится и к программному проекту. Последние 20 процентов часто сложнее всего закончить, но это нужно сделать.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.