Pereiti prie turinio

PBit

Nariai
  • Pranešimai

    37
  • Užsiregistravo

  • Lankėsi

  • Atsiliepimai

    0%

PBit Pranešimai

  1. Pascal.

    Visiškai žaliam žmogui, kuris neturi jokio supratimo, Pascal yra paprastesnė ir reikalauja mažiau pasiruošimo, kad sugebėtum kažką padaryti. Kaip pvz:

    program suma;
    var a, b, c;
    begin
    readln(a);
    readln(b);
    c:= a + b;
    writeln('Suma yra ',c);
    end.

     

     

    Ekvivalentas C:

    #include <stdio.h> 
    main() { 
    int a,b,c; 
    printf("Ivesk a ir b"); 
    scanf("%d%d", &a, &b); 
    c=a+b;
    printf("a+b=%d",c); 
    getch(); 
    }

    Pascal aišku kurioj vietoj yra kintamieji, kur jie priskiriami ir elementarius veiksmus galima suprasti iškarto. C, žaliam žmogui - kas yra include? stdio.h ? scanf()? Pointeriai?? printf formatas??Mano nuomone Pascal nereikia nuvertinti, paprastiems, mokyklos uždaviniams man tai atrodo super paprasta ir naudinga kalba. Mokytis C vien todėl, kad vėliau reikės programuot C kažin ar suveiks. Geriau perkąsti Pascal, poto pasiimti C, daug kas bus jau pažįstama, aišku, ir galų gale poto pasiimt Java(CS studijuojant reikės visų šitų kalbų ir dar krūvos kitų).

  2. Mažiausiai pasiruošimo reikalauja - JavaScript. Interaktyvią konsolę turi visuose moderniuose browseriuose ctrl+shift+i tada Console, vsio. Jei nori įsitikint ar ten įlidai parašyk:

    new Date()

    Jei išspjovė dabartinę datą(mano atveju: Wed Jan 16 2013 23:04:32 GMT+0200 (FLE Standard Time)) - ten. Pirmąjai kalbai visi rekomenduos pagal savo skonį, tas pats kaip ir rinktis automobilį. Vieni pasiūlys C, kiti Pascal, kiti Python, PHP, Java. Visos jos su savais pliusais, savais minusais, ir tu gyvenime kogero naudosi bent dvi kalbas ar kalbos variantus(JavaScript, Coffeescript), todėl griebk bet kurią, susirask gerą knygą ar tutorialų seriją ir pirmyn.

    Atsiminti reikia vieną dalyką - trumpesnio kelio nėra. Jei atrodo, kad kažkas yra svarbu, arba knygoje/internete taip sako, tai kogero yra svarbu, ir tai pramesdamas vistiek kažkada grįši ir turėsi tai suprasti.

    Pvz, jei mokantis C nerūpi kas yra pointeriai, nes galva neišneša - kažkada reikės su tuo susitaikyti ir tai suprasti. Jei objektinis programavimas nelimpa nei vienoje kalboje - reikia susitaikyti ir bent suprasti kas tai ir kodėl tai naudinga. Naivu tikėtis viską suprast nuo pradžių kaip ir bet kuriame kitame moksle, todėl reikia įdėti valandas praktikos su elementariais uždaviniais/tikslais. Elementarūs uždaviniai visose kalbose plius minus paprasti aritmetiniai. Pvz: faktorialas, skaičių suma, kėlimas laipsniu(iteratyviai, rekursiškai), kelių sąlygų sudarymas, funkcijų aprašymas, failų nuskaitymas. Loginiam mąstymui tinka visai susirasti kokią Pascal knygą(pvz Grigo rods) ir pažaisti.

    Pradedant programuoti, reikia vienu metu ir formuoti mąstymą apie problemą ir mokytis kalbos ir aplinkos įpatumų, todėl tai turi vykti lėtai ir tikrai nėra skirtumo kokia kalba. Vis dėl to trumpai trumpai galiu pasakyti apie populiaresnes tiek:

    PHP - ne tik serverinė kalba. Įsirašius PHP, gali išsikviesti PHP interpretatorių komandinėje eilutėje labai sėkmingai, taipogi leisti skriptus. Praeityje tai man padėjo susitvarkyti muzikos kolekciją kai buvau išprusęs viską daryti tik su PHP.

    HTML, CSS, XHTML, HTML5, XML(ir panašūs) - Visi šitie žodžiai pradžioj neturėtų rūpėti nebent žmogus yra dizaineris ir nori karpyti dizanus ir nesigilinti kitur.

    Java - Serveriai, programos, žaidimai. Android'ui gali kurti apps'us su Java.

    Python - Gana paprasta kalba iš pirmo žvilgsnio, bet labai smagiai skaitoma. Jei atbaido whitespace ar tabų naudojimas - po kelių valandų diskomfortas dingsta.

    Pascal - Mokyklinė kalba bet pradžiai tikrai nebloga. Mano pirmoji kalba - nesiskundžiu.

    C# - Panaudojimo prasme panaši į Java. Microsoft kūrinys, todėl orientuotasi tik į Win sistemas, nors yra Mono.

    C, C++ - Galingos, greitos, bet reikia mokėti kainą. Kai apsibrėžiate kintamąjį Java, Python, JavaScript, PHP, jum nereikia rūpintis jo likimu ar utilizavimu. Čia reikia. Atrodo visiem sudėtingas dalykas yra - pointeriai. Realybė kodėl pointeriai atrodo žmonėm sudėtingi, mano nuomone, todėl, kad jie neturi pagrindo. Atėjus iš niekur, arba kitų kalbų tai bus kažkas naujo, kas išties yra labai nesudėtinga ir tiesiog natūralu.

    Asembleris - Antroji kalba. Apart gąsdinimų, kad ji kažkas super baisaus - ji turbūt viena lengviausių. Iš šimtų mnemonikų naudojamos realiai tėra koks 20, visos kitos pakankamai retai. Čia žinios yra ne kalbos, o procesoriaus architektūros. Išmokti einamiausias mnemonikas galima per pusvalandį, tačiau kodėl ir ką jos daro ir ką kur reikia įdėti - reikia labai daug gilintis. Tai sakyčiau yra puikus būdas norint vėliau programuoti mikrokontrolerius(nepaisant to, kad juos programuosit C, supratimas kaip veikia - padeda).

     

    Perl, Ruby, Lisp - gal aš konservatyvus, bet net neapsimoka įtraukt į sąrašą.

     

     

    Pačioje pradžioje iš visų variantų siūlau po kokį mėnesį(bent jau), pasiimti: Pascal, C, Python. Tada apsilamdžius šonus likti ties Python arba kibti į tai, ką norima vėliau veikti. Vėl gi - laikas nebus veltui sugaištas. Vienos kalbos žinios, super smarkiai praverčia mokantis kitos, todėl kad ir kelios valandos stengiantis kažką įsigilinti ar išspręsti - vertingos ir ateičiai, nes tai bus panaudojama.

     

     

    Pvz iš Pascal galima išmokti labai gerai - fiksuoto tipo kintamuosius(kaip skaičiai matematikoje), funkcijas ir procedūras - kaip plius ir minus matematikoje, sąlygos, ciklo sąkinius, elementarų failo valdymą, įvedimą, išvedimą. Perėjus ant C, viskas atrodys naujai, tačiau iš principo - daroma taip pat, tik kaip minėjau - pointeriai. Kuo greičiau suvirškinsit tai, tuo lengviau poto gyventi ir suprasti kodėl kažkas yra taip kaip yra. Poto skonio reikalas ar tęsti tai ir griebti C++, ar eiti į server side su PHP, ar griebt Python ir kažką konstruoti, ar Java. Viskas nebeatrodys taip sunku. Visos procedūrinės kalbos daro viską gana panašiai. Vien nuo Pascal ant C perėjus tai galima lengvai pastebėti.

     

     

    Pascal savaime nėra bloga programavimo kalba, pasirinkta mokyklose ji ne be reikalo ir suvokimui kas ir kaip - pats tas.

  3. Jei rašytų pamokas tie kurie iš to pragyvena ne pirmus metus - gal ir pasisektų. Visi norintys programuot/programuojantys, sugeba bent jau skaityti angliškai. Na o tie kurie ne - lieka darželio lygio programeriais. O dar kai tokie rašo pamokas kitiem :D

     

    EDIT

     

    Užsiminiau apie anglų kalbą todėl, kad techniškai tai patogiausia kalba ir faktiškai viskas angliškai aprašoma. Kažko ieškodamas internete klausiu angliškai, gaunu atsakymus angliškai. Jei su kokiu įrankiu kyla problemos: forumai, irc kanalai - angliškas bendravimas, todėl galiu teigti, kad norint tapti programuotoju, vien programuoti neužtenka. Reikėtų paraleliai lavinti anglų kalbos bent jau skaitymo įgūdžius. Geresniu atveju ir rašymo, kad galėtum suformuluoti ko tu nori, ko tau reikia ir aprašyti tai ką sukonstravai.

     

    Pats lietuviškų programavimo šaltinių baisiai troškau būdamas jaunesnis. Vis dabar užmetu akį į kokias nors pamokas ar straipsnius. Vis dėl to gimta kalba - artimiausia. Deja tenka nusivilti mokyklinio stiliaus pamokomis arba pamokomis be vertės. Pvz HTML, CSS pamokos:

    * Ką daro img tag'as

    * Kaip naudoti a tag'ą

    * ...

    Iš tokios serijos pamokos, kurios vertės nesukuria, naudos neturi, o autoriui užtarnauja respect'ą tik visiškai žalių toje srityje žmonių ir sukuria iliuziją, kad žmogus supranta ką daro.

     

    Yra rodos knyga lietuviška gana stora - Apache PHP ir MySQL gidas ar kažkaip vadinasi. Tai buvo knyga kurios troškau kai buvau žalias toje srityje. Tačiau gavęs nusivyliau, nes ji yra faktiškai iškarpytas ir išverstas php.net . Atskirų funkcijų beprasmis aprašymas. Kodėl tai netiko man? Pateikiu priežastis:

     

    * Iš pavienių funkcijų aš nieko negaliu padaryti toje terpėje kurios aš tiesiog dar nesuprantu

    * Jei man reikia funkcijos aprašo tam yra Google, o dar geriau - save gerbiantis IDE(Aptana, Eclipse, Visual Studio) turi autosuggestionus, kurie ne tik nurodo parametrų išdėstymą, tipus, o dar ir turi mini aprašymą. Šis būdas yra 10kart greitesnis negu vartyt knygą.

     

    Mokymas turėtų būti realaus gyvenimo, praktinis. Ne kaip panaudoti kažkokį tagą ar kažkokią funkciją, kaip vėl rasti X tam tikroje lygtyje. Tai daryti galima kai jau supranti pagrindus, esi paragavęs to ir gali pritaikyti tai. Tarkime šneku apie PHP. Aš nenoriu sužinoti, kad funkcija str_replace() gali pakeisti simbolį. Labiau norėčiau praktinio panaudojimo, dar geriau su pamąstymais kaip tai galima patobulint ir tuo pačiu parodymu. Nenoriu švaistytis tuščiai, todėl parašiau trumpą koduką kuris tiesiog iš eilutės padaro masyvą iš žodžių:

     

     

     

    
    $eilute = 'Eilute skirta testavimui... su keliais žodžiais, tarpais, kableliais.';
    $zodziai = explode(" ", $eilute);
    
    for ($i = 0; $i < count($zodziai); $i++) {
       $zodis = $zodziai[$i];
       $zodziai[$i] = str_replace(".", "", $zodis);
       $zodziai[$i] = str_replace(",", "", $zodis);
    }
    
    /* Logiškai mąstant, kodėl neveiks?
      Todėl, kad pakeitimo rezultatas priskiriamas žodžiui masyve, bet pakeitimai vyksta kintamajame $zodis
      kuris priskiriamas ciklo pradžioje.
      Pateikiu keletą teisingų variantų žemiau:
    */
    
    /*
      Pirmas variantas: nereikia kintamojo $zodis visai. Tiesiogiai galime pakeisti įrašo masyve reikšmę
    */
    $zodziai = explode(" ", $eilute);
    for ($i = 0; $i < count($zodziai); $i++) {
       $zodziai[$i] = str_replace(".", "", $zodziai[$i]);
       $zodziai[$i] = str_replace(",", "", $zodziai[$i]);
    }
    
    /*
      Antras variantas: str_replace() rezultatas talpinamas kintamajame $zodis. Pabaigoje įrašas masyve
      pakeičiamas $zodis reikšme.
    */
    $zodziai = explode(" ", $eilute);
    for ($i = 0; $i < count($zodziai); $i++) {
       $zodis = $zodziai[$i];
       $zodis = str_replace(".", "", $zodis);
       $zodis = str_replace(",", "", $zodis);
       $zodziai[$i] = $zodis;
    }
    
    /*
      Trečias variantas: sutalpinti str_replace() į vieną funkciją, nes str_replace() priima ir masyvus
    */
    $zodziai = explode(" ", $eilute);
    for ($i = 0; $i < count($zodziai); $i++) {
       $zodis = $zodziai[$i];
       $zodis = str_replace(Array(".", ","), "", $zodis);
       $zodziai[$i] = $zodis;
    }
    
    /*
      Ketvirtas variantas: viską suspausti į vieną eilutę:
    */
    
    $zodziai = explode(" ", $eilute);
    for ($i = 0; $i < count($zodziai); $i++) {
    [size=2]    $zodziai[$i] = str_replace(Array(".", ","), "", $zodziai[$i]);[/size]
    }
    
    

     

    Tai ką čia parašiau galiu pavadinti taip pat - šlamštu, bet mano nuomone tai yra žingsnis teigiama linkme. Dar geriau - idėjos pristatymas ir jos realizavimas pažingsniui su pilnu paaiškinimu, kas atsakys už ką, kur keliaus ir kaip tai veiks. Nereikia komentuoti kiekvienos kodo eilutės, norint suteikti žmonėms žinias ir pamokas, reikia jiems tai ir duoti: ne pažodinį išvertimą iš kažkur. Ne žodyną anglų kalbai, o anglų kalbos tekstą, ne atskirų funkcijų aprašymą, o pavizdį kaip jį panaudoti. Mano atveju, jei žmogus bent supranta, kodėl kažkuri eilutė egzistuoja kode - gali pradėti aiškintis ką konkrečiai funkcija ar konstrukcija atlieka.

     

     

    EDIT #2

     

    Kad ir kaip atsirastų nepritariančių, mokytis ne nuo pagrindų ir tapti programuotoju abejoju ar įmanoma. Tarkime pradėti programuoti nuo C ar C++ nemanau, kad yra baisu. Arba, kad Python geriausia kalba. Man tiko ir Pascal su ASM'u. Nepaisant to, kad jau daug metų nei vieno nei antro nenaudoju, tai suteikia supratimą kodėl kažkas yra daroma taip kaip daroma, kaip kas veikia ir kodėl tai veikia arba neveikia. Vėliau palietus C, faktiškai visos procedūrinės programavimo kalbos - vienodos. Savaičių klausimas ją naudoti produktyviai(ir žinoma laiko klausimas naudoti profesionaliai). Vėliau išsimušti iš vėžių galima kokia nors funkcine programavimo kalba - tai vėl, pakeičia mąstymą ir suteikia galimybę pažiūrėti į kai kuriuos dalykus kitu kampu.

     

    Ir bet kuriuo atveju - programuoti HTML, CSS sakyti neteisinga. Tai gatavai paruoštos lego kaladėlės kuriose programavimo nėra. Tačiau nereiškia, kad tai lengva. Tapti CSS ąsu yra LABAI KĄ VEIKT, o dar kai į mūšio lauką ateina Internet Extrolleris. Dėl JavaScript - esu už. Super patogi terpė, net patogesnė nei Python ar PHP - nes nereikia nieko instaliuoti. Norit pasitestuoti? Ant bet kurios modernios naršyklės: CTRL+Shift+i atsidarot Console ir viskas. Jūsų JS terpė.

     

    Kas liečia CodeAcademy - buvau, pamačiau, likau labai nesužavėtas ir mečiau.

    Kas liečia gerus programavimo resursus - stackoverflow.com. Į paiešką įrašot tarp laužtinių skliaustų tagą, pvz [javascript], spaudžiat rūšiuot pagal balsus(Votes) ir turit ilgam skaitymo apie JS gudrybes ir žmonėms keisčiausius ir įdomiausius iškilusius klausimus. Kaip kasdienė duona.

     

    Tikiuos neišsiplėčiau ir nenusivažiavau į lankas :D

     

    Ačiū už dėmesį.

  4. 1. Jei esi žalias ir pradėjai nuo Python(nesvarbu nuo ko), tai:

     

    a) nesitikėk vien ta kalba apsistoti, todėl neverta žiūrėti į dideles perspektyvas. Mokymuisi kalbą rinktis reikia pagal pateikiamos informacijos kiekį ir kokybę. Python turi nenormaliai didelę žinių bazę todėl neturėsi problemų ieškodamas vieno ar kito sprendimo, bibliotekos, frameworko ar algoritmo pavyzdžio.

     

    b) turėsi praeit kryžiaus kelius kol jausies pakankamai pasitikintis savimi programuotojas.

     

    c) kai pasieksi b, pramokt kitą kalbą bus kelių vakarų klausimas.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...