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 ♦♦
6723925

edited Oct 26 '09 at 07:58


« eelmine123järgmine leht »

C#, Java, Mathematica või Python - Parim valik. Võttes arvesse, et enam kui 80% algajatest ei vaheta kunagi programmeerimiskeelt, siis leian, et parim valik on Scala.

Miks pole hea algajale:

  • C - keeles puudub oop võimalus, sõnede loomine ja töötlus on keeruline, lõimede loomise keerukus, graafilise liidese loomine on keeruline lisanduvad ka c++ põhjused

  • C++ - ta peab oskama mälu koristada, oskama kasutada viitasid, programme veebis jaoks luua on raske, täpitähted, võimatu teha kindlaks mis tüübist on andmed, seriliseerimine mitte manuaalselt on olematu, klassid võivad päranduda mitmest teisest klassist, definitsioone leida (ning selleks ei leidu viisi), pole võimalik algväärtustada mitte primitiive; masiive; andmestruktuure nagu hashmap, try-catch lekib; ning ei saa kõiki erindeid kinni püüda, mustreid kasutatakse valesti ja see on hullem kui C makrod, funktsiooni päised on vaja luua, debug'imise keerukus jne.

  • PHP - tema kohta on mul niipalju halba öelda, et pigem mainin head: Eestis on palju PHP programmeerimist harrastavaid inimesi, kellele ka algteadmistest oleks palju kasu. Keel areneb märgatavalt, seda isegi positiivselt. Väheste teadmistega saab palju teha. Isegi Eestis leidub tasuta PHP teenusepakkujaid. PHP koodi saab sisestada HTML'i variatsioone. Sobib andmebaasi arendajatele, loomaks kliendi ja andmebaasi vahele minimaalne vajalik lüli. Eelnimetatud nn. imemisperiood pole ka kõige hullem.

Esmalt mõtlesin, et toon siin välja kõik enamkasutatud programmeerimiskeeled ja nende peamised vead, kuid vaevalt leidub siis kedagi, kes seda viitsiks lugeda. Välja tõin PHP positiivsed, c ja c++ negatiivsed küljed, sest tavaliselt programmeerija ei oska neid nimetada.

link

vastatud Sep 28 '10 at 20:55

Margus's gravatar image

Margus
5116

edited Oct 06 '10 at 09:25

+1 huvitava lingi eest.

(Oct 01 '10 at 12:29) Rene Saarsoo ♦♦

Hoiatuseks nendele, kellele lingi alt tühjad graafikud avanevad - graafikud ei tööta IE all, fallback to FF.

(Oct 06 '10 at 06:02) Tambet Matiisen ♦♦

Mu 10-aastane alustas Logoga. Talle meeldis, et sai kohe pilte teha. Mida noorem on sihtgrupp, seda olulisem on, et tulemused oleks lihtsalt saavutatavad. "Hello, world" ning 2*2 pole tõesti kuigi huvitavad lastele.

link

vastatud Mar 27 '11 at 23:11

Katrin's gravatar image

Katrin
112

Toodud nimekirjas on enamik keeli skriptimiskeeled või neist välja kasvanud keeled (va. Flash?). Päris programmeerimiseks need eriti ei kõlba (siis on vaja juba vähemalt C, F ja L perekonda tundma õppida). Põhitõdede õpetamiseks on nad ka liiga keerulised (nagu eelnevad vastajad on välja toonud). Skriptikeeltest on ühed puhtamad ja selgemad keeled käsurea keeled (bash, command prompt), kus on enamik laialt kasutatavaid keelestrukture olemas. Objekt-orienteeritult lisanduks neile veel PowerShell, mille tugevus teiste O-O keeltega võrreldes on interaktiivne kasutajaliides ja varasem olemasolu enamikes arvutites. Need on ka keeled, mille tundmisest on enamikule kasutajatele tõenäoliselt kõige rohkem kasu.

Kindlasti tuleks vältida Flash keelt (sest tegemist on ikkagi kinnise tootega, mille virtuaalmasinate kvaliteet jätab väga soovida) ja JavaScripti. JavaScripti seetõttu, et tal on liiga palju "murrakuid" ja standardne osa on imepisike (sisuliselt ainult keelestruktuurid + DOM, ülejäänu on laiendustespetsiifiline), mis tähendab, et tuleb õppida JavaScript keskkonda tundma (nt. veebileht vs PDF).

Päris programmeerimist ei kujuta ette ilma tugevalt tüübitud käsitsi hallatava mälukasutusega keelte tundmiseta. Java-s on mäluhaldus ebameeldivalt keeruline (lihtne linked-list implementatsioon võib juba mäluhalduses probleeme tekitada) ja nõuab tugevalt keele sisestruktuuride tundmist. .NET-s on asi veidi ilusam tänu haldamata API-le, kuid reaalselt ei kasutata haldamata API-t peaaegu üldse (see on ka peaaegu olematu dokumentatsiooniga). PHP-s on mäluhaldus Java-ga võrreldes oluliselt lihtsam, kuid C ja C++ konstruktsioonid on palju silmapaistvamad ja paremini seotud arvuti füüsilise ülesehitusega.

link

vastatud Oct 28 '09 at 11:37

Siim's gravatar image

Siim
91

1

Kui teemaks programmeerimiskeeled, ilmub alati välja keegi, kes teatab, et "skriptimiskeeled" on mingisugune alam rass ja polegi nagu päris programmeerimiskeeled. Justnagu "skriptimiskeeltel" ja "päris" programmeerimiskeeltel oleks mingi selge vahe.

(Nov 17 '09 at 20:49) Rene Saarsoo ♦♦

Muide, mida sa mõtled C, F ja L perekonna all? C, Fortran ja Lisp?

(Nov 17 '09 at 20:52) Rene Saarsoo ♦♦

Mida ma ise vast soovitaks on:

  • D - tõenäoliselt meeldib see, sest tal kõik vajalik mida peaks programmeerimisel õppima. Aga samas on vähem selliseid häkkimise ja veidraid süntaksi võimalusi.
  • Lua - Hea lihtne skriptimis keel, ning lastele kasulik näiteks kasutades LÖVE2D platvormi. (Ekvivalentne osaliselt pygame-ga aga minu arust lihtsam).

Arvan, et keel, mida kasutada õppimiseks, peaks:

  • sundima kasutama ühtset stiili (näiteks python)
  • võimaldama õppida mäluhaldust ja pointereid (new, free, delete etc.) (näiteks d, c, c++...)
  • võimaldama oop-i (kuid mitte sundima)
  • ei tohi sisaldada võimalust väga õudsat koodi kirjutada (#define 1 0)
link

vastatud Oct 28 '09 at 14:22

egon's gravatar image

egon ♦♦
71138

3

Miks peaks programmeerimise algõpetuse juures mäluhaldust ja pointereid õppima?

(Nov 17 '09 at 20:57) Rene Saarsoo ♦♦

Peamiselt sellepärast, et paremini aru saada kuidas asju arvutis mälus hoitakse ja kuidas neile ligi pääsetakse. Ma arvan, et kui edasi liikuda teiste keelte peale, kus garbage collectionit ei ole, siis võib väga kergelt hakata vigu tulema, kui neid põhimõtteid ära ei õpi.

(Nov 19 '09 at 12:45) egon ♦♦

Alustamiseks soovitan C -d. Viit http://bloodshed.net/dev/index.html

link

vastatud Nov 18 '09 at 19:16

heinar's gravatar image

heinar
1

Pidage mind vanamoeliseks, aga arvan, et need kaks keelt täidavad siiani oma eesmärke.

  1. Basic - päris algajatele. ei pea muutujaid deklareerima ega ole süntaktilist müra (moodulite laadimist a la "include stdio.h"), lihtsate programmeerimisülesannete jaoks ideaalne. Selles mõttes on ka Visual Basic tip-top, pakkudes kaasaegsemat kasutajaliidest.
  2. Pascal ja selle järglased: "edasijõudnud" algajale.
  3. c, c# ja muud c-keele sugulased annavad edasijõudjale "päris" programmeerimiskeele maitse suhu. Arvan, et enne objektorienteeritud programmeerimist peaks õppima vana kooli struktuurprogrammeerimist.
link

vastatud Nov 30 '09 at 10:19

Teet's gravatar image

Teet
7910

  1. Vanamoodsus paistab välja sellest, et Sa kiidad BASICut "ta ei ole C" vormeli järgi ;-) Säärase "müra" puudumine on paljudele tänapäevastele keeltele omane, kuni mürakuninga Perli eneseni välja.

Klassikaline BASIC aga jääb hätta juba säärase lihtsate programmeerimisülesate jaoks elementaarse tehnikaga nagu rekursioon. Isegi "tänapäevased" BASIC'u dialektid kipuvad kolme koiba lonkama.

  1. C# ei ole tegelikult C vaid pigem Java sugulane.

  2. Struktuurprogrammeerimise point programmeerimise algõppe kontekstis on maailma lahkamise õpetus. OO võib selleks tegelikult pareminigi sobida.

(Nov 30 '09 at 15:56) dig

Mis Pascali järglastel, so siis FreePascalil ja Delphil, jääb "päris" programmeerimiskeele staatusest puudu?

(Nov 30 '09 at 19:48) Avo

OK, Basic on tõesti natuke liiga lihtne, ent Pascalit on kiidetud just väga arusaadava süntaksi pärast, see justkui loeks koodi ette.

c keelest pärinevad begin..end sulud { }, muutujate manipuleerimise trikid nagu ++a,a-=3, a=b==3?b*b:b%2 ja muu, mis teeb selle keele edasijõudjale haarvaks, aga õppijale on selle süntaks veidi keeruline. Muidugi soovitaks sinna liikuda edasi niipea kui programmeerimise põhitõed juba selged on.

(Dec 01 '09 at 10:16) Teet

FreePascali ja Delphi häda on peaasjalikult ajaloolises pagasis alustades näiteks niisugustest triviaalsustest nagu "word", mis oma seotuse masinasõnaga ammuilma minetanud on, aga iidsete mikrorevolutsiooniaegsete translaatoritega (nagu MT/+ või Turbo Pascal for CP/M) tagasi ühildumise huvides alles püsivad. Aga see ei tähenda, et nad päris keeled ei oleks. Natuke naljaka ja mitte päris otstarbeka kriteeriumina: vajadusel saab fpc's kasvõi Linuxi tuumamoodulit kirjutada.

(Dec 02 '09 at 21:18) dig

Ma ei saa aru miks paljud Pythonit algajale soovitavad?

Ärge saage valesti aru, python on suht ok keel, kuid algaja jaoks toimub selles liiga palju "maagikat".

Ehk kui juba on käinud ära see arusaamise "klõps" siis tegelikult enam väga vahet pole. Aga kui see klõps käib dünaamilise keelega siis sellega kuidas "kapoti all" asi käib on tõsiseid raskusi arusaamisel.

Ma tean päris paljusid programmeerijaid kelle esimene keel on olnud näiteks PHP, kuid nendel on juba tõsiseid raskusi teistes keskkondades programmeerimisega.

link

vastatud Dec 02 '09 at 19:26

laurts's gravatar image

laurts
1

Nagu öeldud, PHP on tänapäeva BASIC. Pole tal süsteemipärast maailmavaadet ega konsistentset arhitektuuri. Inimene, kes PHP korratust programmeerimiseks pidama hakkab, on hädas tõesti.

Python on nondest hädadest prii. Häda ei ole ju keele dünaamika, häda on keele autorite mõttelaiskus.

(Dec 02 '09 at 19:34) dig
2

Programmeerimine ongi ju maagia ning programmeerijad võlurid - ma ei näe siin mingisugust probleemi :)

(Dec 04 '09 at 09:36) Rene Saarsoo ♦♦

FreePascal'i sõpradele võib äratundmisrõõmu pakkuda see dokument aastast 1981. Muist tollest nomenklatuurist oli juba siis vana ja seda säilitati tagasiühilduvuse huvides.

link

vastatud Dec 03 '09 at 21:02

dig's gravatar image

dig
17415

Ise noorprogrammeeriana alustasin PHPst, ei teagi kas sain nüüd siis pättusega hakkama? Lihtsalt, kui ma programmeerimise otsa sattusin siis ma natuke aega tegelesin 2e asjaga - PHP ja JS. Kuna aga PHP tundus kordades lihtsam hakkasin seda edasi õppima. Nüüd olen jõudnud kohta, kus arvan, et PHPd juba natuke oskan - prooviks midagi uut. Pöörasin oma pilgud tagasi JSi juure ning ilmselt JSi kõrvale hakkan veel Pythonit ka uurima.

See oli väike "eellugu". Kui seda tutvustamis keelt valida, tuleks minu arvates lähtuda sellest, mida kiiremini ja kergemini sa saaksid valmis millegi huvitavaga? PHPs näiteks kalkulaatori loomiseks ei pea olema eriline geenius. Edasi siis juba lihtsamad mängud jne. Kindlasti tuleks aga PHP kõrvale tekitada huvi ka teiste keelte vastu millega seda PHPd huvitavamaks muuta ala JS.

link

vastatud Dec 05 '09 at 21:45

Korx300's gravatar image

Korx300
12

Ma alguses proovisin Pythonit aga see ei sobinud kohe üldse, samas tundus küll suhteliselt lihtne. Nüüd alustasin Javaga ja olen üle kuuaja juba tegelenud. Python on hea aga kasutajaliidese ja koodi kokkuajamine pole just kõige lihtsam, Java tundub sellepoolest parem olevat, aga samas on Java rangem keeleliselt. Pythonis hakkavad asjad ka päris kergesti tööle aga Javas nii kergesti ei saa, peab vigadega maadlema, mis on suhteliselt lahe. Kui eesmärk on kiiresti midagi valmis saada, siis soovitan Pythonit.

link

vastatud Dec 11 '09 at 19:01

Timo's gravatar image

Timo
2116

edited Dec 11 '09 at 19:06

Sinu vastus
toggle preview

Jälgi seda küsimust

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or __italic__
  • **bold** or __bold__
  • 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.
  • basic HTML tags are also supported

Pinu tööpakkumised

kõik pakkumised »

Sildid:

×1
×1

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

nähtud: 4,285 korda

viimati uuendatud: Nov 14 '11 at 20:55

Sarnased küsimused

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