Hot.lt logo Hot.lt meniu
karščiausios IT naujienos
pasirink skiltį  
-atnaujinta 2024 08 23-
 
Turinys
Laimėk prizą!
El.prekyba
Įdomybės Internete
Atsiliepimai
Prenumeruokitės!
Klausk-atsakys!
Keiskimės nuorodomis!
Anekdotai
WWW
Menas:
Ars Novus, meno galerija
Žiniasklaida:
Populiarios TV laidos
Žiniu Radijas, tiesioginė transliacija
Laisvalaikis:
Akvariumai, fauna, flora
Įdarbinimas:
Preilė: darbuotojų paieška
Verta:
.
Vedų kultūros centras
Sachadža Joga
Dausuva
.
Karšta
Kasijus
Gyvenimas po tikrovės
Egzistencializmas
Religiniai anekdotai
Povandeninė civilizacija
Cz. Milosz. Ulro žemė
Fermi paradoksas
I.Naživinas. Judėjas
Traktatas apie dvi Sarmatijas
Erazmo Stelos paraštėse
Elementariosios dalelės
Geologijos pionierius
Minčių valdymas
K.Jungas.Vėlyvos mintys
K.Saja. Molynė
Kolonizavimo protokolas
Placebo
Profsąjungos
Ateivių civilizacijos
Krikščionybė Egipte
Mano sielos liūdesiai
P.Adams. Senamadiška muzika
Mitas ir mokslas
J.A. Zaidelis. Riba
Emerikas Koloje
Vaišešikos mokykla
Kas Saulė,o kas Mėnulis?
"Pioneer" anomalijos
Filosofija: Konfucijus
R.W.Emersonas. Poetas
"Sutvėrėjo" žemėlapis
I.Calvino. Katinų markizė
Ramakrišnos panteizmas
Nauja sapnų teorija
"Wow" signalas
Pašalinės mintys
Odisėjas visapusiškas
Tolkieno pasaka
Rousseau. Vienišiaus svajos
Ortodoksų bažnyčia
Jėzaus kapas Kašmyre
Prekiautojai skausmu
K.Kavafis. Barbarų belaukiant
A.Einšteino panteizmas
Vienaragis zhi Kinijoje
Prabilo etruskų rašmenys
K.Jungas ir NSO
R.Kaijua. Sapnų apžavai ir problemos
Suvokimo durys
Visatos modeliai
Alisa ir musmirės
Ką žmonės mąsto Izraelyje
Archetipo koncepcija
Ūlos kraštas senovėje
Diagramos, pakeitusios pasaulį
Sielos klajonės
Suvokimo ribos
Pranašiškas Huxley
Šėtono manifestas
Pirmasis kraujas
OBE ir sapnai
Dropa diskai
Nibiru ir šumerai
Pranašas Mahometas
įvadas į Kabalą
Holografinis katinas
Kęstutis Plankas. Eilėraščiai
Netikėtas Šumero žlugimas
Oreivystės istorija
F. Kafka ir kabala
Esė apie dzūkus
Pederastai dulkina tautą
Poetas Jim Morrison
Slėpiningieji Edeno sodai
Hitleris: gyvas ar miręs?
Mankurtas: be ateities
Interneto pabaiga
E-bylos
 
 

Ką vadiname programuotoju?

Pravartu paskaityti apie programavimo kompiuteriams palyginimą su kitais realaus gyvenimo aprašais >>>>>  

Kaip norite būti vadinamas, kai pagrindinis darbas (o gal kartu ir hobis) yra kurti programinę įrangą? Inžinieriumi, mokslininku, hakeriu – o kodėl ne tiesiog „programuotoju“? Kodėl šis terminas kai kuriems žmonėms atrodo kiek žeminantis?

Programavimas yra keista profesija (jei tai išvis profesija), kurios pagrindinė ypatybė ta, kad ji labai jauna. Jei sakai, kad užsiimi programavimu, vadinasi esi iki 60-ies, nes anksčiau tebuvo vos keli programuotojai.

Problema dėl programavimo ta, kad šis procesas susideda iš dviejų dalių: a) gilesnio mąstymo ir b) paties kodo rašymo. Pirmosiomis programavimo dienomis buvo aišku, kad programavimas kažkiek susijęs su matematika. Kodo rašymas buvo tarsi lygčių užrašymas )nors ir ne visai taip pat). Jį supo intelektualumo aura. Laikas bėgo, programų reikėjo vis daugiau, o galvočių nepakako. Be to tie galvočiai pastebėjo, kad ima perrašinėti tuos pačius dalykus vėl ir vėl.

Binary Computer Pamažu programų rašymas ėmė atrodyti mažesne verte. Aukštesnis lygis buvo gudrių algoritmų sumąstymas. Įvyko skilimas į „smegeningus“, kurie sugalvoja, kaip tai turi būti, ir ne tokius „smegeningus“, kurie atlieka patį kodo užrašymą. Padėtis tapo panaši į statybas, kai architektas sukuria pastato viziją, o daugybė darbininkų ją realizuoja. Tad neatsitiktinai daugelis programuotojų linkę savwe vadinti „architektais“ ar panašiai. Nedaugelis linkę būti „mūrininkais“ ar „stogdengiais“.

Ilgai netruko, ir „programavimu“ imtas vadinti kodavimo procesas ir galvočiai ėmė vengti „programuotojo“ vardo. O kaip tada juos vadinti? Atsirado keletas terminų, atspindinčių atskirus programavimo aspektus. „Programinių sistemų inžinierius“ atspindi programų konstravimo aspektą – tarsi ta veikla būtų inžinerijos dalimi. „Sistemų analitikas“ atspindi susidomėjimą tuo, kaip turi funkcionuoti sistemos. O rašantys kodą imti vadinti „koduotojais“ , o vėliau tiesiog „kodo beždžionėmis“.

Matyt, didžiausią paklausą turi „vykdytojas“ (angl. developer), atėjęs, matyt, iš statybų srities (iš kurios atėjo ir patys pagrindiniai projektų valdymo principai), kur „darbų vykdytojas“ reguliuoja ir prižiūri atliekamus darbus. Tačiau ir čia yra skirtumas. Darbų vykdytojas gauna pinigus ir kitiems palieka daryti „juodą darbą“. Kuriant programinę įrangą nėra tokios aiškios ribos. Dabar „developeriu“ linkstama vadinti asmenį, kuris rūpinasi visu pradinės idėjos apmąstymu ir jos įkūnijimu galutiniame produkte. Tai vėl suartina su tuo, ką išreiškia programavimo sąvoka.

Verta paminėti ir „kompiuterijos mokslininką“ (computer scientist), kas sukelia prieštaravimą tarp mokslo ir meno. Jei nesi mokslininkas, tada turi būti menininku. Tačiau ne viskas taip paprasta. Kompiuterija nėra vien programavimas – tai matematikos pritaikymas kompiuteriams. Tad šiuo terminu turėtų būti vadinamas teoretikas.

O sunkiausia dėl „hakerio“, turinčiu romantišką stereotipą. Tai tarsi būti poetu ar džiazistu. Tai reiškia ignoruoti visas taisykles ir padaryti kažką iš to, kas pasitaiko po ranka. Tai įkvepia ir blizga.

Algoritminis mąstymas

Neretai užmirštama, kaip skirtingai reikia mąstyti, norint parašyti programas. Paprastas žmogus retai sąryšio tarp pradinio taško ir tikslo. Tuo tarpu programuotojas gana greitai pamato, kaip iš A nusigauti į B. Tai nėra matematika, nors ir panašu į tai, kaip įrodinėjamos teoremos. Taigi programuotojas yra algoritminio mąstymo meistras ir savo mintis gali išreikšti algoritmine kalba. Ir būtent tai geriausiai jį apibūdina.

Mitas apie programavimą ir kodavimą

6-o dešimtmečio rašiniuose buvo įprasta skirti programavimą ir kodavimą, - kai šis laikytas „žemo techniškumo“, kurį atlikdavo technikai rutininiu darbu blokines schemas arba pseudokodą versdami į mašinines instrukcijas. Darbo pasidalijimas tarp jų dažnai pasireikšdavo išsilavinimo ir lyčių skirtumu. Tačiau tyrinėjant ankstyvuosius „programavimo“ ir „kodavimo“ panaudojimo atvejus aiškėja, kad praktikoje beveik nebuvo jų atskyrimo. Ir nors veiklų skirtumai visiškai aiškūs, jas labai dažnai atlikdavo tie patys asmenys. Tad greičiau tas atskyrimas labiau būdingas ne tikrovei, o ankstyvųjų skaičiavimų mitologijai. Jo klausimas iškilo 6-me dešimtm. atsirandant automatiniam programavimui – ir išlieka iki šių dienų.

Pirmąkart tasai skirtumas buvo išsakytas H. Goldstine1) ir J. von Neumann’o straipsnyje „Uždavinių planavimas ir kodavimas elektroniniam skaičiavimo instrumentui“ (1947-48). Jie pateikė 4-ių lygių hierarchinę schemą. Viršuje buvo „matematinis lygis“ matematinio uždavinio algoritminės formos sukūrimui, kuris buvo skirtas vien matematikams ir neturėjo nieko bendra su skaičiavimo mašinomis. Žemiau buvo kodavimas, suskirstytas į tris lygius:

  1. makroskopinis arba dinaminis lygis apimantis dinaminius skaičiavimo aspektus (sąlygų patikrinimai, ciklai, adresų pakeitimai ir t.t.) formalizuoti blokinių schemų pavidalu;
  2. mikroskopinis arba statinis lygis apie faktinį kiekvieno blokinės schemos elemento kodavimą;
  3. lygis, (daugiausia) susidedantis iš atminties išskyrimų ir vertimo į dvejetainį kodą.

Blokinės schemos braižymas turėjo būti „rutininiu darbu kiekvienam vidutiniškai matematiškai išsilavinusiam asmeniui“. Statiniame lygis turėjo būti rutininiu darbu kiekvienam vidutiniškai patirties turinčiam asmeniui. Skirtumas tarp šių dviejų lygių ir išreiškė programavimo ir kodavimo atskyrimą.

Bet kodėl Dž. Neimanas ir H. Goldsteinas norėjo atskirti planavimą ir kodavimą? Tai gali būti paaiškinama jų patirtimi rankinių skaičiavimų darbo organizavime: H. Goldsteinas žinomas kaip paruošęs nusisekusią schemą lentelių artilerijos šaudymams rengimui. Pertvarkyta po Pirmojo pasaulinio karo, ji akivaizdžiai naudojo darbo pasidalijimą. Pradžioje buvo matematinė teorija ir iš jos išvesti algoritmai. Tada buvo „skaičiavimų lapai“ (forma 5041), kuriuose žingsnis po žingsnio buvo nurodyta ką turi atlikti skaičiuotojai (aritmetikoje pakankamai įgudę kareiviai ar vietiniai gyventojai). Sekdami tais žingsniai, skaičiuotojai turėjo surasti reikšmes lentelėse, paskaičiuoti logaritmus, atlikti aritmetinius veiksmus, tarpinius rezultatus surašant į „duomenų lapą“, o galutinius rezultatus į „trajektorijos lapą“. Balistinių tyrimų laboratorijoje toji schema buvo lengvai transformuota į instrukcijų paruošimą skaičiavimo mašinoms. ENIAC kompiuteriui tokį darbų atskyrimą Monte-Karlo metodo blokschemų kodavimui gana sėkmingai pademonstravo Klara fon Neiman2). Programuotojas vs koduotojas

Programavimo ir kodavimų atskyrimą pademonstravo UNIVAC, kurią Eckert’as ir Mauchly pradėjo kurti po to, kai kariškiams sukūrė ENIAC (1949). Kitais metais ryšium UNIVAC netgi buvo įvesti „standartiniai blokschemų ir kodavimo simboliai ir metodai“ – ir blockschemos naudotos „kaip galinga komunikacijos priemonė“, o jų elementai galėjo talpinti bet ką, nuo matematinių simbolių iki sakinių.

Tačiau užbaigus UNIVAC (1951), programuotojo ir koduotojo atskyrimo atsisakyta. Pvz., J.L. McPherson’as iš UNIVAC interviu pasakė: „Mes neskiriame programuotojų ir koduotojų. Pas mus yra operatoriai ir programuotojai“. Pažymėtina ir Darbo ministerijos 1959-ųjų atliktas tyrimas, pateikęs 13 „profesijų duomenų apdorojimo elektroninėmis sistemomis srityje“ sąrašą, kuriame nėra koduotojo. Tačiau pateikiami skirtumai tarp sisteminio analitiko, programuotojo ir koduotojo. Pirmasis nustato uždavinį ir reikalavimus, programuotojas sukuria nuodugnias programas, blokschemas ir kitką, kas reikalinga kodavimui ir duomenų apdorojimai, o „koduojantis klerkas“ pertvarko informaciją į tinkamus naudoti kodus (taigi, nenurodomas blockschemų vertimas mašininiais kodais).

Tai iš kur ir kaip kilo idėja priešpastatyti programuotoją ir koduotoją? Terminas „koduotojas“ 6-me dešimtm. minimas ypač retai, tačiau 1955 m. pasirodė net trys straipsniai, kuriuose 28 kartus paminėtas žodis „koduotojas“ – ir visų jų autoriai buvo Grace Murray Hopper ir jos komanda. Būtent G. Hopper buvo nepailstama programavimo automatizavimo propaguotoja. Pagal ją, dabar tokie specialistai, kaip analitikas, programuotojas, koduotojas, operatorius ir palaikymo specialistas „atskirti ir komunikuoja tik tokių įrankių kaip blokschemos pagalba“. Nors skirtumas tarp programuotojo ir koduotojo ir nebuvo niekad aiškiai išreikštas. Ir realiai, dažnai jais buvo tas pats asmuo...

Tai kodėl G. Hopper juos atskyrė? Ogi todėl, kad kodavimą buvo lengva automatizuoti – ir žmogų pakeisti mašina! Vis tik dauguma 6-me dešimtm. nebuvo įsitikinę, kad automatinis kodavimas bus pakankamai efektyvus ir galės konkuruoti su žmogumi. Tačiau pati programavimo automatizavimo idėja šiandien kirba DI modeliuose, grasindama atsisakyti programuotojų. Ir vien pavadinimų naudojimas nors ir įsimena, tačiau svarbu, kiek tai realiai siejasi su praktika.

  • H.H. Goldstine, J. von Neumann. Planning and coding of problems for an electronic computing instrument// Vol. 2 of Report on the Mathematical and Logical Aspects of an Electronic Computing Instrument. Report in three parts prepared for U.S. Army Ord. Dept. under Contract W-36-034-ORD-7481, 1947–1948.

Nebaigei šiandien, pradėk iš naujo!

Siūlau prieš tai paskaityti Kodėl nuolat apsišauname vertindami projektus?

Ties 21 a. slenksčiu buvo populiari ekstremalaus programavimo metodologija. Greta jo buvo galima išvesti ir tokį principą. Pradėk realizuoti funkciją ryte ir jei vakare ji nebus baigta, ištrink viską ir ryte pradėk iš naujo. Galima pasilikti tik modulių testus (unit tests). Jei nepavyks per kelias dienas, apmąstykite, kokius reikia atlikti parengiamuosius darbus, infrastruktūros pakeitimus ir refaktorinimą, kad ją galima būtų įtraukti į sistemą. Atlikę tuos darbus, grįžkite prie funkcijos realizavimo. Ouboros

Tą principą galima panaudoti ir kitur bei apibendrinti.
Vienas iš patarimų pradedantiems programuotojams yra viską perprogramuoti. Realizavus sprendimą, iš naujo parašyk kodą – tik nekartojant, o pamąstant (euristiškai). Antrąkart rašant kodą sugaištama tik 25% pradinio sprendimo laiko, o rezultatas dažniausiai būna geresnis. Tad gauti geresnį kodą sugaištant tik 125% laiko yra visai neblogai! Ir ypač neblogai projektams, kuriuos teks palaikyti ilgą laiką...

„Kiekybė turi savąją kokybę“ – sakė Stalinas. Jaunas specialistas savo kraitelėje neturi 100 K eilučių kodo – ir būtent „pradėk iš naujo kasdien“ padeda tą kraitelę greičiau užpildyti. Be to, tai padeda geriau pastebėti ir įsisavinti dėsningumus. O kartu ir atnaujinti ir sustiprinti neuronų jungtis (sinapses).

Tau sako, kad sprendimas užims 4 savaites. Tada įremi pistoletą programuotojui į galvą ir sakai: „Užbaik per 24 val.!“. Tikslas – sulaužyti nuostatas ir išankstinius nusistatymus. Tokiu atveju reikia visiškai kitokio sprendimo. Ir net nuostabu, kaip dažnai tai suveikia! (man kelis kartus yra tekę būti panašioje situacijoje – ir nieko: per parą tiesiog parašai 12-20 tūkst. eilučių kodo, gal ne pačio efektyviausio, bet veikiančio). Iš tikro, tai nėra to pistoleto – 10-15 min. įtempto pamąstymo ir gali eiti namo ir išsimiegoti, o ryte, viską dar kartą pergalvojęs, pradėti ir … pabaigti per kelias dienas.


1) Hermanas Goldstainas (Herman Heine Goldstine, 1913-2004) – žydų kilmės amerikiečių kompiuterininkas ir matematikas, vienas iš ENIAC kūrėjų. Antrojo pasaulinio karo metais užsiėmė balistinių šaudymo lentelių paskaičiavimais (skaičiuotojai buvo vadinami kompiuteriais), kurie buvo labai lėti. 1942 m. skaičiavimų pagreitinimui buvo pasiūlyta sukurti elektroninę skaičiavimo mašiną (ESM) – ir 1943 m. birželį, paskyrus finansavimą, per 30 mėn. buvo sukurta ENIAC. 1946 m. kartu su Dž. Ekertu įkūrė atskirą kompiuterių gamybos kompaniją (dabart. „Unisys“). 1957 m. tapo IBM Tyrimų centro Matematikos skyriaus vadovu, kur daugiausia užsiėmė IBM ir mokslo bendruomenės sąveika. Vėliau 1985-97 m. buvo Amerikos filosofų draugijos vykdomuoju direktoriumi.

2) Klara fon Neiman (Klara Dan von Neumann, 1911-1963) – vengrų kilmės amerikiečių matematikė, savimokslė inžinierė ir kompiuterininkė, laikoma pirmąja programuotoja ir pirmąja moterimi kompiuteriu vykdžiusi šiuolaikinio stiliaus kodą. Tapo Dž. fon Neimano žmona. Jos indėlis svarus į Monte-Karlo metodą,  ENIAC ir MANIAC kompiuterių panaudojimą. Programuoti liovėsi po Dž. fon Neimano mirties, tačiau parašė pratarmę jo Silimano paskaitoms (1958), vėlesnis išplėstas leidimas pavadintas „Kompiuteris ir smegenys“. Laikoma, kad ji nusiskandino.

Kiti HOT.LT straipsniai:
Kobolo motina
.Net palydėtuvės
Kompiuterių ištakos
Programavimo paradigmos
Programuotojų kertelė
Pirmasis interneto ryšys
Programavimo kalbų klegesys
Kompiuterių istorija: VT100
Atskleistoji istorija: SKIE-MUO
Ištraukos iš C kalbos Biblijos
Kitoniškumas: dygios eilutės
Optimali stulpelių eilės tvarka
Lambda išraiškos – Java į naują lygį
MS SQL užklausų rezultatų puslapiavimas
Pirmasis „Java“ įskiepis Lietuvoje
Bilas Geitsas: kol dar nebuvo garsus
Technika: Nuo Paleolito laikų
Danas Briklinas: skaičiuoklės autorius
Liūdna pasaka apie Unix
Algebra akimirksniu
Tikroji Interneto pabaiga
Unix ir C kalbos kiltis ir ... šachmatai
Ar mašina kada nors mąstys?
Pirmoji programuotoja: Ada Lovelace
Programuotojo evoliucija: "Labas, pasauli!"
P-NP: Ant sveiko proto svarstyklių
AWK kalba - sena ir nuolat aktuali
Peteris Karvašas. Archimedas
Programavimo kalbų evoliucija
Mūšis kibernetiniame pasaulyje
Visata kaip kompiuteris
Kompiuterių istorija
Haketonai

 

 
 
HOT.LT informacija  
Kviečiame visus prisidėti prie svetainės kūrimo! Rašykite el.paštu info@hot.lt Mes stengiamės Jums!  
 
Atskiri HOT skyriai  
Domeno vagystė  
Interneto romantikai  
Programinė įranga  
WebOn produktai el.komercijai  
 
Karštos WWW svetainės  
 
Informacija:  
NSO ir mistika  
ONLINE.LT  
   
   
Portalai  
Banga  
 
Lietuviai:  
Globalusis tinklas  
Lithuanica svetainė!  
  Mirusieji - atminimui  
   
Aukcionai, prekyba:  
Banknotai  
 
Spauda:  
Verslo žinios  
Žinių radijas  
Lietuvos rytas  
Moteris, žurnalas  
Vartiklis, elraštis  
 
Interneto paslaugos:  
Elnet@  
 
IT paslaugos:  
Baltic Amadeus  
 
Kultūra:  
Džiazo svetainė  
Lietuvos filharmonija  
Interaktyvi proza  
Teatras  
Meno galerija  
Filosofija  
Mitologija  
Literatūra  
  Poezija  
  Fantastika  
  Religijos puslapiai  
   
Mistika:  
Kabala  
Fuko švytuoklė  
   
Darbo sauga  
Sabelija  
 
Laisvalaikis:  
Akvariumai  
   

 

 
 
delo
© HOT.LT 2000.
Draudžiama be leidimo naudoti bet kurią šios svetainės dalį.
'Intelligent' design.