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:prawie 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 3 godziny
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:około miesiąc
  • 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:2 dni
  • 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:8403
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.


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)