Wątek przeniesiony 2021-08-23 22:08 z Off-Topic przez cerrato.

Jak byc/zostac dobrym programista?

0

Czesc,

zainspirowany wpisem Czy trudno jest znaleźć dobrego programistę? Chcialbym zadac pytanie jak byc dobrym developerem i co to tak na prawde znaczy? Czy jest to po prostu osoba piszaca dzialajacy kod, testujaca i stosujaca dobre praktyki wspolpracujaca z zespolem? Jak to u was wyglada i jak byscie opisali dobrego developera?

9

Dobry developer, to osoba która (wg stopnia ważności) jest komunikatywna i potrafi rozmawiać z biznesem/klientem, potrafi samodzielnie rozwiązywać problemy, zna proces budowy i potrafi zbudować działającą aplikację, potrafi refaktoryzować i utrzymywać zastały kod, ma wiedzę na temat architektury, paradygmatów, wzorców, technologii, ma pojęcie o tematach związanych z dostarczaniem oprogramowania (ci/cd, docker, chmura prywatna i publiczna), potrafi dobrać architekturę i technologię do problemu oraz uzasadnić swoje decyzje.

1

@Haskell: I zna język angielski w stopniu… no właśnie?

1

curiosity

2

@Silv: to się mieści w "jest komunikatywna i potrafi rozmawiać z biznesem/klientem". Stopień znajomości powinien być wystarczający aby rozmawiać na temat projektu z biznesem oraz współpracownikami z zespołu. Czy umiejętność rozmawiania o d*pie Maryni jest konieczna to bym nie przeceniał, wszystko zależy od konkretnej firmy i kultury organizacyjnej. Jeżeli w firmie lubią small talk i organizują dużo spotkań, które zmierzają w innym kierunku niż robota, to nie obędzie się bez dobrej znajomości.

3

Każdego dnia zadaje sobie to samo pytanie...
screenshot-20210823195611.png

Jak już znajdziesz odpowiedź na to pytanie to się podziel, być może da się uogólnić :P

4

Dobry programista to osoba, która zna odpowiedzi na wszystkie pytania rekrutującego i najlepiej jak chce pieniądze z dolnych widełek. Jeżeli nie czytasz w myślach rekrutującego, nie przeczytałeś wszystkich książek, które on/ona przeczytał/a to jesteś słaby. Jeżeli przeczytałeś jedną książkę więcej od rekrutera to też jesteś za słaby i w dodatku arogancki.

Jeżeli nie rozumiesz też niepoprawnego akcentu języka rzekomo angielskiego, którym posługuje się rekruter to też jesteś słabym programistą.

Jeżeli skończyłeś lepsze studia niż rekruter to jesteś słaby bo niby czemu nie pracujesz w Google. A jeżeli skończyłeś gorsze studia niż rekruter to nie dość, że jesteś słaby to jeszcze głupi. A jak masz studia, a rekruter nie to jesteś słaby i głupi bo zmarnowałeś czas zamiast stukać crudy jak gość!

8

Przede wszystkim - samodzielność.
Nikt nie jest w stanie wszystkiego znać, wszystkiego zrobić od ręki i bez błędów.
Ale podstawowa różnica, która oddziela fachowca od amatora/początkującego to właśnie ta samodzielność (oraz wspomniana przez @WeiXiao kurjoziti). Chodzi o to, że osoba naprawdę dobra umie poszukiwać samodzielnie rozwiązań. Nie wisi na swoim PM/opiekunie/koledze z dłuższym stażem, ale umie sama podejść do tematu, pokombinować, poszukać rozwiązania itp.

Oczywiście - są też inne rzeczy, takie jak pisanie czystego kodu, trzymanie się standardów, znajomość wielu bibliotek czy algorytmów i tak dalej. Ale, moim zdaniem, samobieżność i niezależność to podstawowy wyróżnik kogoś dobrego. Plus jeszcze coś, czego ja osobiście nienawidzę - czyli analizowanie gotowego kodu. Chyba każdy się zgodzi z tym, że 100x łatwiej jest samemu coś napisać od zera, niż rozbierać na czynniki pierwsze coś, co zostało napisane wcześniej przez kogoś (albo nawet siebie samego). Dobry programista powinien umieć bezproblemowo analizować istniejący kod i odczytywać intencje autora. To jak z doświadczonym kierowcą - potrafi nie tylko pilnować siebie, ale i przewidywać zachowania innych uczestników ruchu.

2

Odpowiedź na pytanie "jak być dobrym programistą" jest analogiczna do odpowiedzi na pytanie "jak być dobrym sportowcem". Trzeba mieć talent oraz ćwiczyć. Tak jak w sporcie nie ma treningów-cudów, które pozwolą komuś z małym talentem przeskoczyć trenujące osoby z dużo większym, tak i w programowaniu nie ma żadnej cudownej metody, więc należy po prostu ćwiczyć i starać się to robić w taki sposób, aby zachować jeszcze do tego jakiś entuzjazm, a nie doprowadzić do się do skrajnego wyczerpania.

Dla mnie dobry programista to ktoś, kto potrafi zrealizować w programie jakiś mechanizm, nie mając rozpisanego książkowego algorytmu, nie mając możliwości rozwiązania tego metodą kopiuj-wklej z dzieła innej osoby. Różne tam "dobre praktyki" to sprawa znacznie mniej ważna. Współpraca z zespołem też będzie na nic, jeśli dany człowiek nie będzie potrafił wydobyć z siebie niczego twórczego.

3

Nie pisać w Javie, a reszta to już z górki.

6

Powyżej podano już kilka dobrych kryteriów. Od siebie dodam jeszcze jedno, które jest niejako zaskoczeniem po latach pracy. Dobry programista nie robi żadnych czary-mary, raczej rzeczy proste i zrozumiałe, pisze prosty i oczywisty kod (o ile to możliwe, nie zawsze jest). Taka praca jest, w większości, niemal mechaniczna: tu wydzielić funkcję, tu dopisać parametr, tam dopasować wywołania. Zadziwia dopiero to jak seria takich prostych działań prowadzi do zadziwiających efektów. Nie zadziwia jakaś ezoteryczna wiedza tylko dyscyplina i umiejętność dobrego planowania pracy i przyrostowego tworzenia kodu. Swoją drogą to może być znak czasów. W latach 90tych, kiedy zaczynałem, było dużo czary mary, bo komputery dopiero raczkowały. Teraz mamy szybkie maszyny i duże biznesy, więc bardziej liczy się to, na ile to co robimy jest strawne dla innych.

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