Pixel.lt yra nuostabus tuo, kad straipsnį čia gali parašyti kiekvienas, vėliau tereikia tik praeiti piktos redaktorės recenziją ir woule. Esu tikras, jog šitas straipsnis praeis.
Naudodamas 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.
Norit pažaisti su ugnimi?
Pirmyn!

Pirmiausia sutarkime dėl pagrindinių teiginių:
1) Profesionalas != geras
2) Profesionalu, tam tikroje srityje vadinamas žmogus, kuris užsiimdamas ta veikla gauna pinigus.
Čia yra pagrindiniai mano straipsnio teiginiai ir jeigu su jais nesutinkate, galite toliau nebeskaityti, iš karto pereiti prie komentarų ir parašyti ką nors riebaus.

Dabar kai jau sutarėme apie ką kalbėsime, pabandysiu prisistatyti. Esu išbandęs labai daug programavimo kalbų, kad tuo įsitikinti toli eiti nereikia, tiesiog pažiūrėkite mano straipsnių sąrašą. Kam man to reikia? Nežinau, niekada nesiekiau praktinės naudos, tiesiog įdomu. Turbūt ne kalbų skaičiuje esmė, o tiesiog geras programuotojas domisi įvairiais dalykais/naujausiomis technologijomis ir stengiasi praplėsti savo akiratį.
Oficialiai su PHP dirbu labai trumpai, tačiau žaidžiu jau seniai. Šitas projektas irgi prasidėjo nuo mano žaidimų.

Menas - tai paveikslo piešimas. Paimkim kad ir Picaso:

Pikasas atvyko į Londoną. Geležinkelio stotyje iš jo pavogė laikrodį.
Policijos inspektorius paklausė:
- Jūs ką nors įtariate vagyste?
- Taip, aš prisimenu vieną žmogų, kuris man padėjo išlipti iš vagono.
- Jūs menininkas. Nupieškite jo portretą.
Vakare, pagal Pikaso piešinį, operatyvi Londono policija sulaikė įtariamąjį vagyste: tris senelius, dvi seneles, du troleibusus, ir keturias skalbimo mašinas.

Juokai juokais, bet girdėjau, jog kartą girtas Pikaso susilažino su draugais, jog dabar vietoje bet ką nupiešęs, gatvėje parduos per valandą už labai padorią sumą pinigų. Nežinau, galbūt tai tik kažkieno išmislas, vis dėlto norėčiau užduoti klausimą: kas iš to, ką pasakiau apie Pikaso jums panašu į programavimą?

Menas - sugalvoti idėją, realizuoti idėją, parduoti (arba pakabinti ant sienos). Atrodo panašu į programavimą, taip? BET aš nepaminėjau pačios svarbiausios meno sąlygos - užmiršti. Tai yra menas, kai pamiršti ir daugiau rūpintis niekuo nereikia. Programavime to padaryti beveik neįmanoma. Apie beveik šiek tiek vėliau.

Programuotojas - tai specialybė. Kaip žmogus negimsta su pianinu ar smuiku rankose, taip jis negimsta su klaviatūra. Bent jau aš tikrai tokių apsigimimų kol kas negirdėjau. Programuotoju kaip ir bet kurios kitos srities specialistu galima tapti. Vieni pasirenka tokį kelią savo noru, kiti verčiami aplinkybių ar tiesiog dėl to, jog gerai moka. Skirtumas tik tas, kad aš tikrai nenorėčiau eiti pas daktarą, kuris neturi universiteto diplomo IR licencijos. Programavime dažniausiai užduodami klausimai: už kiek? ir per kiek? T.y. kiek kainuoja tavo paslaugos ir per kiek laiko gali padaryti. (Pastaba: dažnai pirmojo klausimo koeficientas didesnis). Kad ir kaip būtų keista dažniausiai niekas nesidomi kokybe, taigi turim - ką turim. Kas nors iš jūsų eitų pas chirurgą gydytis dantų?

Programuotojas kaip ir kiekvienas kitas savo srities specialistas, norėdamas likti kompetetingas, privalo domėtis, kas darosi jo srityje. Jeigu nesidomės, po kelių metų liks be darbo. Tu gali būti labai geras asemblerio programuotojas, bet kam tai rūpi? Šiandien programavime reikia kitų sričių specialistų. Programavimo kalbos keičiasi ir tie, kurie nesugeba prisitaikyti išnyks kaip dinozaurai. Domėtis reikia kryptingai, jeigu kuri internetinius puslapius, domėkis internetinėmis technologijomis, jeigu kuri klientines programas, tai kam tau python on plains planes? Kitaip sakant, jeigu tu programuoji PHP tai nėra jokio skirtumo ar tu rūkai Primą ar tu žinai Primo algoritmą, nei vienas nei antras tau nepadės. O va prototype.js gali padėti.
Tačiau tik domėtis, neužtenka, norint likti kompetetingu dar reikia palaikyti kvalifikaciją, o tam yra kursai. Kodėl kursai, kai yra tiek daug internetinių straipsnių? Nes žmogus, kuris veda kursus geriau išmano tą sritį apie kurią kalba (su sąlyga, kad jis tikrai žino daugiau negu jūs, nes priešingu atveju kursai netenka prasmės). Bendraudami realiai su specialistu galite jam užduoti daug įvairių klausimų, kurie neparašyti programoje ir sulaukti atsakymų iš jo patirties. Be to, užduodami klausimus tiesiogiai sutaupysite laiko dokumentacijų paieškoms, skaitymui ir bandymams.
Galu gale, ne visi profesionalai randa laiko parašyti ilgą straipsnį, tačiau į trumpą jūsų klausimą atsakys visada.

Taigi tokie pasvaičiojimai, bet jie tinka tiek geriems ne profesionalams, tiek paprastiems profesionalams. Jeigu skaitėte kolegų mintis, tai galėjote pastebėti, kad jie save laiko gerais programuotojais, bet jie tikrai nėra profesionalai. Ne, aš nesakau, kad freelancer‘is negali būti profesionalas. Aš taip pat nesakau, kad profesionalas negali būti menininkas. Aš menininkas, daugelis profesionalų taip pat yra menininkai. Tačiau pinigai ir menas šiame pasaulyje susitinka retai, o valgyt norisi (kad ir kaip būtų pikta norisi dažnai), taigi meną tenka atidėti į šalį ir daryti pinigus.

Kaip atrodo profesionalo darbas?

  1. Gauni užduotį - kaip suprantama, čia jokio kūrybiškumo nėra, darai ko nori klientas (kad jis nežino ko nori, tai čia kitas klausimas);
  2. Užduotį darai ne kada nori ir ne kiek laiko nori, čia labai svarbu padaryti laiku, jokie vėlavimai nėra priimtini;
  3. Pristatai užduotį klientui, kai pristatai dažnai jis jau būna sugalvojęs kitų norų, todėl tenka papildyti;
  4. Po dviejų mėnesių klientas staiga užsimano naujos galimybės savo sename puslapyje. Tuomet atsidarai kodą ir bandai suprasti kokį velnią ten esi prirašęs. Jeigu kūrei meną užjaučiu.

Kaip matote čia nėra nieko panašaus į tai, ką minėjo kolegos, nėra jokio darau ką noriu, tik tai tai kas man įdomu. Svajoti apie super gerus projektus gali kiek nori, vis tiek daryti teks tai už ką moka.
Iš tiesų programuotojo realybė atrodo netgi ne taip. Firmoje dažniausiai dirba ne vienas programuotojas, jie taip pat turi tokį keistą polinkį migruoti iš vienos firmos į kitą, priešingai nei klientai, kurie dažniausiai pasilieka. Todėl realybė daug žiauresnė.

  1. Gauni užduoti patobulinti kokį nors antikvarinį tinklalapį, ne, tai ne tinklalapis, kuris prekiauja antikvariatais, tiesiog jis parašytas su php3;
  2. Bandai suprasti KAŽKIENO parašytą kodą, kaip taisyklė to žmogaus firmoje jau senai nebėra ir jis taupydamas savo laiką bei serverio vietą, komentarų nerašė;
  3. Padarai kažką, taip gerai kaip leidžia esamos sąlygos (tai beveik tas pats kaip smaigstyti degtukus į šūdą) ir meldiesi, jog klientas nenorėtų daugiau jokių patobulinimų.

Kur jūs matote čia meną?

Pavadinime dar yra žodis amatininkas. Amatininkas tai žmogus, kuriam nieko nedarant pinigai neateina, arba paprastai sakant verslininko antonimas. Programuotojas - amatininkas turi programuoti, norėdamas gauti pinigus. Dirbantys firmoje šiuo klausimu turi šiek tiek privalumų t.y. sodra, kai tu sergi gauni simbolinį pinigų kiekį, kurį gali parodyti kolegai amatininkui ir sakyti: be be be, nes jis to negauna.
Amatininkas nebūtinai turi būti menininkas, bet menininkas beveik visuomet yra amatininkas. Freelancer’is ir amatininkas nėra sinonimai, freelancer’is gali būti verslininkas, nors nebūtinai.

Dar neaptariau vieno žadėto dalyko. Sukurtą programą beveik visuomet reikia prižiūrėti ir vėliau tobulinti. Beveik, nes ne visuomet. Gali nereikti tuomet, kai padarai taip blogai, kad pakeiti firmą, jog nereiktų vėliau prižiūrėti savo benkarto. Dar nereikia kai kuri meną. Dažnai žmonės taupydami pinigus samdo menininkus ir taip aukoja kokybę. Firma kurdama svetainę neišvengiamai mąsto, jog kliento norai keisis ir svetainę reikės tobulinti. Tuo tarpu menininkas mąsto kaip čia padaryti didesnį šedevrą ir greičiau gauti pinigus. Jis nesiruošia tobulinti ateityje svetainės. Taigi jeigu po kiek laiko klientas norės patobulinti savo svetainę, jam greičiausiai reikės ieškoti kito menininko su mazochizmo polinkiais arba kurti svetainę nuo nulio.

Išvados

Tiesą pasakius, parašęs įžangą užmiršau iš viso, apie ką norėjau parašyti straipsnį, bet jeigu jau pradėjau tai norėjosi užbaigti. Noriu jums užduoti vieną klausimą: ar jums negaila laiko, kurį sugaišote skaitydami šitą minčių raizginį? Gal geriau jau būtumėte parašę (perskaitę) kokią nors mokomąją medžiagą (angl. tutorial)?

Panašūs straipsniai


“Apie menininkus ir amatininkus” komentarų: 16

  1. Artūras Šlajus

    Kas per Python on Plains? URL neveikia.

    Šiaip žiauri ta realybė. Programuotojas savo darbu mėgautis turi 2 galimybes: arba jis daro open-source ir gauna už tai pinigus, arba jis sukuria kažką savo, už ką taip pat gauna pinigus.

    Kai pradedi štampuoti sistemas nuėjęs į firmą - visas malonumas išgaruoja. Ypač kai tu pvz. prripratai dirbt su RoR, o ten tave verčia su PHP…

  2. asterisk
  3. Artūras Šlajus

    Asterisk, nepo parashe ‘python on plains’, nieko nedaro, tik pora straipsniu apie baltaji pitona ishleista i laukymes :))

  4. Artūras Šlajus

    Be to jų saitas kaip ir neveikia :(

  5. Eimantas

    NePo - nebūdamas profesionalu negali rašyti apie profesionalus.

  6. KIK

    Geras straipsnis. O apie optimizaciją tai galiu pasakyt tik tiek, kad geriau ir pigiau pastatyt du servus negu optimizuot kažkokią didelę svetainę (tik išimtiniais atvejais apsimoka tai daryti). Kad ir tas pats Google nesiteikia 100 % optimizuoti viską kas tik įmanoma.

  7. Aras Pranckevičius

    Manyčiau, labai vienpusiškas požiūris į programuotojo darbą - t.y. tik toks, kad darbe vykdomas “client work”. Taip, tokio darbo Lietuvoje yra apstu, kai daromi projektai pagal užsakymą. Tačiau egzistuoja ir darbai, kuriuose daromas _produktas_, tuomet darbas gana smarkiai skiriasi. Tuomet ir kokybė labai svarbu, ir laikas (kažkiek) mažiau svarbu, ir, sakyčiau, “kūribiškumo” daugiau.

  8. Rimantas

    Hm. Straipsnis lyg ir apie menininkus ir amatininkus, bet pagrindiniai teiginiai kažkodėl apie profesionalus. Tiek jau to.
    Blogiau su autoriaus meno supratimu: nežinau, nuo kada pagrindinė meno sąlyga užmiršti, ir kodėl menas asocijuojasi su kažkuo baisiu, sumazgytu ir neįmanomu palaikyti, bet, sakykim taip, tai gana originalus požiūris į programavimo meną. Kitiems kažkodėl atrodo priešingai.
    Kažką tiap-liap prikergti senai sistemai ir melstis, kad klientas daugiau neateitų — čia ne menas, ne amatas, o chaltūra.
    Logika moko, kad ir iš klaidingų teiginių galima padaryti ir tesingą išvadą, o pixel.lt moko, kad iš to galima padaryti straipsnį nežinia apie ką…
    Dėl laiko — ne negaila. O rašyti nebuvo gaila laiko?
    Primena patyrusio rašytojo ir šviežiai kepto grafomano pokalbį:
    PR: Na, ką aš jum galiu patarti… Daugiau skaitykite!
    ŠKG: O, jūs manote, kad tai padės?
    PR: Be abejo! Kuo daugiau skaitysite, tuo mažiau laiko turėsite niekam rašinėti.

    http://www.paulgraham.com/hp.html
    http://fresh.homeunix.net/~luke/misc/knuth-turingaward.pdf

  9. Ričardas Š.

    Geras straipsnis. Patiko, nors galima ginčytis, kai kuriais klausimais. :)

  10. Sepa

    Man laiko negaila, jeigu nuomonė pagrįsta. :) Šiam straipsniui irgi laiko negaila, bet… Programavimas - inžinerinis mokslas (bent jau to universitete moko). Taip pat nemaža dalis priklauso nuo specifikacijos, jeigu analitikas tik surašo, ko klientas nori, o ne ko jam iš tikrųjų reikia - tai lauk bėdos.

    Kaip mum per paskaitą dėstytojas pasakė: jūs niekada nesiklausykit ko nori klientas, jūs darykite tai ko jam reikia. O, garbės žodis, klientai kaip kartais nežino ko jie nori, bet rezultate turi gautis kažkas ko jiems reikia. :)

    Taigi, dar kartą, programavimas - ne menas ir ne amatas, tai - inžinerija. Inžinerija - tai mokslas apibrėžtas standartų ir reikalavimų kaip ką reikia daryti, tad geras programuotojas neturėtų amatauti ar menininkauti - geras programuotojas turėtų laikytis tų rekomendacijų ir viskas bus ou-kei.

  11. Auzsra

    http://www.catb.org/~esr/faqs/hacker-howto.html

    Tikras programuotojas yra hakeris

  12. elt.lt » Blog Archive » Apžvalga. Šiandien aš skaičiau… #37

    […] pristato naują „Web 2.0″ projektą - Bloknotas.lt… O NePo bando apibrėžti, kurie programuotojai yra menininkai, o kurie tik amatininkai… Mano nuomone, abi programuotų rūšys yra geros, jei tik darbą atlieka greitai ir […]

  13. Tautrimas

    Įdomio mintys. Norisi tokią (sakykim) filosofiją skaityti ne bet kaip surašytą, o vientisai, su aiškia pagrindine mintimi (: Bet iš esmės tikrai neblogas skaitaliukas.

  14. Motiejus Jakštys

    Labas, NePo,
    Kol neperskaičiau komentarų ir nepraradau minties, noriu tarti savo.
    „Tuo tarpu menininkas mąsto kaip čia padaryti didesnį šedevrą ir greičiau gauti pinigus“
    Mūsų sąvokos skiriasi. Aš kai dirbu už pinigus ir ne (turiu vieną savanorišką projektą) darau darbą taip pat. Tik skirtumas tas, kad ne už pinigus darytą kodą taisau pastoviai ir prie jo grįžtu, gražinu, tobulinu.
    Į programavimą žiūriu kaip menininkas. Darau kaip gražiau, kaip “subtiliau”? Pinigai ateina kokie ateina, ir visai negaila už gerą kodą paimti dvigubai mažiau (dėl laiko sąnaudų) nei galėčiau paimti nemąstydamas. Kodėl? Ateitis duos rezultatą. Kodėl? ĮDOMU.
    Man atrodo verslininkas, amatininkas yra tas žmogus, kuris ima pinigus ir “taupo serverių vietą nuo komentarų”. Menininkas atvirkščiai. Nuoširdžiai džiaugiasi rezultatu, arba jei jis nepatiko - suplėšo, išmeta, ir daro iš naujo.

  15. Rimantas

    Sepa, inžinerija irgi yra menas :)

  16. AbsS

    Nesinori būti kritiškam, bet autorius galėtų pirmiau pasidomėti ką reiškia sąvokos „amatininkas“, „profesonalas“, įgyti nors elementarų supratimą kas yra menas, menininkas, suvokti, kad kūrybingumo reikalaujančios užduotys rezultate toli gražu nebūtinai tampa menu. Nereikia nuvalkioti ir painioti sąvokų. Tad taip, kažkodėl šiek tiek pagailo to laiko, kurį skyriau padriko nuomonės išsakymo skaitymui, kuriame vistiek nieko nepasakyta.

Rašyti komentarą

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