Dobre programerske navike

obrazovanjeprogramiranje

Na blogu, čiji je naziv predug i predosadan za navođenje, navedeno je 6 najboljih programerskih navika (u naslovu se spominje 5), a kako mi se čini da su natuknice odlične, a tekst nešto manje, onda sam odlučio da ih prepričam na svoj način. :-)


Na greškama se uči. Kažu neki da je pametnije učiti na tuđim greškama, ali vlastite greške imaju bolji učinak. Kod greške je vrlo važno otkriti kako je došlo do nje i razumijeti okolnosti pod kojima je nastala. Nije dobro kad se greške javljaju zbog toga jer programer nije predvidio i obradio neregularne slučajeve (neočekivane unose). Poseban su problem programeri koji ne priznaju vlastite greške i svaki otkriveni bug smatraju napadom ne sebe. Bugovi su sastavni dio programerskog posla i svaki bi programer trebao imati razrađenu proceduru za njihovo rješavanje i preventivu. Poricanje to sigurno nije.


Najbolja rješenja su najjednostavnija rješenja. Ako je neki problem rješen na kompliciran način sasvim sigurno je pogrešno riješen. Jednostavno je u većini slučajeva i najbolje. Najveći problem je što je ponekad do jednostavnog teže doći. Tu su nam problematični programeri koji vole komplicirati jer jednostavna rješenja ne smatraju dostojnim njihove genijalnosti ili jednostavno ne znaju stvari rješavati na jednostavan način.


Komunikacija treba biti jednostavna i razumljiva. Programer treba znati što traži od korisnika i navesti korisnika da mu to kaže na najjednostavniji način. Problematični su oni korisnici koji pokušavaju programeru reći kako oni misle da bi problem trebalo riješiti. Ja sam korisnicima uvijek znao govoriti da zanemare tehnikalije te da mi pokažu kako oni rješavaju taj problem na papiru, bez računala. Nije potrebno da programeri korisnika zamaraju s tehničkim detaljima, to njih može samo zbuniti. Korisniku je važan ulaz i izlaz, crna kutija između njih je stvar programera.


Učenje novih tehnologija, metodologija i alata se podrazumijeva. Neki programeri su odabrali put u jednom pravcu i smatraju da ne trebaju učiti ništa izvan tog puta. Uvijek je dobro učiti nove stvari, čak i ako nisu u direktnoj vezi s specijalnošću nekog programera. Nešto što ste vidjeli u drugom dvorištu može vam dati ideju kako da riješite problem u svojem.


Oblačenje u tuđu kožu. Ako radite program za nekog korisnika, a smatrate da ne morate znati ništa o njegovom poslu, onda ste u krivu. Programer se mora ponekad naći u koži korisnika kako bi bolje razumio problem i na taj ga način bolje riješio. Iako programeri izrađuju programe, oni nastaju i rade se za korisnike i ne bi im trebalo biti ispod časti da snime stvari i iz korisničke perspektive.


Podučavanje. Ako ste sebični programeri i smatrate da je vaše znanje predragocjeno da bi ga samo tako dijelili s drugima, onda znajte da podučavanjem pomažete ne samo drugima nego i sebi. Kad drugima prenosite neko znanje onda ga morate uobličiti, sistematizirati, srediti. Tako možete otkriti neke nedostatke u vašem znanju ili u metodama. Pametan učenik će vam postavljati pametna pitanja. Možda ste preduboko ušli u rutinu pa vam neka jednostavna rješenja nisu tako očita kao nekome tko to gleda sa strane ili iz druge perspektive.


U tekstu govorim o programerima, ali zapravo mislim na one koji su stepenicu iznad toga i nazivaju ih developerima. Ne znam da li u hrvatskom postoji neka prikladna riječ za njih.



Komentari

27. travnja 2010. 23:37

Koje su tri glavne osobine dobrog programera?

  1. Lijenost
  2. Tvrdoglavost
  3. Znatiželja

Mislim da je Michelangelo rekao da on ne kipari, nego samo miče suvišne dijelove s kamena. Ista stvar je i kod programiranja: programiranje nije ništa drugo nego uklanjanje grešaka. A izrada svake aplikacije i započinje greškom: koda uopće ni nema! :)

28. travnja 2010. 13:28

@berislav apsolutno

Sto se clanka tice, nakon 11 profesionalnih godina mogu samo reci +1

28. travnja 2010. 17:17

Slažem se s člankom. Posebice učenje novih tehnologija -- jer se može naučiti i što izbjegavati. Recimo, u nekim povišenim, bistrim, oštrim jezicima :)

9. svibnja 2010. 07:17

pitanjem kako prevesti developera si me natjerao na razmisljanje i trazenje odgovora. nasmijah se citajuci neke nase prijedloge i prijevode (recimo - razvijač :P), ali najblize na sto sam naisla i cini mi se nekako ok je - razvojni programer. kako vam zvuci?

16. svibnja 2010. 13:27

@nina: mene u zadnje vrijeme zbunjuju građevinci koji sebe također zovu developerima. :-)

16. svibnja 2010. 20:21

razvijatelj, normalna riječ

9. travnja 2011. 23:21

Pa ne znam baš da je razvijatelj dobra riječ. Moja baka je razvijatelj: Razvija tijesto za kolače... Ovo što je Nina rekla je najbliže i sigurno najpreciznije.

Kad mi pokušavamo stvarati jezik onda odvodnice kuće nazovemo okolokućnim popiškalom. Svinje nazivamo blatobrčkalom, bicikl međunožnim guralom...

Stoga možda nešto bolje ne prevoditi... Pogotovo u programiranju i elektronici. Siromašni smo dobrim knjigama o pojmu "programiranje", pa ne vidim razlog da bi bilo potrebe prevoditi pojmove. Poznaje li itko našu sintaksu programiranja? "Radi", "Radi sve dok je", "Skoči"... Pa onda dolazimo i do pojmova bootloader, usb, wdt... Kako bi to dakle bilo na našem?

Bootloader - Učitavač čizama??? USB - USS - Univerzalna serijska sabirnica WDT - BNP - Brojač nadgledanja pasa?

Da ne govorim o stručnim terminima koju sam nam već usađeni kao kratice programerskog jezika i besmisleno je biti programer na nekom drugom jeziku, osim onoga kojeg je literatura odabrala...