proging pinigai istorija link04 paranoja apie    
    ................................    
     Taigi, nusprendžiau galų gale paatvirauti - anksčiau savo svetainėse arba iš viso nieko apie save nesakydavau, arba tik šnekėdavau visokias nesąmones. O dabar papasakosiu truputį rimčiau ir apie save, ir apie [šią svetainę].

 Esu kompiuterastas iki pat kaulų smegenų. Tiesa, esu dirbęs visokių darbų - ir mokęs vaikus (ir ne tik vaikus) dailės, dirbęs ir kroviku, ir žurnalistu, ir dar bala žino kuo, bet visgi dabar kompai yra ir mano profesija ir mano hobis.

 Daugelį stebina, kad aš nesu baiges ne tik jokio Universiteto (paprastai žmonės klausia, ne ar aš baigiau, o kokį baigiau =] ), bet net ir vidurinės mokyklos. Prisipažįstu, mokymasis visokiose mokslo įstaigose mane užveikdavo iki negalėjimo, tiesiog kažkokia neurozė gal, ar smth.. Nepaisant to, tapau visai neblogu specialistu ir nebaigti mokslai man kažkaip netrukdo. Dirbu rimtoje kompanijoje, kartu su puikiais žmonėmis, su specialistais, iš kurių galiu ir mokytis. Iš tikro tuo labai džiaugiuosi.

 Pirmą kart prisėdau prie kompiuterio labai labai seniai... Ta mašina buvo "Robotron", mamos darbe, "Komprojekte". Man buvo gal kokie 7 metai. Tada man davė pažaisti porą žaidimų: "Robots" ir "Tetrį". "Tetris" man nepatiko, ir aš sugebėjau jį išjungti, o paskui, niekieno nepadedamas, persijungti klaviatūrą iš rusiškos į lotynišką ir per kažkokį ten "DOS" vėl pasileisti "Robotus".
 Vėliau man su kompiuteriais susidurti pasitaikydavo retokai, kol kokiais 1992-ais (o gal 1991-ais? Net metų jau neprisimenu) vienas kaimynas įsigijo 80286-ą. Tada tai dar buvo visai galinga mašina. "Windows 3.0" dar buvo naujovė. Taigi, ėmiau aš mokytis... Tai to, tai ano... Pirmiausia - kažkaip nerimtai... Paskui pakliuvau į tokį JPPC - Jaunimo Psichologinės Paramos Centrą, kur rinkdavosi visai tokia saviakiška chebra. Tarp ten buvusių žmonių buvo ir keletas neblogų specų, įskaitant ir vieną iš pirmųjų Lietuvos softo krakerių - šiuo metu jau nedaugeliui težinomą Razor. Ten ir įgijau šiokią tokią, rimtesnę, nei vidutinio vartotojo, patirtį, ėmiau programuoti.
 Kaip ir daugeliui kitų programuotojų, pirmąja kalba (neskaitant DOS BAT ir kelių šnekamųjų) man tapo "Basic" ("Micorsoft" "GW-Basic"). Visa laimė, vienas tų laikų draugas, toks Algis, pamatęs mane proginantį tuo beisiku, įtikino pereiti prie "Pascal" (uzh ka ash jam iki shiol esu labai dekingas). Paskalis ("Turbo Pascal", berods v5.5, o gal v6.0) man tada pasirodė labai sudėtinga kalba (skirtingai nuo "Basic", "Pascal" sintaksė yra griežta, orientuota į struktūrinius sakinius, o ne į eilutes), bet po kiek laiko įsisąmoninau svarbiausius dalykus ir ėmiau vieną po kitos kepti visokias programėles.

 Šioks toks nukrypimas: maždaug tuo metu, A+A pusbrolio Edgaro Savickio (Ilgo) dėka, gavau iš jo sesers Kristinos (ačiū, Kristut, :-* ) dovanų senuką "Compaq Portable" (tai buvo pirmas ne "IBM" gamintas PC architektūros kompiuteris pasaulyje), turėjusį du 360kb 5-colių diskasukius bei 256kb operacinės atminties. Žaidimų, dirbančių tokiame kompiuteryje, man pavyko rasti vos kelis, taigi, beliko krapštytis DOSe, o vėliau, radus kelis senus, primityvius kompiliatorius - mokytis programuoti. Tai buvo pirmas mano nuosavas kompas, su juo dirbdamas išmokau tikrai nepaprastai daug. Ko gero, labiausiai mane privertė mokytis tai, kad šis kompas buvo toks senas, jog buvo sunkiai įmanoma rasti jam tinkamų programų. Tad tekdavo suktis, kaip tik įmanoma. Vienu metu įsigudrinau netgi pasirašyti nuosavą primityvų shellą DOSui, kuris RAMo valgė keliais kilobaitais mažiau, nei command.com , todel su juo galėdavau paleisti truputį daugiau atminties valgančias programas.

 Vėliau, paveiktas kelių Razor pasisakymų, nutariau pereiti prie "C" kalbos. Iš pradžių "C" (Dave Dunfield "Micro-C", tikrai nebloga Kernighan and Ritchie "C" implementacija) man pasirodė labai suprantama kalba, beveik kaip paskalis. Tačiau jau po kelių dienų pamačiau, kad kažkodėl dalis dalykų, kurie turėtų veikti, man neveikia, arba veikia visai ne taip, kaip turėtų. Taip sužinojau, kas yra rodyklės (pointeriai). Visa tai atrode labai sudėtinga, todėl pabandžiau grįžti prie "Pascal". Po savaitės ar kelių vėl pabandžiau "C". Pasirodė truputį suprantamiau (labai daug kas pasidaro aiškiau, kai turi su kuo palyginti). Tada... Tada nutariau, kad reikia mokytis asemblerio (adresaciją abstrahuojančių mašininių kodų mnemonikų)... Gal pirma pradžia būtų buvusi nieko, bet tuo metu neturėjau jokios literatūros. Su "Turbo Assembler" pateiktų pavyzdžių visai nesupratau. Atknisau kelias senovines knygas, kur buvo užsimenama apie "i8086" programavimą, tačiau tos knygos buvo dar iš tų laikų, kai nebuvo nei "PC", nei DOS. Žodžiu... Po kiek laiko vėl grįžau prie "C". Ėmiau po truputį suprasti, kas tas yra per daiktas - rodyklės. Paskui vėl grįžau prie ASM. Paskui vėl "C". Paskui - vėl "Pascal"... Taip, šokinėdamas pirmyn ir atgal, išmokau gerai programuoti ir asembleriu, ir "C", ir paskaliu. Kartu labai daug proginau primityvia DOS BAT-failų kalba.

 Šios keturios kalbos iš tiesų yra labai skirtingos, tačiau, pajutęs kiekvienos kalbos skirtumus, pamatai ir jos trūkumus, ir privalumus. Todėl vėl nukrypsiu ir pablevyzgosiu, ką manau apie skirtingas kalbas:
 Paskalis, tegul ir turi kažkiek neatidirbimų bei apribojimų, susijusių su tuo, kad jis buvo kuriamas kaip mokomoji kalba, tikrai vertas mokymosi. Tai puiki, labai struktūruota ir maloni kalba. Puikiai suprantu J.Blonskio susižavėjimą paskaliu. Kažkada, pabendravus, paaiškėjo, kad jį, taip pat, kaip ir mane, žavi paskalio grožis. Tiesa, N.Wirth paskalis visishkai neturi priemonių didesniems projektams kurti, neturi ir daugelio kitų svarbių dalykų, tačiau tai puikiai ištaisyta "Turbo Pascal" bei vėliau sukurtoje "Modula-2" kalboje, kurią rekomenduočiau visiems Pascal mėgėjams. Pastaroji kalba - tai kažkas panašaus į paskalį, sukurtą idealiame pasaulyje. Deja, modula kažkiek pavėlavo išvysti pasaulį, tur būt todėl ir neišpopuliarėjo...
 BAT failų rašymas - tai jau savotiškas užsiėmimas. Reikalas tame, kad DOS command.com pateikia itin ribotą komandų rinkinį, lygiai taip pat, kaip ir labai primityvią sintaksę (tėra vos keli struktūriniai operatoriai). Todėl, norint parašyti bent kiek protingesnį BAT failą, tenka _mąstyti_. Daug mąstyti. Norint padaryti bent kažką gudresnio, dažnai tenka surasti kokį nors originalų algoritmą ar nestandartinį kokios nors komandos panaudojimo būdą. Atvirai šnekant, jei daugiau paprogramuoji, prisigalvoji TOOOKIŲ iškrypimų, kad normaliai net nepaaiškinsi. Užtat paskui supranti, kad nėra padėties be išeities, pripranti kurti originalius algoritmus. Žodžiu, tikrai hakeriškas žaidimas :-)))
 "C" kalba iš tikrųjų buvo sukurta, kaip pakaitalas asembleriui (turiu omenyj būtent Kernighan & Ritchie "C"). Todėl daugelis dalykų ten gana savotiški. Prisipažįstu, kad ANSI "C" man kažkaip nepatiko dėl savo ribotumo (vis vien žemo lygio kalba, kurioje įvesti dirbtiniai apribojimai, trukdantys programuoti), nors, reikia pripažinti, kad nemažai ANSI "C" naujovių vertos dėmesio, ypač, rašant sudėtingesnes programas. Šaip ar taip, mano giliu įsitikinimu, "C" suprasti gali tik tada, kai išmoksti pakankamai gerai programuoti asembleriu. Faktiškai, beveik visi (net ir struktūriniai) "C" kalbos operatoriai turi beveik tiesioginius atitikmenis asembleryje. Įdomu, kad daugelis žmonių, programuojančių ANSI "C" ir "C++", labai nustemba, kai jiems pasakai, kad rodyklė (pointeris) - tai tiesiog skaičiukas :-)))
 Asembleris - tai iš viso savotiškas dalykas. Nors jo mokytis iš pradžių buvo sunkoka, jis yra gana paprasta kalba. Sakyčiau, daug paprastesnė, nei paskalis, o apie "C" net nekalbu. Esminiai skirtumai - ideologijoje ir metoduose. Programuodamas ASM, darai realius dalykus. Rašai programą taip, kad tai, ką ji daro, būtų būtent tai, ką ji daro iš tikrųjų. Du svarbiausi dalykai, kuriuos man davė asembleris - tai gilus supratimas, KAIP ir KODĖL kompiuteryje vyksta įvairūs dalykai, bei šioks toks įprotis gerai struktūruoti ir komentuoti programas. Šiaip, asembleris yra tokia nestruktūruota kalba, kad juo paprogramavęs, imi tikrai vertinti paskalį.
 Paskui buvo dar daug daug kitų kalbų. Pasirodžius Win95, JPPC įsigijo naują kompiuterį (ar tai du), į kurį įsimečiau (tada dar tai buvo legalu!!!) Delphi (berods, v2). Buvo labai keista: nupaišai kažkokią programą, truputi parašinėji, ir gaunasi kažkas veikiančio. Nors realaus programavimo beveik nesumažėja, vartotojo interfeisą kurti labai paprasta. Tiesa... maždaug tada ėmiau tiesiog nekęsti microshafto... Įsivaizduokite: paleidi nauja threadą, per klaidą užmiršęs jį uždaryti, išeini iš programos, o tas threadas, kuris, pagal idėją, turėtų numirti, sugeba suryti visus kompo resursus, pakabinti windozę taip, kad kai kada net Reset(!!!) negelbsti! Ir tai vadinasi multiprocesinė operacinė sistema? Didžiausias prikolas būdavo, jei pakibdavo monitorius (net įdomu, į kokią ten atminties zoną windozė rašydavo, kad taip atsitiktų?). Kol neperkrauni monitoriaus (būtent, ne vien kompo, bet ir moniko), vaizdo ekrane nėra :-)))

Paskui, jei neklystu, 1996, teko laimė pakliūti į Atviros Lietuvos Fondo Interneto programą (tapau tos programos uzeriu). Tai nebuvo pirmas kartas, kai brauzinau po Web, bet būtent ten aš sužinojau, ko vertas yra Inetas (įdomu, kad kalbainiai (pseudokalbininkai-lietuvintojai) nežino, kad Internetas yra tikrinis žodis, kuris turi būti rašomas iš didžiosios raidės). El. paštas, tada dar mažai kur naudojamas, vis vien pasirode naudingu dalyku. Po kiek laiko ėmiau aiškintis, kas per daiktas yra HTML. Praėjus kuriam laikui, ALF nutarė legalizuoti savo naudojamą programinę įrangą (nors legalizacijos reikalaujančių įstatymų dar nebuvo). Jų sprendimas buvo paprastas: nx windozę, Linux rules! Taip, iš pradžių dar diletantiškai, aš susipažinau su UNIX.

O paskui... pirmi web puslapiai, CGI programavimas, Perl, PHP, MySQL... Po truputį - vis kiti nuosavi kompiuteriai... Linux (įkūriau tur būt pirmąją Lietuvoje bent kiek padoresnę Linux svetainę - gal, galų gale, kada nors prisiruošiu ją atnaujinti?), FreeBSD... Tarpais dar visokios kalbos kalbelės... Teko pabuvoti ir dėstytoju, ir sisteminiu administratoriumi... Taip vat ir pasiekiau dabartį...

   
   

Burgzt Banner Exchange
   
         

Ričardas Savukynas © (C), Vilnius, 2002, Visos teisės išsaugotos, naudojant medžiagą, nuoroda būtina.