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?
źródło
Odpowiedzi:
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.
źródło
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;)
źródło
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.
źródło
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.
źródło
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ę.
źródło
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.
źródło
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ź ...
źródło
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.
źródło
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.
źródło
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ą”.
źródło
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 .
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 .
źródło
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)
źródło
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.
źródło
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ć.
źródło