DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   Sva početnička pitanja (http://www.devprotalk.com/forumdisplay.php?f=40)
-   -   Koji jezik/program za učenje programiranja? (http://www.devprotalk.com/showthread.php?t=3150)

japan 29. 06. 2007. 22:26

pa dobro, i taj pristup je ok. mada ja i dalje mislim da principi mogu da se nauce i uceci neki drugi jezik koji ima prakticnu i komercijalnu primenu.

jablan 30. 06. 2007. 09:53

Citat:

Originalno napisao zira (Napišite 38139)
@japan: cika Virt napravio Paskal takvim kakav je upravo da bi bio pogodan kao jezik na kome ce se ljudi uciti programiranju.

Jes. S tim što je čika Virt posle toga napravio još par naprednijih jezika takođe pogodnih za učenje (modularna Modula-2 i objektni Oberon). Poenta je što standardni Paskal nit' je modularan (ne postoji mogućnost korišćenja funkcija i procedura iz drugih fajlova, biblioteka, modula), nit je objektan (to je dodato u komercijalnom alatu TurboPascal nestandardnim proširenjem jezika).

Dakle, ako se već preporučuje nešto iz Virtove kuhinje, to bi bila ili Modula (2 ili 3) ili Oberon. Ne znam da li je čika smislio nešto odonda, a ne bi me čudilo...

Pedja 30. 06. 2007. 09:55

Citat:

Originalno napisao jablan (Napišite 38108)
Koji?

Kad učiš novi (svetski) jezik, da li prvo učiš imenice, pa onda glagole, ili možda prvo veznike jer su najkraći?

Primer ti bas i nije odgovarajuci ali moze da posluzi i to kao primer koji objasnjava koliko povrsno prilazis temi, a sebi dozvoljavas "jak" recnik.

Kljuc je u onom novi. Kada ucis novi jezik to znaci da bar jedan vec znas, a sta je to nego postepeno ucenje. Kada si ucio svoj prvi jezik, maternji, nisi li to radio postupno, paralelno sa ucenjem mnogo cega drugog sto ti je pomagalo da savladas i jezik? Nisi li tako savladao sva univerzalna pravila jezika kao opsteg principa i tako sebi omogucio da druge (nove) jezike ucis mnogo lakse?

Isto je i sa programiranjem. Programiranje nije programski jezik. To je pre nacin razmisljanja. Programski jezik je samo sredstvo kako se racunaru saopstava nacin za resenje odredjenog problema.

Da bi bilo koga naucio da programira u bilo kom programskom jeziku, moras ga prvo nauciti da programira, da razmislja kako treba. To znanje se, kao i sve ostalo uci postupno, pocevsi od najprostijeg pa kako se sta savlada, ide se na naprednije tehnike.

Uciti nekoga programiranju i poceti odmah od objekata, isto je kao kada bi osnovci umesto fizike ucili atomsku fiziku, ili kada bi matematiku pocinjali sa jednacinama sa vise nepoznatih, umesto skupova i prostih racunskih operacija.

Davno je receno, nije znanje znanje imati, vec je znanje znanje dati. A na zalost, i mnogi veliki strucnjaci su totalni dunsteri po pitanju prenosenja znanja.

Da bi nekome preneo znanje, moras biti u stanju da vidis koji je njegov trenutni nivo, kako razmislja, da se spustis ne njegov nivo, da umes da ga vodis da napreduje i kada savlada jednu stvar da ga usmeravas na komplikovaniju, redosledom koji mu to olaksava i omogucava da brze i sa manje muke savlada nova znanja.

Jednostavno, morate umeti da razumete da to sto vi nesto znate i to sto je vama lako, nekome drugome nije, i da morate da nadjete nacin kako da mu omogucite da to sto ne razume, shvati.

Ko nema osecaj za to, treba da batali i da obucava i da preporucuje nekome kako da nesto nauci.

Objektno programiranje ne moze da bude polazna osnova. To je neprirodno, jer se radi o visokom stepenu apstrakcije, koji neko, ko nije upucen u programiranje ne moze lako da razume.

Proglasiti Pascal, C i slicne jezike za mrtve, to je na istom nivou rezonovanja kao sto Gojko Vujovic proglasava srpski jezik mrtvim i nepotrebnim i da ga treba zameniti engleskim. Ne da nisu mrtvi nego se visoko kotiraju. Covek treba da nauci da skine amove i da gleda svet oko sebe a ne da sve ocenjuje samo onim sto vidi na svom radnom stolu.

U duskusiji su predlozeni cak i neki jezici koji su sve samo ne laki za ucenje, ili jos gore, dobri su, ali nikad anisu postali popularni, tako da nitiima mnog literature, niti alata, niti isksutva sa njima. Opet se sve vrti oko jednog te istog: prvo treba nauciti programiranje, a programski jezici kojima ce se neko sluziti su uslovljeni pre svega vrstom zadataka koje taj neko treba da resi. Svakako je bolje da neko uci jezik koji ce i kasnije moci da koristi, a ne da se vezuje za jezik koji postoji samo radi teorije.

Zanimlivo mi je da vidim da i posle toliko godina postoje tabori izmedju onih koji naginju Pascal-u i onih koji naginju C-u. Neverovatno mi je da ljudi koji se bave ovim poslom, kojima je umece rezonovanja najvaznija odlika, padaju na takvim stvarima. Posebno me cudi da C tabor, koji sam sebe proglasava superiornijim od Paskaldzija, u stvari mnogo vise podlozan tome. Jel to neka patoloska mrznja ili sta? Kada neko ode dotle da Pascal proglasi mrtvim i neupotrebljivim jezikom (a da se razumemo Pascal nije samo ona prva Virtova varijanta, nego sve do najnovije verziej Delphi-ja), mene to zaista zabrine, jer mi je strano da neko moze da bude do te mere neobavesten.

Petar Marić 30. 06. 2007. 11:27

Da mi je sad ova pamet...
 
Da sad učim programiranje najverovatnije bih krenuo sa Python-om, jer je:
- besplatan,
- open-source (mogu da vidim kako eksperti pišu kod),
- ima kvalitetnu dokumentaciju (mada je MSDN library IMHO zakon),
- dobre a besplatne knjige za učenje ako ste već imali iskustva sa programiranjem (ovakav princip učenja mi se jako dopada, šteta što nije češći), ili ako niste,
- ne morate da prevodite program - samo ga ponovo pokrenete,
- ne morate uopšte da pišete program u fajl - Python ima konzolu u koju interaktivno možete unositi komande (odlično za eksperimentisanje),
- jasna i jednostavna sintaksna pravila,
- uvek postoji tačno jedan (preporučeni) način da uradite nešto,
- automatsko upravljanje memorijom,
- podrška za više paradigmi (imperativna, OO, funkcionalna, aspektna),
- prihvaćenost u raznim granama industrije (2 omiljena primera su mi Google i NASA),
- stip pisanja koda čiji je osnovni cilj da bude univerzalno uniforman i razumljiv, tako da možete da razumete skoro svaki kod ikada napisan - nezavistno od autora, projekta i korišćene paradigme (do sada sam čitao kod od 50+ različitih autora i prethodna tvrdnja još pije vodu).

PS: Da, Python je moj omiljeni jezik/platforma jer mi dozvoljava da sednem i odmah da radim. A smatram da je od svih jezika u kojima sam do sada programirao (Pascal, PHP, C/C++, ASM, Bash, VHDL, Prolog, Matlab, Java, Python, C#, JavaScript) najbolji izbor za početnika upravo zbog gore navedenog. Ali opet, to je samo moje mišljenje ;)

srbox 30. 06. 2007. 12:29

Programiranje?
 
Morao sam da se nadovežem na Petra.

Ljubimac mi je definitivno Python, ali ne bi ga preporučio za početak, jer će se čoveku koji počne od zmije sve ostalo ogaditi. Mislim prelazak sa toga na C ili (ne dao bog) asembler... Break my legs, It'll hurt less.

Moja preporuka - Java + Thinking in Java. Ne volim je, ali osnovni razlozi su:
- oba su besplatna, ako imas osnove (komp i bilo koji OS), spreman si
- Java je dovela osnove objektnog programiranja do čistote. Svi osnovni mehanizmi su tu, lepo i čisto implementirani
- ako se koriste okruženja tipa Eclipse i slično, ona će naterati početnika da se pridržava coding standarda, a ne da brka notacije i gubi se kako da imenuje klase, metode i šta god
- JavaDoc - lako dostupna dokumentacija jeste presudna, a Sun je to (opet, po meni) odlično odradio
- Thinking in Java - knjiga je puna primera. Neće te naučiti kako da zarađuješ pare, ali prva poglavlja sam jedom prilikom uporedio sa fakultetskim gradivom i odlično prelaze sve što nam i okoreli teoretičari pričaju.

U Javi bi ozbiljno trebalo zaobići jedino instanciranje anonimnih objekata, ugnježdene klase i sličnih stvarčica (skontaćeš kada dođeš do toga, tvoje Spider-čulo počne da treperi). Kao što je C++ zabriljao za override-ovanjem operatora, tako su se oni pogubili sa ovim. Lepo je da jezik ima cake koje te ubrzavaju i deluju fancy, ali na kraju, sve te stavari samo škode disciplini programiranja i zbunjuju i tebe i druge.

Zamerke za ostalo bi bile:
- HTML - to nije programski jezik.
- Pascal - jeste nekad bio za učenje, ali zastareo je. Pogotovo zato što se više ne može naći neki standardizovani, a sa Delphi-jem u komi i Borlandom koji se bori za život, zaista je izgubio na značaju.
- C C++ - posle Jave, doći će prirodno. Naravno da će biti malo gubljenja, ali Java je dobra da nauči nekim standardima i ne pruža ti puno prostora za greške, a to početnicima treba k'o hleb (copyright by Petar).
- Python - kad se umoriš od Jave i rešiš da vidiš kako je sa one strane duge, pređeš na ovo i nikad ne poželiš da se vratiš.
- asm - ako dođeš do ovoga, preskoči stranputicu i odamah piši programe iz HEX editora. Pravi programeri se ne zamajavaju tim stvarima visokog nivoa.

Ruby i PHP zaista neću komentarisati, pošto nemam dovoljno iskustva da konkretno argumentujem, ali rekao bi da nisu pravi put.

Dopalo mi se da mi prvi post bude u temi bez kraja i početka - mogu da se pravim pametan do mile volje, a da u suštini ne kažem ništa novo.

Pozdrav svima i uzdravlje ljudi!

Ilija Studen 30. 06. 2007. 12:38

Citat:

Originalno napisao srbox (Napišite 38162)
Ljubimac mi je definitivno Python, ali ne bi ga preporučio za početak, jer će se čoveku koji počne od zmije sve ostalo ogaditi. Mislim prelazak sa toga na C ili (ne dao bog) asembler... Break my legs, It'll hurt less.

Nemoj jesti ćevape kod Miće!!! Posle toga će ti svi ćevapi u gradu biti sranje ;)

Btw, da ne dođe do zabune - meni Python nije primarna platforma (trenutno najviše radim PHP i JavaScript), ali smatram da je odličan jezik za početak jer je aktuelan, odlično podržan sa jakom zajednicom i gomilom projekata u koje čovek može da se uključi... I pre svega - ne trudi se da te ukalupi kao neke platforme.

Eniac 30. 06. 2007. 12:59

^ono sto po meni malo zbunjuje kod jave jesu input/output streamovi, gde ti da bi uneo nesto sa tastature treba da se prilicno nakucas, dok u pascalu sevnes samo read :) i to je to... medjutim to se kasnije skoro svuda koristi tako da je bolje da se na pocetku navikne

bNasty 30. 06. 2007. 16:06

Java? To josh postoji van enterprajza? Verovatno najbledji jezik kog sam ikada video, nit' smrdi nit' mirishe, bez identiteta, bez jasne ideje shta dalje.

Python je odlichna platforma. Ruby sve samo ne to (*ebesh jezik gde istu stvar mogu da kazhem na bezbroj nachina. O kvalitetu VM-a i sam autor ima jako loshe mishljenje. Jedan od nekada zagrizhenih Ruby evandjelista, kog lichno znam, je upravo zbog toga napustio Ruby, i sad je srecan sa Lua-om i Haskell-om :) )

Na kraju, i bez poznavanja C/C++a mozhe se biti programer. Ali samo toliko, sve dok vam je hardver apstrahovan raznim VM-ovima :)

jablan 30. 06. 2007. 19:31

Citat:

Originalno napisao Pedja (Napišite 38151)
Uciti nekoga programiranju i poceti odmah od objekata, isto je kao kada bi osnovci umesto fizike ucili atomsku fiziku

Govori u svoje ime... To što smo ti i ja prvo savladali pascal a tek godinama kasnije naučili šta su klase ne znači da je to jedini i prirodan put.

degojs 30. 06. 2007. 20:18

Citat:

Originalno napisao Petar
Da sad učim programiranje najverovatnije bih krenuo sa Python-om

Hmm.. jesi li čuo šta će da se desi sa Pythonom u verziji 3.0?

http://www.novetehnologije.com/ShowN...us-Update.aspx

Citat:

Originalno napisao Ilija
ali smatram da je odličan jezik za početak jer je aktuelan

Aktuelan? Hehe.. vidi link gore :)


Vreme je GMT +2. Trenutno vreme je 04:48.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.