Šta je novo?

Programiranje za APSOLUTNE pocetnike -> MS Small Basic

  • Začetnik teme Začetnik teme jox
  • Datum pokretanja Datum pokretanja

jox

Čuven
Učlanjen(a)
07.01.2003
Poruke
2,105
Poena
680
MS Small Basic

Danas mi je zapalo za oko ovo resenje.
Pored MIT.Scratch-a, koji je idealan za decu u OS, MS Small Basic mi izgleda kao prava stvar sa uvidjenje srednjoskolaca u programiranje (na stranu ostavljam cinjenicu da je stvar potekla iz MSove kuhinje).
Skroz jednostavna sintaxa (naravno i vrlo ogranicena), uz neke primitivne, ali i intuitivne konstrukcije tipa GoTo, stvarno predstavljaju mogucnost da prosecan srednjoskolac lako oseti cari programiranja.
 
Mene je programiranju privuklo upravo to što je uvek bilo nešto novo za otkrivanje i isprobavanje iza ćoška - samo da se ovo savlada, čeka nova tema. Bukvalno kao igre - šta će mi oblivion sa tri misije? Daj bre 92384923492 hours of play! 🙂

Verujem da problem nije u širokom setu mogućnosti, nego metodologiji učenja. Dobar predavač/učitelj može uvek početnike da ograniči na uzak set mogućnosti, da im vremena da se naigraju time, pa postepeno proširuje taj set mogućnosti bez da se menja okruženje - može bez problema da se uključi i ono šta se naučilo na svim prethodnim časovima.
 
Poenta je da kakav god te profesor ucio, u C-u i neces moci u 5 linija koda da napravis program koji ce ti promeniti desktop slikom koju ce dovuci sa Flickr-a na osnovu tvog izbora (npr). To ja vidim kao prednost ovog jezika u ucenju. Dobar/los profesor je sasvim druga (jos btnija) tema...
 
Poenta je da kakav god te profesor ucio, u C-u i neces moci u 5 linija koda da napravis program koji ce ti promeniti desktop slikom koju ce dovuci sa Flickr-a na osnovu tvog izbora (npr).
Mislim da je ovo najveći problem sa kojim se susreću deca koja se interesuju za programiranje.

Pre 10-15 godina, na kompjuteru i nije moglo da se odradi bog zna šta sa te hobi strane jer ni kompjuter nije bio jak niti je bilo interneta pa ljudima nije svašta ni moglo da padne na pamet, tj. amatersko programiranje radi zezanja podrazumevalo je pravljenje šarenih programa koji šetaju neki tekst na ekranu ili slično, a što je bilo dovoljno da nekog mlađeg oduševi i učini ga da oseti kako je dobro kad napraviš svoj program u Bejziku ili Paskalu.

Sad imamo situaciju da po forumima vidimo pitanja dece u stilu, "hoću da napravim plejer koji će da strimuje MP3 sa interneta a pride ima ugrađen editor slika i može da ih kači na internet" (pošto, jelte, svi programi koji to rade postoje odavno, mali su i deluju jednostavno, a i web sajtovi to isto furaju bez problema), a kad se uhvati C-a ili Jave, vidi da će mu za to trebati nedelju dana intenzivnog rada sa takvim nivoom neznanja uz velike šanse da odustane pre kraja.

Nije ni čudo što je interesovanje za programiranje sve manje...
 
Poenta je da kakav god te profesor ucio, u C-u i neces moci u 5 linija koda da napravis program koji ce ti promeniti desktop slikom koju ce dovuci sa Flickr-a na osnovu tvog izbora (npr)...


Ne vidim zašto je onda punch line bio "za apsolutne početnike"? Oni neka završe u 5 linija koda, a profiji neka se muče? 🙂
 
Pa ako mogu da završim task za 2 minuta i 5 linija koda, to je interesantnije i meni i mom poslodavcu koji me plaća po satu 😉 Šta će ti SpringSource, JBOSS, Hibernate... eto ga MS Mali Osnovni, tri klika, pet linija, mi odosmo u knajpe na pivo.

Kupiš bajo C64, pa em imaš ograničeni bejzik, em vidiš rezultate odmah -> POKE 1024,1 i eto ti ga "A" u gornjem levom ćošku ekrana. 😀


To da li će učiti osnove programiranja crtajući po ekranu ili sabirajući brojeve mislim da ipak spada u ono šta sam rekao o metodologiji učenja. Izabrati jasne, koncizne i pre svega početniku zanimljive lekcije (koje odmah daju vidljivog rezultata) pre odvaja dobrog predavača od lošeg, nego pogodniji jezik od nepogodnijeg.
 
Silveru, pominjati Small Basic u context-u profesionalnog alata je krajnje neozbiljno.
Zasto mislis da je Small Basic namenjen TEBI da zavrsis task koji ti je dao poslodavac?

U prvom postu sam naglasio da je ovo namenjeno verovatno najvise srednjoskolcima, i da im je ucenje osnova programiranja ucinjeno zanimljivijim nego sto je to bilo do sada.
Stvarno smatras da ces nekome lakse objasniti osnovne strkuture programskih jezika uz pomocu POKE-a?

Ne mislim da treba bezati od C-a, Cpp-a, JAVAe..., a pogotovo respektujem fakultete gde se krece od funkcionalnog programiranja (MIT -> LISP&Scheme), medjutim, to ume i na akademskom nivou da bude komplikovano.
A verujem da se Small Basicom dobio jezik koji moze da svari veci procenat nasih srednjoskolaca, uz naravno kljucnu ulogu profesora.
 
Nemam ja tu šta da mislim, meni je namenjen svaki alat koji može da mi završi posao dovoljno brzo i dovoljno kvalitetno. Nisam gadljiv ni na šta šta bi mi uštedelo vreme, koje mi je najskuplji resurs, niti gledam da pakovanje mora da sadrži "Pro" napisan helvetikom. Ako mi stvar brzo i lako završava vbscript ili bash script, koristiću ga; ako mi stvar završava tek J2EE, koristiću J2EE.
A ovaj pasus prosto zato što si izreklamirao ovaj mali bejzik kao nešto vrlo ograničeno, a tako moćno, da završava posao kraće, brže i bolje, nego "klasični upotrebni" jezici (odnosno ispada da je njima to nemoguće završiti u nekom normalnom ljudskom roku).

Osnove programskih jezika neću nikome obrašnjavati preko pokea. Ali neću ni preko vrlo ograničenog jezika, koji ne zadovoljava kriterijume sasvim prosečnog modernog programskog jezika, a koji ionako nema nikakve primene ili upotrebe u "stvarnom svetu". E super dečko što si naučio da prošetaš kornjaču po ekranu u ovom jeziku (i tako potrošio svoju srednju školu), a sad zaboravi sve šta si naučio. Ako si hteo da se baviš programiranjem, do sada je trebalo da budeš koliko-toliko tečan programer sa osnovama, fakultet je suviše kasna tačka za početak. Stvari su toliko narasle, da zamajavanje usputnim stvarima jednostavno oduzima previše dragocenog vremena - za srednjoškolce, konkretno. Ako je ovakav alat za decu, da ih zagolica, onda da. Verujem da klinci i srednjoškolci imaju malo drugačiji fokus, iq, kapacitet učenja i ostalo.

Poke je trebalo da na najbanalniji mogući način podseti kako je malo potrebno od vizualnog fidbeka da čovek kaže "hej, ovo sam ja uradio" i kako je šetanje kornjače po ekranu ne predstavlja stvar koja je do ovog momenta tražila poseban jezik. Ne mora da bude C++ ili neki top notch jezik ili tehnologije, važno da je neki "živi" jezik u pitanju, koji može da nastavi da se koristi i nakon tih početnih lekcija, da se to znanje može primeniti dalje, jer se znanje gradi. Upravo ta kontinuiranost je karta na koju igra MS izbacivanjem ovog jezika, baj d vej.
No, MS na stranu, šta misliš šta bi se desilo sa tvojim prosečnim srednjoškolcem, koji je nekako i uspeo, kako ti kažeš, da "svari" nekako taj pojednostavljeni jezik, i onda proguta crvenu pilulu, izvadi se iz matrixa i shvati da programiranje u stvarnom svetu izgleda totalno drugačije?
 
Pazi, Small Basic je vise nego dovoljan jezik da uz njega neko nauci osnove proceduralnog programiranja, a potom i osnove OOPa. I to bez ikakvih fundamentalnih ogranicenja.
Razumem da je korisnije ucenika baciti u vatru sa C-om ili C++-om, koje ce moci kasnije i koristiti u praxi, ali prosecan srednjoskolac u Srbiji ne moze ni for petlju da napise posle srednje skole.
Ono sto je moja poenta je da je srednjoskolcu mnogo lakse objasniti osnovne konstrukcije u programskim jezicima, kao i osnove OOPa preko nekog uprostenog jezika tipa Small Basic-a.
Sad imas situaciju da srednjoskolac u srednjoj skoli ne nauci ni for petlju da napise, tako da na fakultet krece maltene bez ikakvog predznanja, i svakako bi mu vise znacilo da je osnove (u kom god jeziku) savladao ranije.
Naravno, ljudi koje ovo zanima, znaju pre fakulteta daleko vise od ovoga, ali njima ni nije namenjen jezik ovakvog tipa.
 
Jedan moj kolega je na pitanje "zasto se bavis programiranjem" odgovorio: "Mogao sam da budem inzenjer hidrogradnje, ali da li znas kolike su sanse da moja hidroelektrana/brana bude ikada sagradjena? Dok programiram ja imam sve pod mojom kontrolom i tacno znam sta hocu i kako ce to da radi. I znam da ce da radi kako ja hocu."

Danas poznavanje programskog jezika nije nista. Potrebno je da poznajete i razne tehnologije, biblioteke, alate, principe programiranja, kao i nacine da ih efikasno iskoristite. Veoma je korisno znati da povezivanje module napravljenih u razlicitim programskim jezicima. Morate razviti i odgovarajuci nivo apstraktnog razmisljanja kao i apstraktno opisivanje problema (zadatka). Sa popularizacijom multi-core procesora, potrebno je znati pisati aplikacije koje umeju da efikasno iskoriste vise jezgara.

MS Basic treba zaobici... Ako neko pocinje trebalo bi da krene od Jave. Ono sto se meni svidelo u Javi, je biblioteka klasa koja dolazi uz Javu. Kada resavate neki problem, postoji mnogo nacina da se resi, ali samo je jedan pravi i efikasan. Dizajn Java klasa je bas takav neke stvari mozete da resite samo na jedan nacin i to najbolji moguci.

Kada se savlada C sintaksa i principi programiranja onda moze veoma lako da se predje na C++, C#, lako ce moci da se cita bilo koji programski code.
 
Ako neko pocinje trebalo bi da krene od Jave.
Ne razumem te?
Prosecan srednjoskolac ne moze da se snadje ni sa pascal-om, koji ima jednostavniju sintax-u, a ne sa Javom.
Ovaj thread je o programiranju za najsire mase. Za srednjoskolce koji ne zele da uce programiranje i koje ono ne zanima, ali to moraju, jer na njihovu nesrecu imaju taj predmet :d

Kada se savlada C sintaksa i principi programiranja onda moze veoma lako da se predje na C++, C#, lako ce moci da se cita bilo koji programski code.
Amen to that 🙂
 
U cemu je problem? Kakva je razlika izmedju paskala i Jave? Osim u sintaksi sve ostalo je manje vise isto... imaju iste strukture toka (for, while, if, ...), blokove ({} vs begin-end), procedure i funkcije, ... Prednost Jave je u tome sto ce od pocetka poceti objektno da razmislja.
 
Ne razumem te?
Prosecan srednjoskolac ne moze da se snadje ni sa pascal-om, koji ima jednostavniju sintax-u, a ne sa Javom.
Ovaj thread je o programiranju za najsire mase. Za srednjoskolce koji ne zele da uce programiranje i koje ono ne zanima, ali to moraju, jer na njihovu nesrecu imaju taj predmet :d


[ćale] - "Kako je bilo u školi, sine?"

[sinčina] - "Kao i obično - nacrtao sam piramidu u bejziku, a onda smo za vreme odmora Milanče i ja otkinuli letvu sa klupe u dvorištu i odvalili hemičarku od batina. Došla je žandarmerija, malo smo pucali, a onda smo Milanče i ja otišli do keja da dokrajčimo votku. Eh da, želeo bih da budem programer..."


Ubi me, ali "programiranje" i "najšire mase" ne bih nikada stavio u istu rečenicu. Jednno je predmet na kojem uče osnove računara, ali programiranje ne spada u osnove. Kao kad bih sad uveo hirurgiju kao obavezan predmet za najšire mase i podelio im (umesto ovakvog bejzika) plastične noževe iz avionskog lunch paketa i plišane mede sa već ugrađenim "rezom" preko grudi, da razumeju osnove. A onim maturantima kojima se to dopadne moram da objasnim da će od sledeće godine na medicini početi seciraju u gradskoj mrtvačnici.

Kao što si i sam na početku posta rekao, neke stvari nisu za najšire mase.
 
U cemu je problem? Kakva je razlika izmedju paskala i Jave? Osim u sintaksi sve ostalo je manje vise isto... imaju iste strukture toka (for, while, if, ...), blokove ({} vs begin-end), procedure i funkcije, ... Prednost Jave je u tome sto ce od pocetka poceti objektno da razmislja.

Sorry kolega, sa javom bih išao da upoređujem objektni pascal (na njegovu štetu), pošto je veza između objektnog pascala i pascala ista kao između jave i c-a: pozajmljena sintaksa za osnovne strukture.
 
Kakva je razlika izmedju paskala i Jave?
Fundamentalna 😀

@Silver
Totalno se slazem da trenutno nema velike koristi uciti najsiru masu programiranju.
Sa druge strane, isto tako pre 20 godina ni sami racunari nisu bili namenjeni najsiroj masi.
Ko zna sta nas ceka za 20g...
 
@Silver
Totalno se slazem da trenutno nema velike koristi uciti najsiru masu programiranju.
Sa druge strane, isto tako pre 20 godina ni sami racunari nisu bili namenjeni najsiroj masi.
Ko zna sta nas ceka za 20g...

True, ali od te našire mase su 95% consumeri, a 5% developeri (ako i toliko), u tome je poenta.
To što sam zbog napretka tehnologije dobio HDTV kući, ne znači da moram da znam tehničku specifikaciju kako se pakuje signal ili koji image procesor mogu da ukombinujem sa ostalim komponentama da bih imao bolje skaliranje na 1080p.
 
Sa druge strane, u poslednje vreme vidjam sve vise primera ljudi koji nisu iz IT struke, ali im programiranje u nekom obliku pomaze u poslu.
npr. koleginica koja se bavi energetikom, pise koje kakve simulacije u Javi u sklopu svojih istrazivanja.
Broj ovakvih 'sekundarnih developera' je sigurno u porastu...
Kako njih obuciti?
 
Treningom. Firma šalje "pogođene" zaposlene na konkretan trening, kada se identifikuje potreba. Happens everywhere - imam ih i ja u firmi; jednu grupu slali na obuku za VBA, drugu na Spring, treću na LDAP, četvrtu...
S tim da tako obučeni ljudi i dalje koriste takve stvari kao ispomoć, dok full scale developeri (pogotovo arhitekte) moraju da imaju i full scale programersko obrazovanje.
 
Poslednja izmena:
[ćale] - "Kako je bilo u školi, sine?"

[sinčina] - "Kao i obično - nacrtao sam piramidu u bejziku, a onda smo za vreme odmora Milanče i ja otkinuli letvu sa klupe u dvorištu i odvalili hemičarku od batina. Došla je žandarmerija, malo smo pucali, a onda smo Milanče i ja otišli do keja da dokrajčimo votku. Eh da, želeo bih da budem programer..."


Ubi me, ali "programiranje" i "najšire mase" ne bih nikada stavio u istu rečenicu. Jednno je predmet na kojem uče osnove računara, ali programiranje ne spada u osnove. Kao kad bih sad uveo hirurgiju kao obavezan predmet za najšire mase i podelio im (umesto ovakvog bejzika) plastične noževe iz avionskog lunch paketa i plišane mede sa već ugrađenim "rezom" preko grudi, da razumeju osnove. A onim maturantima kojima se to dopadne moram da objasnim da će od sledeće godine na medicini početi seciraju u gradskoj mrtvačnici.

Kao što si i sam na početku posta rekao, neke stvari nisu za najšire mase.
Nazalost, ovo je sustina cele price 😉

Prvo, klinci su danas okupirani drugim stvarima i ne mozete na njih gledati kroz svoje "detinjstvo" prosto jer su se prilike promenile :S:

Drugo, programiranje prosto nije za siroke narodne mase, mada neka vrsta programiranja jeste za sire narodne mase, ali kao sto ste i sami rekli to nije posledica necijeg interesovanja, nego potrebe posla te kao "mora se" ne moze da se podvede pod ovu pricu.

Trece i najbitnije je: a ko ce to decu da nauci to programiranje??? Zaboravljate da je obrazovni kadar jako tanak sto se IT-a generalno tice, a kamoli programiranja (cast izuzecima). U velikom broju slucajeva bi pre nastavnik/profesor mogao nesto da nauci od svojih ucenika nego sto moze da im prenese pri cemu je vecina ucenika prosto nezainteresovana za bilo sta o cemu ovaj lupeta 😉
U vecini slucajeva je to izgubljeno vreme 🙁

Ako ce vec neko da terorise decu IT pricama, bolje onda da ih nauce slepom kucanju i pokazu net, nauce kako da posalju mail, navuku na Crysis i slicno jer neverovatno ima ih dosta koji ni elementarne stvari ne umeju, pa ko se napali neka pliva dalje sam kao sto su se klinci i do sada snalazili, a za fax ***a, morace da nauce kineski preko noci 😀
 
... neka vrsta programiranja jeste za sire narodne mase, ali kao sto ste i sami rekli to nije posledica necijeg interesovanja, nego potrebe posla te kao "mora se" ne moze da se podvede pod ovu pricu.
Slazem se, a upravo to postaje sve veci problem.

Treninzi koje je Silver pominuo su ok, ali samo dok % zaposlenih koje treba slati na neki kurs ne predje kriticnu cifru.
U situaciji kad (npr.) >50% ljudi iz neke grane industrije treba poslati na kurs "osnove primenjenog programiranja", to prestaje da bude prihvatljivo za oblik kurseva&treninga, i za sobom vuce potrebu da se program skolstva adaptira na nove zahteve industrije.
 
Jox, daj mi primer jedne jedine firme gde treba >50% zaposlenih slati na kurs programiranja?

Tako nešto ne postoji. U praksi. Ako postoji, ta firma je objavila bankrot. Ili upravo treba to da uradi. A neko iz human resouces odeljenja je već davno otpušten.

Sve se bazira na zadatku iliti projektu. Ukoliko se radi o privremenoj potrebi (jedan projekat), može da se unajme frilenseri ili da se autsoursuje projekat. Ukoliko je nešto dugoročnije, pravi se procena šta je isplativije i bolje; da li slati određen broj zaposlenih na dodatnu obuku ili zaposliti određen broj novih programera koji zadovoljavaju traženi profil. Ova druga kombinacija je verovatnija, jer će ti ljudi dobiti od starih zaposlenih know how, a programerski posao će završiti brže i kvalitetnije, nego neko ko je dodatno obučen. U ovom "dodatno" je suština - to su dopune znanja iz vrlo specifičnih i konkretnih oblasti (za profesionalce) ili samo uvodi u pojedine oblasti (za početnike). Niko normalan neće poslati gomilu n00bova na trening i očekivati da će ta struktura zaposlenih izneti na svojim leđima sve programerske potrebe firme. Ako programerske potrebe firme i nisu toliko komplikovane i velike, par pravih programera su bolja investicija od masovnog kursa. Tako da ne razumem o kakvim celim granama industrije pričaš (koji bi se proporodili ovakvim nekim redukovanim bejzikom)?
 
Naravno da sada ne postoji takva firma 🙂
Moja pretpostavka je da ce u buducnosti IT biti sve prisutniji u svim granama industrije, i da ce to kao posledicu imati mnogo vise ITa u osnovnom obrazovanju
 
Ali ne programiranja!!! To sto ce IT vise biti prisutniji znaci da ce biti sve vise end-usera a ne (mnogo) vise programera.
 
Pascal.

Basic nikako, to zatupljuje ...

Neko je pomenuo javu? Ajoj ljudi, ocete da ubogaljite decu u startu ???

Ako ce se uciti programiranje, prvo ide linearno, pa strukturno, pa onda
jednom, jednog dana objektno, upoznati se sa deklarativnim pa dalji
razvojni put.

Saglasan da je potrebno za decu napraviti suzeno razvojno okruzenje
fokus na samu sintaksu i koncepte programiranja, naredbe i slicno.

I paskal je malo mach sa dve ostrice. Po meni je potrebno u paskal
ubaciti preciznije rukovanje pointerima i memorijom, i eventualno
preraditi onaj string tip, da bude malo drugaciji, vise c-oliki, mozda.

Napraviti razumnu biblioteku osnovnih funkcija (sto za crtanje po ekranu,
sto za ispis, sa jednostavnim nazivima)

I eto alata za klince
+ naravno
jednostavan debugger, koji i nije debugger nego alat da vide kako
se program ponasha "usporeno" i sta se zapravo desava.
 
Po meni je potrebno u paskal ubaciti preciznije rukovanje pointerima i memorijom, i eventualno preraditi onaj string tip, da bude malo drugaciji, vise c-oliki, mozda.

Uradis to i na pola puta si da od Pascal-a napravis C 🙂

Zezam se, ali 100% se slazem da je Pascal odlican za prve korake u programiranju...
 
C# !
Ukoliko neko hoće uz par linija koda da napiše aplikaciju (pisanje-čitanje iz baze) neka radi WinForms. Uz pomoć binding-a bez ijedne linije koda (ili vrlo malo) može da napravi upotrebljivu aplikaciju. Ko bude želeo da programira, a ne samo da crta, naučiće i sintaksu jezika pa će moći da napiše neku svoju logiku za WinForms, a stečeno znanje da upotrebi i na asp.net
Posle ide učenje design pattern-a, a posle toga sky is the limit.

Po meni je učenje pokazivača gubljenje vremena koje se može utrošiti na pametnije stvari tipa izučavanje nekog framework-a, arhitekturi softvera i sl. Koliki je procenat ljudi koji se bave programiranjem, a koriste unmanaged kod? Koliki je procenat ljudi koji su odmah posle završenog fakulteta/više škole, a korite Javu/C#/etc... ne znaju šta je DAL, proxy...?
 
Poslednja izmena:
Ako ne naucis pointere onda neznas da programiras. A pointere mozes da naucis za 15 min.
Sa C# i .net-om bez potezanja u unmamanged code mozes da napravis kalkulator i neki UI za bazu podataka, malo web servisi i to je sve.

Pravo znanje je znati vise programskih jezika i umeti da pojedine delove programa napisane u razlicitim jezicima spojis u funkcionalnu celinu.
 
Ako ne naucis pointere onda neznas da programiras. A pointere mozes da naucis za 15 min.
Sa C# i .net-om bez potezanja u unmamanged code mozes da napravis kalkulator i neki UI za bazu podataka, malo web servisi i to je sve.

Pravo znanje je znati vise programskih jezika i umeti da pojedine delove programa napisane u razlicitim jezicima spojis u funkcionalnu celinu.

Reče čovek i ostade živ :d

Koji to ERP sistem ne može da se napiše u C#? Gde je tu upotreba unmanaged koda?
Jel radiš kao programer ili samo nagađaš?

A da se pointeri i efikasno korišćenje memorije mogu naučiti za 15 minuta... da, kako da ne 🙂
A kad taj isti početnik treba da napiše destruktor za malo složeniju klasu, eto curenja memorije...

Pravo znanje je znati vise programskih jezika i umeti da pojedine delove programa napisane u razlicitim jezicima spojis u funkcionalnu celinu.

Tek ovde ništa ne razumem
 
Nazad
Vrh Dno