Наскільки важливо закінчити проекти? [зачинено]


42

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

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

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

Підсумовуючи:

Наскільки важливо закінчувати побічні / хобі-проекти, будь то кар’єра, мотивація чи освіта?


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

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

1
Ви закінчуєте те, що починаєте? - поширене запитання про інтерв'ю.
Адітя Р

1
@AdityaP: А відповідь - «Ні». Компанія каже: "Ми не знаємо, чи варто робити X чи ні. Але якщо ми будемо чекати, поки ми дізнаємось, конкуренція вже набагато попереду. Отже, ми починаємо X зараз. Можливо, через півроку ми скасуємо проект і втрачаємо півмільйона. А може, за півроку ми йдемо повною парою вперед і робимо десять мільйонів ". Закінчити все, що ви починаєте, ідіотичне.
gnasher729

Відповіді:


40

Очевидно, що завершення проекту є важливим у "реальному світі", оскільки, якщо проект не буде завершено і не доставлено, ви не отримуєте (або ваш роботодавець) не платять.

Однак для хобі та навчальних проектів це трохи складніше. Завершивши проекти, демонструє потенційним роботодавцям, що ви можете доставити те, що ви вирішили поставити, але це залежить від того, що ви маєте на увазі під "проектом".

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

Якщо ви робите проект, щоб дізнатися конкретні речі (як передавати відео, шифрувати паролі, що завгодно), то, як тільки ви працюєте з цим аспектом, менш важливо мати повністю функціональний продукт, оскільки ви ефективно завершили проект. Що ви повинні мати - це те, що ви можете показати потенційним роботодавцям, щоб продемонструвати свої навички.

Наприклад, це може бути просто веб-сайт, на якому написано "Ласкаво просимо, Джо" після успішного входу в систему, і нічого іншого - але це добре, оскільки ви демонструєте код за веб-сайтом, який демонструє, що ви розумієте шифрування пароля та безпечні з'єднання тощо.


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

1
@ G3D - справедливий момент, але весь веб-сайт як проект не «закінчений». Я спробую уточнити це.
ChrisF

48

Візьміть це у того, хто має ту ж проблему, закінчити хоча б деякі ваші проекти дуже важливо. Цілком нормально робити кілька експериментальних проектів і відмовлятися від них, коли ви дізналися, що вам потрібно, або це просто не було гарною ідеєю для початку.

Однак творчим людям, як правило, подобається складна перша частина будь-якого проекту більше, ніж нудна фаза "прибирай, упакуй та виходь у двері" наприкінці. Вам потрібно придумати якусь стратегію, щоб подолати це чи ти будеш

1) Ніколи не отримуйте жодного публічного кредиту за все, що ви робите (якщо це те, що ви хочете)

2) Ніколи не зможете заробляти гроші на тому, що зробили (якщо це те, що ви хочете)

Але найгірше те, що інші та самі почнуть ідентифікувати вас як когось, хто не закінчує справи, і це дуже погано позначає вас на інших та погано для вашого власного мислення.

Тож знайдіть партнера, причину чи дисципліну, щоб принаймні почати закінчувати деякі ваші проекти.

Корисні стратегії для зволікання програмістів

  • Складіть список усіх хороших речей, які могли б статися, якщо ви закінчили проект, і всіх поганих, якщо цього не зробите. Потім приклейте його до свого монітора :)

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

  • Поставте щоденну мету: "Сьогодні я збираюся досягти цього"

  • Якщо ви робите додаток чи щось подібне, зосередьтесь на тому, щоб зробити його зручним та зручним для використання, щоб ви могли почати їсти власну собачу їжу. Ви, ймовірно, працюєте над тим, що вас цікавить, тому фактично його регулярне використання мотивує вас вдосконалюватись.

  • Остерігайтеся великих екскурсій по рефакторингу, я перервав додаток протягом чотирьох місяців через велику рефакторинг, і розвиток сповільнився до повзання просто тому, що я не міг його запустити і був зацікавлений працювати над ним. Робіть рефакторинг, але намагайтеся робити це не відразу :)

  • Складіть перелік усього, що потрібно зробити, щоб закінчити (я рекомендую тодоліст реферату) Якщо ми не знаємо, скільки залишилось тоді, чи будемо ми знати, коли закінчимо? Працювати над невідомою ціллю може бути досить демотивуючим

  • Пройдіть список і виріжте все, що не є абсолютно необхідним (поставте його до приємної категорії). Оздоблення виробу дасть вам поштовх, і тоді це можна зробити. Краще щось звільнити, ніж нічого . Навіть у iPhone все не було на початку.

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

  • Встановіть мінімальний робочий час. Якщо ви дійсно нудьгуєте від проекту, встановіть мінімальний час для роботи над проектом щодня, навіть якщо це лише 15 хвилин або година. Ймовірно, що якщо ти почнеш, ти будеш працювати довше за це.

/ мені піде закінчити свій наступний великий додаток / мова програмування / facebook вбивця;)


21

Весь мій ПК переповнений наполовину готовими проектами

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

Тож я дуже рекомендую закінчити хоча б один проект. Клієнтам, які платять, не байдуже, чи проект виконаний на 50%, 80% або 99%. Тільки 100% зроблено.


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

3
Перші 90% роботи, природно, займають 90% часу. Останні 10% роботи займають інші 90% часу.
Кнопки840

Так дуже правда. Останній проект хобі, який я зробив, був "зроблений" через 5 годин. Однак додавання всіх дзвіночків зайняло ще 10 годин.
Карра

5

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

Можливо, ви обираєте занадто великі проекти. Виберіть щось дійсно невелике. Щось, що не буде потрібно більше одного суботнього дня. Ви будете задоволені, заповнивши його. Можливо, ви відчуєте себе під напругою зробити інше.

Важливо пам’ятати, що, дійшовши до робочого світу, ви витрачаєте 8 годин на день, вирішуючи проблеми. Це дає вам набагато більше часу для вирішення великих проектів, ніж у спорадичних умовах життя студентів.


1
+1 для "повністю зайцеподібних" (до речі, зайвий , а не волосистий). Чудовий опис багатьох моїх покинутих проектів. Це і неможливо мегаломанія.
Том Андерсон

5

Пишайтеся своєю незавершеною папкою проектів і не б’йтесь про це! Якби ви були в іншій дисципліні, наприклад, мистецтві, то незавершені проекти насправді не мали б значення, справа в тому, що ви ходите, і це саме по собі є захоплюючим. Ви могли б замість цього сидіти вдома, дивлячись телевізор? Або витрачати весь свій час на сайтах Stack Exchange (на жаль!)

Microsoft ніколи не постачала тривимірний API «Фаренгейта», на який я колись сподівався, вони ніколи не постачали файлову систему «база даних», яка повинна була замінити NTFS, і вони вбили проект «Seadragon» DeepZoom, який міг бути приголомшливим. Вони, ймовірно, не змогли добудувати і добудувати сотні інших продуктів, не обов'язково з мотивації "обійняти, поширити і згасити". Вони також поставили цілі операційні системи, які були набагато менше, ніж '98% завершено '. Це робить їх бідними фінішниками?

"Комплекс-фінішер" - це насправді фраза з команди команди Belbin . Можливо, ви "фахівець" або "дослідник ресурсів" і підходить до команди, де інші виконують завдання, що завершують завершення роботи. Бачачи речі таким чином, ви можете поглянути на свою ситуацію більш позитивно.


3

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

Я думаю, що трактування проектів як невдач, оскільки вони не були на 100% завершеними, вплине на вашу мотивацію і може перешкодити вам дійсно потрапити в чудову сферу роботи. Замість того, щоб дивитися на них як на невдачі, спробуйте подумати про те, чого ви дізналися з них - які нові мови / рамки ви тепер знаєте, які уроки програмування ви засвоїли, які інструменти у вас зараз є навичками та з якими людьми / спільнотами ви спілкувались, роблячи це. З цієї точки зору рідко можна зустріти особистий проект, який би якимось чином не сприяв вашим знанням.

Коли ви знаходитесь в університеті чи зайнятістю, ви виявите, що існують дві основні відмінності, які забезпечують виконання ваших проектів. По-перше, ваші цілі, як правило, досить чітко визначені - зокрема, протягом перших двох років університету. По-друге, у вас є реальний тиск для завершення проекту - вам потрібно зробити це, щоб пройти клас / модуль, або ваш менеджер повідомляє вам, що проект XYZ потрібно здати тестовій групі на конкретну дату. Це забезпечує фокус, який я ніколи не міг повторити на особистих проектах.


2

По-перше, це важливо для самозадоволення. Ви домоглися чогось з нуля до чіткого стану кінця. Потім ви можете спливати один елемент свого «проектного стека в розумі», і для мене це завжди було полегшенням.

Для вашої кар’єри, а точніше для співбесіди, поки ви не закінчите свій проект, вам нічого не можна показувати чи говорити ... Показувати половинний проект ніколи не є корисним. Це може бути баггі, некрасиво або просто не працює. Ви навіть не можете згадати їх інтерв'юерам, інакше вони запитають "Чому ви їх не закінчили?" ... Якщо ви відповісте "Я не маю часу", це означає, що ви не можете правильно запланувати свої завдання, ти не наполегливий. Більше того, ви встигли розпочати інші проекти, щоб ваш аргумент був неправильним. Вам доведеться знайти розумну відповідь ...


2

Я опинився в подібній ситуації, як Джон Малькольм, але я витрачав час у неправильних місцях. Для особистих проектів я вирішив знизити свої стандарти на користь повноцінної функціональності. Це означало, що немає аякса, немає локалізації, не багато валідації, ніякої автентифікації, ніяких сторінок, інтерфейсу без баребонів, жодних тестів на одиницю тощо. Просто спрацюйте бізнес-частину ... Я називаю це "прямою лінією". Рішення було б повним і повинно працювати в ідеальних умовах. Як тільки це було зроблено, якщо проект все ще був цікавим, я продовжував би ітерації рефакторингу, поки не втратив інтерес.


2

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

Моя порада, якщо ви хочете закінчити? Розкажіть друзям, колегам, родині чи комусь, хто може бути зацікавлений у цій новій цікавій справі, над якою ви працюєте. Залучайте їх, задавайте їм питання. Сподіваємось, ви здобудете кількох підписників, які запитають про ваш прогрес. Тиск знань, що спонукає вас продовжувати проходити мирські, але необхідні кроки, щоб реалізувати ваш проект.


1

Завершальні проекти - це те, що відокремлює дітей від дорослих, пшеницю від плівок, чоловіків / жінок від хлопців / дівчат.

"Реальні програмісти відправляються".


9
Це також те, що відокремлює роботу від гри.
Том Андерсон

1

Щоб знати, чи потрібно закінчити проект, чи ні, ви повинні оцінити вартість, яку ви отримаєте від нього, порівняно з часом, який ви повинні інвестувати в нього для його завершення.

Якщо вартість, яку ви можете витягти з неї , нижча за інвестицію , ви можете розглянути це за заточеними витратами .

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

Занадто багато незавершених проектів призводять до відходів . Відходи - один з найпотужніших ворогів худорлявих .

Однак, іноді краще відмовитися від проекту, щоб зосередити свої зусилля на тому, який забезпечить набагато більше рентабельності інвестицій. Багато людей закінчують все впертістю і не вдається вловити справді хороші можливості .


1

Просте і просте: якщо ви хочете його закінчити, закінчіть! Якщо ви цього не хочете, не робіть! У вас немає нікого, хто чекає на доставку, так навіщо так мучитися? Робити проекти хобі - це не те саме, що галузеві проекти. Вони дуже різні. Ніхто не запитає вас, чому ви не закінчили свої проекти хобі, якщо ви не скажете їм, що ви залишили їх незакінченими. У мережі плаває мільярд кодів проектів хобі. Ви думаєте, що хтось насправді їх хвилює? (крім ледачих студентів університету, які шукають швидкий і готовий проект підсумкового курсу)


1

Сет Годін багато писав про те, щоб звикнути з доставкою:

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

Я думаю, що це важливо, і ось чому: недостатньо робити проект для себе, навіть якщо це може бути для вас певним значенням. Якщо ти ніколи не ділишся своїм даром зі світом, ти схожий на художника, який ніколи нікому не показує свої картини.

З цим я теж борюся. Якби мені довелося проаналізувати чому, я б сказав, що я схильний надмірно інженерно переосмислювати свої особисті проекти. Я буду робити занадто багато припущень щодо проблеми, багато з яких є недійсними, тоді я буду вкладати занадто багато роботи, перш ніж прийти до цього усвідомлення. Це демотивує, і в цей момент я втрачаю силу. Є одна ідея, яку я повторював протягом останніх кількох років, і я повторював цю схему кілька разів.

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

Тоді, якщо я все ще достатньо мотивований, я повторю його ще раз. Я сподіваюся, що задоволення, яке я отримаю від доставки, збереже мене за допомогою додаткових ітерацій.


0

Це дуже важливо.

Я розумію, як щось збити, як доказ концепції, а потім дати йому сидіти там. Це добре. Однак клієнти не заплатять ні за що менше, ніж за закінчений проект.

Суть полягає в цьому ... Продаж рухає все . Без продажу немає зарплат. Без продажів немає капітальних вдосконалень. Без продажів немає жодної компанії. Продажі надходять від клієнтів. Клієнти будуть платити лише тоді, коли вони задоволені. Задоволення означає, що готовий проект працює і працює добре.

Використання футбольної аналогії: Червона зона - це останні 20 ярдів перед лінією воріт. Це найбільш виснажлива частина забиття приземлення. Це ж стосується проекту програмування. Останні 20 відсотків часто найважче закінчити, але це треба зробити.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.