Pereiti prie turinio

Julinho

Nariai
  • Pranešimai

    60
  • Užsiregistravo

  • Lankėsi

  • Atsiliepimai

    0%

Julinho Pranešimai

  1. Man tai šiek tiek kvailai atrodo, kai beveik visi kaip susitarę šaukia, kad universitete visiškai nieko naudingo nemoko, tačiau pateikia absoliutų nulį argumentų ir pavyzdžių.

     

    Aš papasakosiu iš savo patirties. Artėjant bakalauro mokslų pabaigai įsidarbinau į į vieną įmonę praktikai. Vos praėjus savaitei nuo darbo pradžios davė suprogramuoti mikroservisą. Programavom su Scala funkcinio programavimo kalba, su kuria mus supažindino 6 semestre, modulyje „Programavimo kalbų teorija“. Jeigu nebūčiau turėjęs šio modulio, tai tikrai nebūčiau sugebėjęs iš karto programuoti funkciniu stiliumi (be to, funkcinis programavimas nėra viso labo programavimas su funkcijomis, o kur kas daugiau).

     

    Kuriamam mikroservisui reikėjo duomenų bazės pasirinkom NoSQL duomenų bazę. Kadangi apie SQL turėjom visą modulį „Duomenų bazės“ (4 semestras) plius papildomai buvo trumpai aptariamos duomenų bazės daugelyje kitų modulių, tai nekilo klausimų, kas tas SQL ir kas tas NoSQL.

     

    Nori nenori, beveik visi mikroservisai turi kokį nors API, ir dažniausiai tai būna RESTful. Modulis „Saityno taikomųjų programų projektavimas“ buvo būtent į tai ir orientuotas. Čia išmokau, kuo skiriasi RESTful API nuo to, ką kiti laiko RESTful API. Nuo pat pradžių savo komandoj buvau geriausiai suvokiantis REST'ą, kai tuo tarpu kiti kūrė kažką panašaus į RESTful API. Be to, šiame modulyje mums dėstyti ateidavo po programuotoją iš NFQ ir DevBridge – manau, jie turėtų bent kiek nuvokti, ko reikia programuojant tikrame darbe.

     

    Žinoma, kuriant programas reikia parašyti ir keletą automatizuotų testų. Su TDD mus supažindino modulyje, kurį paminėjau ankstesnėje pastraipoje, o konkrečiai rašyti testus ir padirbėti su issue'sų registravimo sistemomis teko 7 semestro modulyje „Programų sistemų testavimas“.

     

    Be abejo, mikroservisas turi sugebėti vienu metu apdoroti keletą užklausų. Su lygiagretumu susipažinom modulyje „Lygiagretusis programavimas“. Ir nors Scala mums leidžia išvengti kai kurių su lygiagretumu susijusių problemų, bet prireikus kažkokios sudėtingesnio lygiagretumo turėčiau šiokį tokį suvokimą, kaip tai spręsti. Be to, per šį modulį teko palyginti, koks skirtumas, kai skaičiavimus leidi ant CPU ir ant GPU.

     

    Vienu metu dirbant mūsų ofise buvo užėjusios kalbos, kad būtų gerai susiburti į burelį ir pasimokyti design pattern'ų – tarkim kiekvienas pasiima po vieną design pattern'ą jį išmoksta ir vėliau pristato kitiems. Dauguma buvo nustebę, kad būtent aš 7 semestre turėjau modulį apie tai – „Objektinis programų projektavimas“ (What?!! Universitete design pattern'ų moko?!!).

     

    Darbe daug tenka dirbti su Linux OS (beveik visos mūsų prižiūrimos mašinos sukasi ant CentOS). Per modulį „Operacinės sistemos“ susipažinom su ne tik kaip veikia operacinės sistemos, bet ir su Linux terminalu bei įvairiomis jo galimybėmis.

     

    Dar turėjau modulį „Informacinių sistemų kūrimas karkasais“. Čia susipažinau su vienu iš PHP karkasu (nors gyvenime neplanuoju programuoti PHP) bei MVC pattern'u. Iš čia susidariau suvokimą, kodėl reikia atskirti duomenis, veiksmus su jais bei duomenų atvaizdavimą ir kaip tai padaryti.

     

    Paskutiniuoju metu prireikė darbe pabraižyti UML diagramų, kad galėtumėm geriau suvokti kaip veikia mūsų prižiūrima sistema ir kokios yra galimos rizikos. Su UML'o diagramomis susipažinome modulyje „Programų sistemų analizės ir projektavimo įrankiai“, bet teko jas panaudoti ir nemažai kitų modulių.

     

    Turėjau pasiėmęs modulį „Kompiuterių tinklų ir interneto sauga“ – teko pačiam palaužyt silpnai apsaugotas svetaines. Dabar man pačiam kuriant programinę įrangą turiu jau šiokį tokį suvokimą, kurios vietos gali būti nesaugios.

     

    Turėjom modulį „Skaitiniai metodai ir algoritmai“. Kaip vėliau supratau, čia buvo lengva įžanga į mašininį mokymą (o dabar mašininis mokymasis yra beveik visur ir kiti iš jo uždirba milijonus).

     

    Buvo modulis „Algoritmų sudarymas ir analizė“ kuriame nagrinėjom įvairius algoritmus, susipažinom su dinaminiu programavimu ir big-O notacija (nors su visu šituo aš jau buvo susipažinęs mokykloje). Galiu garantuoti, kad dauguma tokių savamokslių net neįsivaizduoja, ką reiškia O(n), O(log n) ar O(n^2). Modulyje „Duomenų struktūros“ teko susipažinti su bazinėmis duomenų struktūromis. Tiek bazinių, tiek sudėtingų duomenų struktūrų suvokimas itin svarbus viename iš mano hobių.

     

    Žinoma, turėjom nemažai matematikos ir fizikos. Tiesiogiai šito darbe kaip ir nepritaikiau, nes darbas nelabai su tuo susijęs. Bet mane tiek matematika, tiek fizika domino ir žavėjo nuo mokyklos laikų, o ir matematiką sugebėjau pritaikyti hobyje, apie kurį jau užsiminiau praeitoje pastraipoje.

     

    Labai patiko modulis „Kompiuterinė grafika“. Pakankamai neblogai praplėtė suvokimą, kaip veikia GPU ir kaip vaizdas atsiduria ekrane (tiek 2D, tiek 3D). Modulyje „Robotų programavimo technologijos“ teko sukonstruoti Lego robotą (vėliau teko sudalyvauti darbe vykusiose Lego robotų imtynėse):

    http://www.youtube.com/watch?v=N7RF8DISo1M

     

    Be to, studijų metu teko nemažai pakeliauti. Turėjau gal 8 keliones į užsienį, kurias visas finansavo universitetas plius dar skyrė dienpinigių.

     

    Tas mikroservisas, apie kurį užsiminiau pradinėse pastraipose, buvo mano universitetinės praktikos užduotis. Dabar jis stovi PROD'e ir aptarnauja įmonės klientus.

     

    ----------------------------

     

    Bet šiaip galiu sutikti, kad jeigu darbe reikėtų įdiegti Wordpress ir užmauti skin'ą, kokį dizainą pakarpyti, kavos pataisyti ar mygtukus paspaudinėti, tai visi šie keturi metai būtų visiškai bereikalingi…

    Puikus ir išsamus atsakymas. Tik šitą norėjau paklaust kokią studijų programą tu mokeisi? Informatikos inžineriją ar Informatiką paprastą ir kuriam univere? :)

  2. Jei rimtai žiūri į visą šį reikalą, tai VU arba KTU.

     

    Nesuprantu, kodėl neįrašei VU IT(informacinės technologijos). Pats studijuoju šia studijų kryptį, esu nepaprastai patenkintas. Studijos yra labai geras dalykas, bet tik tuo atveju, jei tu moki tas žinias pasiimti. Kas sako, jog nėra ten ko eiti, ir panašiai, tai mano spėjimu priežastys yra: arba dėl to, kad jie patys ten nieko nesimokė, arba pasirinko prastą universitetą, arba įstojo ne ten, kur jiems vieta. Žinoma būna išimčių, bet tai vienetiniai atvejai, tačiau, ir tuomet, vargu ar studijos pakenktų.

     

    Mano pasirinkimų sąrašas prasidėjo taip:

     

    1. VU PS(programų sistemos)
    2. VU IT(informacinės technologijos)
    3. VU INFO(informatika)

    Na, po to jau kiti universitetai.

     

    Kitas dalykas, esu labai patenkintas, kad neįstojau į PS. Programų sistemos yra, na, tiesiog, populiarus dalykas ir tiek. Nei jis geresnis už kitus, nei prastesnis. Reikia labai gerai suprasti ko tu nori iš studijų, tada suprasi ir ką rinktis, o ne rinktis tai, ka rėkia kiti. Kiek pastebėjau, kuo skiriasi šis dalykas nuo IT iki šiol, tai pirmam pusmety jie turėjo daug praktikos iš Assembly programavimo bei kompiuterių architektūros, kai mes tuo tarpu turėjom ir praktikos, kurios tokiam dalykui tikrai gana, jei nesigilini iš esmės, ir teorijos, kuri buvo labai naudinga, kad suprastum esminius dalykus. Toliau, IT studijų kryptis yra naujausia, dėl to tikrai nedrįsčiau sakyti, jog ten kažkas pasenę, ar panašiai. Tarkim jau pirmais metais turime OOP su Java, džiaugiuosi, kad daug mokomės apie UNIX'ines sistemas, programinom ir su C, yra dalykai ir kaip duomenų struktūros, kur moko rašyti efektyvų kodą ir t.t.

     

    Kodėl dar apsimoka rinktis IT. Studijų programa trunka 3,5 metų įskaitant 0,5 metų praktiką. Jei neklystu, programa įkurta 2010m., be to bendradarbiaujant su "Barclays", galbūt, dėl to ir jaučiasi, jog daugiau mažiau viskas "šviežia".

     

    Trumpai tariant bei kalbant apie šias tris kryptis, siūlau rinktis IT dėl to, ką minėjau, PS tuo atveju, jei nori daug laiko skirti mokslams, ten turėsi pasinerti į programavimą, hardware'ą, ar kur kitur, giliau, nei kiti, tačiau stipriai svarstytina, ar tai naudinga, o INFO tuo atveju, jei myli matematiką - programavimas / matematika.

     

    Pastaba. Eidamas į universitetą žinojau, jog tai nėra vieta, kur kepami programeriai. Tiesą sakant, gavau daugiau, nei tikėjausi, bet dėl to, jog turėjau tikrai tvirtus programavimo pagrindus eidamas ten. Man tai vieta, kuri turimas žinias tikrai tvirtai sustiprino, taip pat ir suteikia galimybes tas žinias plėsti toliau. Tereikia noro ir pačio darbo. Mano akimis, tai galimybė. Arba ja imi ir pasinaudoji, arba ieškai savo kelių.

     

    Prašau, atsižvelk į tai, jog tai yra mano nuomonė ir viską sakau iš savo perspektyvos. Tikėkimės, tai kažkam padės priimti keletą rimtesnių sprendimų.

     

    Vienintelis normalus atsakymas, kuris čia yra. :) ačiū tau už info tikrai padeda apsispręsti :). o visi, kurie sako, kad programuok, pats tai čia ir taip aišku , kad tai teks norint pasiekt norimų rezultatų. Tiesiog noriu pasirinkt studijų programą, kuri labiau gilintų į programavimą, kuris mane labiau domina, negu studijuoti ten kokią, kaip kažkas minėjo , kad VGTU inžinerinej info pasibaigia ties antru kursu. :)

  3. Sveiki,

    Norėčiau sužinot, kur apsimokiausia ir geriausia stoti, norit tapti programuotoju(studijų kryptis). Na taip, žinau, dauguma sakys, kad jau buvo tokios temos ir panašiai.. bet norėčiau sužinoti iš dabartinių Informatikų, kurie studijuoja KTU,VGTU,VU,VK nuomonę, ar apsimoka rinktis Informatikos inžineriją, informatiką, informacines sistemas ir kitas informatikos studijų kryptis. Ką mokotės ir ar daug būna programavimo? taip pat šiais metas galima rinktis 9 universitetus, pateikiau jau 8 prašymus, gal kas dar pasiūlys, kur galima pateikti prašymą? Sąrašas kolkas toks :

    KTU - Programų sistemos

    VGTU - Programų sistemos

    KTU - Informacinės sistemos

    KTU - Informatika

    VGTU - inžinerinė informatika

    VU - Programų sistemos

    VU - informatika

    VK - Programų sistemos

     

    Ačiū Už jūsų atsakymus. :)

  4. Sveiki, gal kas turit kokių knygų kaip matiekos ar kokios ten būna Prieš Egzaminą ir panašiai :) ar kokios kitos , kur galėtų padėt pasiruošt egzaminui. Neakykit tik, kad eik ir programuok, nes užsirašiau pas mokytoją papildomai, bet noriu knygą kokią nusipirkt dar padirbėt ir užtvirtint viską tikrai :) ačiū

  5. Sveiki, taigi susidūriau su bėda tokia, kad turiu dvi S-90 kalonkes ir noriu jas pasijungt prie kompo. taip pat turiu stiprintuvą, tik va dabar bėda, kad ten lizdai ne visai tokie kokių aš tikėjausi, tai gal kas esat susidūrę su tuo? ir galit pasakyt, kokius laidus reikėtų pirkt, kad galėčiau pasijungt prie kalonkių? :) Fotkė:

    http://www.part.lt/img/fc89919cf4fa43a558d74afe04736173995.jpg

  6. Sveiki, gavau tokią užduotį Žmogus išvyksta i susitikima d diena h valanda ir m minuciu. Jo keliones trukme yra h1 valandu ir m2 minuciu. Ar jis suspes atvykti i susitikima kurio pradzia d1 diena h2 valanda m3 minuciu. NURODYMAS naudoti void tipo funkcija kuri išmestų atsakymą TAIP arba NE.

     

     

    Viską čia suskaičiuoju, toj funkcijoj randu atsakymą, tačiau kaip padaryti, kad ji grazintu atsakyma taip arba ne?

     

    naudok Bool tipą jeigu teisingai suprantu tau reikia TRUE / FALSE, kad rašytu?, o jei paprastai , kad rašytų tai su IF sakinių daryk sąlygą jeigu sąlyga tenkinama tada

    cout << "TAIP" << endl;

    jeigu ne tada

    cout<< "NE" <<endl;

     

    pvz:
    if( A == 1)
    {
    cout << " TAIP" << endl;
    
    } else if( A != 1)
    {
     cout<< "Ne" <<endl;
    }

  7. Sveiki,

    Reikia pagalbos, sprendžiu uždavinuką ir iškilo bėda nusiskaitant duomenys.

    Duomenų failas:

    5 30 
    Siuntuva  2 3 
    Auda      3 –1 
    Kostisa   –3 –2 
    Linga     3 0 
    Austuva   –2 –4

     

    ir mano mėginimas nuskaityti duomenys :

    void Skaityti(const char fv[])
    {
       char eil[10];
       ifstream fd(fv);
       fd >> n >> m;
       fd.ignore(10,'\n');
       for(int i = 0; i < n; i++)
       {
           fd.get(eil,Mp);
           fd >> x >> y;
           PaskutinisPav = eil;
           cout<< x<< " ";
           fd.ignore(10,'\n');
       }
    
       fd.close();
    }

     

    Pavadinimas užima 10 simbolių. Jeigu nerašau eilutes kode : fd >> x >> y; tada vardas nusiskaito gerai, bet jeigu ji yra tada nuskaito tik pirmą eilutę ir antros eilutes vardą ir viskas.

     

    Visas kodas

  8. Ar galvoji, kad mums tas erroras ką nors reiškia, kai nematome ką tu iš tikrųjų esi parašęs?

     

     

    int Balai (int[] artist, int n, int m, int sum[]) <-- čia kaip sakei parašyt :)
    {
       int did = 0;
       int maz = 99999999;
       for(int i = 0; i < n; i ++)
       {
           for(int j = 0; j < m; j++)
           {
               if(artist > did)
               {
                   did = artist;
               }
               if(artist < maz)
               {
                   maz = artist;
               }
           }
       }
       return maz;
    }
    

  9. Nu tai paduok visą struktūrą per f-jos argumentus ir pačioj f-joj pasiimsi ko tau reikia iš pačios struktūros.

    NU šitą tai suprantu, bet kaip tada padaryt, kad tarkim imu, kad skaičiuotų Vieną struktūros dalyką Technikos balus padarau ten per ciklus viską ir tada reikia, kad ta pati funkciją imtu nebe technikos balus , o artistiškumo ir skaičiuotų.. nepakeisi gi funkcijoj A.tech, kad būtų vėliau A.Artistiškumas.

  10. Sveiki, taigi turiu struktūrą:

    struct Sokiai
    {
       string vardai;
       int Tech[Cmax];
       int Artist[Cmax];
    };
    

    joje yra nuskaityti vardai ir technikos balai ir artistiškumo balai. dabar turiu sukurti funkciją kuri skaičiuotų Sumą balų. Iš pradžių technikos, o po to artistiškumo.( Funkcija turiu panaudoti du kartus main'e). nu gal ir ne kaip paaiškinau, bet turėtų būt kažkas tokio ( čia blogas užrašymas):

    int Suma[0] = Baluskaiciuokle (A.tech,n,m); <---- čia turiu parametrus, bet vat, kad niekaip nesugalvoju kaip juos iš structuros įtraukt į funkciją savo.
    int Suma[0] = Baluskaiciuokle (A.Artist,n,m); 
    

    Esmė tame, kad noriu structuroje esančius duomenys panaudot funkcijoj bet niekaip nesugalvoju kaip, nes meta error'ą. Gal kas pasiūlys kaip galiu padaryt?

    manau esmę supratot, jei ne tai mėginsiu paaiškint dar kartą.

  11. Atsiprašau, ne taip perskaičiau ir galvojau, kad ten porų skaičius.

    Nors ir nenurodytas porų skaičius, vis tiek siūlau nuskaityti taip, kaip dabar buvo (porų tikrai nebus daugiau nei žmonių), o toliau (skaičiuojant taškus ir t.t.) tik patikrinti, ar tos poros kintamieji nėra lygūs nuliui.

    na žiūrėsiu, tada galėčiau skaityt eilute su getline tą patį gaučiau :).

    galvojau , gal ką blogai darau ir galima kaip nors gauti po vieną vardą nu ta prasme, kad ciklas nusiskaitytų normaliai o ne N = 3 :)

  12. Taip ir turėtų būti su tais nuliukais - duomenų failas nurodo, kad yra 5 poros, o pateiktos tik 3 (fail'as užduoties aprašyme?).

    nu žinok neturėtų būt gi NEC Sudarinėjo šitą užduotį.: va duomenų failo aprašymas:

    Duomenys

    Duomenys surašyti tekstiniame faile U2.txt. Visi skaičiai yra sveikojo tipo.

     Pirmoje eilutėje pateikiamas šokėjų skaičius n (1  n  100) ir teisėjų skaičius k (3  k  10).

     Kitose eilutėse yra surašyti kiekvienos šokėjų poros įvertinimai balais. Kiekvienai porai faile skirtos trys

    eilutės: pirmoje iš jų eilutėje yra poroje šokančių vardai (pirmos 20 pozicijų), antroje – įvertinimai už

    techniką, o trečioje – įvertinimai už artistiškumą.

    ten pirmas 5 yra duotas už tai, kad vardai dalyvauja šokiuose. vienas vardas 2 kartus paminėtas ( Rasa). ir iš vardų man reikia vėliau sudaryt poras. :)

  13. Gal galėtum plačiau parašyti, kur ir kaip tau nukerta? Man viskas veikia.

    Mano klaida ten buvo šiaip jo nusiskaitau dabar vardus du, bet ciklas tęsiasi tik iki n = 3 ir tada vėl meta nulius. va ką gaunu atsispausdines:

    Petras Rasa3 1 5 8 10 
    5 6 7 8 9 
    Rita Jurgis6 5 8 5 8 
    9 8 7 6 5 
    Rasa Linas10 10 10 10 10 
    8 8 8 8 8 
    0 0 0 0 0 
    0 0 0 0 0 
    0 0 0 0 0 
    0 0 0 0 0 
    

  14. Pasidaryk vardų masyvą ir nuskaityk vardus atskirai. Turėtų veikti.

    #include <iostream>
    #include <stdlib.h>
    #include <fstream>
    #include <string>
    using namespace std;
    const char Cdf[] = "mokiniai.txt";
    const char Cfd[] = "rez.txt";
    const char Csf[] = "ugiai.txt";
    const int Cmax = 100;
    const int Cpav = 20;
    
    struct Sokiai
    {
       string vardai[2]; // <------------------
       int Tech[Cmax];
       int Artist[Cmax];
       int Vid[Cmax];
    };
    
    void Skaitymas (Sokiai A[], int &n, int  &m)
    {
    
       ifstream fd(Cdf);
       fd>> n >> m;
       for(int i = 0; i < n; i++)
       {
        	fd >> A[i].vardai[0] >> A[i].vardai[1]; // <----------------
        	for(int j = 0; j < m; j++)
        	{
            	fd >> A[i].Tech[j];
        	}
        	for(int k = 0; k < m; k++)
        	{
            	fd >> A[i].Artist[k];
        	}
       }
       fd.close();
    }
    
    int main()
    {
       int n, m; // teisėjai ir šokėjų skaičiams nusiskaityti iš failo.
       Sokiai A[Cmax];
    
       Skaitymas(A,n,m);
       return 0;
    }

     

    Na žinok, nelabai veikia ir taip nelogiška, nes jeigu būtų tarkim eilutėje 3 vardai tai man reiktu tada kodą keist kad vadų masyvas būtų ne 2 o 3 :)

  15. Sveiki, taigi turiu Problemą nuskaitant duomenys iš failo, kadangi skaitant ciklas įvyksta 5 kartus, bet nelabai išeina nuskaityt vardus iš failo.

    užduotis: http://www.nec.lt/failai/2062_IT-VBE-1_2011.pdf (prieš paskutinis psl).

    mano kodas:

    #include <iostream>
    #include <stdlib.h>
    #include <fstream>
    #include <string>
    using namespace std;
    const char Cdf[] = "mokiniai.txt";
    const char Cfd[] = "rez.txt";
    const char Csf[] = "ugiai.txt";
    const int Cmax = 100;
    const int Cpav = 20;
    
    struct Sokiai
    {
       string vardai;
       int Tech[Cmax];
       int Artist[Cmax];
       int Vid[Cmax];
    };
    
    void Skaitymas (Sokiai A[], int &n, int  &m)
    {
    
       ifstream fd(Cdf);
       fd>> n >> m;
       for(int i = 0; i < n; i++)
       {
            fd >> A[i].vardai;
            fd.ignore(' ', 10);
            for(int j = 0; j < m; j++)
            {
                fd >> A[i].Tech[j];
            }
            for(int k = 0; k < m; k++)
            {
                fd >> A[i].Artist[k];
            }
       }
       fd.close();
    }
    
    int main()
    {
       int n, m; // teisėjai ir šokėjų skaičiams nusiskaityti iš failo.
       Sokiai A[Cmax];
    
       Skaitymas(A,n,m);
       return 0;
    }
    

    ką gaunu rez.txt :

    Petras3 1 5 8 10 
    5 6 7 8 9 
    Rita6 5 8 5 8 
    9 8 7 6 5 
    Rasa10 10 10 10 10 
    8 8 8 8 8 
    0 0 0 0 0 
    0 0 0 0 0 
    0 0 0 0 0 
    0 0 0 0 0 
    

     

    Taigi ką blogai darau nuskaitant? niekaip negaliu sugalvot kaip čia nusiskaityt, kad normaliai viskas būtų.

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