Dobre programerske navike

Posted on Tuesday 27 April 2010

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.

7 Comments for 'Dobre programerske navike'

  1.  
    28.4.2010. | 0: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! :)

  2.  
    28.4.2010. | 14:28
     

    @berislav apsolutno

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

  3.  
    28.4.2010. | 18: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 :)

  4.  
    nina
    09.5.2010. | 8: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?

  5.  
    vuk
    16.5.2010. | 14:27
     

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

  6.  
    tat
    16.5.2010. | 21:21
     

    razvijatelj, normalna riječ

  7.  
    Domagoj
    09.4.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…

Leave a comment

(required)

(required)


Information for comment users
Line and paragraph breaks are implemented automatically. Your e-mail address is never displayed. Please consider what you're posting.

HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>


RSS feed for comments on this post |