
Kažkur internete radau tokią mintį. Iš pirmo žvilgsnio, labai keistas pareiškimas. Tačiau įsigilinus, gaunasi visai logiškas paaiškinimas, taigi pabandysiu jums paaiškinti, kodėl programuotojas, kad taptų geru specialistu, turėtų būti tinginys ir kvailys.
Tingumas
Programuotojai yra tinginiai, nes tik tinginiai norės rašyti tokį kodą ir kurti tokius įrankius, kurie galiausiai pakeis pačius programuotojus. Tingūs programuotojai vengs rašyti monotonišką ir pasikartojantį kodą ir kurs viską taip, kad nereikėtų prie to sugrįžti antrą kartą. Taigi, paradoksas, bet geriausi programinės įrangos kūrimo procesai sąlygojami būtent tingumo ir nenoro sugrįžti prie tų pačių dalykų vėl.
Be abejo, tai tik pusė teisybės. Kad tingus programuotojas taptų geru specialistu, jis (ar ji) turi būti labai netingus, kai reikia mokėti išlikti tinginiu - skamba painiai, bet esmė ta pati, kaip ir praeitoje pastraipoje: norint nesugrįžti prie to paties kodo antrą kartą, reikia netingėti ir pasistengti jį parašyti geriau vieną kartą. Beje, tam net yra angliškas žodis "unlazy", pagal kurį Google duoda 109000 rezultatų - reiškia, toks reiškinys tikrai egzistuoja.
Kvailumas
Geras programuotojas turi būti kvailas. Tiksliau, žinoti, kad jis kvailas. Jei jis manys, kad jis labai protingas, tada jis:
a) nustos mokytis;
b) nustos kritikuoti savo paties darbus
Punktas a) neleis jam atrasti naujų technikų ar metodų ir neleis jam dirbti greičiau. O punktas b) sukels problemas testuojant jo parašytą kodą - jis galvos, kad programa yra padaryta tobulai, ir nesugebės įžvelgti kritinių klaidų. Apskritai, mūšyje tarp programuotojo ir kompiliatoriaus, pirmam geriau visada pasiduoti ir pripažinti kad kompiliatorius niekada neklysta, ir jei jis parodo klaidas, tai yra paties programuotojo kaltė (nors būna ir išimčių, bet retai).
Dar kitas dalykas, kodėl programuotojas turi būti kvailas. Tiksliau, šis žodis ne visai tikslus - programuotojas turi "nusileisti ant žemės" ir kalbėti su žmonėmis paprasta kalba, vos ne kaip su vaikais. Tik tada jis supras jų problemas ir galės ištaisyti klaidas bei sukurti geresnę programą.
Na ir pabaigoje galiu pasakyti, kad visas šitas kalambūras yra tik sąlyginis dalykas, vis tiek tikrai geru specialistu tampa tik darbštus ir protingas žmogus, tačiau vis tik dalelė to turi būti ir tingėjimas, ir kvailumas. Ar sutinkate?
Lapkritis 24th, 2009 12:11 pm
Dėl tinginystės - sena tiesa, kad “tinginystė - progreso variklis”. Anksčiau tą dar populiaru buvo vadinti - racionalizavimu.
O “kvailumas” - tai pasirodė truputi neteisingas, per riebus terminas, nors esmė ir aiški. Man labiau tiktų “abejingumas” ar kas nors panašaus. Kitaip tariant turėtų visą laiką abejoti, kad daro teisingai, ir domėtis kaip tai daroma teisingai.
Lapkritis 24th, 2009 12:13 pm
Kaip kažkas yra pasakes “kvailiai sako, kad yra protingi, protingi sako, kad yra kvailiai”(skamba panašiai). O šeip mintis nelabai kokios. Manyčiau tinginys nėra tas žodis kuris čia tiktų, gal labiau įžvalgus. O kvailys niekada nemato savo klaidų, antram punktui labiau tiktų žingeidus ar net savikritiškas. Kiek man yra tekę susidurti su kūrimo prosecu, tai savo klaidas pastebėti labai sunku, nes kas kūrejui atrodo labai paprasta, vartotojui dažniausiai būna kažkas sunkaus.
Lapkritis 24th, 2009 5:15 pm
Pritariu. Žinau tokių… - o jis patyręs ir senas programuotojas, jis daug žino.
Taip - daug praeities. Ir tik tai ką jis žino yra taip kaip turi būti, nors jo žinios paseno ir pabalo.. Dažnai nežino, net ne tai kas yra šiandien, bet nežino net kas jau buvo vakar (metafora). O ką kalbėti jau apie rytojaus tendencijas…