Co to znaczy być dobrym programistą?

Co to znaczy być dobrym programistą?
3

cześć
od jakiegoś czasu zastanawiam się czy sam siebie mogę nazwać dobrym programistą.
W sumie nie wiem, raczej przychylam się do tego, że jeszcze nie mogę tak o sobie powiedzieć.

Na swojej drodze zawodowej spotkałem trochę ludzi, wśród nich byli:

  • kolega bardzo dobrze ogarniający biznes, ale technicznie taki sobie, nie podążający za nowinkami nawet w obrębie wykorzystywanej technologii, ale logikę biznesową znał chyba najlepiej patrząc się na ludzi z projektu
  • kolega cichy spokojny,wręcz wycofany, bardzo wolny, ale jak już coś zrobił, to nie było się do czego przyczepić
  • kolega gdburowaty i opryskliwy, strach było z nim gadać (bo lubił zjebać jak burą sukę), ale jak się odezwał w sprawach technicznych to na 100 razy 99 miał rację
  • kolega mający szeroką, ale co najwyżej średnią wiedzą z przeróżnych technologii, zagłębiał się jak musiał, ale mógł być spokojnie rzucony na każdy odcinek i sobie radził
  • kolega c++ wymiatacz, współorganizator konferencji, udzielajacy się bardzo w c++ świecie, jak była c++ wątpliwość to był taką żywą encyklopedią (wciąż uzupełnianą)
  • kolega szczególarz, musiał zrozumieć każdą linijkę, zdarzało się, że zawalał terminy, ale rzadko miał regresje, a kod pisał bardzo ładny
  • kolega fanatyk testów, nawet jak nie było to wymagane otestowywał wszystko co można (dzięki niemu zrozumiałem czym są unit testy i czemu są potrzebne itd)
  • kolega mentor, taki ojciec czy tam starszy brat, zawsze miał czas wyjaśnić pomóc, może nie był technicznie wybitny, ale pracując, pomagając komuś, umiał przekazać wiedzę tak, że np świerzak czuł się pewniej, mniej było regresji, wiedza i umiejętności nowicjuszy szybciej rosły itd

wszystkich ich uważałem i uważam za dobrych (nawet bardzo) programistów, bo mieli jakąś wyróżniającą ich cechę, która robiła ogromną wartość dodaną ich pracy

Niby nie ma się co porównywać z innymi, ale mimo, że lata lecą, to u siebie nie widzę jakiejś wyróżniającej mnie cechy, dzięki której mogę powiedzieć, że jestem dobrym programistą. Bywam nieuważny, zdażają się regresje (bywa, że bardzo głupie, gdyby tylko pomyśleć to można by je za wczasu wyeliminować), czasmi kod jest taki, że tylko iść i ręce po nim umyć. Pracuję w tym fachu parę lat, płacą nienajgorzej, ale czasmi mam poczucie, że jestem jak Rocky, w treningu na plaży z Apollem (Rocky 3) i jedyne co przemawia na moją korzyść to koniunktura w branży (czyli lepszy taki niż żaden), a nie jakieś moje osobiste cechy, dzięki którym jestem "pożądany".

Kim wg Was jest dobry programista: ma być raczej bezbłedny, czy raczej szybki i odważny w kodowaniu, geek, dobry kolega?

jesteście dobrymi programstami?

edytowany 1x, ostatnio: aurel
22

Wiesz, to zależy z czyjego punktu widzenia. Dla pracodawcy jesteś dobrym programistą jeśli generujesz mu zysk. Dla kolegów jesteś dobrym programistą jeśli dzielisz się wiedzą i doświadczeniem. Dla ludzi grzebiących w Twoim kodzie jesteś dobrym programistą jeśli piszesz czysty kod. A dla mamy jesteś dobrym programistą zawsze :D

teez
mistrzostwo! :D
vpiotr
dokładnie tak - nie istnieje jeden profil "dobry programista", tak jak nie istnieje profil "dobry lekarz" czy "dobry samochód". Ważne są parametry wg których się ocenia. Np. liczba awarii z utratą danych, liczba WTF/min, liczba wygenerowanych pomocnych uwag w code review - można by mnożyć.
RO
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 7 lat
  • Postów:24
0

Nie rozumiem postu, jak jesteś świeży to jesteś juniorem, potem jak ogarniasz czyli w twoim rozumowaniu dobry programista to powinien być senior albo lead. Jak nie jesteś seniorem to znaczy, że jeszcze nie jesteś dobrym programistą więc się ucz i pracuj.

somekind
W sensie, że seniorzy to z automatu dobrzy programiści? :D
aurel
O mój boże, miałam o sobie całkiem niezłe mniemanie, a właśnie się dowiedziałam, że jak nie jestem seniorem to nie jestem dobrym programistą o.O Tylko że w mojej firmie nie istnieje takie stanowisko... I co teraz? Rzucić pracę? Ja też chcę być dobrym programistą :(
xfin
@aurel zawsze możesz u jakiegoś janusza zostać seniorem/architectem :P (czy jak oni to tam nazywają) (o matko, ruchome emotki w komentarzach... )
EL
@aurel to tylko powód do dumy że firma nie wprowadza tak dziwnych i często bezsensownych podziałów ;)
1
romanlo

Jak nie jesteś seniorem to znaczy, że jeszcze nie jesteś dobrym programistą więc się ucz i pracuj.

jak to kiedyś ktoś napisał
można mieć 5 lat doświadczenia albo rok powtórzony 10 razy
z jednym i drugim można być seniorem

edytowany 1x, ostatnio: flowCRANE
Zobacz pozostały 1 komentarz
somekind
Zdziwiłbyś się.
LukeJL
@lukas_gab ale przecież zarobki zależą głównie od siły negocjacyjnej i umiejętności ustawienia się, a nie od umiejętności czy stażu pracy. Równie dobrze junior pod kątem umiejętności może zostać seniorem finansowym, bo akurat sobie tak wynegocjował.
LG
Chyba albo w swiecie idiotow, albo w korpo (nie wiem, na etapie rekrutacji, korpo zawsze odpadalo i nie bylo dane im mnie zatrudniac). Wiem, ze jak przychodzi gosc do pracy na stanowisko seniora, i wymagam od niego tego co umie senior i po pol roku nadal klepie jak junior ze zlamana reka to dziekuje mu za wspolprace. Nie spotkalem sie z kims kto kogos zatrudnial za x, mimo ze wiedzial, ze za tyle samo zatrudni gosci a, b, c, gdzie kazdy z nich ma ta sama lub wieksza wydajnosc i umiejetnosci jak x...
somekind
Ilość programistów jest ograniczona, ilość dobrych programistów tym bardziej. A zatrudniać trzeba, bo jest robota do wykonania, bo każda osoba to dochód dla firmy. W dzisiejszych czasach juniorzy z 2-3 latami doświadczenia dostają stanowiska "seniorskie", bo jeśli nie da im ich firma X, to da firma Y.
LG
Taki to senior jak Misiewicz godny orderów...
2

Dobry programista to leniwy programista.

LS
LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:minuta
  • Postów:8411
1

Kim wg Was jest dobry programista: ma być raczej bezbłedny, czy raczej szybki i odważny w kodowaniu, geek, dobry kolega?

Nie ma bezbłędnych programistów (może jacyś geniusze co najwyżej). poza tym co złego w byciu błędnym programistą? Robienie pomyłek jest fajne, bo można się uczyć i rozwijać. Albo zapobiegać podobnym błędom w przyszłości.

Bywam nieuważny

To oznaka raczej braku dyscypliny niż braku umiejętności.

Programista może być nieuważny, jeśli jest odpowiedzialny (bo nieuważny, ale odpowiedzialny programista będzie korzystał z takich narzędzi jak statyczna analiza kodu czy napisze testy jednostkowe, albo podda swój kod do code review - właśnie dlatego, że wie, że jest nieuważny i nie wszystko zobaczy i jest na tyle odpowiedzialny, że nie będzie polegał tylko na własnych umiejętnościach osądu).

zdażają się regresje (bywa, że bardzo głupie, gdyby tylko pomyśleć to można by je za wczasu wyeliminować)

Zdarzają się regresje, okej. A czy zdarza się również pisanie testów? (zbyt dużo regresji świadczyć może właśnie o ich braku - chociaż niestety testowanie np. regresji graficznych w GUI może być dość trudne)


edytowany 6x, ostatnio: aurel
LS
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 6 lat
  • Postów:990
2

Dobry programista ma robić swoje i robić to tak żeby reszta zespołu nie chciała się go pozbyć przy pierwszej najbliższej okazji - a wręcz broniła go i nawet groziła odejściem jeśli to jego "góra" chciałaby się pozbyć. Co ci po tym że jesteś mistrzem kodu, geekiem, purystą TDD, pierwszej klasy rozkminiaczem skoro cała reszta odnosi wrażenie żeś gbur/kłótnik/uparty idiota albo twojego eleganckiego kodu nikt nie ogarnia - lub co gorsza psuje co powoduje kwasy. Owszem zespół/firmę zmienisz ale smród pozostanie - a nigdy nie wiesz na kogo trafisz po tej grubszej stronie biurka ;)

To ludzie cię zatrudniają, to z ludźmi pracujesz a nie z kodem (inaczej niż by się mogło wydawać). Umiejętności techniczne to szczegół który może ci pomóż na jakimś etapie kariery ale dobre kontakty pomagają zawsze. Tak więc zasada jest prosta: dobry programista to gość którego lubią i z którym da się wyskoczyć na piwko.


--
Annuit Coeptis
Inquis1t0r
  • Rejestracja:ponad 12 lat
  • Ostatnio:21 minut
  • Postów:286
0

To jest przykład dobrego programisty :>


"I am like a mage invoking incantations into a mysterious black box, conjuring useful applications and bending it to my will."
2

Zamiast filozofowac o tym jak byc dobrym programista lepiej zaczac pisac programy a nie dysputy nt kto jest kim

0
Wybitny Lew napisał(a):

Zamiast filozofowac o tym jak byc dobrym programista lepiej zaczac pisac programy a nie dysputy nt kto jest kim

a co jak takie rozkminy nachodzą po latach w zawodzie?

LS
wtedy nazywa się to GNU Hurd :D
datdata
  • Rejestracja:prawie 11 lat
  • Ostatnio:około 7 lat
  • Postów:957
3

Każda metryka próbująca opisać dobrego/złego programisty jest jakościowa, a więc subiektywna.

Dla team-leadera dobry programista w jego zespole pracuję sprawnie, w sposób niezależny i dzieli się wiedzą z innymi. Dla mnie dobry programista to taki, który pisze elegancki i idiotoodporny kod, którego czytanie jest przyjemnością podobną do czytania poezji. Dla menadżera mojego menadżera prawdopodobnie dobry programista to będzie tani programista, który pracuje dla dobrze płacącego klienta.


"A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects." Robert Heinlein.
edytowany 1x, ostatnio: datdata
LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:minuta
  • Postów:8411
0

Jeszcze od kontekstu zależy.
Przy zatrudnianiu nowego pracownika, dobry programista (patrząc z perspektywy firmy!) to najlepiej obiecujący (np. z doświadczeniem, ze znajomością frameworków, z dobrym CV, portfolio, sprawiający dobre wrażenie na rozmowie rekrutacyjnej itp.)

Jednak po zatrudnieniu powyższe rzeczy przestają mieć znaczenie, a zaczynają mieć bardziej przyziemne typu wyrabianie się w terminach, jakość kodu, umiejętność współpracy z innymi itp. natomiast gdzie pracowałeś wcześniej i czy masz rok czy 10 lat doświadczenia, małe będzie mieć już znaczenie.

No ale to perspektywa "wyobrażonej oraz rzeczywistej korzyści dla firmy" (wyobrażonej podczas rekrutacji, rzeczywistej po zatrudnieniu), natomiast wiadomo, że patrząc z perspektywy nie pracy, a ogólnie programowania, moglibyśmy ocenić same umiejętności techniczne, takie jak np. czysty kod, czy umiejętność zaprojektowania architektury albo ogarnięcie w algorytmach (chociaż jak wiadomo, bycie dobrym programistą niekoniecznie czyni z ciebie dobrego pracownika).


andrzejklusiewicz
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 3 lata
  • Lokalizacja:Warszawa
  • Postów:25
4

Ja zatrudniam programistow ktorzy:
a) myślą samodzielnie
b) jaraja sie tematem i lubia poszerzać swoja wiedzę
c) nie gwiazdorza
d) rozumieją techniki których uzywaja, a nie tylko ich używają
To jest dla mnie z perspektywy pracodawcy jest najważniejsze. To jest dla mnie definicja dobrego programisty. To ile potrafi na ten moment ma mniejsze znaczenie, bo nawet jak mu wiedzy brakuje to z tymi cechami szybko te braki nadrobi. W druga stronę to tak nie dziala.


R1
  • Rejestracja:około 13 lat
  • Ostatnio:2 miesiące
  • Postów:46
0

Dobry temat:) sam się często nad tym zastanawiam.
Ja jestem tym który lubi dokładność, czytelność, zrozumienie kodu dookoła miejsca zmian i dzielenie informacji z innymi (+zbieranie opinii innych odnośnie danego rozwiazania). Czasami dokładność i czysty kod nie idzie w parze z czasem...nie mniej jednak wiem, że jeżeli czas goni a kiedyś wrócę do tego miejsca to czas na przypomnienie i zrozumienie mojego kodu znacznie się wydluzy. Jedyna rzeczą jaką bym w sobie zmienił, to brak pewności. Nabawiłem się tego pracując w dużych projektach. Czasami ktoś mnie pyta jak coś działa...czytam kod...mówię a i tak na końcu okazuje się że gdzieś był jakiś haczyk, którego nie wziąłem pod uwagę bo ktoś coś zawile napisal i na nic moja teoria...Nie mniej jednak wydaje mi się, że to wina źle zaprojektowanego systemu i klejenie wszystkiego jak się da aby tylko działało...

edytowany 1x, ostatnio: ravers_19
testowy_user
  • Rejestracja:ponad 8 lat
  • Ostatnio:23 dni
  • Postów:160
1

Dla mnie dobry programista nie tylko zna framework, w ktorym operuje, ale tez zna bardzo dobrze swoj jezyk programowania (jak slysze, ze ktos nigdy nie widzial czystego Rubyego, bo od razu sie uczyl Railsow to mnie az boli w srodku...), orientuje sie w algorytmach (nie tlumaczy 'to nikomu niepotrzebne', bo ciezko budowac dom bez fundamentow), oraz zna przynajmniej dobrze cale 'otoczenie' swojej aplikacji (to juz zalezy od tego, jaka to aplikacja). Co wazne - umie sobie skonfigurowac optymalne srodowisko do pracy oraz uzywac szybko i sprawnie swojego edytora/IDE. No i pisze tak, ze pozniej nie musze wylapywac jego bledow ;)

2

Dobry programista to ktoś taki jak Mirosław Zelent

0

Co to znaczy być dobrym programistą?

Będziesz wiedział jak już będziesz (jeśli będziesz) dobry.


Widzę, że na forum idzie ostry hejt Pana Mirosława Z. Nie mówię, że jego kursy są super profesjonalne, bo oczywiście nie są (sam dostrzegam w nich błędy), ale na tle "youtubowej sieczki" nie wypadają tak tragicznie. A na YT jestem często, oglądałem już sporo kursrów i rzadko jest coś na dobrym czy wyższym poziomie, może poza ALTKOM-em i kilkoma podobnymi firmami, które organizują szkolenia stacjonarne, właściwie większość tutoriali, kursów, itp prezentuje średni lub niski poziom.

Jeszcze dodam jedną rzecz: Polecam książkę "Zrozumieć programowanie" która może jeszcze nie zrobi z nikogo dobrego programisty, ale na pewno lepszego! Bardzo dobra pozycja.

Bogaty Rycerz

edytowany 1x, ostatnio: aurel
0
Bogaty Rycerz napisał(a):

Co to znaczy być dobrym programistą?

Będziesz wiedział jak już będziesz (jeśli będziesz) dobry.


od kogo
ale serio pytam
Będę częściej pytany o radę o technikalia?
szef sam z siebiecda podwyżkę?

kiedyś słuchałem audycji w radio o lekarzu, rodaku naszym który jeździ do Kazachstanu pomagać w leczeniu. Gdy go zapytano czy sam siebie uważa za dobrego powiedział że jak był młodym lekarzem to udało mu się parę oreparacji i czuł się jak Bóg. Przez to rozleciało się jego pierwsze małżeństwo bo mówił że jak wracał ze szpitala gdzie każdy patrzył na niego z podziwem, do domu gdzie żona chciła aby posprzątał lub wyniósł śmieci to nie mógł tego znieść. Potem miał chudszy okres,w którym paru pacjentów nie uratował, ciężko to przeżył bo myślał, że dla niego nie ma rzeczy niemożliwych i zaczął popijać. W końcu doszedł do ładu sam se sobą jak zrozumiał że to nie on jest ważny ale pacjent. Skończył że jak tak patrzy na swoją pracę to nie wie, bo są momenty i takie z których jest dumny i których się wstydzi.
Tak czy siak wydaje mi się że z programistami jest podobnie. Też wielu za bardzo skupia się na sobie.

Robakowy
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 3 lata
  • Postów:48
0
andrzejklusiewicz napisał(a):

Ja zatrudniam programistow ktorzy:
a) myślą samodzielnie
b) jaraja sie tematem i lubia poszerzać swoja wiedzę
c) nie gwiazdorza
d) rozumieją techniki których uzywaja, a nie tylko ich używają
To jest dla mnie z perspektywy pracodawcy jest najważniejsze. To jest dla mnie definicja dobrego programisty. To ile potrafi na ten moment ma mniejsze znaczenie, bo nawet jak mu wiedzy brakuje to z tymi cechami szybko te braki nadrobi. W druga stronę to tak nie dziala.

Taki ktoś to raczej kandydat na dobrego programistę, a nie dobry programista.

Dla mnie dobry programista to taki, który ma bardzo szeroką wiedzę, znacznie wykraczającą poza IDE.
Nie da się znać wszystkiego, no ale jednak ktoś kto wyznaje zasadę "jak będę potrzebował to znajdę" nie jest dobrym programistą.
Nie jest nawet dobrym pracownikiem. Bo po prostu nie wie, czego będzie potrzebował i czy już tego nie potrzebuje.

DB
  • Rejestracja:ponad 9 lat
  • Ostatnio:3 miesiące
  • Postów:227
0

Moim zdaniem dobry programista to taki który bierze na siebie odpowiedzialność za projekt & zespół.

Robakowy
Tak ma dobry manager. Programista powinien skupić się na swojej robocie, bo za to mu płacą ;)
LG
@up, a slyszales o czyms takim jak wspolodpowiedzialnosc i granie do jednej bramki ?
DB
- w moim odczuciu zeby wejsc na dobry poziom trzeba byc proaktywnym ... zespol nawet mega przekotow na niewiele sie zda w momencie gdy wszyscy beda wykazywac postawe defensywna
Robakowy
@lukas_gab: Tak, słyszałem, podobnie jak słyszałem o "Chcę aby na świecie był pokój". Być może trudno jest sobie pewne rzeczy wyobrazić. Podam przykład - zatrudniam się w projekcie, który ma 10 lat. Mam za niego odpowiadać ? W projekcie pracuje 15 programistów, wszyscy są do bani. Mam za nich odpowiadać ? Każdy powinien odpowiadać za swoją pracę, a jeżeli wszyscy tak będą postępować to projekt będzie idealny.
Robakowy
@DolBo: Święte słowa. Niestety takich programistów jest mało, a jeżeli na początku kariery wydaje Ci się, że sam dasz radę z taką postawą, o tyle po kilkunastu latach, gdy patrzysz, że wszyscy mają wszystko gdzieś, a jedynie Ty nie, dzięki czemu masz wszystko na głowie, dajesz sobie spokój. Popadasz w zniechęcenie i zadajesz sobie pytanie "po się tyle lat starałem" :) Na szczęście tak jest w każdej branży :D
LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:minuta
  • Postów:8411
0

warto zajrzeć: http://sijinjoseph.com/programmer-competency-matrix/
chociaż pewne pozycje już się zdezaktualizowały(np. pozycja o SVN, kto tego używa w 2016) albo umiejscowienie ich na określonej pozycji budzi wątpliwości (np. znajomość dziwacznego Basha ma być niby czymś łatwiejszym od znajomości Pythona?).


edytowany 1x, ostatnio: LukeJL
caer
oj wierz mi że używają
LG
używaja tez i cvs. Czasami trudno sie przesiasc, a przesiadki sa dlugo trwale. Nie bronie cvs - jestem oredownikiem git'a, ale nie zawsze to takie oczywiste, ze wszedzie jest git.
axelbest
  • Rejestracja:ponad 17 lat
  • Ostatnio:około 13 godzin
  • Lokalizacja:Warszawa
  • Postów:2251
1

@Robakowy: Oj coś dziwnie myślisz moim zdaniem. Jak będę potrzebował to znajdę - skoro tego nie stosujesz tzn. że każdy system znasz na wylot i każdą funkcję w np. systemie bankowym (załóżmy że przy takim pracujesz) byś musiał znać jeszcze zanim podejmiesz pracę przy danym tasku. Piszesz, że nie da się wiedzieć wszystkiego - skoro tak - to kiedy mamy czegoś się nauczyć jak nie w przypadku "potrzeby"? Jedno przeczy drugiemu.

Dobry programista to taki, który nawet jeśli nie wie jak dany problem rozwiązać - to znajdzie rozwiązanie właśnie w razie potrzeby (bo po co szukać rozwiązania jeśli nie ma potrzeby?). Skoro taki programista raz znajdzie rozwiązanie - to następnym razem nie będzie go szukał - tylko będzie je znał i być może dzielił się tą wiedzą ze współpracownikami.

Robakowy
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 3 lata
  • Postów:48
0
axelbest napisał(a):

@Robakowy: Oj coś dziwnie myślisz moim zdaniem. Jak będę potrzebował to znajdę - skoro tego nie stosujesz tzn. że każdy system znasz na wylot i każdą funkcję w np. systemie bankowym (załóżmy że przy takim pracujesz) byś musiał znać jeszcze zanim podejmiesz pracę przy danym tasku. Piszesz, że nie da się wiedzieć wszystkiego - skoro tak - to kiedy mamy czegoś się nauczyć jak nie w przypadku "potrzeby"? Jedno przeczy drugiemu.

Dobry programista to taki, który nawet jeśli nie wie jak dany problem rozwiązać - to znajdzie rozwiązanie właśnie w razie potrzeby (bo po co szukać rozwiązania jeśli nie ma potrzeby?). Skoro taki programista raz znajdzie rozwiązanie - to następnym razem nie będzie go szukał - tylko będzie je znał i być może dzielił się tą wiedzą ze współpracownikami.

No właśnie, ciężko zdefiniować co trzeba wiedzieć, a czego można nie wiedzieć.

Aby bardziej zobrazować o co mi chodzi przywołam zasady zdawania matury z matematyki za moich czasów.
Można było mieć ze sobą tablice matematyczne, a nawet kalkulator.

A wyniki egzaminu pokazywały właśnie "googlujących" programistów :)

Oczywiście, że wiedzę trzeba uzupełniać, także na szybko w razie potrzeby.
Ale dobry programista ma już pewien zasób tej wiedzy i nie musi szukać wszystkiego.
Z moich obserwacji wynika, że wielu programistów jest bardziej przyuczonych do wykonywania określonych czynności, a nie wykształconych do pracy i poza ten teren nie wykraczają.

Czy ja jestem dobrym programistą ?
Tak !
Żartuję, znam swoje słabości i staram się je zmniejszać, ale nawet sam Satya Nadella powiedział o sobie "There's always room for improvement".
:)

To jak u mnie, mogę już iść na prezesa :) :D

0

A z mojego doświadczenia najlepszy programista a raczej pracownik to taki który ogarnia projekt. Pracowałem przy 2 naprawdę dużych i skomplikowanych kobyłach i czy ktoś piszę lepiej lub gorzej nie miało większego znaczenia, bo i tak ktoś to review zrobi. Ważniejsze jest że ze od strony biznesowej ktoś to ogarną szybko, miało to sens i niczego nie popsuło.
Również w większych projektach jakiś już odgórny styl 'kodowania' narzucony i często wystarczy użyć finda aby znaleźć to co chcemy i dopasować kod do innych. No i komunikacja idzie mocno w tym w parze.

Sytuacja jest często taka (rozmowa z bardziej doświadczonym kolegą) : *'No bo tutaj widzisz przez ten serwis idzie request do tego webserwisu który po xx minutach zwraca async odpowiedz i wtedy trigger chodzi na bazie powinien to ogarnąć i ta akcja powinna już przestawić ten status na inny, i na wejdź jeszcze w setup zobacz czy 5 checkboxów jest zaznaczone i czy ten item ma 3 inne itemy, no i teraz lecisz 40 punktowy scenariusz przez 20 ekranów i zobacz w debugu co tam się dzieje, jak jednak nie zaskoczy to tam to ja bym tutaj do ifa dodał bym warunek że jak x to y" i powinno hulać. *

Być może tyczy się to utrzymanek, ale dużo tego na rynku więc taka moja opinia.

Robakowy
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 3 lata
  • Postów:48
0
Świetny Kret napisał(a):

czy ktoś piszę lepiej lub gorzej nie miało większego znaczenia, bo i tak ktoś to review zrobi. (...)
Również w większych projektach jakiś już odgórny styl 'kodowania' narzucony i często wystarczy użyć finda aby znaleźć to co chcemy i dopasować kod do innych.

Zgadzam się, że tak to w wielu przypadkach wygląda.
Właśnie o tym napisałem powyżej - wielu ludzi jest przyuczonych do wykonywania pewnych czynności, a nie wykształconych do pracy :)

LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:minuta
  • Postów:8411
1

@Świetny Kret

Sytuacja jest często taka (rozmowa z bardziej doświadczonym kolegą) : 'No bo tutaj widzisz przez ten serwis idzie request do tego webserwisu który po xx minutach zwraca async odpowiedz i wtedy trigger chodzi na bazie powinien to ogarnąć i ta akcja powinna już przestawić ten status na inny, i na wejdź jeszcze w setup zobacz czy 5 checkboxów jest zaznaczone i czy ten item ma 3 inne itemy, no i teraz lecisz 40 punktowy scenariusz przez 20 ekranów i zobacz w debugu co tam się dzieje, jak jednak nie zaskoczy to tam to ja bym tutaj do ifa dodał bym warunek że jak x to y" i powinno hulać.

To zależy. Jeśli po takim opisie jesteś w stanie usiąść i mając jasność umysłu napisać swój kawałek kodu, to jest to win-win. Jednak mi się już zdarzało, że koleś doświadczony w projekcie zarzucił mi podobną wiązankę, a potem i tak usiadłem i nie miałem jasności do tego co zrobić.

Czy jestem słabym programistą? Być może, ale również należy rozważyć to, że koleś nie umiał czegoś jasno przetłumaczyć (umiejętność komunikacji to też umiejętność - a wielu programistów jest słabych w przekazywaniu innym ważnych informacji). W pewnych projektach również zdarza się tak, że architektura jest nieprzemyślana (coś co powinno być proste wymaga know-how projektu i odwoływania się do 5 różnych modułów), albo styl pracy jest dość partyzancki (ostatnie zdanie: " zobacz w debugu co tam się dzieje, jak jednak nie zaskoczy to tam to ja bym tutaj do ifa dodał bym warunek że jak x to y" - pachnie sporą partyzantką i jak podobne stwierdzenia słyszę to ogarnia mnie czasem krwica. Tj. nie mówię oczywiście o twojej sytuacji, bo zarzuciłeś przykładem wyrwanym z kontekstu, tylko odnoszę do swoich własnych doświadczeń).

Również w większych projektach jakiś już odgórny styl 'kodowania' narzucony i często wystarczy użyć finda aby znaleźć to co chcemy i dopasować kod do innych. No i komunikacja idzie mocno w tym w parze.

To ma sens, przy założeniu, że projekt ma narzucony odgórny styl kodowania, również przy założeniu, że wystarczy użyć finda, żeby znaleźć to co chcemy (czyli, że rzeczy w projekcie są dobrze nazwane) i tak dalej. Innymi słowy - zakładasz na wstępie, że projekt jest dobrze napisany i jest "discoverable" dla nowej osoby. JEŚLI tak jest to okej, ale często projekty są pisane byle jak, nawet bez dobrego nazewnictwa czy struktury zależności modułów od siebie nawzajem - czy więc dobry programista to taki, który ogarnia spaghetti kod?

Może, ale ja wziąłbym to co napisałeś i odwrócił trochę kota ogonem - dobry programista to nie taki, który umie znaleźć sobie pewne rzeczy w dużym projekcie, ale raczej taki który pisze jasny prosty, łatwy do zrozumienia kod i stosuje takie nazewnictwo oraz tego typu struktury w kodzie, które ułatwią potem wyszukiwanie i łatwą modyfikację.

To nie tyle ktoś, kto umie utrzymywać stary kod, ale raczej ktoś, kto pisze nowy kod z myślą o tym, żeby ułatwić utrzymywanie projektu w przyszłości. Ew. refaktoryzuje stary kod, tak żeby polepszać jego jakość chociaż trochę.


edytowany 5x, ostatnio: LukeJL
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)