Chcę wiedzieć, jak ważne jest programowanie w wolnym czasie? Czy konieczne jest przepracowanie 9-5 jako programisty, a następnie powrót do domu i praca nad hobby, aby zostać lepszym programistą?
To powiedziawszy, wiem, że poprawiasz się tylko dzięki programowaniu.
Czy potencjalni pracodawcy biorą pod uwagę program hobby podczas wywiadu, czy pytają o to z ciekawości?
Czuję się winny, że nie mam projektu hobby, ale wszystko, co mogę wymyślić, zostało już zrobione. Więc mam na ten temat dwa wątpliwości, zacząć coś, co już zostało zrobione, czy zostawić to, dopóki nie wymyślę czegoś oryginalnego?
Odpowiedzi:
Poczucie winy jest szalonym powodem do rozpoczęcia projektu programistycznego. Prawdopodobnie to dobry sposób na rozpoczęcie nienawiści programowania. Pracować nad czymś, bo ty chcesz , a nie dlatego, uważasz pan ma .
Bah! Kogo to obchodzi, jeśli już zostało to zrobione? Zrób to jeszcze raz! Zrób to lepiej! Lub zaakceptuj, że możesz nie być w stanie zrobić tego lepiej i i tak to zrobić. Gdzie byłby Microsoft, gdyby powiedział „cóż, ktoś już stworzył bazę danych / arkusz kalkulacyjny / edytor tekstu / system operacyjny / IDE / menedżer projektu / menedżer pieniędzy / oparty na języku C dynamiczny obiektowy język / przeglądarka internetowa / serwer WWW / odtwarzacz muzyki / platforma mobilna / wyszukiwarka, więc szukamy czegoś innego ... ”?
Poważnie, jeśli napiszesz serwer sieciowy, prawdopodobnie nie przerwie to Apache, ale na pewno nauczysz się cennych lekcji. Jest mało prawdopodobne, aby sprzedać Angry Birds, ale pisanie prostej małej gry wideo też cię wiele nauczy.
źródło
Myślę, że projekty hobby są ważne
Używam projektów hobbystycznych do testowania teorii, praktyk projektowych, nowych ram, których nie dostaję w moim 9-5. tj. programowanie funkcjonalne, algorytmy, wzorce projektowe, nowe ramy, nowe języki itp.
Może to oznaczać różnicę w tym, jak szybko i skutecznie mogę poradzić sobie z nowym projektem w pracy, a nawet różnicę w odbieraniu nowego projektu od klienta lub jego brakowaniu, ponieważ nie wiedziałem wystarczająco dużo o problematycznej dziedzinie.
Tylko codzienne grindowanie 9-5 może zastać cię jako programistę, jeśli nie wprowadzasz nowych rzeczy ani nowych pomysłów. Dla mnie robienie projektów hobbystycznych jest sposobem na koniec uczynienia mnie lepszym, mądrzejszym i bardziej wydajnym programistą.
Przyszli ankieterzy biorą pod uwagę projekty hobbystyczne
Z mojego doświadczenia wynika, że wykonałeś projekt hobby w powiązanej technologii, z której obecnie korzysta Twój pracodawca lub „patrzy” na to. Otrzymujesz dodatkowe wyróżnienia za zapoznanie się z daną technologią. Jest to szczególnie istotne w przypadku nowych technologii, które dopiero znalazły się w głównym nurcie, w których szanse gry są wyrównane pod względem doświadczenia technologicznego.
źródło
Problem z obecną pracą polega na tym, że do wykonania funkcji zawodowej potrzebny jest jedynie ograniczony zestaw umiejętności. Świat programowania jest tak rozległy, że łatwo utknąć w rutynie z roku na rok. Dzięki programowaniu hobbystycznemu możesz rozgałęzić się i być gotowym na inne technologie, zanim nadarzy się okazja na aktualnej pozycji lub w innym miejscu.
Należy jednak pamiętać, że programiści hobbystyczni nie tylko programują.
Ale czasami inspirują się do napisania programu, który zaspokoi ich własne potrzeby; poczucie winy programisty, ponieważ ma dokładnie takie funkcje, jakich chcą. A potem męczą się i wyrzucają. To luksus hobby!
źródło
IMHO niekoniecznie same w sobie są projektami hobbystycznymi, które czynią cię lepszym (choć na pewno nie bolą), ale pozostanie otwartym i poświęcanie czasu na naukę nowych rzeczy w ogóle. Jak zauważył @Rick, może on przybierać wiele różnych form oprócz faktycznego kodowania. Możesz np. Czytać książki - ale jeśli masz laptopa, a nawet kod - podczas dojazdów do pracy lub z pracy.
Zauważ też, że absolutnie trzeba zachować równowagę .
Jeszcze jedno: łatwo jest (sugerować) pracować nad projektami hobbystycznymi, gdy jeden jest młody i samotny. Na późniejszych etapach możesz założyć rodzinę, co wyeliminuje większość twojego wolnego czasu na wiele lat (przynajmniej jeśli chcesz to zrobić dobrze - a o co inaczej?). Będziesz więc zmuszony efektywniej zarządzać czasem, aby zaoszczędzić trochę cennego czasu na naukę.
źródło
Wykonuj projekty poboczne! Nie myśl o tym, jak o wprowadzeniu czegoś nowego do sieci, myśl o tym jak o ćwiczeniu swoich umiejętności, piaskownicy do nauki / opanowywania technologii i podejść.
Jako pracodawca zawsze pytałem moich potencjalnych współpracowników, czy wykonują jakieś interesujące projekty poboczne. I nawet jeśli nie były to spektakularne pomysły, ale ich autorzy wykazywali podekscytowanie - zawsze był to duży zawodowiec.
źródło
Programiści, których spotykam, którzy mają trudności z nadążaniem za nowymi technologiami, to faceci, którzy traktują to jako pracę. Ich odpowiedniki - ci, którzy nie nadążyć z nowych rzeczy są tymi, którzy robią rzeczy w domu.
źródło
Mówisz, że wszystko, o czym możesz pomyśleć, zostało już zrobione, ale czy każde narzędzie, którego używasz, działa tak, jak chcesz? Często stwierdzam, że narzędzia robią prawie, ale nie całkiem, wszystko, czego chcę, a moje projekty hobby wynikają z prób wypełnienia luki. Nie zawsze mi się to udaje, ale lubię próbować, a jako użytkownik końcowy nie mam problemów z motywacją ani specyfikacjami
źródło
Jeśli naprawdę masz zainteresowanie i energię dla tych projektów, zrób to. Ale nie posunąłbym się nawet do stwierdzenia, że jest to konieczność dla każdego poważnego programisty. Jeśli pracujesz w pełnym wymiarze godzin przy programowaniu, robienie tego również w wolnym czasie niekoniecznie zwiększy twoje zainteresowanie nim, może również mieć odwrotny skutek. Osobiście zajmowałem się projektami hobbystycznymi, ale przestałem. Programowałem już 5 dni w tygodniu i wydawało mi się, że zdrowsze jest robienie czegoś zupełnie innego w wolnym czasie.
Ponadto, jeśli twój pracodawca nie daje ci miejsca na testowanie nowych rzeczy w pracy, studiowanie i ciągłe doskonalenie, prawdopodobnie powinieneś poszukać nowej pracy zamiast robić to w wolnym czasie. Dobry pracodawca zda sobie sprawę, że w ich własnym interesie leży odświeżenie, doskonalenie i poszerzanie umiejętności.
Z punktu widzenia pracodawcy (jestem jednym z nich) projekty hobbystyczne będą wartościowe, jeśli nie masz faktycznego doświadczenia zawodowego. Wszystkie projekty związane z hobby i szkołą będą wtedy bardzo ważne jako punkt odniesienia podczas rozmowy kwalifikacyjnej.
Ale jeśli masz doświadczenie, są one mniej istotne: chociaż mogą wskazywać na pasję do twojego handlu, mogą jednocześnie wskazywać, że jesteś trochę nerd. Z mojego osobistego doświadczenia nie mogę znaleźć żadnego związku między projektami hobbystycznymi a dobrymi / złymi kandydatami, nie sądzę, aby były one szczególnie istotne, chyba że jesteś świeżo po szkole starając się o pierwszą pracę.
źródło
Jestem bardziej zaangażowany w quizy i podobne małe fragmenty kodu niż projekty w pełnej skali (choć staram się pracować nad niektórymi projektami OSS, jeśli mam czas). Więc dla mnie nie ma zbyt wiele wymówki, by powiedzieć, że nie mam świetnego pomysłu na projekt. Po prostu napisz solver Sudoku i spróbuj zaimplementować coś takiego jak Dancing Links, aby przyspieszyć.
To, jak ważne są dla Ciebie, aby stać się lepszym programistą, może zależeć od Twojej pracy. Jeśli jest to już bardzo wymagające, możesz przejść wszystkie potrzebne szkolenia. W przeciwnym razie wybór odpowiedniego projektu (lub quizu do rozwiązania) nauczy Cię dowolnej ilości nowych rzeczy i pozostanie w kontakcie z szerokim zakresem wiedzy, której nie oferuje wiele miejsc pracy, ponieważ często ograniczasz się do korzystania z niewielkiego zestawu narzędzia dla jasno określonej domeny.
I tak, niektóre firmy są poważnie zainteresowane twoimi projektami. Jeśli nic więcej, dają mnóstwo okazji do rozmowy o czymś, co bardzo dobrze znasz podczas wywiadu.
źródło
Same projekty hobby nie będą miały większego znaczenia w większości wywiadów. Istnieje kilka osób, które dbają o to, żeby robić kodowanie jako hobby, ale większość nie. JEDNAK umiejętności nabyte podczas programowania hobby mogą być ważne w rozmowie kwalifikacyjnej!
Dodatkowe programowanie z boku na pewno będzie przydatne w programowaniu, aż do momentu wypalenia zawodowego ... Jednak nawet poza kwestią wypalenia zawodowego należy również wziąć pod uwagę, że pracodawcy często szukają innych umiejętności poza programowaniem. Jeśli programujesz 24 godziny na dobę, nie rozwijasz tych INNYCH umiejętności! Saldo... :-)
źródło
Po pierwsze, myślę, że projekty hobbystyczne są ważne, ponieważ w przeciwnym razie stagnacja i utrata zabawy.
Moja propozycja znalezienia nowego projektu hobby:
Naucz się nowego języka programowania, aby wykonać swój projekt hobby. Np. Dobrym celem jest próba nauki jednego nowego języka rocznie (im więcej wiesz, tym łatwiej)
Najlepszy byłby taki, który wydaje ci się totalnie dziwny. Ponieważ im bardziej obcy ci na to wygląda, tym bardziej poszerza horyzont.
Również znajomość wielu języków o różnej składni pozwala skupić się na składni, ponieważ jest ona ważna podczas programowania. Jest to tylko sekwencyjna reprezentacja drzew składniowych i mało istotna. To poprawia koncentrację na semantyce, co jest znacznie bardziej przydatne w praktyce.
Czy próbowałeś funkcjonalnego języka programowania? Czy próbowałeś rozproszonych języków programowania? Języki dopasowywania wzorców?
Bardzo zalecane jest znalezienie małych projektów do pracy na Project Euler .
źródło
Jestem amatorskim programistą internetowym, który nie ma (jeszcze) wykształcenia wyższego i pracuje nad własnym projektem. Kilka tygodni temu zostałem zaproszony na moją pierwszą rozmowę o pracę programistyczną, ponieważ pracowałem nad własnym projektem.
Biorąc pod uwagę te niepotwierdzone dowody, praca nad moim osobistym projektem „hobby” była najlepszą rzeczą, jaką zrobiłem, aby rozwinąć swoją karierę rozwojową… po zapisaniu się na studia.
Tak, ankieterzy z pewnością biorą pod uwagę twoje osobiste projekty, w przeciwnym razie nie zawracaliby sobie głowy rozmową ze mną.
źródło
Inni wiele opisywali, ale chcę się skupić na tej części:
Wydaje mi się, że nie ma to sensu w „projekcie hobby”. Z pewnością prawdą jest, że wiele projektów hobbystycznych powstaje dla innych, a przynajmniej z myślą o publicznej konsumpcji - projekty te wymagają pewnego czasu konsekwentnej pracy i z tego powodu mogą być zniechęcające. W końcu, kto chce zrobić jeszcze jedno, niedostatecznie wspierane, niskiej jakości coś, co ostatecznie zostanie porzucone po kilku miesiącach?
Ale nie ma powodu, dla którego twój projekt hobby powinien zrobić coś przydatnego dla każdego. Na przykład niedawno zacząłem uczyć się języka Haskell tylko dlatego, że tak drastycznie różni się od imperatywnych języków, do których jestem przyzwyczajony, i naprawdę łatwo go skonfigurować. Właśnie zacząłem uczyć się języka asemblerowego Redcode , używanego w grze programowej Core War , znów z ciekawości.
To z kolei skłoniło mnie do zastanowienia się nad stworzeniem wtyczki Notepad ++, która zapewni lepsze funkcje podświetlania składni dla Redcode, co skłoniło mnie do rozważenia nauczenia się trochę C ++ . Opierając się na mojej porównywalnej znajomości .NET, zastanawiam się nad przygotowaniem się do Visual C ++ .
Chodzi o to, że to tak naprawdę „nie ma znaczenia”, przynajmniej nie jako projekt. Do diabła, nie jestem pewien, czy mógłbyś nawet nazwać to projektem samym w sobie , tak samo jak kupą rzeczy, którymi się bałam, bo to przykuło moją uwagę. To znaczy, trzeba trochę czasu i organizacji, aby upewnić się rzeczywiście dostać coś z niego, ale nikt nie obchodzi, jeśli przestanie mając czasu dla Haskell raz rozpoczęciem szkoły.
I nikogo to nie obchodzi, jeśli okaże się, że tworzenie wtyczek dla Notepad ++ jest trudniejsze niż się spodziewałem, i poddaję się - w rzeczy samej, spojrzałem na Perla, zanim zagłębiłem się w Redcode, i dość szybko go porzuciłem, ponieważ miałem trudności z uzyskaniem środowisko skonfigurowane poprawnie. Czy to pokazało brak wytrwałości? Tak. Ale nikogo to nie obchodzi, ponieważ to moje hobby , a to oznacza, że mogę grać z tym, na co mam ochotę.
Nie musisz więc wybierać jakiegoś projektu hobbystycznego, który nauczy Cię umiejętności zbywalnych - to po prostu zamienia twój wolny czas w bardziej nieodpłatny czas pracy. Umiejętności wynikają z tego, co robisz, ale to nie jest powód . Rozumiem teraz programowanie deklaratywne, sposób działania języków asemblera i sposób, w jaki programy używają bibliotek DLL. Nauczyłem się wielu rzeczy na temat wiersza poleceń systemu Windows i innych rzeczy, o których nie pomyślałbyś, że są powiązane z czymkolwiek, o czym wspominałem do tej pory.
Chodzi o to, aby znaleźć coś zupełnie nowego i zobaczyć, czy to jest tak interesujące, jak się wydaje. Jeśli tak, świetnie, a jeśli nie, przejdź dalej. Czy kiedykolwiek miałeś choćby najmniejszą ciekawość kompilatorów lub tłumaczy? Idź spójrz na LOLCODE . Jeśli sprawia ci to tyle samo radości, co mnie, to czas zacząć uczyć się o kompilatorach . Hej, może powinieneś wrócić i pomyśleć o podświetlaniu składni. W rzeczywistości będzie to prawdopodobnie kolejny projekt, który rozpocznę.
Jeśli to nie twoja sprawa, wypróbuj coś niższego niż zwykle. Lub wyższy poziom. To nie ma znaczenia Jedyną rzeczą, która robi względu na to, że gdy jesteś na to patrzeć, myślisz „fun!”
źródło
Te projekty są koniecznością dla poważnego programisty, szczególnie jeśli pracujesz jako freelancer.
Zamiast pracować 6 dni w tygodniu, 1 dzień odpoczynku, możesz pracować 5 dni w tygodniu, 1 dzień na testowanie nowych teorii i funkcji oraz 1 dzień odpoczynku.
Może się wydawać, że dzień testowania jest stratą czasu, ale dostrzeżesz jego zalety, gdy dostaniesz możliwość wdrożenia nowej funkcji w języku programowania, którą już przetestowałeś w jednym z tych dni.
źródło
Angażuję się w przeprowadzanie wywiadów i zatrudnianie w moim sklepie. „Projekt hobby” jest dla nas zawsze zaletą.
Posiadanie mniej lub bardziej ukończonego projektu osobistego pokazuje, że naprawdę lubisz tworzyć oprogramowanie, i pokazuje, że masz motywację do uczenia się nowych rzeczy i doskonalenia swoich umiejętności.
Jeśli chcesz zrobić naprawdę pozytywne wrażenie w wywiadzie, zabierz laptopa ze swoim osobistym projektem. Pokaż to ankieterowi, powiedz mu o wyzwaniach, które napotkałeś podczas jego tworzenia, pozwól mu zobaczyć Twój kod. Powiedz im z góry, gdzie są nierówne krawędzie i jakie mogą być twoje przyszłe plany dotyczące projektu.
Zostaniesz zapamiętany w dobry sposób.
źródło
Uważam, że programowanie w wolnym czasie służy dwóm celom:
1) Pozwala mi to osiągnąć coś osobiście satysfakcjonującego, bez ograniczeń związanych z projektami pracy. Jest to szczególnie ważne, gdy mam do czynienia z trudnymi i frustrującymi problemami z moimi projektami.
2) Daje mi to możliwość poszerzenia i doskonalenia umiejętności programistycznych, ponieważ mogę dowolnie tworzyć.
Mimo wszystko uważam, że ważne jest także zrównoważenie tego z niektórymi hobby nie komputerowymi. Dla mnie to utrzymanie potoku i szlaków za moim domem.
źródło
Posiadanie aplikacji dla zwierząt domowych to świetny sposób, aby zmusić się do nauki części obecnej platformy, o których być może nie pomyślałeś. Na przykład możesz być świetnym programistą C # pracującym nad aplikacją ASP.Net w pracy. Ale jeśli masz w swoim zespole faceta zajmującego się CSS, być może nigdy nie nauczysz się go poprawnie. Jeśli jednak masz projekt internetowy dla zwierząt domowych, musisz nauczyć się robić CSS. Dotyczy to całego szeregu technologii, na które natrafisz, jeśli masz własny projekt, w którym jesteś jedynym programistą.
Świetny opis wszystkich zalet aplikacji dla zwierząt znajdziesz w tym poście .
źródło