W wolnym czasie nie programuję. Czy to sprawia, że ​​jestem złym programistą?


387

Wiele blogów i porad w Internecie wydaje się sugerować, że aby zostać świetnym programistą, wykonywanie tylko codziennej pracy nie wystarczy. Na przykład powinieneś przyczyniać się do projektów typu open source w wolnym czasie, pisać aplikacje na smartfony itp. W rzeczywistości wiele z tych porad wydaje się sugerować, że jeśli nie lubisz programować wystarczająco dużo, aby robić to przez cały dzień, to jesteś prawdopodobnie w złej karierze.

To nie brzmi jak prawda. Lubię swoją pracę, ale kiedy wracam do domu z biura, nie mam nastroju, aby wskoczyć prosto na komputer i zacząć kodować do snu. Mam tylko określoną liczbę godzin wolnego czasu każdego dnia i wolę spędzać je na innych hobby, spotykając się z przyjaciółmi lub wychodząc na zewnątrz niż przed komputerem.

Mam problem z programowaniem i od czasu do czasu robię hakowanie poza pracą. Dbam o swój rozwój osobisty i spędzam czas na czytaniu blogów i książek technicznych, aby nadal uczyć się i być lepszym. Ale to nie rozciąga się na to, że chcę wykorzystać cały swój wolny czas na kodowanie.

Czy to oznacza, że ​​nie jestem prawdziwym programistą? Czy można zostać dobrym programistą bez dodatkowego wykonywania pracy? Byłbym bardzo zainteresowany, aby usłyszeć, co myślisz.

Aktualizacja: dziękuję wszystkim za komentarze i odpowiedzi. Wiele dobrych myśli i rad!


133
Myślę, że to czyni cię bardziej normalnym, prawdopodobnie masz więcej połączenia z tym, co my, geekowie, nazywamy „prawdziwym życiem”. Doceń to.
Orbling

146
@Orbling Jakie jest to „prawdziwe życie”, o którym mówisz? Czy to jest podobne do WoW? Czy działa na 64-bitowym systemie operacyjnym?
biziclop

18
@biziclop - To jak WOW z lepszą grafiką i grą, która jest o wiele bardziej nużąca.
ChaosPandion,

39
@ChaosPandion: Questy wciągają r / l, długie, nudne, a łupy zdecydowanie nie są epickie.
Orbling

4
Ze względu na wydajność zalecam eksperymentowanie z nowymi rzeczami i pracę nad osobistymi projektami, kiedy powinieneś pracować. W ten sposób nadal masz ograniczony czas wolny. :-)
Carson63000,

Odpowiedzi:


446

IMO to podejście pochodzi od ludzi, którzy mają okropne, wysysające duszę prace, w połączeniu z kiepskimi umiejętnościami zarządzania czasem. Jeśli w zasadzie piszesz formularze internetowe przez cały dzień, wyjdź i znajdź trudniejszą pracę lub rozpocznij własną.

To jest ta rzecz. Muzyk koncertowy (wiolonczelista / pianista / cokolwiek), ćwiczy co najwyżej 6 godzin dziennie. Większość ćwiczy tylko kilka godzin dziennie. na najwyższych poziomach

Ludzie mówią, że programuj więcej, ponieważ uczysz się więcej, ale to zasłona dymna. 8 godzin dziennie to dużo .

Postęp NIE jest liniowy. To logarytmiczne:

wprowadź opis zdjęcia tutaj

Jedynym powodem, dla którego muzyk może ćwiczyć dłużej niż 3 godziny, jest to, że musi wycisnąć dodatkowy 1%, który daje im ta godzina. Jeśli uważasz, że dotyczy to Ciebie, ponownego rozwiązania problemu CS rozwiązanego 2 dekady temu, masz do dyspozycji kompleks prima-donna.

Pracowałem wcześniej w firmach szybkowarów i uwierzcie mi, faktyczna ilość pracy, jaką wykonują ci faceci, nie jest lepsza niż firma taka jak 37signals, która nakłada ograniczenia na ilość pracy: http://37signals.com / svn / posts / 996-dlaczego-i-love-working-with-family-people

Ostatecznie dzieje się tak, że możesz być przy komputerze przez 10-12 godzin, aw biurze przez 2 kolejne, ale nie obejmuje to 90-minutowego lunchu, który spędziłeś, 2 godzin spędzonych na przeglądaniu dyskusji fora, a godzinna przerwa polegała na graniu w jedną z wielu gier w biurze (piłkarzyki, bilard, yada ...).

Spójrz na ten wykres. Teraz wróć do mnie.

Twój umysł faktycznie ma możliwość rozwinięcia się znacznie bardziej, jeśli zaangażujesz się w inną działalność: Naucz się grać na instrumencie . Ucz się języka obcego . Lepiej jeszcze wyjdź i poćwicz i połącz się z prawdziwymi żywymi ludźmi .

O logarytmicznej naturze produktywności:

W słynnym studium młodych skrzypków z 1993 roku, badacz wydajności Anders Ericsson stwierdził, że najlepsi z nich ćwiczyli w ten sam sposób: rano w odstępach co nie więcej niż 90 minut każda, z przerwą między nimi. Ericcson znalazł ten sam wzór wśród innych muzyków, sportowców, szachistów i pisarzy.

Dla realnej produktywności mniej oznacza naprawdę więcej

To właściwie dobrze znana zasada w świecie biznesu. Dziwi mnie, że więcej programistów o tym nie słyszało.

Aktualizacja: Więcej na temat badania Ericsson.

Całe założenie, że potrzeba 10 000 godzin / 10 lat, aby stać się biegłym, faktycznie pochodzi z badań przeprowadzonych przez Ericsson, a nie z Malcom Gladwell.

Jak wszyscy wiemy, możesz mieć 10-letnie doświadczenie powtórzone 10 razy ... więc samo trzymanie tyłka przez 10 lat nie kwalifikuje się. Co nie kwalifikują się co Ericsson wywołuje zamierzone praktyki .

Odkrył, że ta zasada sprawdza się w lekkiej atletyce, muzyce, piśmie, szachach i matematyce. Ponadto definiuje celowe ćwiczenia jako tak wymagające, że nawet na najwyższych poziomach możesz wydać tylko około 4 godzin dziennie . W przeciwnym razie będziesz cierpiał z powodu przetrenowania lub wypalenia zawodowego. Znów zdaje sobie sprawę, że przychody z celowej praktyki maleją do około 4 godzin.

Jeśli chodzi o brak dobrej / trudnej pracy:

Bzdury. Albo znajdź lepszą pracę, albo oto pomysł: zamień swoją obecną pracę w coś, czym nie jest , przynajmniej teraz.

Jeden z najlepszych programistów, których znałem, podjął pracę jako programista konserwacji w starszym systemie, który składał się z dziesiątek programów i setek tysięcy wierszy kodu. Większość z nich była zhakowana przez lata tak bardzo, że można powiedzieć, że nie było już żadnego spójnego projektu.

To była niemal beznadziejna, ślepa praca. Kierownictwo chciało, abyś trzymał głowę nisko i po prostu naprawiał te cholerne błędy. Dobrzy programiści pracowali nad projektem greenfield. Ludzie albo przyjechali tutaj, aby odpocząć od pozostających dni do przejścia na emeryturę, albo zdobyli kilka lat doświadczenia, zanim przystąpili do tworzenia nowych aplikacji. Podczas gdy większość programistów narzekałaby na brak rozwoju kariery lub na możliwość uczenia się nowych rzeczy, na brak ekscytujących projektów do pracy, lub bardziej ogólnie, narzekanie na to, że nikt im nie pozwala , ten facet po prostu usiadł i zaczął robić praca, którą należało wykonać.

I w ciągu 2 lat przekształcił ten system z cholernego piekła kodu spaghetti w coś pięknego i działał jak szwajcarski zegarek. Transformacja była tak kompletna, że ​​wiceprezes oddziału zaczął zwracać coraz większą uwagę na istniejący projekt i zaczął kwestionować wartość projektu typu greenfield. Chociaż nie miał tytułu, ludzie operacji udali się do niego jako de facto lider grupy. Kiedy odszedłem, wiceprezydent mówił o stworzeniu dla niego nowej roli architekta systemów ...

Nie jestem pewien, co się potem z nim stało, ale nauczył mnie kilku bardzo ważnych lekcji:

  1. Twoja praca jest tym, co robisz, a wszędzie są interesujące problemy do rozwiązania . Jeśli nie znosisz pisania ekranów CRUD, rozwiąż problem, automatycznie je generując.

  2. Nie siedź i czekaj, aż nadejdą okazje. Są szanse, że nigdy nie będą.


Komentatorzy: komentarze mają na celu poszukiwanie wyjaśnień, a nie dłuższą dyskusję. Jeśli masz rozwiązanie, zostaw odpowiedź. Jeśli Twoje rozwiązanie jest już opublikowane, głosuj za nim. Jeśli chcesz omówić to pytanie z innymi, skorzystaj z czatu . Aby uzyskać więcej informacji, zobacz często zadawane pytania .

30
To i wiele innych odpowiedzi kładą zbyt duży nacisk na programowanie jako „ćwiczenie”. Aby kontynuować porównanie muzyków, wierzcie lub nie, ale grają też dla przyjemności. To, czego ankieterzy szukają kogoś, kto programuje w wolnym czasie, nie jest kimś, kto odczuwa stałą potrzebę ciągłego ćwiczenia. Szukają kogoś, kto jest pasjonatem i naprawdę cieszy się tym, co robi. Jeśli jesteś pasjonatem swojej pracy, często zamieniasz ją również w hobby i ciężko jest od niej uciec. Nie różni się niczym od zbierania innych hobby.

7
Przykład muzyka nie jest zbyt dobry. Kiedy muzyk osiąga wysoki poziom umiejętności, kiedy nauczył się całej teorii, kiedy może łączyć piosenki z zamkniętymi oczami, kiedy może grać na ponad 9000 instrumentach jednocześnie, nie ma już nic do roboty. Programista lub informatyk musi przez całe życie uczyć się o nowych technologiach. Zawsze jest coś nowego do nauczenia się. Odpowiadając na pytanie, facet, który programuje przez cały dzień i nie ma życia towarzyskiego, jest o wiele lepszy niż facet, który nie programuje w wolnym czasie.

2
@GabrielLlamas Teorie muzyczne są podstawowymi zagadnieniami, takimi jak podstawy algorytmów, przetwarzanie rozproszone i systemy operacyjne, których uczymy się na studiach. Te podstawy nie zmieniają się tak bardzo w nadgodzinach. W ciągu około 20 lat mieliśmy już model klienta i serwera, a teraz nadal mamy model klienta i serwera. Tak więc podstawy klienta i serwera nadal obowiązują, tylko wysoki poziom rzeczy szybko się zmienia. Możesz myśleć o różnych instrumentach jako o różnych technologiach, takich jak HTML, JavaScript. Ale jeśli potrafisz zastosować podstawy, wszystko będzie podobnie.
David Gao

1
Innym przykładem jest to, że kiedy już wiesz, jak programować w c, nauka c ++ nie będzie trudna. Pamiętam, że rozwiązałem pytania programistyczne mojego współlokatora za pomocą Schematu, nie znając żadnego Schematu. Nauka schematu wcale nie była dla mnie trudna, ponieważ wiem na wysokim poziomie, jaki był funkcjonalny język.
David Gao

150

Ta wiadomość zawiera więcej ukrytych informacji.

Wielu entuzjastycznych programistów lubi odkrywać rzeczy, eksperymentować, podążać za swoimi pomysłami, w ten sposób uczymy się i zdobywamy nasze umiejętności i wizję.

Zazwyczaj nie możesz śledzić swoich zainteresowań w godzinach pracy. Po prostu rób rzeczy, które ci każą i to wszystko. Tylko nieliczni z nas mają szczęście robić w pracy to, co robilibyśmy osobiście, nawet jeśli nie otrzymalibyśmy wynagrodzenia.

Dlatego jeśli nie robisz nic więcej, nie rozwijasz swojego potencjału. I to jest właśnie problem.


2
wow, to wielka ulga, ponieważ czasami czuję, że jestem zainteresowany poznaniem innego aspektu programowania, ale praca sprawia, że ​​wszystko wydaje się grind.
melaos

3
Prawdziwe. Należy pamiętać o wszelkich umowach wynalazczych, które podpisałeś podczas przyjmowania. Nie korzystaliśmy z nich, ale miałem ustną umowę z moimi programistami: jeśli jest poza godzinami pracy i nie konkuruje bezpośrednio z firmą, dobrze się bawić. Nie przeszkadzało mi nawet to, czy używali sprzętu firmowego, chociaż panowała ogólna zgoda, że ​​„czystsze” jest utrzymanie go w domu.
Peter Rowell

3
Dobrze jest śledzić swoją ciekawość poza godzinami pracy. Może to polegać na automatycznym wdrażaniu kolejnej wersji systemu Windows w całej firmie w ciągu jednej nocy (Mwah hah hah). Lub może to być fotografia, warzenie piwa lub wioślarstwo. Zewnętrzne zainteresowania sprawiają, że jesteś bardziej zaokrąglony. Nie musi to być związane z twoją codzienną pracą.
szybko_nie

5
-1 Jak zauważyli inni w innych odpowiedziach i komentarzach, oznacza to, że nie można realistycznie znaleźć dobrej, przyjemnej i wymagającej pracy. Z mojego osobistego doświadczenia nie jest to prawdą. Do tej pory nauczyłem się wielu nowych rzeczy w większości moich prac. IMHO to kwestia osobistego podejścia, przynajmniej w takim samym stopniu, jak kultury firmy.
Péter Török

26
Jeśli lubisz programować i nie lubisz swojej pracy, powinieneś spędzić wolny czas szukając lepszej pracy.
nikie

70

Nie czyni cię to złym programistą, ale niestety nadal musisz konkurować z tymi, którzy to robią.

Przeczytaj to na blogu Setha Godina :


Nierozsądny

Nieuzasadnione jest wstawanie z łóżka w śnieżny dzień, kiedy szkoła została odwołana, i zamienianie przestoju w sześć godzin pracy w dodatkowym laboratorium fizyki kredytowej.

Nieuzasadnione jest wprowadzanie produktu technologicznego, który przeskakuje krzywą rozwoju o dziewięć miesięcy, dzięki czemu nowa generacja pojawia się znacznie wcześniej niż rozsądniejsi konkurenci.

Nie jest rozsądne, aby firma transportowa odbierała telefon przy pierwszym dzwonku.

Założenie nowej firmy bez uzasadnienia nie jest uzasadnione.

Nie można oczekiwać, że w gabinecie lekarskim będzie znajdować się miły i pomocny personel recepcji.

W dzisiejszej gospodarce nie ma sensu rezygnować z dobrego koncertu, nawet jeśli chcesz zrobić coś odważnego i oryginalnego.

Nauczyciele nie mogą się spodziewać, że możemy pozwolić dzieciom z mniej uprzywilejowanych miast w mieście na radzenie sobie dobrze w szkole średniej.

Nieuzasadnione jest traktowanie pracowników i konkurentów z szacunkiem, biorąc pod uwagę presję, jaką wywieracie.

Nie można oczekiwać, że ktokolwiek oprócz świetnej kobiety, zarówno z zapałem, jak i zaletami, mógłby zrobić wszystko, co ważne w świecie, w którym talia jest zestawiona ze zwykłymi ludźmi.

Nieuzasadnione jest poświęcanie lat życia na tworzenie produktu, którego większość ludzi nigdy nie doceni.

Na szczęście świat jest pełen nierozsądnych ludzi. Niestety musisz z nimi konkurować.


13
Tak, nieuzasadnione jest także pracować 8 godzin dziennie, a potem wracać do domu, aby trochę więcej pracować. Dla kogo pracujesz? I dlaczego? Musisz odpowiedzieć na te pytania (kto płaci? Dlaczego? Aby uzyskać?
szybko_now

37
Zakładasz, że programiści nie są w pracy wyzwaniami i nie lubią ich pracy. To nie prawda. Ludzie, którzy programują tylko w pracy, nie programują w domu, ponieważ są już w pełni usatysfakcjonowani
Nikt

8
-1, ponieważ a) cytaty nie są bezpośrednio związane z tym pytaniem, b) IMO (większość) te rzeczy wcale nie są nierozsądne. Wiele rozsądnych ludzi może myśleć zarówno długoterminowo, jak i krótkookresowo. OTOH większość z nas ma doświadczenie w wymyślaniu ładnych (i fałszywych) racjonalnych wyjaśnień naszego lenistwa / niekompetencji / nieostrożności :-(
Péter Török

13
-1 Nieuzasadnione jest nazywanie wielu rozsądnych rzeczy nierozsądnymi. Nic nie dodaje do pytania i po prostu brzmi ok, głównie jak wiele rzeczy, które pisze Seth Godin.
Vitor Py

5
„Nie można oczekiwać, że w gabinecie lekarskim będzie znajdować się miły i pomocny personel recepcji”. Nie, nie jest. Nieuzasadnione jest to, że lekarze pobierają opłatę za to, co robią, a następnie poddają nas niegrzecznym pracownikom biura, długo czekają w swoich biurowych poczekalniach i okazują brak szacunku osobiście.
GreenMatt

57

Aby odpowiedzieć na postawione pytanie: Brak programowania w wolnym czasie nie czyni cię złym programistą, jednak programowanie w wolnym czasie może uczynić cię lepszym programistą.

Programowanie w wolnym czasie z pewnością nie zaszkodzi twoim umiejętnościom, ale nie powinieneś czuć się do tego zobowiązany. Programowanie wydaje się być względnie wyjątkową dziedziną, ponieważ dla wielu osób jest to zarówno ich praca, jak i hobby, dlatego lubią programować w wolnym czasie.


8
Programowanie nie jest wyjątkowe, ponieważ stanowi zarówno karierę, jak i hobby. Kilka przykładów: kiedyś wiedziałem, że kilku pilotów linii lotniczych ma własne małe samoloty, którymi latają dla zabawy. Znałem profesjonalnych astronomów, którzy obserwują gwiazdy z boku.
GreenMatt

4
Przez „ względnie wyjątkowy” miałem na myśli, że jest jednym z niewielu, ale na pewno nie jedynym. Znam o wiele więcej osób, które choć mogłyby cieszyć się pracą, nie spędzałyby czasu, gdy nie otrzymywały wynagrodzenia. Często trudno jest znaleźć pracę, która jest twoją pasją.
shortkaik

1: Technologia, języki i techniki zmieniają się tak często i tak szybko. Programiści muszą poświęcić trochę czasu na doskonalenie swoich umiejętności. // Powiązane pytanie: Czy czułbyś się komfortowo z PCP, który nie czytał czasopism medycznych?
Jim G.

Myślę, że ta odpowiedź najlepiej podsumowuje sytuację. Ale to całkowicie zależy od sytuacji. Jeśli Twoja praca spełnia wszystkie Twoje potrzeby programistyczne, jeśli chodzi o popychanie siebie, aktualizowanie technologii itp., Potrzeba pracy jest znacznie mniejsza. Jeśli jednak praca jest dość łatwa, przy użyciu starszych technologii, należy poświęcić trochę czasu na doskonalenie umiejętności i wiedzy w swoim własnym czasie.
Nellius,

@shortkaik „programowanie w wolnym czasie może sprawić, że będziesz lepszym programistą” - to nie zawsze prawda. Jeśli masz wyzwanie w pracy, to jeśli programujesz również w domu, co przyczyni się do wyczerpania i wypalenia zawodowego bardziej niż do twoich umiejętności, może to również zaszkodzić Twojej produktywności w pracy. Z drugiej strony, jeśli nie jesteś zadowolony z tego, co daje ci twoja praca (i bierze od ciebie), dodatkowe kodowanie po tym może być dobrą decyzją.

23

Nie, to nie czyni cię złym programistą. W zależności od tego, co robisz, może sprawić, że będziesz lepszym programistą na dłuższą metę. Na początku kariery może mieć wpływ na szybkość uczenia się różnych umiejętności, których potrzebujesz. Jednak możesz zbierać umiejętności i informacje, które pomogą w dłuższej perspektywie. Ćwiczenie też nie zaszkodzi.

Istnieje spora liczba badań, które pokazują zerknięcia wydajności około 40 tygodnia pracy. Choć możemy produkować przez dłuższy okres czasu, w dłuższej perspektywie tracimy wydajność. Badania, które widziałem, pokazują, że ludzie pracujący przez 80 tygodni są tak samo wydajni jak ci pracujący 40 godzin tygodniowo.

Jest kilka rzeczy, które możesz zastanowić się w czasie wolnym (lub włączonym), które mogą pomóc Ci osiągnąć lepszą wydajność:

  • Co robisz? Czy możesz to zrobić lepiej? Czy musisz to robić?
  • Czego się uczysz? Czego musisz się nauczyć?
  • Jakie masz problemy? Kto najlepiej je rozwiązać? Co możesz zrobić?

Programowanie jako hobby nie oznacza pracy po godzinach w dziwnej pracy - to definitywnie się nie skaluje. Ale programowanie gry na iPhone'a w ObjC jako hobby może poprawić twoje umiejętności i całkowitą produktywność w pracy (jeśli praca polega np. Na pisaniu aplikacji finansowych w Javie EE).
Heiko Rupp

@ Heiko Prawda, ale istnieje wiele innych umiejętności poza programowaniem, które mogą uczynić cię lepszym programistą. Dobry programista ma wiele umiejętności oprócz programowania.
BillThor

Oczywiście :) Szczególnie odnosiłam się do „maksymalnej produktywności po 40 godzinach” - co brzmiało tak, jakbyś robił programowanie hobby przez 5 godzin, ale możesz pracować tylko 35 godzin w pracy. Który ja nie sądzę, ma rację
Heiko Rupp

1
@Heiko To praca jest wystarczająco inna, niż możesz być w stanie zrobić obie rzeczy. Przez pierwsze kilka lat po ukończeniu studiów regularnie przekraczałem 40 godzin tygodniowo, ale stosowałem różnorodne umiejętności. Dużo się nauczył i nie wydawał się uderzać w ścianę wydajności. Na szczęście miałem przyjaciela, który wyciągnąłby mnie kiedyś z biura wieczorem. W innym projekcie wróciłem do domu o 2 po południu, kiedy zdałem sobie sprawę, że od 10 rano nic nie osiągnąłem. Nadal naliczane za 4 godziny.
BillThor

15

Czy można zostać dobrym programistą bez dodatkowego wykonywania pracy?

Zdecydowanie.

Może to potrwać dłużej niż gdybyś spędził dodatkowe godziny na doskonaleniu swoich umiejętności. Trudno mi było również poświęcić wystarczająco dużo czasu na samodoskonalenie, jeśli jestem zatrudniony w pełnym wymiarze godzin i mało programuję poza godzinami pracy.

Kiedy byłem młodszy, poświęciłem znacznie więcej czasu na naukę niż teraz. Koncepcje, których używam na co dzień, są głęboko zakorzenione i wydaje się, że dzięki temu doświadczeniu łatwiej mi zdobyć dodatkową wiedzę.

Wydaje się, że „dobrzy” programiści poświęcają dodatkowe godziny, ponieważ są z natury obsesyjni, dążą do antyspołecznego końca spektrum i naprawdę lubią programować oraz cały cykl rozwiązywania problemów.


13

W wielkim planie rzeczy chodzi o znalezienie właściwej równowagi w życiu.

Ważne jest, czy lubisz programować i czy uczysz się bez względu na poziom, na którym jesteś. To, czy programujesz poza pracą, nie czyni automatycznie „dobrym” lub „złym” programistą.

Aby dać osobistą perspektywę, programuję od około 25 lat (najpierw jako dziecko, potem zawodowo). Absolutnie to uwielbiam.

Jednak prawie nigdy nie programuję poza pracą. Ma to związek z kilkoma rzeczami:

  • Mam szczęście, że w pracy robię to, co kocham, każdego dnia, przez cały dzień.
  • Po prostu są inne rzeczy w życiu i jest tylko tyle godzin w ciągu dnia.

-1: Tak, są inne rzeczy w życiu, ale to nie odpowiada na pytanie; po prostu próbujesz przekonać siebie, że wybierasz najlepszą ścieżkę.
Jim G.

9

Możesz zostać dobrym programistą, który po prostu koduje podczas pracy, zwłaszcza jeśli dobrze zarządzasz swoją karierą. Jednak najwięksi programiści kodują również poza godzinami pracy. Powiedziawszy to, osoba, która wybiera dobrą pracę z wieloma możliwościami uczenia się, dobrze wykorzystuje swój czas w pracy, i tak dalej, będzie lepszym programistą niż ktoś, kto koduje w domu, ponieważ nie może znaleźć pracy, która zapewnia ciekawe wyzwania podczas dzień roboczy.

Chociaż kodowanie w domu jest cenne, powiedziałbym, że maksymalizacja wartości środowiska pracy (poprzez uczenie się od współpracowników, wybieranie dobrych miejsc pracy, agresywne zarządzanie karierą) jest często jeszcze bardziej cenna. Najlepsi programiści robią jedno i drugie, a także mają świetne podejście do uczenia się i mentorowania innych.


„Jednak najwięksi programiści kodują również poza godzinami pracy.” Nie masz na to żadnych dowodów.
djechlin

7

Prawdziwym problemem jest to, czy nowy programista koduje wystarczająco (przy wystarczająco trudnych problemach), aby przejść kilkaset tysięcy linii kodu praktyki i zostać porządnym programistą.

Teoretycznie można to zrobić w pracy, w swoim czasie lub w obu przypadkach. Ćwiczenie musi być nieco samokierujące, abyś mógł nauczyć się tego, czego potrzebujesz. Oznacza to, że praca jest trochę elastyczna.

Wiele razy zadania podstawowe są wiązką naprawiania błędów lub inną pracą, która nie nauczy cię być dobrym. Musisz napisać dużo kodu od zera, a ten kod prawdopodobnie będzie zły. Pracodawcom trudno jest za to zapłacić. Dlatego ludzie kończą na boku projekt open source lub uruchamiają startup lub cokolwiek innego.

Kiedy ludzie mówią, że musisz programować w wolnym czasie, myślę, że to naprawdę oznacza, że ​​musisz dawać sobie radę przez lata znaczącej praktyki na początku. Musisz zrobić wszystko, aby ćwiczyć i nauczyć się pisać i utrzymywać dużą bazę kodu od zera. Jeśli nikt nie płaci za napisanie od podstaw prawdopodobnie katastrofalnej serii projektów, jedyną opcją jest wolny czas.

Jeśli już ćwiczyłeś, gdy byłeś młodszy i zostałeś dobrym programistą, nie sądzę, że stracisz podstawowe umiejętności, jeśli utrzymasz je później w stosunku 9 do 5. Później chodzi raczej o nadążanie za nowymi technologiami, które nie są tak czasochłonne.

Jest to jednak rzadka praca na poziomie podstawowym, która sama dawałaby ci ilość i jakość ćwiczeń, aby stać się dobrym programistą. Nowy programista musi przejąć inicjatywę, aby się uczyć, a nie tylko spędzać czas na pracy na poziomie podstawowym, wykonując zadania na poziomie podstawowym.

Naprawdę ciężko byłoby zostać dobrym programistą od zera, jeśli już miałeś rodzinę i mocno podkreślałeś równowagę między życiem zawodowym a prywatnym. Tak jak trudno byłoby zostać lekarzem, wirtuozem muzyki lub czymkolwiek innym w takiej sytuacji. Jest powód, dla którego ludzie przechodzą tysiące godzin ćwiczeń, kiedy są młodsi niż starsi.


5

Gdybym spędził czas w ciągu następnych sześciu miesięcy, rozwijając podstawową grę w wolnym czasie, a ty nie, i zakładając , że wszystkie inne rzeczy są równe (nigdy nie są), który z nas wiedziałby więcej? Który z nas miałby więcej umiejętności i doświadczenia?

Efekt ten byłby kumulatywny, ponieważ wcześniejsza wiedza poza godzinami pracy przyczyniałaby się do nowej pracy i nowej wiedzy poza godzinami pracy.

I dlatego ludzie radzą programować w wolnym czasie, o ile wiem.


5

Pomiędzy wielkim a złym istnieje wiele poziomów pomiędzy nimi. Nie możesz zostać świetnym programistą, robiąc to tylko 8 godzin dziennie, prawdopodobnie pracując nad problemami z bardzo ograniczonej dziedziny.

Jeśli twoja praca jest wystarczająco zróżnicowana, możesz stać się „przyzwoity”, „zrealizowany” lub jakikolwiek inny przymiotnik, który wolisz, ale aby być świetnym programistą, musisz być trochę mentalny, obawiam się.

Innym powodem programowania hobby jest to, że w pracy często musisz przestrzegać nieoptymalnych standardów i ogólnie kompromisów, a nawet gdy uczysz się nowej rzeczy, możesz nie mieć możliwości korzystania z niej.

A jeszcze innym, jeszcze bardziej prozaicznym jest to, że każdy kod, który piszesz w pracy, jest własnością twojego pracodawcy. Nie możesz do niego wrócić i uczyć się na starych błędach wiele lat później, kiedy pracujesz dla kogoś innego.


5

Aby stać się ekspertem we wszystkim, potrzeba 10 000 godzin pracy. [Michael Gladwell, „Outliers”]

Wykonanie dodatkowej pracy, zanim dojdziesz do tego poziomu, przyspieszy Ci drogę do prawdziwego statusu eksperta.

Gdy przekroczysz ten poziom, spędzanie więcej czasu przyniesie niewielkie / malejące zyski.


3
Ale czym jest „rzecz” w czymkolwiek? Czy „programowanie” jest pojedynczą „rzeczą”, czy też rzeczy „haskell”, „lisp”, „java”, „python” itp.? Lub „programowanie funkcjonalne”, „programowanie GUI”, „programowanie niskiego poziomu” itp.? Samo to nic nam nie mówi.
André Paramés,

4

Nie powinieneś patrzeć na to jako „Czy to czyni mnie złym programistą”, ponieważ jak każda umiejętność, więcej ćwiczeń czyni tylko jednego lepszym.

Jeśli więc chcesz być lepszy niż obecnie i uczyć się nowych technologii i domen, na które Twoja praca nie pozwala, to przydatny jest dodatkowy wysiłek i czas.

Ale dodatkowy czas spędzany na kodowaniu (tylko po to, aby udowodnić komuś, że dodatkowo kodujesz) niekoniecznie oznacza, że ​​zostajesz dobrym programistą, chyba że dowiesz się, co robisz i zrobisz coś innego lub poprawisz to, co już wiesz, zamiast ślepo wycinać / kopiować / wklejać i łączenie hacków. Dłuższe godziny pracy i robienie tego samego w kółko w żaden sposób nie uważam, że pomoże ci to poprawić.


Myślę, że chodzi o to, że niektórzy programiści rozpowszechniają pogląd, że jeśli nie programujesz poza pracą, jesteś złym programistą. Straciłem rachubę, ile razy widziałem posty na SO, tutaj i gdzie indziej, w których ktoś mówi, że podczas rozmowy z potencjalnym nowym pracownikiem pyta, po której stronie się wybiera, i czy odpowiedź brzmi „Brak ”, wtedy rozmówca nie jest postrzegany jako pasjonat programowania, ponieważ nie jest brany pod uwagę w pracy.
GreenMatt

+1 - Nie przynosi wiele korzyści, jeśli wszystko, co robisz, to to, co już robisz w pracy.
Dunk

Sama praktyka nie poprawia ci samopoczucia, musisz ćwiczyć właściwe rzeczy, które mogą nawet pogłębić złe nawyki i stać się jeszcze gorsze.
HLGEM,

4

W ciągu dnia twoje programowanie jest krótkie. Są pieniądze do zarobienia, wiesz dokładnie, ile i po co, i nie masz nic więcej do zdobycia niż wypłata.

W nocy pracujesz nad długimi zakładami - szalonymi pomysłami, które w ogóle nie będą działać. Są to projekty, które wyrzucą cię z szeregu. W ten sposób stajesz się wynalazcą PHP, a nie kodem używającym go.

Przeprowadzam wywiady z wieloma programistami i to, czy zrobili ciekawe dziwne rzeczy poza godzinami pracy, jest natychmiastowym zielonym światłem. To zaskakująco rzadkie.

Chociaż powiem tak: pewnego razu facet, który zrobił wiele fajnych rzeczy poza godzinami pracy, okazał się całkowitym niewypałem. Nadal mnie zaskakuje ten facet.


3

Bycie dobrym programistą w sercu zależy od twojego serca. Możesz spróbować być świetnym muzykiem i poświęcić dużo czasu muzyce, ale to nie czyni cię dobrym muzykiem. Musisz cieszyć się tym, co robisz, aby być w tym dobrym. Początkowo miałem te same pytania Tak było, ale teraz z powodu moich upodobań zacząłem robić dodatkowe rzeczy na oprogramowaniu innym niż normalna praca. Poprawiłem swoją wydajność w normalnej pracy, a także dałem mi dużo czasu na zaangażowanie się w inne czynności niezwiązane z oprogramowaniem. Tak więc linia bazowa cieszy się tym, co robisz, i ostatecznie zrobisz to, co jest wymagane.


3

Prawdziwe pytanie brzmi: co robisz przez cały dzień. Analogie do sportowców i muzyków zwykle nie są stosowane poprawnie. Twoja codzienna praca nie jest ćwiczeniem, jest wydajnością, chyba że masz wyraźną zdolność do spędzenia części dnia w prawdziwej „praktyce”. Skąd wiesz? Jeśli nigdy nie masz czasu, aby zrobić coś „dobrze” lub dokładnie nauczyć się nowego języka / technologii / frameworku itp., To nie ćwiczysz, tylko grasz. Zawodowi sportowcy i muzycy nie stają się lepsi podczas gry lub koncertu, stają się lepsi podczas skoncentrowanej praktyki. Tak więc, jeśli jesteś jak większość, jedyny czas, jaki masz na prawdziwą „praktykę” kodowania, to praca poza pracą. To powiedziawszy, warto, jeśli jest skoncentrowane. Jeśli hakujesz cały dzień, a następnie hakujesz całą noc, po prostu się męczysz, a nie lepiej.

Na przykład musisz zoptymalizować fragment kodu w pracy i rzucić na niego zwykłe narzędzia do profilowania i przyspieszyć go może o 50% i przejść do następnego zadania, ale uważasz, że możesz zrobić jeszcze inne rzeczy, które pomogłyby nawet więcej, ale nie masz czasu na wypróbowanie ich. Jeśli weźmiesz ze sobą ten fragment kodu i spędzisz kilka dodatkowych godzin, aby go naprawdę wykręcić, uczysz się technik, które poprawią cię przy następnej optymalizacji. Nie robisz tego samego w domu, co w pracy.

Ćwiczenie polega na dodawaniu umiejętności i szlifowaniu, a ćwiczenia te muszą być wykonywane w sztuczny sposób (to jak izolowanie grupy mięśni na siłowni, nikt nie robi tego podczas normalnej aktywności fizycznej). Budowanie aplikacji w domu nie jest ćwiczeniem automatycznie. Praca w domu powinna koncentrować się na technikach i procesie, a nie na produkcie końcowym. Jeśli produkt końcowy jest tym, co wymaga motywacji, świetnie. Po prostu nie wpadnij w pułapkę rozwijania go w taki sam sposób jak w pracy.

Kodowanie ruchu kata jest przykładem tego, na czym polega praktyka.


3

Aby odpowiedzieć na twoje pytanie: Nie, to nie czyni cię złym programistą.

Jednakże , może to uczynić swoje życie zawodowe w dół drogi nieco trudniejsze. Jeśli masz pracę, w której ciągle uczysz się nowych technologii, które pomogą ci w dalszym rozwoju kariery (czy to będą awanse w obecnej pracy czy nowe oferty pracy w różnych firmach), to dobrze, że jesteś gotów.

Ale jeśli obecnie pracujesz w firmie, w której technologia rzadko się zmienia, to za 2 lub 5 lub 10 lat może być Ci trudno znaleźć następną pracę. Jeśli kodujesz w domu za pomocą nowych technologii i masz coś do pokazania (aplikacja, strona internetowa, projekt open source itp.), Łatwiej będzie ci zdobyć następną pracę.

Oczywiście możesz być całkowicie szczęśliwy, robiąc dokładnie to samo przez następne 40 lat, i dopóki Twoja firma i technologie będą istnieć, jesteś gotowy!


1

Były czasy w moim życiu, w których dużo kodowałem poza pracą, i czasy, kiedy nie robiłem nic, ponieważ pracowałem nad innymi rzeczami. Zawsze powinieneś się uczyć, ale to nie znaczy, że zawsze musisz uczyć się programowania w wolnym czasie. Jeśli w wolnym czasie chcesz popracować nad innymi umiejętnościami, np. Stolarstwem, igłami, ogrodnictwem itp., Pomoże ci to rozwijać się jako osoba.

Po prostu nie wpadnij w pułapkę myślenia, że ​​wiesz wszystko, co musisz wiedzieć o programowaniu, aby przestać się uczyć.


1

To naprawdę interesujący post. Tworzę oprogramowanie od 10 lat i uwielbiam swoją pracę! Ja też mam wiele hobby i staram się nimi właściwie zarządzać. Ale zaczynam próbować nowych rzeczy, spędzając godzinę lub dwie przed komputerem przed pójściem spać. W moim przypadku jestem uzależniony od nauki i pisania kodu gry. Nie zawsze mam czas na gry, ale uwielbiam czytać kod o grach. Szczerze mówiąc, uważam, że najlepszy kod, jaki kiedykolwiek widziałem, pochodzi z gier i wykorzystuję te umiejętności do mojego kodu w pracy. Ciągle uczę się KAŻDEGO DNIA, więc IMO, jeśli jesteś programistą, nigdy nie osiągniesz szczytu, ZAWSZE jest lepszy sposób na zrobienie czegoś ....


1

To jest świetny post.

Powiedziałbym: nie, to nie czyni cię złym programistą. Jeśli Twoje recenzje są dobre i dobrze wykonujesz swoje zadania na czas, to wręcz przeciwnie. Szczerze mówiąc, zazdroszczę wam, abyście wypełnili kod podczas pracy.

Głównym powodem, dla którego programuję w wolnym czasie jest to, że tak naprawdę nie dbam o to, co robię w pracy i wykorzystuję swój wolny czas na robienie tego, co lubię. Lubię robić gry wideo. Nie ma ważnej firmy zajmującej się grami, dla której mieszkam (teraz mam tutaj rodzinę), więc kiedy mogę, pomagam w niezależnych grach. To jedyny sposób, aby wyleczyć swędzenie. Gdybym robił to, co kochałem przez cały dzień, byłoby wysoce prawdopodobne, że nie zrobiłbym tego w wolnym czasie.


1

Moja rada będzie następująca: Wykorzystaj czas dojazdu do pracy, aby się czegoś nauczyć, aby być na bieżąco: czytać książki informatyczne, słuchać podcastów dla programistów itp. Jeśli chodzi o czynności po pracy: nic nie zmienia. W przeciwnym razie staniesz się nudną osobą.


1

Nie czyni cię złym programistą, może nawet nie uczynić cię rodzajem „ok” programisty, po prostu czyni cię tym, kim jesteś. Myślę jednak, że większość ludzi, którzy są naprawdę świetnymi hakerami, lubi próbować nowych rzeczy. W dowolnym momencie będę badał wiele różnych języków, baz danych, frameworków internetowych, robotyki itp. Mam dwoje małych dzieci i żonę, kredyt hipoteczny, i tak dalej - ale nie mogę się doczekać czasów, w których mogę dostać 2 lub 3 godziny, żeby siekać z różnymi rzeczami. Jasne, C # i .NET są w porządku i dobrze zarabiają na wypłatę, a ja naprawdę lubię swoją pracę, ale gadanie ze Scalą i Liftem było dla mnie świetną zabawą w ciągu ostatnich kilku miesięcy. Są programiści, którzy zaklasyfikowaliby się jako „namiętni” i ci, którzy po prostu „radzą sobie”.


1

Czy to oznacza, że ​​nie jestem prawdziwym programistą?

Absolutnie nie. Oznacza to po prostu, że lubisz robić rzeczy inne niż kodowanie. Nie ma w tym nic złego i nie czyni cię lepszym ani gorszym niż ktokolwiek inny, deweloper czy nie.

Czy można zostać dobrym programistą bez dodatkowego wykonywania pracy?

Oczywiście. Niektóre z nich zależą od środowiska pracy. Jeśli masz nudną, ssącą duszę pracę, która pochłania cały twój czas, a następnie wykonujesz nudne prace konserwacyjne, to możliwość wykorzystania czasu pracy do rozwoju twoich umiejętności będzie bardzo ograniczona. Jeśli masz środowisko, w którym masz swobodę robienia tego, co chcesz odkrywać i uczyć się, skorzystaj z okazji, aby rozwinąć nowe umiejętności, które również pomogą Twojemu pracodawcy lub współpracownikom wyjść.

Jeśli znajdziesz coś interesującego, o czym chcesz dowiedzieć się więcej i nie masz czasu ani możliwości wykorzystania go w pracy, musisz porównać to z innymi wymaganiami dotyczącymi czasu, czy to rodziną, przyjaciółmi czy hobby.


+1. Tak, to naprawdę zależy od środowiska pracy. W miejscu z inteligentnymi ( najlepiej mądrzejszymi od siebie ) ludźmi, którzy jako zespół dbają o to, co robią i stale dążą do poprawy wszystkiego (produktu końcowego, kodu źródłowego, narzędzi, warunków pracy itp.), Masz dużą szansę zostania świetnym programistą, nawet jeśli wolisz spędzać wolny czas w innym miejscu niż przed komputerem.
Jonik

1

Byłem ostatnio na wielu wywiadach, aby zatrudnić programistów. Przekonałem się, że kandydaci, którzy robią na mnie największe wrażenie, zarówno jako programiści, jak i ludzie, z którymi nie mam nic przeciwko pracy, to ci, którzy spędzają znaczną ilość czasu na zajęciach NIE-programistycznych (szczególnie muzyki, ale także czystej matematyki, filozofia i literatura). Oczywiście większość z nich zajmuje się programowaniem hobbystycznym, ale mają także interesy związane z równoważeniem.


Teraz, jeśli mogę tylko przekonać muzyków, że ... wydaje się, że myślą, że nie można być dobrym w więcej niż jednej rzeczy. Muzyka i programowanie są bardzo podobne.
Michael K

Odpowiedziałeś na zupełnie inne pytanie. Rodzaj ludzi, z którymi wolisz pracować, prawdopodobnie będzie zupełnie inny niż typ osoby, która tworzy świetnego programistę. Jeśli chcesz cieszyć się ludźmi, z którymi współpracujesz i dobrze się bawić towarzysko, być może programista Uber nie jest najlepszy. Jeśli jednak typowe obciążenie pracą to 2-3 miesiące na ukończenie 12-miesięcznych projektów, osobowość nie będzie miała tak dużego znaczenia, gdy odkryjesz, że programista Uber pozwoli ci żyć poza pracą, nawet jeśli to życie jest robić więcej programowania.
Dunk

Na marginesie: odkryłem, że ludzie, którzy robią na mnie największe wrażenie jako ludzie podczas wywiadu, są tymi, którymi muszę się najbardziej martwić. W mojej wczesnej karierze jedyne osoby, które poleciłem do zatrudnienia, które okazały się mniej sprawne technicznie, okazały się najbardziej zdolne społecznie i przekonujące podczas wywiadu.
Dunk

1

Jeśli masz pracę, która zapewni Ci całkowicie angażujące doświadczenie intelektualne, są szanse, że to będzie twoje życie mentalne - praca na zewnątrz ma na celu wyrzucenie pary. Jeśli twoja praca cię nie angażuje, o wiele bardziej prawdopodobne jest znalezienie satysfakcji intelektualnej po godzinach pracy. Dotyczy to każdego biznesu, nie tylko kodowania.

Kodowanie w biurze osłabia twoją kreatywność, kropka. Co najmniej 8 godzin dziennie, twój umysł robi ciągły sprint w czyimś imieniu. Wyjście z tego i nie chcę wracać do komputera jest normalne. Kiedy pracowałem w biurze, było dla mnie tak samo - wracałem do domu i chciałem tylko gotować, chodzić na filmy, spędzać czas z przyjaciółmi lub po prostu strefę przed telewizorem. Potem w latach 2001-2004, po tym jak firma, w której pracowałem dla tankowców i załamałem się, wysiadłem, pojechałem taksówką i czekałem przy stolikach. Właśnie wtedy naprawdę zacząłem kodować w wolnych godzinach.

Prawda jest taka, że ​​nie sądzę, aby ktoś miał więcej niż 8 godzin dziennie wysokiej jakości kodu. Wielu programistów ma tylko 2-3, ale mogą to być najbardziej wydajni ludzie. Po prostu jak go używasz, jak go rozprowadzasz.


1
Nigdy nie byłeś w pobliżu programistów OSS, prawda? Kiedy kodowanie staje się pasją, czasami chcesz być w nim przez 24 godziny bez przerwy.
Martijn Pieters,

1

Czy można zostać dobrym programistą bez dodatkowego wykonywania pracy?

To zależy od branży, w której pracujesz. Niektóre są bardziej konkurencyjne niż inne.

Jeśli nie lubisz samodzielnie uczyć się nowych rzeczy, prawdopodobnie pozostaniesz na obecnym poziomie umiejętności. To może wystarczyć ... lub nie.

Nie chodzi o czas poświęcony, chodzi o ciekawość i pragnienie wiedzy i mistrzostwa. Oczywiście nie ma to nic wspólnego z utrzymywaniem aktualności , chodzi o podstawowe - często twarde rzeczy: kompilatory, monady, architektury pamięci itp. Rzeczy, które rozciągają i rozszerzają mózg.

Chęć kodowania w domu to tylko ważne skutki uboczne. Ale nie lekceważ tego, bez robienia nauka jest często płytka.

Wszyscy najlepsi twórcy, których znam, mają tezy.


1

Nie, nie czyni cię mniejszym programistą niż ktokolwiek inny. Jesteś bardziej towarzyski. Jestem zazdrosna o szczerość.

Nie musisz poświęcać całego swojego wolnego czasu na pisanie kodu. Moja praca jest dość prosta: zarządzanie serwerem. Piszę dużo kodu, ponieważ nie muszę dużo robić w pracy. To nie czyni mnie lepszym ani gorszym niż ktokolwiek inny. Jeśli pasjonujesz się programowaniem, dlaczego nie pracować w wolnym zawodzie? Często umieszczam reklamy Craigslist dla moich usług i zarabiam na tym sporo pieniędzy. To także wspaniałe doświadczenie edukacyjne, ponieważ będziesz pracować ze startupami, a czasem nawet dużymi witrynami. Mam nadzieję że to pomoże. :)


Programowanie hobby sprawia, że ​​z natury jesteś „bardziej społeczny”. Możesz samodzielnie programować w izolacji całkowicie w porządku.
Mufasa,

0

Zadałem podobne pytanie kilka dni przed czasem. Wydaje się, że ludzie wydają się być bardziej pasjonatami naszej pracy, jeśli poświęcamy jej nie tylko cały dzień, ale także cały czas, jaki mamy do dyspozycji w życiu osobistym.

Od czasu do czasu piszę kod w wolnym czasie, ale robię to dla zabawy, nie dlatego, że zamierzam zyskać jakiś rozwój zawodowy lub uznanie. Oklaskuję ludziom, którzy mają na to energię, ale bardziej lubisz się wypalać, pracując dłużej i pracując nad dodatkowymi projektami, niż stać się bardziej ekspertem w czymkolwiek.

Ostatecznie liczy się tylko umiejętność uczenia się nowych rzeczy (szczególnie w pracy), umiejętność dobrej komunikacji i umiejętność dobrego zarządzania czasem. Że zmienisz się w dobrego profesjonalistę.


1
Myślę, że osiągnąłeś kluczowy punkt. Jeśli programowanie w domu jest jak wykonywanie dodatkowej pracy, to niewiele pomoże i prawdopodobnie jest nawet szkodliwe. Jednak większość (jeśli nie wszystkie) osoby, które znam w domu, robią to, ponieważ jest to dla nich zabawa. Tak się składa, że ​​są to ci sami ludzie, których chcę w moich projektach, ponieważ są oni o wiele bardziej wykwalifikowani niż ci, którzy tego nie robią. Czy programowanie w domu jest powodem, dla którego są bardziej wykwalifikowani, a może nie, ale raczej tak myślę, ponieważ robią to, co lubią. Ponadto trudno jest być na bieżąco ze swoimi umiejętnościami, jeśli nie poświęcisz czasu.
Dunk

0

Czy można zostać dobrym programistą bez dodatkowego wykonywania pracy?

Dla mnie chodzi o równowagę.

Chociaż uwielbiam programować, to tylko jedna strona mnie, ale mam inne zainteresowania. Widzę to, jeśli jestem szczęśliwy (robię inne rzeczy, które lubię robić) i uważam swoją pracę za interesującą i satysfakcjonującą (co robię) niż na dłuższą metę jestem na najlepszej drodze do zostania lepszym programistą.

PS Przyznaję, że nie przeczytałem wszystkich wcześniejszych postów na tej stronie.


Dlaczego -1? Jest to całkowicie rozsądna odpowiedź. + 1
zzzzz
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.