|
Tinginys, tinginys ir dar kartą tinginys! Tiesa, dar pridėkime lankstumą ir perfekcionizmą, bet apie viską – iš eilės. Taigi, kodėl tingėjimas yra programuotojo draugas? Nagi, pagalvokime. Ko programuotojas labiausiai nemėgsta? O gi daryti „tą patį per tą patį“, kadangi tai visiškai nepadeda jo tobulėjimui. Ką jis tada daro? Stengiasi kodus parašyti taip, kad grįžti prie to paties ar pakartotinai rašyti reiktų kuo mažiau. Kitaip sakant, tingėdamas ateityje iš naujo daryti tą patį, jis stengiasi rašyti kodą, kuris būtų itin lankstus ir esant reikalui reikėtų minimalių pastangų jo funkcionalumo praplėtimui. Tik svarbu nepersistengti – juk pamenate DRY principą praeitame mano straipsnyje? Tačiau yra ir kitokių tingumo formų ir jos, deja, jos nėra tokios geros, kaip aprašyta aukščiau. Pati akivaizdžiausia – tiesioginis tingėjimas išvis kažką daryti (turbūt tai yra neigiamas dalykas bet kokioje gyvenimo situacijoje).
Kita tingumo forma – nelankstumas. „Tingėjimas“ lanksčiai žiūrėti į problemą ir rinktis įprastą (ne visada geriausią) sprendimą irgi nėra gerai. Dabartiniame pasaulyje gebėjimas prisitaikyti kiekvienoje situacijoje – svarbus kaip niekada. Ir jei programuotojas gyvena su tuo pačiu, kaip ir prieš 5-10 metų, požiūriu į programavimą ir įgūdžius, iš jo tikėtis efektyvių ir teisingų sprendimų tikėtis neverta. Turi būti žingeidus naujovėms, tačiau jausti ribas – naujausios mados ir tendencijų vaikimasis gali neduoti jokios naudos, ypač jei ilgainiui pasirodo, kad tos tendencijos „neprilipo“ ir buvo „nurašytos“. Beje, apie perfekcionizmą (tinkamai naudojamas jis yra mano geriausias draugas). Programuotojų pasaulyje perfekcionizmas – tai nuolatinis siekis parašyti kodą geriau, nei jis buvo parašytas paskutinį kartą. Jei programuotojas nėra visiškai patenkintas tuo, ką parašė ir jaučia, kad gali geriau – vadinasi su jo perfekcionizmu yra viskas gerai. Žinoma, su sąlyga, kad susiduręs su ta pačia problema ateityje jis jos sprendimui ieškos geresnio būdo, o ne naudos senąjį. Juk „galėti“ – ne visada reiškia „daryti“. Kas dar svarbu? Reiklumas ir konkretumas taip pat yra gero programuotojo „draugai“. Kodėl? Todėl, kad gerai realizuoti sprendimą galima tik tiksliai žinant užduotį – ji turi būti konkreti ir aprašyta taip tiksliai, kad neliktų vietos jokiems „arba arba“. Šiose situacijose atsiskleidžia ir programuotojo reiklumas. Jei programuotojas nedaro užduoties, kol ji nėra tinkamai aprašyta, jam galima dėti didelį pliusą. Žinoma, dėl tokio elgesio gali pykti valdžia ir projektų vadovai. Bet kaip kažkur teko skaityti – „programuotojas yra Dievas“ ir visi turi šokti pagal jo dūdelę, kitaip galutinis realizacijos variantas tikrai nespindės kokybe. Turbūt tokios mintys nesvetimos ne vienam programuotojui? Pabaigai – dilema. Kas yra geresnis programuotojas: konceptualistas ar „darytojas“? Konceptualistas šiuo atveju atspindi asmenį, kuris daugiau laiko galvoja negu programuoja. O „darytojas“ – tas kuris daugiau laiko programuoja negu galvoja. Aš linkstu prie konceptualisto (nes save tokiu laikau). Prieš ką nors darydamas aš sugaištu nemažai laiko mąstydamas, kaip tai turės būti realizuojama, kokie gali išlįsti kabliukai, kokią architektūrą naudoti ir t.t. „Darytojas“ šioje vietoje daug nesigilins – jis ims ir pradės daryti, o esant reikalui, keis kodą, jei nenumatė kažko iš anksto. Jo pranašumas – mažesni laiko kaštai, o minusas – kodas gali būti „a bit messy“...
Išvardinau tas gero programuotojo savybes, kurios atėjo iš patirties ir savęs stebėjimo, ieškojimo to, kas verčia mane tobulėti. Turbūt yra ir daugiau gerą programuotoją apibūdinančių savybių. Kas verčia jus tobulėti? |