Pereiti prie turinio

wi_lius

Patvirtinti nariai
  • Pranešimai

    1.793
  • Užsiregistravo

  • Lankėsi

  • Laimėta dienų

    12
  • Atsiliepimai

    100%

Reputacijos išklotinė

  1. Patinka
    wi_lius gavo reakciją nuo easyy <a> link'as kad atidaryti programą   
    Registering an Application to a URI Scheme

  2. Patinka
    wi_lius gavo reakciją nuo easyy <a> link'as kad atidaryti programą   
    Registering an Application to a URI Scheme

  3. Patinka
    wi_lius gavo reakciją nuo Mindogas Lietuva grąžina šauktinių kariuomenę   
    Aš tai nepažįstų niekeno, kas būtų paimtas į kariuomenę. Iš to seka išvada, kad nieko neima į kariuomenę…
  4. Patinka
    wi_lius gavo reakciją nuo Ernisx BREXIT   
    Global Markets Steady After Brexit-Related Rout
    It Took Just Four Days for British Megacaps to Shake Off Brexit
    Pound and shares rally after two days of record Brexit losses – as it happened
    U.S. Stocks Higher Along With Global Markets as Brexit Worries Ease
     
    Penktadienį buvo baimė, dabar jau atėjo godumas…
     
    ----------------------
     
    Kitas dalykas, visi labai susikoncentravę vien tik į ekonominius Didžiosios Britanijos ir ES reikalus. Bet ES nėra viso labo ekonominė bendrija.
     
    Hipotetinė situacija – kas geriau: dirbti gerai apmokamą ir nemėgstamą ar prasčiau apmokamą ir mėgstamą darbą? Kitas klausimas: ar pastarajame sakinyje galima išvesti paralelę tarp darbo ir kažko kito, tarkim, sąjungos ar bendrijos?
  5. Patinka
    wi_lius gavo reakciją nuo Impaler BREXIT   
    Galima žiūrėt ir iš kitos pusės: tie vyresnieji matė, kokia Britanija buvo prieš tai ir kokia yra dabar.
     
    Be to, atitinkamai su amžiumi keičiasi vyraujančios politinės pozicijos ir suvokimas apie politiką. Tai, kad skiriasi, kaip skirtingos amžiaus grupės balsuoja, yra naturalu.
     
     
    O šiaip, jei vertintumėm sprendimus vien pagal ekonomines pasėkmes, tai prieš dvidešimt metų Lietuva verčiau būtų pasilikusi SSRS, nes (jei istorijos žinios neapgauna) po pasitraukimo ekonominė situacija nebuvo pati geriausia.
     
    ----------------------------
     
    Aš manau, kad iš šio pasitraukimo bus šiek tiek ir naudos. Paskutiniu metu ES vykdė abejotiną politiką (pavyzdžiui, pabėgelių krizė) ir ne itin klausėsi atskirų šalių nuomonės. Dabar Jungtinė Karalystė parodė, kad tokia politika gali turėti pasėkmių.
  6. Patinka
    wi_lius gavo reakciją nuo WolfStreet Kur stoti norint tapti programuotoju?   
    Tu irgi universiteto nebaigęs?
  7. Patinka
    wi_lius gavo reakciją nuo Julinho Kur stoti norint tapti programuotoju?   
    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…
  8. Patinka
    wi_lius gavo reakciją nuo Julinho Kur stoti norint tapti programuotoju?   
    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…
  9. Patinka
    wi_lius gavo reakciją nuo Julinho Kur stoti norint tapti programuotoju?   
    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…
  10. Patinka
    wi_lius gavo reakciją nuo Julinho Kur stoti norint tapti programuotoju?   
    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…
  11. Patinka
    wi_lius gavo reakciją nuo Julinho Kur stoti norint tapti programuotoju?   
    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…
  12. Patinka
    wi_lius gavo reakciją nuo WolfStreet Nesimokyti, nesimokyti ir dar kartą nesimokyti   
    Tolimesnis straipsnelis (o gal greičiau esė) yra mano idėjų rinkinys, kurias jau buvau išsakęs įvairiose temose pranešimų pavidalu. Todėl jei jaučiate deja vu, kad tai jau kažkur girdėjote, neišsigąskite – čia ne Matrica glitch'ina, čia tiesiog aš kartojuosi.
     
     
     
     
    Prieš nedaug laiko karts nuo karto vis atsirasdavo temų, kuriose arba buvo diskutuojama apie mokslą, arba jos nejučia nukrypdavo ta linkme. Ir tada galėdavai išvysti LKL visų žvaigždžių dienos scenarijų, kai susikaudavo Ereliai prieš Vilkus. Ir nors aš pagal idėją priklausyčiau Erelių komandai, vis dėl to labiau palaikau Vilkų pusę. Todėl toliau esantis žodžių kratinys, kurį jūs perskaitysite (arba ne), bandys kažkiek užstoti mokyklą, švietimo sistemą ir net patį mokslą.
     
    http://www.part.lt/img/2360a820db7b9c47cf62e143b0222fa1223.jpg
     
    Turbūt pastebėjote, kad pagrindinis argumentas, kodėl mokykla yra nesąmonė, yra toks: kas nors suranda Facebook'e paveikslėlį, kuriame parašyta „Things I didn't learn at school:“. Iš karto galima suprasti, kad žmogus nepagauna mokyklos esmės. Mokykla nėra ta vieta, kuri gimdo visų galų meistrus. Mokyklos funkcija yra suteikti žmogui sveiką protą (ką angliakalbiai įvardintų kaip common sense) ir paruošti jį spręsti problemas. Mokykla suteikia tau žinių bagažą, kuris gal ir nevisais atvejais bus naudingas, bet padarys tave išprususiu. O jie, matai, pradeda šaukti, kad manęs neišmokė to ar ano.
     
    Pakalbėkim apie tai, ko mūsų neišmokė. Mokėti mokesčius? Dar dabar prisimenu, kaip ekonomikos mokytojas pabrėžė, kad atsiskaitymas už komunalines paslaugas nėra mokesčiai. Tai kas iš mokesčių belieka? PVM – sumoki automatiškai paduodamas pinigus kasininkei už prekes. Darbo mokesčiai? Vėlgi, viskuo pasirūpina darbdavys (nebent gauni vokeliais, tai ir ši pareiga nukrenta nuo darbdavio pečių). O jei ir yra koks mokestis, kuris nėra automatiškai įskaičiuojamas, tai dažniausiai gauni nurodymus, kiek, ko ir į kokią sąskaitą pinigų pervesti. Na, bet sutinku, galėtų įtraukti į mokyklos kursą modulį bent vieniems metams „Paying taxes 101“. Kita problema: kaip užvesti mašiną ją stumiant? Įjungi degimą, stumi, įmeti antrą bėgį. Vėlgi, praverstų moduliukas „Jump start a car 101“. Be viso šito, mokykloje niekas neišmoko, kaip pasidaryti namų sąlygom nedidelį branduolinį reaktorių. Visgi būtų pravartu įgauti energetinę nepriklausomybę ne tik nuo Rusijos, bet ir nuo pačios valstybės. „Building nuclear reactor at home 101...“
     
    O dabar apžvelkim nereikalingus dalykus, kuriuos išmokome mokykloje. Na, jei nežadi dalyvauti „Šeši nuliai – milijonas“, tai istorija kaip ir nereikalinga. Jeigu nieko negeri ir nevalgai, tai net bazinės chemijos žinios nėra reikalingos. Jei visą laiką drybsai ant sofos ir nė kiek nejudi ir nepriverti kitų objektų judėti, tai kinematika irgi ne tau. Pitagoro teorema? Taigi galima paimti ir tiesiog išmatuoti įžambinę. Net jei ir reiktų išmatuoti stačiakampio ežero įstrižainę, vis tiek patogiau perplaukti visą jį skersai su metru rankoje. (Išvertus šią pastraipą iš sarkazmo kalbos: gal vis dėl to ne mokykla kalta, kad nedagyvenai [atleiskit už „da“, bet kitaip neskamba] tiek, jog išmoktos žinios taptų naudingos.)
     
    Kita dažna diskusija: teorija vs. praktika. Vis kas nors teigs, kad vietoj universiteto rinkis kolegiją, ten gausi daug praktikos ir bus viskas labai gerai. Gal kas matėt serialą „Didžiojo sprogimo teorija“. Žinot, kodėl Šeldonas išaukština save likusios trijulės atžvilgiu? Nes jis – teoretinis fizikas, o teorija yra aukščiau už praktiką. Praktika seka iš teorijos, o ne atvirkščiai. Teorija apibendrina praktiką. Pirma būna hipotezė, o tik po to ji išbandoma praktiniais bandymais. Pirma būna teorema, o tik po to ji pritaikoma konkrečiam uždaviniui.
     
    Žinoma, nesakau, kad kiekvienam duota suprasti viską. Kai kuriems vis dėl to būtina keliolika kartų viską pritaikyti praktikoje, kol vis sugula į vietas. Bet šioje vietoje noriu pakartoti mintį iš „Daktaro Fausto“, kad kas nesugeba pats – mokosi atmintinai...
     
    Kartais galima aptikti tokį paradoksą. Kai kalba eina apie asmeninį išsilavinimą, tai būtinai atsiras tokių žmonių, kurie teigs, jog nori mokytis tik jam patinkančią sritį ir nieko daugiau. Gink dieve, kad tik nenukryptų kur į šoną. Po to vėl tie patys pradeda aiškinti, kad su kai kurių profesijų žmonėmis (ypač kompiuteristais) negalima rasti bendros kalbos (matai, jie tik apie kompus išmano...) Tada belieka jų pasiteirauti nuomonės apie dvigubus standartus...
     
    Dar keliems sakiniams nušokime į pasaulio istoriją. Kiek žinote žmonių, kurie buvo pagerbti dėl savo nuopelnų mokslui, dėl ypatingų žinių ar atradimų? O kiek žinote ypatingai gerų, tiesiog tobulų mokesčių mokėtojų?
     
    O dabar truputis asmeniškumų. Kaip ir daugelis žmonių, lankiau mokyklą. Kaip ir daugelis žmonių, nemėgau istorijos. Visus tuos metus nuo 6 klasės nesidžiaugdavau, kai reikėdavo mokytis atmintinai datas ir įvykius. Bet dabar dėl to širdies neskauda. Vienintelis dalykas, ko norėčiau, tai kad būtų įmanomas toks žaidimas su laiku: chronologinėje linijoje išdėlioti visus dalykus, ką mano protas mokėjo ir ką sugebėjo tam tikru metu, bei visą šią liniją patraukti atgal laiko atžvilgiu. Kiek tada būčiau visko pasiekęs...
     
    O pabaigai norėčiau baigti svetimais žodžiais, nes pats jau ir taip prisišnekėjau. Paspauskit ant
    ir pasiklausykit žmogaus, kuris turi ilgiausią pergalių grandinę amerikiečių intelektualiniame žaidime Jeopardy (jei automatiškai to nepadarys, pereikit iki 17:28). 
  13. Patinka
    wi_lius gavo reakciją nuo Julinho Kur stoti norint tapti programuotoju?   
    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…
  14. Patinka
    wi_lius gavo reakciją nuo Julinho Kur stoti norint tapti programuotoju?   
    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…
  15. Patinka
    wi_lius gavo reakciją nuo Auksinis Kokia žmogaus frazė ar sakinys priverčia jus juo nusivilti?   
    Čia kai pana sako?
  16. Patinka
    wi_lius gavo reakciją nuo Auksinis Kokia žmogaus frazė ar sakinys priverčia jus juo nusivilti?   
    Čia kai pana sako?
  17. Patinka
    wi_lius gavo reakciją nuo bflya C++ užduotis - klaidos nėra, bet duoda blogą rezultatą   
    Pavojinga taip lyginti du slankaus kablelio skaičius. Spėk, ką tolimesnis kodas atspausdina:

    if (1.0 == 0.9999999999999999999) { cout << "Intel Inside" << endl; }
     
    Teisingas būdas lyginti slankaus kablelio skaičius yra paimti jų skirtumą ir žiūrėti, ar jis mažesnis už tam tikrą tolerancijos ribą:

    const int EPS = 0.000001; if (fabs(sabc - stasko) < EPS) { // 'sabc' ir 'stako' lygūs su tikslumu 10^-6 }
  18. Patinka
    wi_lius gavo reakciją nuo Valdas3 Loginis mąstymas. Išmokstamas ar gimstama jau su juo?   
    Labai drąsu sakyti, kad programavimas visiškai nesusijęs su logika. Yra net atskira logikos šaka – skaitmeninė logika, kuri ir apima tokią logiką, kurią gali vykdyti kompiuteryje (Wikipedia, Computational logic). Programavimas yra įrankis vykdyti skaitmeninę logiką kompiuteryje ir kartu programavimas sukuria poreikį skaitmeninei logikai. Jei nebūtų programavimo, nereikėtų ir skaitmeninės logikos, nes žmogui paprasčiau suvokti matematinę ar kitas logikos rūšis.
     
    Ir šiaip, dabar pasaulyje pilna kompiuterių, kurie kažką analizuoja. Tai vadinama mašininiu mokymusi (angl. machine learning), kai aprašius modelį ir padavus kompiuteriui daug duomenų jis juos išanalizuoja ir randa dėsningumus. Žinoma, galima sakyti, kad va, žmogus vis tiek turi aprašyti tą modelį… Tačiau lygiai taip pat galima pasakyti, kad tu ar bet kas kitas nemoka kalbėti, nes kalbi ne nuo gimimo, o buvai išmokytas kitų, kaip reikia kalbėti.
     
    Pakalbėkim apie šachmatus. Turbūt galima drąsiai teigti, kad ėjimas, kuris labiau veda link pergalės, yra logiškesnis už tą, kuris veda link pralaimėjimo. Tai kaip paaiškinti tai, kad kompiuteris žaidžia geriau už geriausią pasaulio šachmatininką (t. y. atlieka logiškesnius ėjimus)? Kaip galėjo kažkas suprogramuoti tokią logiką, kuri yra pranašesnė už bet kurio pasaulyje esančio žmogaus logiką? Iš kur atsirado ta papildoma logika?
  19. Patinka
    wi_lius gavo reakciją nuo ciroko Ar tai bad sectors?   
    Jei HDD galutinai pareis, tai garantuotai prarasi visą informaciją. Siūlyčiau pradėt darytis atsargines kopijas.
  20. Patinka
    wi_lius gavo reakciją nuo Valdas3 Loginis mąstymas. Išmokstamas ar gimstama jau su juo?   
    Labai drąsu sakyti, kad programavimas visiškai nesusijęs su logika. Yra net atskira logikos šaka – skaitmeninė logika, kuri ir apima tokią logiką, kurią gali vykdyti kompiuteryje (Wikipedia, Computational logic). Programavimas yra įrankis vykdyti skaitmeninę logiką kompiuteryje ir kartu programavimas sukuria poreikį skaitmeninei logikai. Jei nebūtų programavimo, nereikėtų ir skaitmeninės logikos, nes žmogui paprasčiau suvokti matematinę ar kitas logikos rūšis.
     
    Ir šiaip, dabar pasaulyje pilna kompiuterių, kurie kažką analizuoja. Tai vadinama mašininiu mokymusi (angl. machine learning), kai aprašius modelį ir padavus kompiuteriui daug duomenų jis juos išanalizuoja ir randa dėsningumus. Žinoma, galima sakyti, kad va, žmogus vis tiek turi aprašyti tą modelį… Tačiau lygiai taip pat galima pasakyti, kad tu ar bet kas kitas nemoka kalbėti, nes kalbi ne nuo gimimo, o buvai išmokytas kitų, kaip reikia kalbėti.
     
    Pakalbėkim apie šachmatus. Turbūt galima drąsiai teigti, kad ėjimas, kuris labiau veda link pergalės, yra logiškesnis už tą, kuris veda link pralaimėjimo. Tai kaip paaiškinti tai, kad kompiuteris žaidžia geriau už geriausią pasaulio šachmatininką (t. y. atlieka logiškesnius ėjimus)? Kaip galėjo kažkas suprogramuoti tokią logiką, kuri yra pranašesnė už bet kurio pasaulyje esančio žmogaus logiką? Iš kur atsirado ta papildoma logika?
  21. Patinka
    wi_lius gavo reakciją nuo Mykolas Loginė matematinė užduotis   
    Tarkim, darbininko darbo sparta x (t. y. kurią viso darbo dalį vienas darbinikas atlieka per valandą). Darbininkų skaičius n, darbo valandų skaičius h, visas darbas lygus vienetui.
     
    Darbo spartą padauginus iš darbininkų skaičiaus ir darbo laiko gauname atlikto darbo kiekį (visais atvejais darbas atliktas pilnai, todėl dešinė pusė lygi 1).
     
    Lygčių sistema
     

    x * n * 14*h = 1; x * (n + 4) * 10*(h+1) = 1; x * (n + 4 + 6) * 7*(h+1+1) = 1;
     
    Rezultatas: https://www.wolframalpha.com/input/?i=solve+x+*+n+*+14*h+%3D+1,+x+*+%28n+%2B+4%29+*+10*%28h%2B1%29+%3D+1,+x+*+%28n+%2B+4+%2B+6%29+*+7*%28h%2B1%2B1%29+%3D+1
  22. Patinka
    wi_lius gavo reakciją nuo Valdas3 Loginis mąstymas. Išmokstamas ar gimstama jau su juo?   
    Labai drąsu sakyti, kad programavimas visiškai nesusijęs su logika. Yra net atskira logikos šaka – skaitmeninė logika, kuri ir apima tokią logiką, kurią gali vykdyti kompiuteryje (Wikipedia, Computational logic). Programavimas yra įrankis vykdyti skaitmeninę logiką kompiuteryje ir kartu programavimas sukuria poreikį skaitmeninei logikai. Jei nebūtų programavimo, nereikėtų ir skaitmeninės logikos, nes žmogui paprasčiau suvokti matematinę ar kitas logikos rūšis.
     
    Ir šiaip, dabar pasaulyje pilna kompiuterių, kurie kažką analizuoja. Tai vadinama mašininiu mokymusi (angl. machine learning), kai aprašius modelį ir padavus kompiuteriui daug duomenų jis juos išanalizuoja ir randa dėsningumus. Žinoma, galima sakyti, kad va, žmogus vis tiek turi aprašyti tą modelį… Tačiau lygiai taip pat galima pasakyti, kad tu ar bet kas kitas nemoka kalbėti, nes kalbi ne nuo gimimo, o buvai išmokytas kitų, kaip reikia kalbėti.
     
    Pakalbėkim apie šachmatus. Turbūt galima drąsiai teigti, kad ėjimas, kuris labiau veda link pergalės, yra logiškesnis už tą, kuris veda link pralaimėjimo. Tai kaip paaiškinti tai, kad kompiuteris žaidžia geriau už geriausią pasaulio šachmatininką (t. y. atlieka logiškesnius ėjimus)? Kaip galėjo kažkas suprogramuoti tokią logiką, kuri yra pranašesnė už bet kurio pasaulyje esančio žmogaus logiką? Iš kur atsirado ta papildoma logika?
  23. Patinka
    wi_lius gavo reakciją nuo ImprezaWRX Objektinio užduotis (didžiausias intervalas tarp žodžių)   
    Programa perskaito visus sakinius, bet dar failo pabaigos neaptiko. Tada bando paskutinį kartą, nieko neperskaito ir prieina failo pabaigą. Bet tu toliau vykdai tą ciklą ir atspausdini dar vieną tašką, nes sakinys, kurį bandei perskaityti, yra tuščias. Šitaip turėtum išvengti šios problemos:
     

    while (getline(in, str, dot)) { // patikrina failo stream'o būseną iškart po perskaitymo .. }
     
     
    Jeigu nori sužinoti, kiek yra tarpų tarp dviejų žodžių, tai paprasčiausia būtų susikaičiuoti, kiek tarpų yra nuo pradžios iki kiekvienio žodžio. Pavyzdžiui, jei sakinys atrodo taip:
     

    [kažkiek žodžių bei X tarpų] [žodis A] [kažkiek žodžių bei Y tarpų] [žodis B] [kažkiek žodžių ir bei Z tarpų].
    Nesunku pastebėti, kad nuo pradžios iki žodžio A yra X tarpų, o nuo pradžios iki žodžio B yra X+Y tarpų. Kad rastum tarpų skaičių tarp žodžių A ir B telieka atimti iš tarpų skaičiaus iki žodžio B tarpų skaičių iki žodžio A (t.y. (X+Y) - X = Y).
  24. Patinka
    wi_lius gavo reakciją nuo Valdas3 Loginis mąstymas. Išmokstamas ar gimstama jau su juo?   
    Labai drąsu sakyti, kad programavimas visiškai nesusijęs su logika. Yra net atskira logikos šaka – skaitmeninė logika, kuri ir apima tokią logiką, kurią gali vykdyti kompiuteryje (Wikipedia, Computational logic). Programavimas yra įrankis vykdyti skaitmeninę logiką kompiuteryje ir kartu programavimas sukuria poreikį skaitmeninei logikai. Jei nebūtų programavimo, nereikėtų ir skaitmeninės logikos, nes žmogui paprasčiau suvokti matematinę ar kitas logikos rūšis.
     
    Ir šiaip, dabar pasaulyje pilna kompiuterių, kurie kažką analizuoja. Tai vadinama mašininiu mokymusi (angl. machine learning), kai aprašius modelį ir padavus kompiuteriui daug duomenų jis juos išanalizuoja ir randa dėsningumus. Žinoma, galima sakyti, kad va, žmogus vis tiek turi aprašyti tą modelį… Tačiau lygiai taip pat galima pasakyti, kad tu ar bet kas kitas nemoka kalbėti, nes kalbi ne nuo gimimo, o buvai išmokytas kitų, kaip reikia kalbėti.
     
    Pakalbėkim apie šachmatus. Turbūt galima drąsiai teigti, kad ėjimas, kuris labiau veda link pergalės, yra logiškesnis už tą, kuris veda link pralaimėjimo. Tai kaip paaiškinti tai, kad kompiuteris žaidžia geriau už geriausią pasaulio šachmatininką (t. y. atlieka logiškesnius ėjimus)? Kaip galėjo kažkas suprogramuoti tokią logiką, kuri yra pranašesnė už bet kurio pasaulyje esančio žmogaus logiką? Iš kur atsirado ta papildoma logika?
  25. Patinka
    wi_lius gavo reakciją nuo Valdas3 Loginis mąstymas. Išmokstamas ar gimstama jau su juo?   
    Labai drąsu sakyti, kad programavimas visiškai nesusijęs su logika. Yra net atskira logikos šaka – skaitmeninė logika, kuri ir apima tokią logiką, kurią gali vykdyti kompiuteryje (Wikipedia, Computational logic). Programavimas yra įrankis vykdyti skaitmeninę logiką kompiuteryje ir kartu programavimas sukuria poreikį skaitmeninei logikai. Jei nebūtų programavimo, nereikėtų ir skaitmeninės logikos, nes žmogui paprasčiau suvokti matematinę ar kitas logikos rūšis.
     
    Ir šiaip, dabar pasaulyje pilna kompiuterių, kurie kažką analizuoja. Tai vadinama mašininiu mokymusi (angl. machine learning), kai aprašius modelį ir padavus kompiuteriui daug duomenų jis juos išanalizuoja ir randa dėsningumus. Žinoma, galima sakyti, kad va, žmogus vis tiek turi aprašyti tą modelį… Tačiau lygiai taip pat galima pasakyti, kad tu ar bet kas kitas nemoka kalbėti, nes kalbi ne nuo gimimo, o buvai išmokytas kitų, kaip reikia kalbėti.
     
    Pakalbėkim apie šachmatus. Turbūt galima drąsiai teigti, kad ėjimas, kuris labiau veda link pergalės, yra logiškesnis už tą, kuris veda link pralaimėjimo. Tai kaip paaiškinti tai, kad kompiuteris žaidžia geriau už geriausią pasaulio šachmatininką (t. y. atlieka logiškesnius ėjimus)? Kaip galėjo kažkas suprogramuoti tokią logiką, kuri yra pranašesnė už bet kurio pasaulyje esančio žmogaus logiką? Iš kur atsirado ta papildoma logika?
×
×
  • Pasirinkite naujai kuriamo turinio tipą...