Jak ważne jest zakończenie projektów? [Zamknięte]


42

Jestem studentem (jeszcze nie pójdę na uniwersytet) i programuję od około 5 lat. Przez ten czas chodziłem od języka do języka, od API do API i od projektu do projektu. Próbowałem postawić się na jedną rzecz, ale tracę zainteresowanie. Cały mój komputer jest pełen w połowie ukończonych projektów (i co najmniej cztery razy tyle zostało sformatowanych z mojego dysku).

Zaczynam się zastanawiać, czy moja niższa motywacja do programowania dla zabawy (to jedno działanie, które naprawdę lubię) jest taka, że ​​nigdy nie dostaję ukończonego projektu na końcu. Nie mogę powiedzieć, czy mam po prostu zbyt otwarte cele, czy tylko mało uwagi. Próbowałem zrobić kilka mniejszych projektów, żeby je ukończyć, ale one mnie wcale nie interesują.

Czy może to być przyczyną mojego spadku motywacji? Ponadto, kiedy składam wniosek o przyjęcie na studia wyższe (i mam nadzieję, że w przyszłości praca programistyczna), czy może to stanowić problem?

W podsumowaniu:

Jak ważne jest kończenie projektów pobocznych / hobbystycznych, czy to dla kariery, motywacji czy edukacji?


8
Nie sądzę, że to źle, kiedy mówimy o osobistych projektach. Mam wiele projektów, które rozpocząłem, ponieważ chciałem się czegoś nauczyć lub przetestować narzędzie i przestałem, gdy dowiedziałem się, czego chciałem, mimo że sam projekt nie został ukończony: produkt się uczył, a nie oprogramowanie i produkt zostało zrobione! Zakończysz wszystkie projekty, a kiedy będziesz ich potrzebować, skończymy, aby zapłacić rachunki. Ciesz się, póki możesz! : D
Vitor Py

2
Słyszałem, że mówi się, że różnica między programistą amatorskim a profesjonalnym polega na tym, że profesjonalista znajduje sposób na ukończenie projektów. Poszukiwanie pomocy jest jednym ze sposobów na odblokowanie i ukończenie projektów. :-) Jak powiedzieli inni, ukończenie osobistych projektów nie ma większego znaczenia, chociaż nauczenie się, jak ukończyć projekt, jest warte nauki.
Gilbert Le Blanc

1
Czy kończysz to, co zaczynasz? jest częstym pytaniem podczas wywiadu.
Aditya P

1
@AdityaP: A odpowiedź brzmi „nie”. Firma mówi: „Nie wiemy, czy X jest warte zrobienia, czy nie. Ale jeśli poczekamy, aż się dowiemy, konkurencja jest przed nami. Więc zaczynamy X teraz. Może za pół roku anulujemy projekt i stracić pół miliona. A może za pół roku idziemy naprzód i zarabiać dziesięć milionów ”. Dokończenie wszystkiego, co zaczynasz, jest idiotyczne.
gnasher729,

Odpowiedzi:


40

Oczywiście ukończenie projektu jest ważne w „prawdziwym świecie”, ponieważ dopóki projekt nie zostanie ukończony i nie zostanie dostarczony, nie dostaniesz (lub Twój pracodawca nie dostanie) wynagrodzenia.

Jednak w przypadku hobby i projektów edukacyjnych jest to trochę bardziej skomplikowane. Po ukończeniu projektów potencjalni pracodawcy pokazują, że możesz dostarczyć to, co postanowiłeś, ale zależy to od tego, co rozumiesz przez „projekt”.

Jeśli realizujesz projekt z myślą o posiadaniu kompletnego produktu, który prezentuje wszystkie twoje umiejętności i może być czymś, z czego ostatecznie chcesz zarabiać, to tak, powinieneś go ukończyć lub przynajmniej pokazać, że nad nim aktywnie pracujesz .

Jeśli pracujesz nad projektem, aby nauczyć się określonych rzeczy (jak przesyłać strumieniowo wideo, szyfrowanie haseł itp.), To kiedy już ten aspekt będzie działał, nie jest konieczne posiadanie w pełni funkcjonalnego produktu, ponieważ skutecznie ukończyłeś projekt. To, co powinieneś mieć, to coś, co możesz pokazać potencjalnym pracodawcom, aby wykazali się swoimi umiejętnościami.

Na przykład może to być po prostu strona internetowa z napisem „Witaj ponownie, Joe” po pomyślnym zalogowaniu i nic więcej - ale to nie w porządku, ponieważ pokazujesz kod za witryną, który pokazuje, że rozumiesz szyfrowanie hasła i bezpieczne połączenia itp.


1
Twój przykład jest skończony, ponieważ celem było po prostu zrozumienie szyfrowania hasła. Kończenie projektów jest bardzo ważne, ponieważ dużo się dowiadujesz o projekcie, o tym, co się sprawdziło, a co nie, ta wiedza jest przydatna, jak poradzić sobie z następnym projektem.
DBlackborough

1
@ G3D - słuszne, ale cała strona internetowa jako projekt nie jest „ukończona”. Spróbuję to wyjaśnić.
ChrisF

48

Weź to od kogoś, kto ma ten sam problem, ukończenie przynajmniej niektórych twoich projektów jest bardzo ważne. Wykonanie eksperymentalnych projektów i porzucenie ich jest całkowicie w porządku, gdy dowiesz się, czego potrzebujesz lub po prostu nie był to dobry pomysł na początek.

Jednak kreatywni ludzie bardziej lubią trudną pierwszą część każdego projektu niż nudną fazę „posprzątaj, spakuj i wyjdź za drzwi” na końcu. Musisz wymyślić jakąś strategię, aby to przezwyciężyć

1) Nigdy nie otrzymuj żadnych publicznych środków na nic, co robisz (jeśli tego właśnie chcesz)

2) Nigdy nie będziesz w stanie zarabiać pieniędzy na tym, co zrobiłeś (jeśli tego właśnie chcesz)

Ale najgorsze jest to, że inni i ty zaczniesz identyfikować się z kimś, kto nie dokończy rzeczy, a to jest zarówno dla ciebie złe, jak i złe dla twojego sposobu myślenia.

Znajdź partnera, powód lub dyscyplinę, aby przynajmniej zacząć kończyć niektóre projekty.

Pomocne strategie dla zwlekających programistów

  • Zrób listę wszystkich dobrych rzeczy, które mogą się zdarzyć, jeśli ukończysz projekt, i wszystkich złych rzeczy, jeśli tego nie zrobisz. Następnie przyklej taśmę do monitora :)

  • Ustal harmonogram! Projekty zajmują przydzielony im czas, więc projekt bez terminów potrwa wiecznie. Ustal harmonogram z miesięcznymi i tygodniowymi kamieniami milowymi

  • Wyznacz dzienny cel: „Dzisiaj zamierzam to osiągnąć”

  • Jeśli robisz aplikację lub coś podobnego, skoncentruj się na tym, aby była ona uruchomna i użyteczna, abyś mógł zacząć jeść własne psie jedzenie. Prawdopodobnie pracujesz nad czymś, co Cię interesuje, więc faktyczne używanie go zmotywuje cię do poprawy.

  • Uważaj na duże wycieczki z refaktoryzacją, zepsułem aplikację na cztery miesiące z powodu szeroko zakrojonej refaktoryzacji, a rozwój spowolnił się do indeksowania po prostu dlatego, że nie mogłem go uruchomić i byłem zdemotywowany do pracy nad nim. Dokonaj refaktoryzacji, ale nie rób tego wszystkiego naraz :)

  • Zrób listę wszystkiego, co trzeba zrobić, aby zakończyć (polecam todolistę abstractspoon) Jeśli nie wiemy, ile pozostało, to będziemy wiedzieć, kiedy skończymy? Praca w kierunku nieznanego celu może być dość demotywująca

  • Przejrzyj listę i wytnij wszystko, co nie jest absolutnie konieczne (umieść je w fajnej kategorii). Wykończenie produktu da ci impuls i wtedy możesz to zrobić. Lepiej wydać coś niż nic . Nawet iPhone nie miał wszystkiego na początku.

  • Nie rozpraszaj się błyszczącymi nowymi rzeczami. Głównym powodem, dla którego nie kończę projektów, jest nowe wyzwanie. Jeśli absolutnie pozytywnie nie możesz się oprzeć rozpoczęciu nowego projektu przed zakończeniem starego, kontynuuj pracę nad starym równolegle, bo inaczej całkowicie wymrze. Zobacz także następny punkt.

  • Ustaw minimalny czas pracy. Jeśli naprawdę masz dość projektu, ustaw minimalny czas pracy nad projektem każdego dnia, nawet jeśli to tylko 15 minut lub godzina. Są szanse, że jeśli zaczniesz, będziesz pracować dłużej.

/ ja wyrusza, by dokończyć swoją kolejną dużą aplikację / język programowania / facebook killer;)


21

Cały mój komputer jest pełen w połowie ukończonych projektów

Czy jesteś pewien, że są nawet w połowie skończone? Zaletą ukończenia czegoś jest to, że dopiero wtedy doceniasz, jak wielkim zadaniem jest ukończenie czegokolwiek. Programiści mają wrodzony optymizm, by uważać, że prawie 80% zrobiono przez większość czasu, ale zawsze okazuje się, że pozostałe 20% zajmie co najmniej tyle samo czasu i wysiłku, co pierwsze 80%.

Naprawdę polecam ukończenie co najmniej jednego projektu. Klientom płacącym nie obchodzi, czy projekt jest wykonany w 50%, 80% lub 99%. Liczy się tylko 100% wykonanych czynności.


Połowa ukończona jako termin ogólny. Nie wiem, jak daleko zaszli, ale prawie na pewno znacznie mniej. (tj. leksykon i może 30% parsera, ale bez backendu)
Kaczka komunistyczna

3
Pierwsze 90% pracy zajmuje naturalnie 90% czasu. Ostatnie 10% pracy zajmuje pozostałe 90% czasu.
Przyciski 840

To bardzo prawda. Ostatni projekt hobby, który wykonałem, został „wykonany” po 5 godzinach. Dodanie wszystkich dzwonków i gwizdków zajęło jednak kolejne 10 godzin.
Carra

5

Mam niezliczone projekty z czasów studenckich, które pozostają niedokończone. Nie sądzę, że ważne jest, aby je ukończyć. Nigdy nie skończyłem większości z nich. Niektóre z nich były całkowicie włosami, jak na przykład tworzenie lepszej klasy strun lub manipulowanie bitmapami za pomocą tablic klasy Pixel.

Może wybierasz projekty, które są zbyt duże. Wybierz coś naprawdę małego. Coś, co nie zajmie więcej niż jedno sobotnie popołudnie. Będziesz zadowolony po jego ukończeniu. Może poczujesz energię, by zrobić coś innego.

Jedną ważną rzeczą do zapamiętania jest to, że kiedy dotrzesz do świata pracy, będziesz spędzać 8 godzin dziennie na rozwiązywaniu problemów. Daje ci to znacznie więcej czasu na radzenie sobie z dużymi projektami niż w sporadycznym stylu życia studentów.


1
+1 za „całkowicie zającowaty” (nawiasem mówiąc, zającowaty , a nie mózgowaty). Doskonały opis wielu moich porzuconych projektów. To i niemożliwie megalomaniakalne.
Tom Anderson

5

Szczyc się swoim folderem niedokończonych projektów i nie pobijaj się! Gdybyś był w innej dyscyplinie, np. Sztuce, niedokończone projekty nie miałyby tak naprawdę znaczenia, chodzi o to, że masz szansę i samo w sobie jest godne podziwu. Zamiast tego możesz siedzieć w domu i oglądać telewizję? Lub marnowanie całego czasu na stronach Stack Exchange (ups!)

Microsoft nigdy nie dostarczył interfejsu API 3D „Fahrenheit”, na który kiedyś miałem nadzieję, nigdy nie wysłał systemu plików „bazy danych”, który miał zastąpić NTFS, i zabił projekt „Seadragon” firmy DeepZoom, który mógł być niesamowity. Prawdopodobnie nie udało im się ukończyć i ukończyć setek innych produktów, niekoniecznie z powodu motywacji do „objęcia, rozszerzenia i gaszenia”. Dostarczyli też całe systemy operacyjne, których ukończenie było o wiele mniejsze niż „98%”. Czy to sprawia, że ​​są słabymi osobami zajmującymi się uzupełnianiem?

„Completer-Finisher” jest w rzeczywistości frazą z modelu zespołu Belbin . Może jesteś „Specjalistą” lub „Badaczem zasobów” i nadajesz się do zespołu, w którym inni wykonują zadania dopełniacza-finiszera. Widzenie rzeczy w ten sposób pozwala lepiej spojrzeć na swoją sytuację.


3

Jeśli jest to jakaś pociecha, mimo że jestem profesjonalnym programistą od ponad 8 lat, nadal trudno mi kończyć osobiste projekty. Zawsze czułem, że jest to kombinacja otwartych celów, chęć „zrobienia czegoś fajnego na pierwszym miejscu” i brak jakiejkolwiek realnej presji, aby ją zrealizować… aby odpowiedzieć na dwa pytania:

Myślę, że potraktowanie projektów jako porażek, ponieważ nie zostały w 100% ukończone, wpłynie na twoją motywację i może naprawdę uniemożliwić ci podjęcie wspaniałej pracy. Zamiast patrzeć na nie jako na porażki, spróbuj pomyśleć o tym, czego się od nich nauczyłeś - jakie nowe języki / struktury znasz, jakie lekcje programowania nauczyłeś się, jakie masz umiejętności i jakie osoby / społeczności miałeś z nimi kontakt. Patrząc z tej perspektywy, rzadko można znaleźć osobisty projekt, który w żaden sposób nie przyczynił się do twojej wiedzy.

Przekonasz się, gdy jesteś na uniwersytecie lub w pracy, że istnieją dwie główne różnice, które zapewniają, że wykonasz swoje projekty. Po pierwsze, twoje cele są zazwyczaj dość dobrze określone - szczególnie podczas pierwszych dwóch lat studiów. Po drugie, wywierasz prawdziwą presję na ukończenie projektu - musisz to zrobić, aby zaliczyć klasę / moduł lub twój kierownik mówi ci, że projekt XYZ musi zostać przekazany zespołowi testowemu na określoną datę. Zapewnia to koncentrację, której nigdy nie byłem w stanie powielić na osobistych projektach.


2

Po pierwsze, jest to ważne dla samozadowolenia. Osiągnąłeś coś od zera do czystego stanu końcowego. Następnie możesz wrzucić jeden przedmiot do „stosu projektów”, a dla mnie zawsze była to ulga.

W swojej karierze, a ściślej podczas rozmów kwalifikacyjnych, dopóki nie skończysz swojego projektu, nie masz nic do pokazania ani rozmowy ... Pokazanie połowy projektu nigdy nie jest dobre. Może być wadliwy, brzydki lub po prostu nie działa. Nie możesz nawet wspomnieć o nich ankieterom, inaczej zapytają: „Dlaczego ich nie ukończyłeś?”… Jeśli odpowiesz „Nie mam czasu”, oznacza to, że nie możesz właściwie zaplanować swoich zadań, nie jesteś wytrwały. Co więcej, miałeś czas na rozpoczęcie innych projektów, więc twój argument byłby błędny. Musisz znaleźć sprytną odpowiedź ...


2

Byłem w podobnej sytuacji jak Jon Malcolm, ale marnowałem czas w niewłaściwych miejscach. W przypadku projektów osobistych postanowiłem obniżyć swoje standardy na rzecz pełnej funkcjonalności. To oznaczało brak ajax, brak lokalizacji, brak walidacji, brak uwierzytelnienia, brak paginacji, interfejs użytkownika barebone, brak testów jednostkowych i tak dalej. Po prostu uruchom część biznesową ... Nazywam to „linią prostą”. Rozwiązanie byłoby kompletne i powinno działać w idealnych warunkach. Gdy to zostanie zrobione, jeśli projekt będzie nadal interesujący, będę kontynuował iteracje refaktoryzacji, aż stracę zainteresowanie.


2

Mam podobne doświadczenie i ostatnie 5-10% nawet małego projektu dla zwierząt domowych może być zabójcą .

Moja rada, jeśli chcesz skończyć? Powiedz znajomym, współpracownikom, rodzinie lub wszystkim, którzy mogą być zainteresowani tą fajną nową rzeczą, nad którą pracujesz. Zaangażuj ich, zadawaj im pytania. Mamy nadzieję, że zyskasz kilku obserwujących, którzy będą pytać o twoje postępy. Presja znajomości zmotywuje cię do kontynuowania zwykłych, ale koniecznych kroków, aby wysłać swój projekt.


1

Wykończenie projektów odróżnia dzieci od dorosłych, pszenicę od plew, mężczyzn / kobiety od chłopców / dziewcząt.

„Prawdziwi programiści wysyłają”.


9
To także odróżnia pracę od zabawy.
Tom Anderson

1

Aby wiedzieć, czy musisz ukończyć projekt, czy nie, musisz ocenić wartość, którą otrzymasz, w porównaniu do czasu, jaki musisz w niego zainwestować, aby go zrealizować.

Jeśli wartość, którą możesz z niej wyciągnąć, jest niższa niż inwestycja , możesz rozważyć to w Sunk Costs .

W ekonomii i podejmowaniu decyzji biznesowych koszty utopione są kosztami retrospektywnymi (przeszłymi), które już zostały poniesione i których nie można odzyskać.

Zbyt wiele niedokończonych projektów prowadzi do marnotrawstwa . Odpady są jednym z najpotężniejszych wrogów lean .

To powiedziawszy, czasami lepiej porzucić projekt, aby skoncentrować swoje wysiłki na takim, który zapewni znacznie większy zwrot z inwestycji. Wiele osób kończy wszystko przeszkodą i nie łapie naprawdę dobrych okazji .


1

Prosty i prosty: jeśli chcesz go ukończyć, zakończ go! Jeśli nie chcesz, nie rób tego! Nie masz nikogo, kto czeka na dostawę, więc po co tyle męczyć? Robienie projektów hobbystycznych to nie to samo, co projekty branżowe. Są bardzo różne. Nikt nie zapyta cię, dlaczego nie ukończyłeś swoich projektów hobby, jeśli nie powiesz im, że zostawiłeś je niedokończone. W sieci unosi się miliard kodów projektów hobbystycznych. Myślisz, że ktoś naprawdę się o nich troszczy? (inni niż leniwi studenci univ szukający szybkiego i gotowego projektu na ostatni rok)


1

Seth Godin napisał wiele o nawykach wysyłki:

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

Myślę, że to ważne i oto dlaczego: nie wystarczy zrobić projekt dla siebie, nawet jeśli może to mieć dla ciebie jakąś wartość edukacyjną. Jeśli nigdy nie dzielisz się swoim prezentem ze światem, jesteś jak artysta, który nikomu nie pokazuje swoich obrazów.

Z tym też mam problem. Gdybym musiał przeanalizować przyczynę, powiedziałbym, że mam tendencję do nadmiernej inżynierii i przesadnego myślenia o moich osobistych projektach. Przyjmę zbyt wiele założeń dotyczących problemu, z których wiele jest nieważnych, a następnie włożę zbyt wiele pracy, zanim dojdę do tej realizacji. To motywuje i tracę impet. Jest jeden pomysł, nad którym powtarzałem przez ostatnie kilka lat i powtórzyłem ten wzór kilka razy.

Mój plan na przyszłość dotyczący wszystkich osobistych projektów polega na skupieniu się na niewielkim podzbiorze ogólnej wizji, wdrożeniu go i opublikowaniu (niezależnie od tego, czy jest to projekt github typu open source, strona internetowa, artykuł z serii artykułów).

Jeśli więc nadal będę wystarczająco zmotywowany, powtórzę to ponownie. Mam nadzieję, że satysfakcja z wysyłki utrzyma mnie przez dodatkowe iteracje.


0

To bardzo ważne.

Rozumiem, że wymieszanie czegoś jest dowodem koncepcji, a następnie pozostawienie go tam. W porządku. Jednak klienci nie zapłacą za nic mniej niż ukończony projekt.

Najważniejsze jest to, że ... Sprzedaż napędza wszystko . Bez sprzedaży nie ma pensji. Bez sprzedaży nie ma poprawy kapitału. Bez sprzedaży nie ma firmy. Sprzedaż pochodzi od klientów. Klienci płacą tylko wtedy, gdy są zadowoleni. Satysfakcja oznacza, że ​​gotowy projekt działa i działa dobrze.

Aby zastosować analogię do piłki nożnej: Czerwona strefa to ostatnie 20 jardów przed linią bramkową. To najbardziej wyczerpująca część zdobywania przyziemienia. To samo dotyczy projektu programistycznego. Ostatnie 20 procent jest często najtrudniejsze do ukończenia, ale trzeba to zrobić.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.