logi sisse meist KKK
4
4

Paar korda on jutuks tulnud programmeerimist käsitleva artiklitesarja avaldamine nt Digis või Arvutimaailmas. Sisuks oleks programmeerimise algõpetus, kuna seda teemat arvutiajakirjandus praktiliselt ei käsitle. Asi on jäänud toppama põhiliselt aja taha, aga alati on üles kerkinud ka küsimus, et mis keeles? PHP, Java, Javascript, Python või Flash? Ootaksin teie arvamust ning ka põhjendust.

küsitud Oct 25 '09 at 20:34

Tambet%20Matiisen's gravatar image

Tambet Matiisen ♦♦
77781125

edited Oct 26 '09 at 07:58


123järgmine leht »

Eeldan, et need väljapakutud keeled on need, millega teemaalgataja ise kõikse paremini kursis on - pole ju mõtet hakata õpetama keelt, mida isegi ei tunne.

  • Flash - Tegemist kinnise platvormiga. Ma ei kujuta ette, et programmeerimise algõpe algaks sõnadega: "Enne kui sa saad programmeerima asuda pead sa paar tonni letti laduma, et endale vajalik tarkvara osta." Seega ei.

  • Java - Java õpikud algavad umbes nii: "Siin on hunnik koodi, millest kõigest sa praegu ei pea veel aru saama, aga katsu keskenduda keskmisele reale, mis trükib ekraanile teksti 'Tere maailm'." Ning see lihtne rida on System.out.println("Tere maailm");. Seega ei.

  • PHP - See on keel, mis on disainitud (kui seda nüüd ikka on disainitud) üpris uisa-päisa ja pilla-palla, mille tulemuseks on terve müriaad globaalseid funktsioone mustmiljoni erineva asja tegemiseks. Kusjuures isegi lihtsate asjade tegemiseks on palju-palju erinevaid funktsioone: str_replace, str_ireplace, substr_replace, preg_replace - kõik need teevad peaaegu üht ja sama asja. Mida väiksem ja lihtsam on keel, seda parem on sellega õpetada programmeerimise põhitõdesid, sest detailid ei jää pidevalt tee peale ette. PHP-s on neid detaile mu meelest ülemäära palju. Ära ei tasu unustada ka seda, et PHP tõelise potensiaali väljatoomiseks on kasutajal tarvis installeerida endale veebiserver või vähemasti hankida mingi hostingupakkuja. Seega ei.

  • JavaScript - Keel iseenesest on üpris hea. Väike ja lihtne aga samas võimas. Lisaks on raske leida arvutit, kuhu JavaScript juba installeeritud poleks. Ka praktiliste kasutusvõimaluste poolest on see hea keel - JavaScripti abil saab veebilehtedega igasugu trikke teha - paigutada asju lehel oma soovide järgi ringi, parsida välja olulist infot muu müra seast jpm. Kuid kõige selle tegemiseks ei piisa ainult JavaScripti tundmisest, vaja on teada ka HTML-i ja CSS-i. Lisaks on veebilehega suhtlemine DOM-i läbi täielik piin, mistõttu on veel lisaks vaja mõnd JavaScripti libraryt. Ja siis on veel mõningad brauserist tulenevad ebamugavused, näiteks lihtsate animatsioonide tegemiseks saab paljudes keeltes kasutada sleep() funktsiooni, JavaScriptis tuleb seda teha setTimeout()-ga, mis on kordades keerukam. Ja lõppude lõpuks on normaalseks tööks JavaScriptiga vaja installida Firebug vms, seega ei pääse arendusvahendite installeerimisest ka selle keele puhul. Hoolimata kogu mu armastusest JavaScripti vastu: ei.

  • Python - Üpris hea ja lihtne keel. Eriti hea on see, et algajad õpivad koheselt oma koodi korralikult treppima. Eks temalgi ole omi probleeme, kuid mu meelest algajat need eriti ei puuduta. Seega minu meelest siin toodutest parim valik.

link

vastatud Oct 26 '09 at 20:39

Rene%20Saarsoo's gravatar image

Rene Saarsoo ♦♦
1.1k91121

Eeskujulik näide StackOverflow stiilis vastusest. Tänud Rene!

(Oct 27 '09 at 08:02) Tambet Matiisen ♦♦

Digi lugejaskonda silmas pidades võiks JavaScript täitsa hea valik olla.

AM sihtgrupile pakuks pigem kooslust Excel+VBA. Õigupoolest olen ma sarnase katse juba kaks korda teinud: ühe korra Horisondi lugejatega (siis küll OpenOffice Calci ja selle Basicu baasil) ja ühe korra TÜs psühholoogidele programmeerimise aluseid õpetades. Muide, nende kahe katse järel pean tõdema, et Calcil on Exceli programmeerijasõbralikkuseni veel pikk maa areneda.

14-aastase vennapoja ässitasin Pythoni kallale. Aga võib-olla oleks Java isegi parem valik olnud?

link

vastatud Oct 25 '09 at 22:27

Ahto%20Truu's gravatar image

Ahto Truu ♦♦
6596711

1

Mina hääletan ka Javascripti poolt. See on igas arvutis vaikimisi installitud (nagu omal ajal QBasic), samas on selle õppimisel praktiline väärtus - saab tulevikus AJAXit ja dünaamilist HTML-i väänata. Lisaks on Javascript tänapäeval suhteliselt täisväärtuslik keel (kuigi omade kiiksudega).

(Oct 26 '09 at 07:53) Tambet Matiisen ♦♦

JavaScript keelena on algusest peale täisväärtuslik olnud. Tema häda on selles, et brauseri sees JavaScripti kasutamisel on kõik välised liidesed määratud keele spetsifikatsioonist välja jääva brauseri poolt ja see on see koht, kus asjad sageli inetuks lähevad.

(Oct 26 '09 at 13:29) Ahto Truu ♦♦
1

Uskumatu, aga internetis on täiesti olemas Javascripti käsiraamat eesti keeles: http://jscode.org/

(Nov 19 '09 at 22:53) Tambet Matiisen ♦♦

JavaScripti inimsõbralikumaks kasutamiseks algajale: http://www.win.tue.nl/~wstomv/edu/javascript/about.html

(Sep 29 '10 at 05:27) Ahto Truu ♦♦

Kellele ja milleks?

Programmeerimist - struktureeritult mõtlemist, algoritme jne - saab õpetada ilma ühtegi konkreetset programmeerimiskeelt kasutamata. Arendavad mängud ja lastele mõeldud kõik-ühes keskkonnad on üks näide!

Arvutiajakirjades on lugejaid seinast seina. Kui eesmärk on uutele algajatele programmeerimise põhitõdesid õpetada, siis oluline oleks võimalikult lihtsaks teha esimesed sammud ja harjutamine ja tulemuse "käega katsumine" - kompilaatorite tirimine ja paigaldamine on muidugi vajalik oskus ühe programmeerija igapäevaelus, kuid algust võiks saada teha ilma internetiühenduseta. Lisaks ei paku paljudele terminalist numbrite lugemine erilist pinget. Seega keel, mis igal tänapäeva seadmel mingil kujul olemas on ja üldkasutatava GUI-d omab: Javascript. Näide: (toksi see Firefoxi aadressiribale) javascript:2*2

PHP+Javascript progejaid on Eestis jalaga segada ja kui sarja lõpus 2*2==4 tasemest kaugemale jõuda, on kindlasti paljudel võimalik praktilisi teadmisi kooli/kontorisse kaasa võtta ja enda koodi (sealhulgas PHP koodi) parendada.

Kui aga diibilt läheneda, siis võiks alustada Scheme (mille jaoks on samuti täielik keskkond olema,s DrScheme) ja/või C abil. Scheme selleks, et õpiks (mõnede arvates natuke liigagi) abstraktselt mõtlema ja programme konstrueerima. C selleks, et uus progeja oskaks enda CPU bittide jagu baite kokku lugeda õiges järjekorras. Meeldetuletuseks: C on nagu konjak - mida rohkem tärne, seda uhkem ;)

link

vastatud Oct 25 '09 at 21:07

Martin%20Paljak's gravatar image

Martin Paljak ♦
220118

edited Oct 26 '09 at 07:21

Sihtgrupp oleks põhikooli õpilased minu arust. Keskkoolis on juba hilja :). Eesmärk oleks tekitada huvi programmeerimise kui loova tegevuse vastu vastandina arvuti tarbimisele - mängimisele, konfimisele, tuunimisele jne.

(Oct 26 '09 at 07:56) Tambet Matiisen ♦♦

Isiklikult soovitaksin Pythonit, kuna sellel on äärmiselt lihtne ja kiire õppimiskõver, mis võimaldab keskenduda rohkem programmeerimise põhitõdede (algoritmid, andmestruktuurid jne.) õpetamisele. Kergesti omandatav süntaks ning lihtsamad programmid valmivad üsna kiiresti - peaks olema algajale piisavalt fun.

Samas leian et vajalik oleks ka diibim (nagu Martin ennist mainis) lähenemine, kuid see oleks vast juba järgmine level. Kes on ise suuremad programmeerimise huvilised, jõuavad sinnamaani tavaliselt juba enesealgatusel.

link

vastatud Oct 26 '09 at 09:21

Harri%20Siirak's gravatar image

Harri Siirak
6613

2

Nõus, Pythonil on lihtne süntaks ja ta on naturaalsel viisil objekt-orienteeritud (Javascriptis on see kuidagi läbi prototüüpide, mis minu jaoks ei ole päris naturaalne). Tänapäeval ei ole lihtne kättesaadavus (a'la Javascript) enam nii suur probleem, kuna kõigil on internet käepärast.

(Oct 26 '09 at 09:32) Tambet Matiisen ♦♦

Siimu vastus "skriptimiskeeltest" on bogus ka selle tõttu, et "Flash keelt" pole olemas. Flash on programmeerija seisukohast APIde kogum/IDE, kus keeleks Actionscript. AS2 oli paras segapuder, AS3 on juba parajalt objektorienteeritud-tüübitatud ja muidu nii Javascripti kui Java valdajaile suht käe järgi.

Aga sõltumata keelest on üks probleem selles, et esimesed näited on ikka "print hello world", Fibonacci numbrite arvutamine, abstraktsete andmestruktuuridega möllamine vms. Kui eesmärk on panna asjast huvituma neid, kellel programmeerimine edaspidi põhitööks ei saa, siis on see lähenemine üsna niru sõltumata keelest.

Selle probleemi üheks võimalikuks lahenduseks on Alice, mis üritab näited võimalikult kiiresti mängulaadseks ajada ja näidata, kuidas programmeerimisega saab mingeid nähtavaid objekte ja keskkondi mõjutada, mitte vaid abstraktseid numbreid kokku liita. Ei väida, et see oleks õige vastus, aga niisama diskussiooni mitmekesistamiseks.

link

vastatud Nov 18 '09 at 19:27

Jaanus's gravatar image

Jaanus
612

Viimane Communications of ACM kirjutab Scratchist.

vt. http://scratch.mit.edu/

link

vastatud Dec 02 '09 at 00:58

sigamozart's gravatar image

sigamozart
2994

Scratchi tutvustus eesti keeles: http://elrond.tud.ttu.ee/~vilip/Scratch/Juhend/Scr_juhend14_P.html

(Sep 29 '10 at 05:30) Ahto Truu ♦♦

Kindlasti ei saa me olla antud teemas täiesti objektiivsed. Ma ei saa soovitada Pythonit lihtsalt sellepärast, et ma teda ei oska või ma ei saa soovitada ka ABAP-i, kuigi ma teda oskan, aga tean, et selle keele kasutamiseks enamusel võimalus puudub.

Kindlasti tuleb vaadata ka seda, kuidas inimene hakkab programmeerimist õppima, kas iseseisvalt või teeb seda läbi koolituste ja tuttavate. Materjali õppimiseks on tänapäeval rohkem kui küll (omal ajal sai alustatud viletsa valguskoopiaga Ülikooli raamatukogus), võta kätte, proovi ja harjuta.

Lisaks on siin üles kerkinud küsimus, kas PHP näiteks on ikka hea keel alustamiseks . Mina arvan, et see sõltub inimesest. Kas see andmetüüpide lõtvus hakkab segama hilisemat tegevust või mitte, see on täiesti individuaalne. Ise olen seisukohal, et keel kui selline pole esmatähtis, oluline on aru saada programmeerimisest kui sellisest. Tunnen mitmeid PHP-ga alustanud selle, kes nüüd suurtes tarkvaraettevõtetes töötavad ja väga erinevaid keeli kasutavad, samas tunnen selle, kes 3-4 aasat peale õppima asumist küsivad täpselt samu küsimusi, mis alustades. Mine võta siis kinni, mida ta õppinud on.

link

vastatud Dec 04 '09 at 12:32

Muidumeez's gravatar image

Muidumeez
81113

Kellele oleks artikkel alateadlikult suunatud? Kas tulevastele süsteemprogrammeerijatele või rakenduste programmeerijatele. Need on veidi 2 eri maailma ja nende vahel käib ka tugev ideoloogiasõda...umbes nagu *nix-laste ja windowslaste vahel.

Vahe on selles, et süsteemprogrammeerijad peavad tegelema ja tajuma ka süsteemi siseelu (riist- ja tarkvara), samas rakenduste progejatel võtab raamistik/keskkond selle suures osas enda hooleks. Ühel juhul kaasneb pikk ja vaevaline binaarmaailma, protokollide, draiverite jms tundmaõppimine, teisel juhul interpreteeritakse enamus asju inimloetavaks ja toimub maagia :)

Kui räägime application tasemest, siis JS, Ruby, Python jt "pealisehitised" ja "maagiat täis keeled" on OK alustuseks. Kui süsteemi siseelu vaja tutvustada siis C/C++-st ei saa üle ega ümber.

Maailma ärisüsteemid ja servertarkvara tiirlevad siiski suures osas Java ja C maailma ümber, samas "arvutiga piiksu teha" saab ka lihtsamalt :)

link

vastatud Jan 22 '10 at 11:23

Sander%20Vallaots's gravatar image

Sander Vallaots
911

Atraktiivsuse kontekstis on üks Lua oluline eelis, et ta elab World of Warcraft'i sees.

Didaktilises mõttes on ilmselt mõistlik kaaluda Pythonit, mõnd koolituslikku Scheme dialekti (DrScheme töötab enamasti kenasti) ning Rubyt. Nendele keeltele on omased:

  • teatav distsiplineeritus (aga igal omamoodi, ükski neist ei ole tänapäeva Pascal),
  • rabavatest üllatustest hoidumine;
  • õpetlikele fundamentaalsetele abstraktsioonidele järjepidev keskendumine (jälle igalühel omamoodi: mõningate mööndustega võib öelda, et Pythoni esteetika rõhutab viimaste aastakümnete OOP-arenguid, Scheme rõhutab Churchi tähelepanekut, et programm koosneb tegelikult andmetest ning Ruby jälle selle edasiarendust, et andmed on tegelikult tekst);
  • kasutamiskõlblikkus reaalse maailma reaalsete probleemide lahendamiseks.

Ideaalne õppekeel on nagu filosoofiline rada, mida mööda saab kaugele välja jõuda, mida ei pea sellegipoolest korraga lõpuni käima ning mis ei sea teelisele lõkse üles.

Keeruliselt sängituvad keeled on algõppe jaoks probleem selles mõttes, et nad ei võimalda õpilasel tajuda keele ja muu maailma piiri -- see aga võib hiljem valusalt kätte maksta. (Ajaloos on sedalaadi probleemide ilus ja õpetlik näide mikrorevolutsiooni alguspäevade komme BASIC-programme POKE'dega pikkida.) See tähendab, et ActionScript ja Linden Scripting Language jäävad välja, kuigi neil iseenesest ju suurt häda ei oleks. (Lua + WoW on ka selles kontekstis natuke problemaatiline, aga seda probleemi neutraliseerib osaliselt Lua iseseisvus. ActionScript ja LSL niimoodi iseseisvad ei ole.) Veebisängitumine on tõenäoliselt tänapäeval veebi kõikehõlmavuse tõttu oma keerukuse suuresti minetanud, nii et JavaScript'i mina õkva maha ei tõmbaks, aga nagu näha, ülalmainitud soovituste sekka teda ka ei pistnud.

PHP on muidugi tänapäeva BASIC, tema õpetamist tuleks, nagu Dijkstra ütles, kuriteoks lugeda. Iseäranis esimese keelena.

Siimu rant "skriptimiskeeltest" on õppekeele valiku kriteeriumina peaaegu nii bogus kui olla saab. Selle kivistunud käibetõe põhjal ei tohiks keeltele käesolevas kontekstis ei pluss- ega miinuspunkte anda.

link

vastatud Nov 17 '09 at 17:21

dig's gravatar image

dig
17415

Ilmselt sihtgruppi arvestades ei saa jah, suck threshold eriti suur olla, mis on puhta Java puhul ilmselge probleem. Samas võib selle läve oluliselt madalamale tuua millegi sellisega:

  • Greenfoot – õppimiseks mõeldud keskkond, kus algajal on võrdlemisi lihtne teha lihtsamaid mänge ja muid visuaalseid rakendusi, samal ajal märkamatult üht-teist OO põhimõtete kohta õppides.
  • Processing ja Mobile Processing – algajatele sobiv arenduskeskkond, millega saab juba paari reaga teha üpris huvitavaid interaktiivseid rakendusi (processing-i veebilehel on rohkesti näiteid koos koodiga) ja neid hiljem veebi üles panna. Hiljem suurema huvi tekkimisel võib oma arenduse näiteks Eclipse-i üle kolida.

Hea alternatiiv Java-le on veel Groovy, mis on 100% Javaga ühilduv dünaamiline keel, mille süntaks on märksa sõbralikum ja kus mitmed rutiinsed tegevused on lihtsamaks tehtud kui Javas.

link

vastatud Nov 19 '09 at 13:18

Raul%20Viigipuu's gravatar image

Raul Viigipuu
111

Sinu vastus
lülita eelvaade

Jälgi seda küsimust

By Email:

Pärast sisselogimist saad tellida muudatuse teavitusi siit

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *kaldkiri* või __kaldkiri__
  • **paks kiri** või __paks kiri__
  • link:[tekst](http://url.com/ "pealkiri")
  • pilt?![alt tekst](/path/img.jpg "pealkiri")
  • nummerdatud nimekiri: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • põhilised HTML märgendid on samuti toetatud

Pinu tööpakkumised

kõik pakkumised »

Küsimuse sildid:

×1
×1

küsitud: Oct 25 '09 at 20:34

nähtud: 14,946 korda

viimati uuendatud: Mar 18 '14 at 00:32

Sarnased küsimused

Litsents: Creative Commons Attribution License | Kontakt: info@pinu.ee