Cechy dobrego programisty

Cechy dobrego programisty

Wątek przeniesiony 2016-10-24 11:38 z Edukacja przez DibbyDum.

0

Witam. Mam do Państwa pytanie. Jakie cechy powinien mieć dobry programista? Czy waszym zdaniem można je wypracować? Jak się kształcić aby być dobrym programistom?

czysteskarpety
czysteskarpety
  • Rejestracja:około 10 lat
  • Ostatnio:ponad 4 lata
  • Lokalizacja:Piwnica
  • Postów:7697
3
Złoty Pomidor napisał(a):

Jak się kształcić aby być dobrym programistom?

musi umieć pisać w miarę poprawnie po polsku, przynajmniej podstawy


axelbest
Jak ktos jest dobrym programistom - to podstawowom cechom jest pisanie po polskiemu :) jak nie najwazniejszom :)
flowCRANE
@axelbest - prendzej po angielskiemu, bo to warzniejsiejsze ;)
Franiu
Poprawnie po polsku, ale po co? Wystarczy poprawnie po angielsku pisac. Z kolei pisanie kodu po angielsku oducza od pisania "ą" na forach :)
1milion
which language r u using here ? WTF ? : )
Miang
ale jak Polak mieszkający w Polsce nie potrafiący się nauczyć polskiego miałby nauczyć się poprawnego angielskiego?
HE
  • Rejestracja:prawie 9 lat
  • Ostatnio:około 2 lata
  • Lokalizacja:Kraków
  • Postów:269
2
  • samodyscyplina
  • konsekwencja
  • niezrażanie się chwilowymi niepowodzeniami
  • dobra organizacja pracy
  • tolerowanie tego typu formy pracy (komputer przez cały dzień, dość niewiele kontaktu z ludźmi) - tego nie da się wypracować
  • zależnie od działki/roli w zespole może mieć znaczenie lub nie: dostrzeganie sedna projektu (np. co tak naprawdę chce osiągnąć zleceniodawca strony internetowej)
Ktos
Moderator
  • Rejestracja:prawie 23 lata
  • Ostatnio:około 8 godzin
9

Lenistwo.

1milion
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 8 lat
  • Postów:57
1

To co napisał HEMikr aby nie zrażać się chwilowymi błędami w kompilacji lub co gorsza, kompilującym się kodem ale za to programem działającym niezgodnie z założeniami. Takie błędy są najgorsze gdy uruchomiony program zaczyna działać niewłaściwie po np: 5 min albo 10.

Bardzo trudno znaleźć taki błąd i dobry programista na pewno pozna sztukę programowania dotyczącą nazwnictwa pisanego kodu - to jest wytyczne do zmiennych, funkcji & so on. Tu liczy się przede wszystkim inteligencja - ale tylko wtedy gdy chcesz się wybić tak jak Blizzard z World of Warcraft. WoW to kawał świetnego kodu i nie mówię o merytoryce gry ale o jej wykonaniu. To kunszt programistyczny. Majstersztyk. Wiele gier ma błędy - jedyne co znalazłem grając w niego przez 2 lata to to, że okienko w którym wybiera się obrazki do własnych macro jest trochę za małe i mogłoby być widać więcej ikon od razu. To jest śmieszny zarzut jak na tak skomplikowany kod.

Dobry programista musi też przewidywać. Dobry programista na pewno musi też być raz w życiu w Hollandii lub Belgii i zapalić dobrej jakości zioło. Oryginalny programista na pewno musi zjeść magic mashrooms, rosną niemal na całym globie.
I wydaje mi się, że musi być outgoing. Chyba, że znacie jakiegoś programistę, który jest nielubiany jako człowiek ?

Inquis1t0r
Szkoda tylko, że niedawno przyznali się do tego, że niektorych rzeczy, istniejących od 2004 roku, boją się dotykać bo tak źle to jest napisane :P
1milion
może nie tyle co źle a sprytnie - by obcy nie mogli modyfikować kodu w łatwy sposób - i ja ich rozumiem. Blizzard to korporacja, wykorzysta i zwolni więc programiści pewnie zabezpieczają się jak mogą xD Nie mniej jednak - WoW to majsersztyk - gra bez błędów.
Inquis1t0r
Zdaje się, że oni zwyczajnie nie przewidzieli, że ta gra stanie się tak popularna i, że będą musięli wrócić do tego kodu po x -latach i pięciu dodatkach. Inna sprawa, że w 100% zgodzę się jeśli chodzi o UX, majstersztyk.
1milion
Nie przewidzieli już na samym początku. Gra została zaprojektowana (mówię o pierwszej wersji - Vanilla) na 500k osób a zaraz po premierze logowało się 2,5 mln osób - czyli 5x więcej niż zakładali. Skutkowało to ogromnymi kolejkami i nieraz lagami, ale w końcu sobie z tym poradzili. Potem programiści dziękowali userom (co niektórzy ze łzami w oczach ze wzruszenia), że tak docenili ich produkt: )
Inquis1t0r
Ale teraz chyba szukali jakichś ludzi od RE żeby się pozajmować naprawianiem starych projektów.
JU
  • Rejestracja:około 22 lata
  • Ostatnio:2 miesiące
  • Postów:5042
3

Programista to dziwne stworzenie. Jednocześnie powinien chcieć pracować i być leniwym. Chęć do pracy - wiadomo o co chodzi. Lenistwo natomiast pomaga w pisaniu poprawnego kodu, głównie jeśli chodzi o zasady DRY i KISS. Ale też dochodzi do tego chęć poprawnego jak najlepszego zaprojektowania systemu, bo "potem nie będzie mi się chciało zmieniać" :)

LukeJL
daję lajka, choć częściowo nie zgadzam się z ostatnim zdaniem (chodzi o to, że często nie da się zaprojektować dobrze na początku i zmiany designu to coś, z czym sobie trzeba jakoś radzić - mało kto umie dobrze zaprojektować cały system od początku - chyba, że właśnie jest "dobrym programistą", ale takich programistów jest bardzo niewiele).
LukeJL
z drugiej strony coś w tym jest - widzę nawet po sobie, że wolę czasem od początku zrobić dobrze, zaprojektować w sposób odpowiedni, bo nie mam ochoty na babranie się potem w ciągłe zmiany. Więc myślę, że to zdanie ma sens, chociaż trzeba podejść do niego z dystansem.
LukeJL
tj. myślę po prostu, że do "najlepszego zaprojektowania systemu" potrzeba mieć doświadczenie w danej działce programowania. Niestety design jest często schrzaniony przez ludzi bez doświadczenia, którzy chcą coś zaprojektować "na zapas", co wychodzi ułomnie (przy czym "człowiekiem bez doświadczenia" może być każdy programista stojący przed problemem, z którym się jeszcze w życiu nie spotkał)
JU
No chodzi oczywiście "jak najlepszy projekt wg aktualnej wiedzy". Ale też właśnie warto przemyśleć sobie jakie mogą być zmiany w przyszłości. Wiadomo, babrać będzie się trzeba tak, czy owak. Chodzi o to, żeby babrać się jak najmniej :)
TA
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 3 lata
  • Postów:3
0

Każdy uważa programistę za człowieka mało kontaktowego ale czy tak na prawdę jest w rzeczywistości ?

TD
Nie
0

"Better done than perfect" i ogolny "wyjebanizm".

KR
Moderator
  • Rejestracja:prawie 21 lat
  • Ostatnio:dzień
  • Postów:2964
3

"Better done than perfect" i ogolny "wyjebanizm".

To jest cecha programisty aplikacyjnego, robiącego aplikacje dla końcowego klienta na zamówienie, gdzie jest twardy termin i kary umowne za jego przekroczenie. Zamawiający oprogramowanie i tak sam nie będzie tego używał, tylko bliżej nieokreślony "ktoś", komu się mało płaci i kto nie będzie miał wiele do gadania. I później pani w okienkku w jakimś urzędzie z rozbrajającą miną powie do petenta, "no widzi Pan, dzisiaj system się zepsuł, proszę przyjść jutro, ja tu nic dzisiaj nie zrobię". :D

Na pewno jednak nie chciałbyś, aby system baz danych, system operacyjny ani tym bardziej system sterujący reaktorem jądrowym był pisany w takiej filozofii.

LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:minuta
  • Postów:8423
0
Ktos napisał(a)

Lenistwo.

Lenistwo, niecierpliwość i pycha: http://wiki.c2.com/?LazinessImpatienceHubris :)

Nie wiem czy mogę się uważać za dobrego programistę, ale jeśli miałbym wskazać cechy, które najbardziej są przydatne w programowaniu to na pewno byłoby to lenistwo. Bo ta cecha pozwala na automatyzację pracy, choćby. Chociaż to musi być lenistwo wyważone, takie, że jesteś gotowy poświęcić dodatkowe ileś godzin na to, żeby zrobić sobie coś, co potem ułatwi ci pracę i pozwoli na większe lenistwo w przyszłości, na szybszą (mniej męczącą) pracę w przyszłości.

"Better done than perfect"

wg mnie lepszą mantrą jest: "Make it work, make it right, then make it fast", bo zakłada, że etap zrobienia czegoś byle jak ("better done than perfect") to tylko początek drogi ("make it work"), a potem następuje doskonalenie.


Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.