Wydajność programisty

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.

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