Wydajność programisty

0

Nie wiem, czy był taki temat, ale nie mogę znaleźć.

Ile czasu rzeczywiście kodzicie w ciągu 40h pracy w tygodniu.
Czy ktoś z Was potrafi kodzić całe 40h tydzień w tydzień, rok w rok, bez gorszego tygodnia, miesiąca?
Ile czasu sobie dajecie na zastanowienie się nad problemem?

8

Pozwolę sobie odpowiedzieć dowcipem

Co powinien wiedzieć student?
-Student powinien wiedzieć wszystko.
Co powinien wiedzieć magister?
-Magister powinien wiedzieć wszystko ze swojej dziedziny.
Co powinien wiedzieć doktor?
-Doktor powinien wiedzieć wszystko ze swojej specjalizacji.
Co powinien wiedzieć dr hab?
-Dr hab powinien wiedzieć, w której książce, co się znajduje.
Co powinien wiedzieć docent?
-Docent powinien wiedzieć, gdzie jest biblioteka.
Co powinien wiedzieć profesor?
-Profesor powinien wiedzieć, gdzie są docenci.

0

A jak się to ma do wydajności?

3

Ile czasu sobie dajecie na zastanowienie się nad problemem?

Zastanawianie się nad problemem to też część wytwarzania oprogramowania.

omenomn napisał(a):

Nie wiem, czy był taki temat, ale nie mogę znaleźć.

Ile czasu rzeczywiście kodzicie w ciągu 40h pracy w tygodniu.
Czy ktoś z Was potrafi kodzić całe 40h tydzień w tydzień, rok w rok, bez gorszego tygodnia, miesiąca?

Źle patrzysz. 40h pracy nie polega na tym, że się kodzi przez tyle czasu. Pomijając już to, że tworzenie oprogramowania to nie tylko kodzenie, ale też duża ilość myślenia, to również nie jest wcale tak, że przez 40h ludzie cały czas faktycznie wytwarzają oprogramowanie. Przerwy, rozproszenia, narzut czasowy na pracę w zespole, komunikacje, spotkania, czekanie na innych itp.

To 40h jest zwykle tylko na papierze, ew. ludzie przebywają na terenie biura przez 40h tygodniowo (co nie znaczy, że tyle czasu pracują). Ile faktycznie pracują, to już zależy. Ale za dużo faktycznej pracy to też niezdrowo, bo wtedy człowiek jest zmęczony, więc mniej wydajny, dlatego lepiej już się trochę poobijać, bo efekt końcowy będzie i tak lepszy niż napieprzanie kodu przez 8h dziennie.

3

Przypominał mi się sp Zbigniew Wodecki. On mówił że z zawodu to jest kierowcą a nie piosenkarzem bo więcej jeździ niż śpiewa.

Pozwolę sobie napisać że w pracy programisty jest podobnie. Czyste kodzenie to ułamek całości. A jak już uda się "zaśpiewać" nowości a nie cały czas Pszczółkę Maje czy Zacznij od Bacha. Bo znane. To prawie jak 6 w lotto.

1

Też tak myślę, jak Wy, może miałem do czynienia kiedyś za dużo z Januszbizami, robiącymi Januszsofty i Januszstronki, a dla nich jak nie stukasz 8 h w klawiaturę to się obijasz i to mi trochę poryło beret.
Z tego co mi wiadomo, to są firmy, że jak nie ruszasz myszką przez 10 min. to Ci nie liczy czasu pracy.

2

Ja mam najlepsza wydajność rano, zaraz po daily, a im mniej do mnie pisze Scum Master, PM, biznes analityk to ta wydajności wzrasta. W przeciwnym razie nie potrafię nic zakodzic, bo przez takie gadki nie mogę wpaść w trans, skupienie, aby coś napisac. Przez co nieraz muszę czasem koło 19-20 usiąść wieczorem aby w te dwie godziny klepnac co miałem zrobić przez cały dzień i to zauważyłem na przestrzeni paru lat.

1

Co to jest 40h/week przy moich 80h/week

6

Samo kodzenie zajmuje z 10% czasu jaki przeznaczasz na pracę - spotkania, czytanie dokumentacji, wujek google, stack overflow, myślenie nad problemem, itp., zajmują znacznie więcej czasu.

4

To znaczy ile znaków programista stuka na minutę?

Internety mówią od 150 do 420 znaków na minutę

Załóżmy 30 znaków na linię w rozgadanym języku (pomijam EMMET itp)
5 do 14 linijek kodu na minutę
7 godzin 45 minut pracy bo 15 minut przerwy
2300 do 6500

Na miesiąc od 50 000 do 140 000 linijek kodu

title

Jak Alibaba będzie mieć 40 programistów to sobie w rok sami Facebooka napiszą


*Prosty Space Shuttle jeden wydajny programista wysyła w kosmos przez wakacje
*

PS
W Comarchu kiedy Prezes wdroży monitorowanie wydajności pracowników na home office to wyniki i wydajność mogą być jeszcze lepsze

1
omenomn napisał(a):

Ile czasu rzeczywiście kodzicie w ciągu 40h pracy w tygodniu.

Ostatnio niewiele. Może linjka kodu na kilka miesięcy. Od kilku lat jako admin więcej czytam niż sam piszę. Gdy byłem programistą kernelowym w embedded to w sumie też większość czasu zajmowało mi śledzenie wykonywanego kodu niż pisanie własnego. Własny kod to były doklejanie printk i printfy zależnie od jądra i oprogramowania, a potem finalnie często dodanie jakiegoś if albo przestawienie kolejności pól w struct czy zmiana typu pola. Potrafiło tak czasem wyglądać kilka tygodni. Nawet seniorzy tak mieli.

Czy ktoś z Was potrafi kodzić całe 40h tydzień w tydzień, rok w rok, bez gorszego tygodnia, miesiąca?

Nie ja. Osobiście doradzałbym omijać szerokim łukiem kod takich jednostek, które potrafią. Większe są szanse, że cierpią na przypadłość znaną jako grafomanię niż na to, że są genialnymi maszynami do wypluwania kodu.

Jak powiedział kiedyś jeden z moich idoli wczesnych lat studenckich Ken Thompson

 “One of my most productive days was throwing away 1000 lines of code.”

Ile czasu sobie dajecie na zastanowienie się nad problemem?

Od kilku godzin do kilku miesięcy. Pewne problemy analizuję teoretycznie od kilku lat. Całkiem możliwe, że je na miesiąch wcielę w życie.

3

Programista koduje nie tylko przy kompie, ale też przy obiedzie (lub wręcz przeciwnie), na spacerze, śpiąc.
Jeśli Twój szef tego nie rozumie, to zmień szefa.

Pisanie na klawiaturze nie jest kodowaniem.

Poziomy rozumienia tego co się pisze (każda niższa pozycja zawiera poprzednie):

  • pisanie na klawiaturze (np. przepisywanie programu z wydruku komputerowego)
  • kodowanie (tworzenie programu takiego który spełnia założoną funkcję - np. narysowanie koła) - wymyślenie algorytmu, napisanie, przetestowanie ręczno-gałkowe, debugowanie, weryfikacja na większych zbiorach danych
  • programowanie (tworzenie czytelnej struktury programu którą zrozumie ktoś inny, unit testy, testy integracyjne, punty rozszerzeń)
  • dewelopowanie (tworzenie instrukcji do programu, ikonek, UI, instalatora, repo, skryptu deploymentu itd)
  • wdrażanie u klienta (instalacja u klienta stworzonego programu, walka z przeciwnościami losu, konfiguracja, prezentacja)

To jest moja subiektywna lista, można się z nią nie zgadzać.

0
mr_jaro napisał(a):

Co to jest 40h/week przy moich 80h/week

3

Jeśli już konkretnie mówimy o pisaniu kodu, to kod piszę zazwyczaj jakieś ~~0.5h - 2h dziennie. Analizuję kod jakieś ~~1h-4h dziennie.

Dosyć szerokie przedziały, bo to zależy od dnia.

3
omenomn napisał(a):

Ile czasu rzeczywiście kodzicie w ciągu 40h pracy w tygodniu.

Im gorsze legacy tym mniej kodzę a więcej czytam i konfiguruję

Czy ktoś z Was potrafi kodzić całe 40h tydzień w tydzień, rok w rok, bez gorszego tygodnia, miesiąca?

Raz nie kodziłem 9 miesięcy bo czekałem na start projektu

Ile czasu sobie dajecie na zastanowienie się nad problemem?

Ale co to znaczy? Jak nie znajdę rozwiązania w zadanym limicie czasu to mam się zwolnić? Czy mam coś naklepać i udawać że działa?
Raz jeden kierownik dał mi niewykonalne zadanie i dopiero jak razem siedliśmy na sesję programowania w parach zobaczył że to zadanie jest niewykonalne.
Innym razem miesiąc myślałem (w przerwach robiąc inne zadania) i dopiero kierownik znalazł rozwiązanie (ale to było bardziej konfiguracyjne niż programistyczne)

0

Ile czasu sobie dajecie na zastanowienie się nad problemem?

Ale co to znaczy? Jak nie znajdę rozwiązania w zadanym limicie czasu to mam się zwolnić? Czy mam coś naklepać i udawać że działa?

No w sensie, Ja np. spotkałem się z takim podejściem, że niektórzy wolą napisać jakiś działający g**no kod, który jest nie rozwijalny, nie rozbudowalny, wolny, ale jest i działa, jakieś DRY, KISS, SOLID mają w głębokim poważaniu.

1
omenomn napisał(a):

jakieś DRY, KISS, SOLID mają w głębokim poważaniu.

Tylko że problem polega na tym, że ciężko jest ocenić, czy dana klasa spełnia czy nie spełnia DRY (okej, tutaj nawet IJ może pomóc) / KISS / SOLID.

1

Jeżeli mówimy stricte o pisaniu kodu, to różnie bywa; zdarzają się okresy, kiedy zajmuję się głównie szeroko pojętym designem i nie napiszę linijki kodu przez tydzień.

Jeżeli mówimy o samej pracy, to soft do time trackingu pokazuje mi średnio 3 - 5 godzin "nabitych" w zadania w przeciągu 8 godzinnego dnia pracy.

1

Warto zachowac umiar. Ja ostatnio mialem jazde 80h/ tydzien i gdy sie to skonczylo, to teraz sie czuje tak wypalony, ze potrafie patrzec w ekran przez godzine i nic nie zrobic.

Z zachowaniem zdrowia psychicznego moge kodowac 8h dziennie ze spora przerwa pomiędzy. Oczywiscie analizowanie kodu, to takze programowanie, procent klepania w klawiature zalezy od tego ktory to etap projektu.

1

Podział projektowanie / kodowanie jest u mnie bardzo wyraźny i są to zupełnie różne rodzaje pracy. Modułowość odgrywa tu kluczową rolę. Zawsze buduję systemy "klocek" po "klocku" każdy raczej jako samodzielny byt ( oczywiście z zachowaniem zdrowego rozsądku ).

Zdarzało się, że kodowałem bez przerwy sześć miesięcy po 12 -14 godzin dziennie 6 dni w tygodniu ale wówczas już był plan, projekt, cel a na końcu solidne wynagrodzenie. Jak wiesz co robić to zmęczenie nie bywa aż tak dokuczliwe i przychodzi późno. Po takim maratonie jednak zawsze przychodzi okres, że trzeba odpocząć tak z miesiąc, popracować przy domu, zająć się czymś innym, zbudować w ogrodzie huśtawkę ... dla dziecka :-) a na serio to w tym czasie przerwy zajmuję się innymi lżejszymi tematami firmowymi.

Jednak najtrudniejszy okres miałem w pracy na etacie (wówczas jak na polskie warunki super dobrze płatnej). Było tak ciężko i byłem tak skrajnie zmęczony, że ostatecznie się zwolniłem (to nie żart).
Było to około 2007 roku i nie miałem do roboty w pracy prawie nic. Wszystkie zadania na cały tydzień realizowałem przed godziną 11:00 w poniedziałek a potem panowała bezkresna nuda... Dla mnie to był koszmar. Gdyby wówczas w biurze była huśtawa i kolorowe pufy może bym to jakoś przebolał ale wówczas w biurach obowiązywała inna moda.

Obecnie różnie bywa. Jak mam zadanie to chcę skończyć je jak najszybciej - zapisać w kodzie wszystko co już jest poukładane w głowie zanim koncepcja się rozleci/rozmyje i znowu trzeba będzie budować obraz całości. Wyrywanie się z tego "transu" raczej mi nie sprzyja więc czasem pracuję cały tydzień po 10 - 12 godzin ( samego pisania ). Jednak po zapisaniu wszystkiego co było zaplanowane trzeba opracować dalsze kroki, porysować, poplanować poczytać jakieś doku i przejść ponownie do fazy projektowania.

2

Ja od kilku miesięcy mam problem, żeby skupić się na dłużej, niż 30 minut. Na początku mnie to denerwowało, co jeszcze pogarszało sytuację. Realnie może 3- 4 godziny dziennie jestem w stanie robić wymagające zajęcie. Resztę wypełniam mniej ważnymi zadaniami albo spacerem czy obiadem. To daje dużo lepszy efekt, niż napierdzielanie cały dzień. Dlatego warto mieć czasem mniej angażujące zajęcia typu uzupełnianie dokumentacji.
Ostatnio pan od rysowania ludków wrzucił filmik na ten temat

2
renderme napisał(a):

Warto zachowac umiar. Ja ostatnio mialem jazde 80h/ tydzien i gdy sie to skonczylo, to teraz sie czuje tak wypalony, ze potrafie patrzec w ekran przez godzine i nic nie zrobic.

16 godzin na dobę dzień po dniu, od poniedziałku do piątku, od ósmej rano do północy.
Odliczyć dojazd, jedzenie, kąpiel, zostało ci 5 godzin na spanie?

Może jednak szef powinien zatrudnić jednego, dwóch, programistów więcej?

1
omenomn napisał(a):

Ile czasu rzeczywiście kodzicie w ciągu 40h pracy w tygodniu.

Myślę, że mniej więcej połowę.

Czy ktoś z Was potrafi kodzić całe 40h tydzień w tydzień, rok w rok, bez gorszego tygodnia, miesiąca?

Chętnie bym poznał kogoś takiego. Albo lepiej nie, bo prawdopodobnie byłby robotem.

Ile czasu sobie dajecie na zastanowienie się nad problemem?

Zależy od poziomu trudności, ale najwyżej dzień.

0

Jeśli ktoś z Was jeszcze nie próbował, ta strona pozwala kodzić 24h/dobę:
https://hackertyper.net/

1 użytkowników online, w tym zalogowanych: 0, gości: 1