Načítavam moment...
Momentálne nie ste prihlásený

S čím začať programovať? (Späť na článok)

Pridajte priamu reakciu k článku

1 2 >

Hodnoť

 

Eeee ... hrubo nesuhlasim s tym, ze zacat treba s Packalom alebo s C (mozno tak na gymnaziu alebo VS) ... zacat treba s karlom, zofkou alebo baltikom a co najskor na ZS ...

Inak je v podstate jedno s cim clovek zacne, pokial k tomu ma vztah, nema problem neskor prestupit na hociaky jazyk.
 

suhlas

Este sa vidi, ze existuje nejaky Imagine. Myslel som skor teengerov :) Na zakladnu skolu jasne, ze nieco take :)
Dakujem :)
 

 

Skoro so všetkým súhlasím, len... toho Baltíka si dal len do počtu, alebo máš v jeho prospech nejaké argumenty? Ja som ho videl len kedysi dávno, takže terajšie verzie sú možno iné, ale viem, že na mňa vtedy zapôsobil ako absolútna zbytočnosť. Mal nejaký programovací režim, ktorý mi pripadal zložitejší ako klasické textové programovanie, a potom mal nejaký priamy režim, ktorý s tým programovaním nemal nič spoločné.

Niekedy mám pocit, že keby autori nechceli príliš machrovať, radšej mohli namiesto nového jazyka urobiť nejakú knižnicu alebo front end k existujúcemu jazyku.
 

Urie

Mal som tu cest programovat v Baltikovi, mal som aj nejaky uspech a nemyslim si ze je to taka blbost. Ano, boli tam dva rezimy, tvorba sceny a tvorba programu. Scena bolo usporiadanie objektov v okne a programovacia cast bola riesena tak, ze by tomu pochopilo aj 7 rocne decko. Zbytocnost to nebola. Urcitym sposobom ma to pripravilo na c++, samozrejme iba zakladne principy programovania.
 
Hodnoť

Vdaka za pekny clanok

C som sa zacal ucit este z knihy Hopcroft-Ulman (asi som ich mena skomolil), a ta kniha sa mi pacila, hoci viacero ludi na nu nadavalo. Mal som ju pozicanu z verejnej kniznice v Petrzalke. :-)
 

C a Hopcroft Ulman? omyl

C napisali Kernighan a Ritchie, autori povodnej ucebnice, ktora sa stale pozuziva. Narozdiel od Hopcroft Ulman, autori ucebnice Formalne jazyky a automaty = co popisuje rozne gramatiky a zlozitost programovania pouzitim Turingovho stroja a nie realneho pocitaca.
 
Hodnoť

určite Python

aspoň s tých menovaných je najvhodnejším jazykom pre začiatočníkov - skriptovací, s rýchlym vývojovým cyklom, s haldou modulov, s viacerými dobrými IDE. Python má kompilátory pre Java VM (Jython) aj .NET (Iron Python). A nakoniec má Python výbornú podporu integrácie s C/C++, prepojenie na tieto jazyky ja naozaj výborné (často je Python interným skriptovacím jazykom pre aplikácie naprogramované v C/C++ napr. Blender).
 

 

znie to paradoxne, ale myslim si, ze halda modulov a rychly vyvojovy cyklus je pre zacinajuceho programatora riziko. nevidim do pythona, ale tieto 2 atributy platia pre javu a na studentoch vo vyssich rocnikoch vidno tie trvale nasledky javy asi ako na teenagerovi v piatok o 23tej vidno alkohol... :-)
 

halda modulov je v Pythone k dispozícii

ale nie je potrebné pre základnú výuku ovládať ani jeden z modulov.

Ale keď sa dostaneš vo výuke za základy, veľmi pomôže, keď na každú špecializovanú oblasť existuje knižničná podpora.
 

k Jave

Java sa mi zdá dosť zošnurovaná (to je dané jej filozofiou - osekať všetko, čo nie je nevyhnutné), preto má taký "zadrôtovávací vplyv", ak sa ju človek učí ako prvú. Skriptovacie jazyky sú väčšinou oveľa uvoľnenejšie, a preto menej deformujúce.
 
Hodnoť

 

Basic je basic, na zacatie programovania idealny a ked pochopis zaklady, sup na javu :)
Ale inak mi pride celkom vhodny aj actionscript (2.0, aby bolo jasno :)), na pochopenie programovania idealne, hned aj vidis co sa deje. A ako maly uvodik k jave tiez dobre. A inak zacinat rovno v cecku musi byt otrava, pascal je imho mrtvy, asi najskor ta java.
 

 

na margo javy ... vid moj prispevok vyssie
 
Hodnoť

dalsia k jave

neviem ci je java vhodny jazyk na zacinanie programovania, sam som zacinal na basicu a potom Z80 asembleri, ale java je presne taka aku si ju clovek urobi. Inymi slovami ak potrebujes nieco rychlo naskladat pouzijes dostupne kniznice a volania , ak potrebujes mat plnu kontrolu na behom tak si povacsinou povytvaras vlastne triedy/kniznice. Problem s pouzivanim kniznic ma zrovna tak java ako aj ostatne jazyky C/C++ nevynimajuc.
Java vsak nie je len j2ee/j2se. Dlhsie programujem mobilne aplikacie a skutocne musim povedat, ze dnes sice kniznice pouzivam, ale su z 50% moje vlastne a to ci uz ide o pouzivanie ukladania dat do RMS, kreslenie na displaj, pracu s fontami, httpConnection alebo rozne sifrovacie bloky pre prenosy dat na server.
A kedze som na mobilnu javu prechadzal v case ked limit na jednu app bol 32kb tak sa optimalizovalo zhusta aj na vyslednu velkost kodu aj na performance kedy sa cykly for nad polom neriesili opatovnim volanim dlzky ale predsunutim premennej pred cyklus. O.i. tieto navyky na optimalizaciu mi zostali podnes a obcas ked musim nieco spachat v j2ee kolegovia sa stazuju, ze nie vsetkemu rozumia.
Ale aby som nezabudol pointu na zaver.... ked sa niekto chce ucit programovat musi v prom rade chciet a potom nie je problem zacat cimkolvek a zaroven mozem len konstatovat, ze prasacky kod sa da napisat v akomkolvek jazyku
 

 

nepoznam zaciatocnika, ktoreho jeho prvy program by bola aplikacia pre mobil.
 
Hodnoť

biblia C

povinna vybava kazdeho Ceckara je predsa C programming language od K+R (vydana tusim v r 1978) :-)))
 
Hodnoť

 

"Tie jazyky sú veľmi inteligentné. V preklade to znamená, že robia za programátora čo môžu, čím skrývajú niektoré princípy programovania."

Hm, toto by bolo na dlhšiu diskusiu, možno samostatný článok -- čo považuješ za princípy programovania? Čo je v programovaní to naozaj dôležité?

Ja mám pocit, že som ako programátor prešiel takými troma štádiami. V prvom štádiu som za najdôležitejšie považoval poznať čo najviac príkazov. Mal som takú hrubú knihu so všetkými príkazmi jazyka GWBasic (alebo tak nejako) a tešil som sa, že až raz budem veľký, budem poznať všetky tie úžasné príkazy.

V druhom štádiu som pochopil, že príkazov existuje potenciálne nekonečne veľa -- až raz niekto vymyslí programovateľný lúskač orieškov, určite aj na to bude existovať nejaké API, ale jeho neznalosť ma nijako neochudobňuje, a ani ho nechcem poznať, až do okamihu, keď príde konkrétny projekt, a vtedy si to naštudujem z manuálu, urobím projekt, a zase zabudnem. Za najdôležitejšiu som považoval znalosť syntaxe jazyka. Vtedy som sa rád zapájal do diskusií na tému, ktorý programovací jazyk je lepší a prečo.

Tretie štádium je také nejaké "postmoderné", kde je programovací jazyk tiež len vymeniteľný nástroj. Isteže, na niektoré nástroje som si zvykol, ale nepovažujem za ich za objektívne lepšie a nebudem ich preto vnucovať druhým. Keby bolo treba, tak sa nový jazyk naučím... ale pridanú hodnotu tam vidím iba vtedy, keby bol dosť odlišný od tých, ktoré poznám. Rád by som niekedy lepšie pochopil Smalltalk alebo Lisp, ale nevidím dôvod bez mimoriadne silnej finančnej motivácie študovať napríklad C#, keď už poznám C, C++, Javu. Nový jazyk je dobrý vtedy, keď ma naučí myslieť novým spôsobom, ktorý sa potom prejaví aj pri programovaní v doteraz známych jazykoch. Namiesto knižníc chcem poznať design patterny; namiesto porovnávania jazykov si uvedomujem, že na tú istú vec možno pozerať úplne rôznymi spôsobmi, a každý má svoje dôvody. Zaujímajú ma techniky typu unit testing, ktoré umožňujú vyvinúť produkt lepšie a jednoduchšie.
 
Hodnoť

 

K tomu článku, ktorý uvádzaš ("Programátorské schopnosti absolventov klesajú, problémom je Java") by som pár vecí chcel doplniť, keďže Java je moja srdcová záležitosť. ;-)

Súhlasím s tým, že keď začneš žiakov učiť robiť grafické programy, len ťažko ich vrátiš k algoritmom. Ale Java nie je len o grafike. Môžeš v nej urobiť aj program vypisujúci do príkazového riadku, spracovávajúci súbory, atď. Čo vieš urobiť v Pascale, pomerne priamočiaro vieš prerobiť do Javy. Čiže by som to nebral ako chybu jazyka, ale ako chybu pedagogického prístupu... ako častý omyl učiteľov a autorov učebníc. Učiteľ nesmie podľahnúť tlaku žiakov a príliš rýchlo prejsť z "príkazového riadku" na grafiku, lebo cesta naspäť je skoro nemožná. Zistil som to na vlastnej chybe; kým program vypisuje na konzolu, žiak pozerá na zdrojový kód; akonáhle program zobrazí niečo farebné, žiak už pozerá iba na výstup... už ho nezaujíma pointa, chce iba rýchlo vedieť, ktoré číslo treba ako zmeniť, aby sa to zelené koliesko posunulo trochu viac doprava. nesmieš prijať laický pohľad "príkazový riadok je trápny, moderný program musí byť v okne", ale uvedomovať si, že grafické API je iba jedno API z milióna, nič viac.

To, že sa namiesto "malej skupiny primitívnych operácií" hľadajú triedy, je dôsledok objektovo orientovaného programovania. Áno, púhym používaním tried sa žiak programovať nenaučí; naučí sa len písať jednoduché skripty. Programovať sa naučí až vytváraním vlastných tried. Keď už má jazyk dobrú knižnicu, na väčšinu triviálnych úloh už existuje nejaká metóda nejakého objektu. Nemá zmysel znovu písať kód na výpočet druhej odmocniny, keď tu máme "Math.sqrt". Všetky triviálne veci už boli urobené -- výhoda pre programátora v praxi, nevýhoda pre učiteľa, keď má vymyslieť jednoduchý príklad na precvičenie. Na druhej strane, môže dať študentom za úlohu napísať vlastnú alternatívnu implementáciu existujúceho objektu. Napríklad: "Máme typ List, čo je zoznam objektov. Naprogramujte typ ListInt, ktorý bude zoznam primitívnych hodnôt int, a bude poskytovať podobné metódy. Nesmiete pritom využiť žiadnu kolekciu, iba polia."

Argument, že dobrý programátor musí poznať viacero programovacích jazykov, by som ešte rozšíril o poznanie formálnych jazykov, ako napríklad Turingov stroj. Tam s grafickým API a príliš silnými knižnicami žiadne problémy nebudú. ;-) Dá sa to robiť s ceruzkou na papieri, ale keby existoval vhodný simulátor, tak ešte lepšie. Napríklad namiesto skutočného assembleru by som učil skôr nejaký idealizovaný assembler, kde by nebolo toľko výnimiek, ani zbytočne silné matematické funkcie, a na komunikáciu s externým svetom inštrukcia "načítaj zo vstupu bajt" a "vypíš na výstup bajt"; a hneď môžu byť úlohy, kde sa má daný vstupný súbor spracovať na výstupný, najlepšie s možnosťou automatického vyhodnotenia cvičenia pomocou sady vzorových vstupov a výstupov.
 

k Jave

O dobrom programatorovi som sa skoro ani nezmienil. Nechapete o com clanok je? S cim zacat programovat. Zacni 15 rocnemu dievcatu, ktore nespravilo jeden program tlacik to hlavy Turingov stroj, halting problem, automaty a neviem co este je imho nezmysel.

Java je cisto OOP. Teda velmi mocny nastroj a treba pisat kopu zaciatocnikovi nic nezamych slovicok. Cloveku, ktory nic nie tlacit do hlavy rovno javu a OOP sa mi ako zahmlevanie veci. Za OOP je velmi silna filozofia na ktorej pochopenie treba urcitu mieru abstrakcie. Halting problem a univerzalny system programov tiez ti ludia nepochopia na strednej skole.

Fajn, majme datovy typ ArrayList. A maju studenti predstavu, co je vobec datovy typ? Vytvaraju nieco, a ani nevedia co. Javu zaciatocnikovi nemozes vysvetlovat bez toho aby si mu povedal, ze toto toto a toto slovicko tu musi byt, ale este si ho nevsimaj... V tom je super vyhoda pascalu, kde student pozna vyznam kazdeho slovicka.

Ludia na vysokej skole maju hlboku mieru abstrakcia a vidia suvislosti, o ktorych by som v zivote nepovdal ze su. Stalo sa mi, ze som nadavaj na nieco, preco sa to tak uci a po par rokoch mi doslo, lebo tak to je najlepsie ak sa chce clovek rozvijat.

Pomaly cela tato diskusia je trapna a absolutne zbytocna...
 

 

Ako som napísal v prvom riadku, reagoval som na článok, ktorý si v článku linkoval, nie na Tvoj článok. Ten článok spomínal "[problém], ktorý trápi mnohých zamestnávateľov v IT priemysle", takže som ho pochopil, že je o budúcich programátoroch; a týkal sa vysokých škôl. Moja záverečná poznámka bola teda o tom, že absolvent vysokej školy so zameraním na informatiku by mal mať Turingove stroje zvládnuté.

S čím začínať, to je iná otázka. Mimochodom, myslím si, že správne podané Turingove stroje nemusia byť pre začiatočníka zlé. Ako pri mnohých veciach, veľmi tam záleží na tom, ako to učiteľ podá. Keby k tomu Turingovmu stroju bolo nejaké pekné grafické rozhranie, kde by žiak mohol cez drag-n-drop naeditovať príkazy, a potom by mal tlačidlá "urob krok", "spusti program", "preruš program". Tam si viem predstaviť jednoduché príkazy typu "prejdi cez dané slovo, všetky písmená A vymeň za B a naopak". Žiadne dokazovanie. Dobré učenie postupuje od konkrétneho k abstraktnému, čiže vyučovacím cieľom by bolo akurát naučiť sa písať jednoduché algoritmy. Výhodou Turingovho stroja je, že je omnoho menej abstraktný ako bežné programovacie jazyky. Má len jednu inštrukciu a tá je pomerne zrozumiteľná. Dá sa simulovať pomocou papiera a pera, alebo poskladať z Lega, skrátka dá sa veľmi jednoducho mechanicky trasovať. Žiak môže mať problém vytvoriť požadovaný algoritmus, ale nebude mať problém overiť, či daný algoritmus na danom vstupe vbehne správne alebo nesprávne... ak teda daný algoritmus nebude príliš časovo zložitý. Stačilo by vytvoriť pár jednoduchých algoritmov, a potom prejsť na iné učivo. Plus mať nejaké materiály na ďalšiu samostatnú prácu pre prípadných záujemcov.

Pokiaľ ide o učenie sa programovacích jazykov, ja som vždy videl riešenie vo vytváraní user-friendly knižníc. Napríklad keď som učil Pascal, urobil som knižnicu, ktorá rozdelila obrazovku na 20×20 štvorčekov, a mala príkazy "Draw(x,y)", ktorý vyfarbil daný štvorček. (V štvorčekoch sa automaticky vypisovali malé čísla udávajúce, v akom poradí bol štvorček vyfarbený.) S týmto jedným príkazom naučíš žiakov rozoznávať x-ovú súradnicu od y-ovej, keď k tomu pridáš for-cyklus, môžeš vykresliť vodorovnú čiaru, zvislú, šikmú, obvod obdĺžnika, vyplnený obdĺžnik. V porovnaní s inými bežne používanými riešeniami si sa nemusel učiť osobitný "detský programovací jazyk"; okrem volania knižnice a jedného príkazu si mal úplne obyčajný Pascal. Na druhej strane si nemusel písať kód na inicializáciu grafického režimu, čo sa v Pascale písalo pomerne zložito. Potom som ešte pridal príkazy na vstup a výstup, napríklad "ReadNumber(prompt)" zobrazil pop-up okno, načítal string, skonvertoval ho na integer, ak bola chyba, požiadal používateľ o opravu... z pohľadu programátora funkcia vrátila integer a o iné sa nemusel starať. Dali sa teda písať mimoriadne prehľadné krátke programy, ktoré zachytávali podstatu. (Až budem mať na to čas, rád by som niekedy urobil nejaké podobné knižnice aj pre Javu.)

Myslím si, že dnešné problémy s vyučovaním informatiky sú dané tým, že už je veľký rozdiel medzi "nekvalifikovaným programovaním" a písaním algoritmov. Tým prvým označujem kódera, ktorý vezme nejaké preddefinované objekty, nastaví im nejaké vlastnosti a zavolá ich metódy. V podstate je schopný napísať aj program na hranie šachu, ale iba pod podmienkou, že dostane správnu knižnicu, z ktorej zavolá funkciu "ChessProgram::play()". Skrátka 99.9% jeho programu robí knižnica, 0.1% jeho viacmenej lineárny kód, prakticky bez algoritmu. Kedysi to tak nebolo, lebo kedysi takéto knižnice neexistovali. Treba si to uvedomiť.
 
Hodnoť

re:

zs -> basic
ss -> pascal, assembler
vs -> c
....
prax -> jak je libo
 

1 2 >

Prihláste sa

(?)
 


Ďalšie možnosti
Zoznam diskusií

Registrácia
Zabudnuté heslo
Kódex diskutujúceho

Najčítanejšie


  1. Jozef Kmeto: Kotleba : Kto vlastne je jeho volič ? 391
  2. Miroslav Beblavý: Správa týždňa: Putin mal najhorší týždeň tohto roka 346
  3. Miroslav Pollák: Kto je nebezpečnejší, SMER alebo ĽSNS? 202
  4. Vladimír Randa: Dohoda: Mesto Žilina - Trabelssie (kompletný prehľad + mapy) 165
  5. Lórant Kulík: Foto-video: Burza starých gramoplatní v Univerzitnej knižnici TU Košice 97
  6. Elena Antalová: 30% netuší, koho bude voliť? 60
  7. Filip Pastorek: Sociálna poisťovňa pripúšťa existenciu zakázanej detskej práce 48
  8. Jana Venhartová: Od januára sa rozširuje okruh potravín so zníženou DPH 44
  9. Transparency International Slovensko: Vláda pred voľbami točí v štátnych reklamách rekordné peniaze 44
  10. Rudolf Trbušek: Zastavenie starých exekúcií "exekučná amnestia" od 1.1.2020 42

Rebríčky článkov


  1. Daniela Fuchsová: Ako súvisí pocit šťastia, histamínová intolerancia s črevami
  2. Vladimír Hatara: Príbeh, ako chybu človeka napravila sama príroda
  3. Ján Buocik: Čo SMERáci Bratislave zobrali, to jej musíme vrátiť, obyvateľov to však musí stáť menej.
  4. Janka Nalevankova: Keď sa vyberiem na cestu kráčať
  5. Štefan Vidlár: Moji milí vánočňí
  6. František Cudziš: Vede do vienka. IV.
  7. Ľubica Dandášová: Vianoce bez teba
  8. Robert Štepaník: diel 33 - rubrika: 7_up
  9. Štefan Vidlár: Ebonitová tyč
  10. Roman Hutira: Naozaj chcete dať žene pod stromček robotický vysávač?

  1. NAKA zadržala youtuberov Daňa a Vaského
  2. Česká firma zbúra špeciálnym strojom bytovku v Prešove zdarma
  3. Demolačný stroj dorazil na hranicu skôr. Smeruje do Prešova
  4. Expert na panelové konštrukcie: Výbuch plynu by v súčasných bytovkách vyzeral inak
  5. Košickému primátorovi dali policajti fúkať počas zastupiteľstva
  6. Jan Kraus: Nie je chybou slovenčiny, ak jej Čech nerozumie
  7. V Nízkych Tatrách strhla lavína dvoch lyžiarov, jeden zomrel
  8. Pozrite si demolačný špeciál, ktorý bude búrať prešovský panelák
  9. Cyklista zomrel po náraze do pootvorených dverí auta, ktoré cúvalo
  10. Izraelská agentúra zvažuje žalobu za šot Smeru, deti zákon veľmi nerieši

  1. Havran: Blaha, ty zástupca potkanieho kráľovstva, viem, čo by si robil v 50-ych rokoch
  2. Frustrovaní demokrati si urobili z procesu impeachmentu voči Trumpovi volebnú kampaň
  3. Roman Joch: Translidé? Pohlaví jsou jen dvě
  4. Marian Kotleba klamal v priamom prenose
  5. Bývalý policajt: Snažia sa všetko hodiť na Kočnera. Ak sa nezmení vláda, celé sa to zameti
  6. Homo sovieticus stále žije
  7. Fico podal sťažnosť voči obvineniu, prokurátora spája so Sorosom
  8. Exprokurátorka Mišíková: Fico vie zariadiť stíhanie Kisku. Stále má vplyv na polícii
  9. Jonathan Bartley: Bude to veľmi zlá noc pre progresívnu politiku
  10. Kalavská si so Smerom nemala začínať - Komentáre SME

Už ste čítali?