Sunkus klausimas, taip? Iš tiesų šis straipsnelis yra atsakymas į Juozo Kaziukėno įrašą “Ar tu moki programuoti?“. Nevisiškai sutinku su tuo, kad geram programuotojui yra svarbiausia teorinės žinios (bent jau aš taip interpretavau jo straipsnį).

Nesu susidūręs su daug programavimo kalbų. Ilgiausiai dirbu/žaidžiu su PHP - 6 metus (rimtai apie 4). Žinoma, teko susipažinti ir su Pascal, ir su Delphi, šiek tiek su C. Tačiau ne tame esmė. Iš savo nedidelės patirties ir pažįstamų rato susidariau šiokią tokią nuomonę, kas yra geras programuotojas ir ką jis privalo turėti, kad tokiu taptų.

Visų pirma - tai menas. Menininkais gimstama, taip? Lygiai taip pat ir su programuotojais. Na, ne tiesiogiai. Retas, kuris tik pradėjęs tarti pirmus žodžius pradeda rašyti programas. Tačiau gerą programuotoją galima atpažinti pagal tai, nuo kelerių metų jis programuoja. Kuo jaunesnis parašė savo pirmąjį kodą, tuo didesnė tikimybė, kad jis geras programuotojas. Kodėl? Jis turi tai, kas vadinama “pašaukimu” arba talentu. Vieni vaikai nori būti sportininkais, kiti kunigais, treti policininkais ir t.t. Dalis jų nori tapti programuotojais/kompiuterių specialistais. Ta dalis ir yra geri . Kaip pavyzdį galiu pateikit Ludwig van Beethoven. Šis žmogus jau vaikystėje pasižymėjo savo talentu. Nuo mažų dienų tėvas mokė groti ir jis tapo didžiu menininku. Jis turėjo aistrą muzikai.
Štai čia mes priėjome prie pirmojo ir turbūt pagrindinio, mano nuomone, gero programuotojo požymio - aistra programavimui. Šį punktą galime suskirstyti į keletą papunkčių.
Nemažai mano pažįstamų pasirinko informatiko/programuotojo specialybę, nes ji yra perspektyvi. Uždirbti galima daug. Paklausus žmogaus, kodėl pasirinko programuotojo specialybę, gali padaryti išvadą ar jis turi tai, ko reikia geram programuotojui. Jeigu pasirinko dėl karjeros arba dėl to, kad “neįstojo kitur” - viskas aišku. Tokių žmonių nesuprantu.

Taigi geras programuotojas savo specialybę turėjo pasirinkti todėl, kad jam tiesiog patinka programuoti.
Tokie žmonės, dėl aistros tam, ką daro, programuoja ne tik darbo metu, bet ir laisvalaikiu išbando naujas technologijas. Su geru programuotoju gali smagiai, įdomiai ir argumentuotai diskutuoti apie jo naudojamus produktus. Programuojantys tik dėl pinigų, dažniausiai ne darbo metu nediskutuoja nei apie programavimą, nei domisi naujomis technologijomis, nei ieško įdomesnių sprendimų problemoms spręsti.

Čia išlenda dar vienas punktas. Geras programuotojas domisi naujomis technologijomis, mėgsta įššūkius, todėl aš dažnai nustembu, kai atrodo geram programuotojui pasakai jau visiems seniai žinomą technologiją, o jis tik ausimis pakarpo. Beje, geram programuotojui nereikia mokomųjų kursų (tarkim, PHP atveju - Zend sertifikatui gauti), kad “įvaldytų” tam tikrą technologiją.

Domėjimasis naujomis technologijomis nereiškia mokėti, pavyzdžiui, Ajax. Tai jau sena. Tai moka/naudoja/žino visi. Pasirodo yra tokių, kurie dar nežino kas tas Adobe AIR (tokiems patariu skaityt Pixel.lt) ar Adobe Flex. Neišbandyt taip visų giriamo Ruby On Rails? Arba, jeigu taip nenori mokytis naujos programavimo kalbos, tai bent jau CakePHP, ZF, Symfony ir t.t. Apsileidimas.. Geras programuotojas visada puls pirmas bandyt naujus dalykus, galbūt jis galės tai pritaikyti savo praktikoje? Jam tikrai nereikia siūlyt - “galbūt tai galima padaryti su tuo ir tuo?”.

Iš patirties sakau (kiek pažįstu), programuotojas, kuris pradėjo programuot universitete ir jį baigė, tikrai nėra geresnis programuotojas, kuris pradėjo mokytis pats.
Hm, galvoju, ko nepaminėjau dar. Tiesa, geri tikrai nėra tik “antisocial geek`ai”. Anaiptol. Geri turi būti socialūs ar aktyviai bendrauti. Nebūtinai visose srityse ir ne su visais. Tačiau jie turi mokėti apginti savo nuomonę ir priimti kitų kritiką. Kaip kitaip jie dirbs komandoje ?

Beje, jeigu jūs esate darbdavys, nesivadovaukite vien tik CV aprašyme pateikta informacija. Kaip jau minėjau, geri pradeda programuoti dar prieš universitetą. Patys mokosi ir išbando viską iš eilės. Asmeniškai aš savo CV tikrai niekada nerašyčiau, jog būdamas 10 metų pasirašiau ryškiai raudoną su bėgančiom eilutėm HTML puslapį. Arba Pascal programą, kuri mokėjo daryti kokį nors menkniekį. Abejoju, ar kuris nors geras programuotojas aprašo savo kaip programuotojo pradžią į CV. O būtent tokia informacija ir parodo ar jis yra geras programuotojas ar ne.

Juozas savo straipsnyje pamąstė, kiek gali būti gerų/negerų programuotojų Lietuvoje. Iš mano pažįstamų rato tikrai geri yra tik keli. Tad, Juozai, surasti produktyvią ir gerą komandą tau tikrai bus nelengva, bet gailėtis, kad pasirinkai programuotojo profesiją tikrai nereikia, jeigu tu jauti aistrą jai. Jeigu tai pasirinkai tik dėl uždarbio (tai galioja ir visiems kitiems) - būk ekonomikas - partnerių rasi daug.

Tai tiek mano pamąstymų. Laukiu komentarų, galbūt jūs manote kitaip arba turit, kuo papildyti?

P. S. straipsnį rašiau iš “Web developerio” pusės, nes būtent tuo ir domiuosi. Tačiau pakeitus pavyzdžius su web technologijomis į kitas, galima tai pritaikyti bet kokios srities programuotojui.

p.p.s ačiū zebrai už pastebėjimą, jog dauguma minčių remiasi šiuo straipsniu.

Panašūs straipsniai


“Kas yra geras programuotojas?” komentarų: 30

  1. zebra

    tai verti populiariuosius straipsnius? -
    http://www.inter-sections.net/2007/11/13/how-to-recognise-a-good-programmer/

    tik lietuviskai “nusisavinam” ant savo vardo talento, vietoj to kad bent ’straipsnis pagal..’ nuoroda idet. jau ir geda galetu atsirast kai ne pirmas kartas.. liudna.

  2. asterisk

    zebra, neverčiau :) taip esu tą skaitęs, galbūt todėl mano nuomonė panaši į to straipsnio autoriaus. Negaliu sakyti kad nesirėmiau jo mintimis, nes jos teisingos. O šitas url bus skaitiniuose ;) tiesa, tikrai my bad kad neparašiau url straipsnyje :)
    Panašių straipsnių yra daugiau - http://blogoscoped.com/archive/2005-08-24-n14.html
    http://particletree.com/notebook/becoming-a-better-programmer/
    http://samizdat.mines.edu/howto/HowToBeAProgrammer.html
    tik jie turi daugiau techninių detalių. :)

  3. Ričardas Š.

    Gerai, kad pats pripažįsti, jog tai tik pamąstymai, nes čia nėra argumentuotos nuomonės, o tie pasisakymai “mano pažįstami”, “pažįstami” ir kt., nesudaro pakankamo įspūdžio, tavo patirtis = tavo pažįstamiems? (iš straipsnio taip išeina), todėl labiau siūlyčiau rašyti apie save, kaip šio straipsnio pabaigoje, o ne pažįstami ir nepažįstami. Pažįstami ir yra pažįstami - nieko daugiau.

    Beje, manau, geras programuotojas ties PHP nestovės 6 metus, nes tai tikrai nėra geriausia programavimo kalba. :) Mano subjektyve nuomone, kuo toliau, tuo PHP nieko verta - Juozo mintys atspindi mano nuomonę, kai visus kodus galima rasti internete ir iš jų kažką sudėlioti, net neišmanant esmės. :)

    O Pixel.lt palinkėčiau neapsistoti ties PHP - kurkite, rašykite ir apie kitus. Jeigu rašytumėte nuolatos tokius straipsnius, kaip kad buvo per Microsoft ir jūsų skelbtą konkursą, tada būtų įdomu skaityti, o dabar… Liūdinate ir… :)

    Neįsižeiskite.

  4. asterisk

    Ričardai, ačiū už komentarą.
    Čia PHP nieko dėta iš esmės. Dėl sudėtingumo pritariu. Bet tas pats ir su taip visų giriama Ruby :) Tiksliau jo karkasu RoR.
    Dėl php niekovertiškumo galima ginčytis. Labai daug projektų padarytų ant PHP, kad ir koks jis nekoks būtų. Ir jų vis daugėja. Pavažiuoti galima ant visų web kalbų, bet ką tada rinktis ?

    Kad Pixel.lt nereiktų apsistoti ties PHP pritariu :)

  5. Saulius

    Ieškome tokių gerų programuotojų darbui su Ruby on Rails! Mokėti programuoti Ruby on Rails nebūtina, bet norėti išmokti - būtina!

  6. Giedrius

    Nu tai ble nuo kada PHP programvimo kalba? Ir kodėl skripteris postringauja kažką apie geras/blogas programeris? Yra toks liaudies pasakymas - nemokyk tėvo pist :)

  7. Tadas

    Jeigu taip butu galima viska pasiimti ir sudelioti tai nebutu tokia paklausa PHPeriu kokia dabar. Manau protingas programuotojas programuos tokia kalba kur ir yra uzdirbami pinigai jeigu kazkada taip atsitiks, kad PHP bus nieko verta tada ir reikes pereit, o dabar tikrai nereikia pezeti to kol tai nera, nes su PHP galima tikrai nemazus pinigus uzdirbti.

  8. Ričardas Š.

    Sutinku, kad PHP populiari, bet galbūt tas populiarumas ir yra PHP kalbos minusas. Bent jau aš tokią nuomonę susidariau matydamas kaip keičiasi ir vystosi visas šis reikalas. :)

    Aš pats išplėstomis akytėmis laukiu daugiau straipsnių C++ tematika ;)

  9. asterisk

    Giedriau, ai tik nereikia lala :) pažiot kiekvienas gali.

  10. noTime

    Ponaiti Giedriau, pisti jūs mokat, užtat nežinot, kad momentais reikia patrint klitorį. Drįsiu suabejoti jūsų kaip gero programuotojo kompetencija.

  11. Kęstutis

    Giedriau,
    —->| Visų pirma - nesikeik. Man visada nemalonu kalbėti su tokiu žmogum kuris be keiksmažodžių negali apsieiti. Išvada: man nemalonu bendrauti.
    —->| O antra, aš nesutinku su tokiais Tavo teiginiais, todėl cituoju: „A scripting language, script language or extension language, is a programming language that controls a software application.“ - paimta iš: http://en.wikipedia.org/wiki/Scripting_language. Taigi remiantis šia citata aš darau išvadą, kad tavo teiginiai prieštarauja vieni kitiems!

    |——–>| Šiek tiek pafilosofuosiu: |——–>|
    Kaip programavimo kalbos taip ir žmonių|paprastos kalbos - vienos lengvesnės kitos sunkesnės. Kuo daugiau patirties (ir kuo daugiau ją pilniau žinai) tuo lengviau, greičiau ir kokybiškiau/geriau kalbi/programuoji [kartu ir geriau išnaudoji jos galimybes] (išimčių kaip ir visada yra). Taigi dėsniai labai panašūs.

    |——–>| Nuorodos: |——–>|
    HTML irgi programavimo kalba: http://www.tdd.lt/~tract/new_site/proging/data_vs_routines.html
    Interpretatorius ir kompiliatorius: http://www.pasteur.fr/formation/infobio/python/ch05s02.html (daugiau nuorodų ta tematika: http://www.google.lt/search?q=compile+interpreter)
    Kas ta skirptų kalba: http://en.wikipedia.org/wiki/Scripting_language
    _
    —-
    Kaip visada laukiu komentarų :)
    —->| P.S. Teko pasidarbuot kol galiausiai gavau šį trumpą variantą :].

  12. beck

    Labai geras straipsnis! Palaikau asterisk nuomonę, nors ir nesu programuotojas ;-)

  13. Arvydas

    Taip, straipsnyje parašyta tiesa. Pats esu patyręs savo kailiu, nes teko dirbti ir programuotoju ir juos samdyti. Diplomas parodo tik, kad programuotojas turi popierių ir kažką moką. Dažniausiai tas kažkas yra tik bendrosios žinios nesigilinant į naujausias technologijas, todėl diplomas nelabai ką ir pasako apie darbuotoją.

    Visgi, nepulčiau taip kategoriškai teigti, kad tikrai geras programuotojas mokosi viską ir visada. Išmokti visko ne tik kad neverta, bet ir nereikia, nes dažniausiai specializuojiesi tik konkrečioje srityje ar technologijoje, todėl nors ir žinau kas tai yra Ajax, CakePHP ar tas pats RoR, asmeniškai su jais nieko nesu daręs vien todėl kad neturėjau poreikio.

    O šiaip tai tikras programuotojas yra tas, kuris programuoja iš pašaukimo, moka mokintis pats ir, svarbiausia, kad tas žinias labai greitai pritaiko praktiškai.

  14. Blogorama #318 : nežinau.lt

    […] Diskusija apie programavimą: viena specialisto vizija ir kita vizija. Nors dėl kai kurių punktų nesutaria - abi geros, nes programuotojas yra kūrėjas, o kelių į […]

  15. Kitas Giedrius

    yra toks labai geras eksperto aprasymas: “Ekspertas tai zmogus, pakankamai siauroje srityje uzlipes ant visu imanomu grebliu”. manau isvadas visi pakankamai protingi pasidaryti patys

  16. prabegantis

    straipsnis kai kur nuvažiuoja į pievas, ypač ten, kur autorius kalba apie save ir savo pažįstamus. Taip pat kažin ar hardware programeriui, kuriam programuojant svarbus kiekvienas baitas labai įdomus kažkoks tai RoR, aišku jis karpys ausimis jei paklausi apie šią naują technologiją:)

  17. asterisk

    prabegantis, pasidalinau mintimis, todėl ir minėjau pažįstamus programuotojus :)
    Gale ne bereikalo parašiau p.s. ;) Parašiau, jog rašau iš web developerio pusės, ne hardware programerio. Jiems pritaikyti viską galima analogiškai, tereikia pakeisti pavyzdžius su technologijomis :)

  18. Juozo Kaziukėno blogas » Ar tu moki programuoti? 2 dalis

    […] gerais programuotojais gimstama - tą patį sakė ir asterisk. Kadangi programuoju nuo 12-13 metų, tai laikau save gimusiu programuoti. Nesakau, kad […]

  19. Savaitgalio skaitiniai #49 » Pixel.lt

    […] Sveiki, šią savaitę NePo padarė išvadas, jog Zend Framework yra sudėtingas. Laukiam tęsinio. Taip pat nemažai dėmesio sulaukė pasvarstymai, apie tai kas yra geras programuotojas. […]

  20. Giedrius

    Laukite straipsnio tema „Kodėl scenaristai nėra programuotojai arba kodėl neverta tinklapių rašyti objektiškai“. Tikiuosi tų 99% pixel.lt lankytojų neįžeisiu.

  21. asterisk

    Giedriau, laukiam.

  22. Kazyma

    Žavai naivi amatininko pozicija :)

  23. kazkas

    Del paminetu issukiu. Kuris yra geresnis programuotojas - tas, kuris sugaiso marias laiko ir pats pasirase visa AJAX valdymo struktura, ar tas, kuris perejo prie CakePHP, pradejo naudoti prototype tam reikalui ir per ta pati laika dar spejo pagaminti viena-kita projekta?

    Del mokamu kursu - juose visada yra specifine problema isnagrinejama daug detaliau, giliau ir efektyviau, nei mokinantis savaime. Is kitos puses, visada yra ir bus savamoksliu, kurie ismano daugiau nei sertifikuoti programuotojai. Remtis vien sertifikatais negalima, taciau sakyti, kad kursu nereikalingi irgi negalima.

    Del gimusiu programuotoju - tada as nesu geras programuotojas, kaip ir dauguma over 30 programuotoju, kadangi pries gerus 15 metu Lietuvoje tikrai nebuvo kompiuteriu pertekliaus. Nebent visi programavo savo kasetinius atarius ir commandorus su QBasic.

    Del programavimo teorijos - teorijos kiekis nebutinai atspindi tavo programavimo lygi. Galima mintinai moketi visa PHP teorija bet vistiek nesuregzti efektyviu sprendimu. Reik dar moketi pritaikyti ta teorija. Kaip kad dalis KTU informatikos destytoju puikiai zinojo visa teorija, bet budavo problemu su tos teorijos praktiniais diegimais.

  24. Mindaugas

    Sveiki,

    Gal ka domina Ruby On Rails programuotojo darbas?
    Placiau: http://80.86.84.71/kolmiwiki/index.php/Job_offer_for_LTU

  25. Apie menininkus ir amatininkus » Pixel.lt

    […] tuo, jog gali rašyti kiekvienas aš taip pat nusprendžiau pareikšti savo nuomone klausimu Kas yra geras programuotojas? tik mano požiūris čia yra šiek tiek kitoks. Pakalbėsime apie profesionalius programuotojus. […]

  26. Andrius Bentkus

    Geras straipsnis, deja neskiri kas yra informatikas ir kas yra programuotojas

  27. Ar tu - hakeris? | Stebėk

    […] internete teko paskaityti diskusiją apie tai, kas yra geras programuotojas. Vyravo dvi nuomonės - vieni teigė, kad geresni yra hakerio tipo programuotojai, o kiti - kad tie, kurie gerai moka […]

  28. Artūras ‘arturaz’ Šlajus » Blog Archive » Where’s Giedrius?

    […] įdomu, kur dingo Giedrius, su savo žadėtuoju “kodėl scenaristai nėra programuotojai” straipsniu… Taip norėjau paskaityti […]

  29. Profas

    Aš tai tau visiškai pritariu, nes mano nuomonė, kas yra geras programuotojas, apsirašo tavo straipsnyje. Nors programuoju, ne “web”, bet kaip ir sakei, pakeitus detales galima pritaikyti visur.

  30. Gediminas

    Mano asmenine nuomone geras programuotojas turi turėti vieną vienintelę savybę:
    Mokėti dideles problemas/užduotis skaidyti į mažas ir nesvarbu kada tu tai išmoksi.
    Jei tau reikia kažką padaryti nežinia kaip, naudojant tai ko tu dar net nemoki, negirdėjai ir nežinojai ir tu moki visą tokią problemą išsiskaidyti iki tokio smulkumo kad pats be išankstinių žinių tai realizuotum - tu esi geras programuotojas.

    Dėl programavimo laisvalaikiu ir domėjimosi nesutinku. Kodėl šaltkalvis grįžęs iš darbo būtinai turi eiti ne grožinę literatūrą skaityti, o pasiėmus kūjį kažką kalti? Kvalifikacijos kėlimu kaip ir visose kitose srityse turi būti suinteresuotas tiek darbdavys tiek darbuotojas. Jei tu visą dieną turi arti, o kvalifikaciją keltis laisvalaikio, miego ar atostogų sąskaita - keisk darbdavį.

Rašyti komentarą

Jūs privalote prisijungti jeigu norite rašyti komentarą.