Kažkada rašiau apie savo experience’ą susijusį su programavimu fizikos fak’e, labai jau didelės diskusijos kažkodėl tada kilo.
Šiandien kažkas linkomanijoj įmetė paketą su IT konspektais, tai labai įdomu pasidarė apžvelgt programavimo situaciją IT specialybėse, gal sakau reikalai pasitaisė per kelis metus. Radau šių autorių “mokomasias priemones”:
- A. Kynienė
- D. Lukšaitė
- Du nežinomi autoriai
Žodžiu, o aš galvojau, kad Blonskis yra blogai… Vien iš įvadų perliukų pririnkti galima atskirai knygai išleisti. Štai keletas geresnių:
C programavimo kalba, tai galinga programavimo kalba, vis labiau naudojama visame pasaulyje. Dabar ši kalba tai pagrindinė profesionalų programavimo kalba, kuri sėkmingai vartojama tiek sisteminės, tiek taikomosios įrangos kūrimui.
C – galinga programavimo kalba, yeah, right. Vis labiau naudojama, yeah right, dar labiau.
C – šiuolaikinė programavimo kalba.
C – galinga ir lanksti programavimo kalba. Gerai išvystyta aukšto lygio programavimo kalba.
Jei taip būtų rašyta ~1970, visai sutikčiau, ale ant viršelio parašyta 2004.
C kalba – tai aukšto lygio programavimo kalba, kuri leidžia panaudoti visus kompiuterio resursus kaip ir asembleris. Šiuo metu C kalba – yra sisteminių programuotojų kalba.
C – patogi kalba. Tai struktūrinė kalba, tačiau ji nėra labai griežta ir per daug nevaržo programuotojo.
Nu be abejo, juk nerašysi, kad tavo knygos topic’as yra nieko vertas.
Koks skirtumas tarp C ir C++? C++ – tai objektinis procedūrinės programavimo kalbos C poaibis
Toks vaizdas, kad nė vienas iš šių autorių nėra matęs tikro, šiuolaikinio C++.
Programavimas C++ kalba paremtas funkcijų naudojimu.
Čia ne tik kad pasakyta netiksliai, čia pasakyta iš esmės neteisingai.
Gerai, įvadų studentai ir taip dažniausiai neskaito, tai neesmė. Eikim prie esmės. Kai praeitą kartą rašiau šia tema, sulaukiau kritikos, kad esmė išmokyt programavimo logikos ir mano pastabos buvo neesminės, atseit nesvarbu įrankiai, svarbu mąstymas etc etc etc. Įdomu, ar išdrįs kas pasakyt, kad čia neesmė:
Skliausteliai po main ( ) nurodo, kad tai ne kintamasis, o funkcija. Šiuose skliaustuose gali būti nurodoma šios funkcijos grąžinama informacija. Kadangi nurodytoje programoje mūsų funkcija nieko neturi grąžinti, tai jie yra tušti.
Kažkodėl man n metų atrodė, kad tuose skliausteliuose rašomi funkcijos parametrai, o ne grąžinama reikšmė.
int num; – operatorius kintamojo tipui aprašyti arba kitaip, tai paprasčiausias raktinis žodis. printf (“Aš paprasta”); – išvedimo į ekraną operatorius.
Šio operatoriaus pagalba ekrane atspausdinama frazė: Aš paprasta.
Kažkodėl beveik visiems autoriams atrodo, kad viskas C kalboje yra operatoriai. Įdomu, ar jie dasigyveno iki tokio dalyko, kaip operatorių overloadinimas. Tada labai įdomu būtų pažiūrėt, kaip jie overloadina operatorių int arba printf.
Operatoriai C/C++ yra: * / + – ~ ! % () , . :: -> sizeof && || ir t.t. Apskritai, terminus naudot reikia tokius, kokius apibrėžia standartas, o tai bus daug bėdų nagrinėjant kompilerio outputą.
C++ kalboje dažnai tenka naudoti globaliuosius kintamuosius, kuriuos naudos keletas funkcijų.
Po tokio perliuko ieškojau, gal kur parašyta, kad tenka naudoti goto. Nors patys išstenėjo, kad C++ galbūt turi tokį dalyką, kaip klasės, bet po keletos chiapterių tas užsimiršo. Grįžtam prie senų gerų funkcijų ir lyg to dar būtų negana, naudojam globalius kintamuosius.
Apskritai tokių anti-patternų ten nors vežimais vežk, pvz., kalama į galvą, kad konstantas reikia aprašinėt su #define, raginama kuo daugiau naudoti makrosų tokiems sprendimams kaip max(a,b).
Tokius rimtesnius dalykus pastebėjau tik scrollindamas per tuos dokumentus, neabejoju, kad įsigilinus ten dar ne tiek būtų galima rasti. O vat tokių, kaip kiti išsireikštų, neesminių dalykų, kurie man atrodo tikrai neprideda aiškumo mokantis, ten mėtos ant kiekvieno kampo.
Klasikinis pavyzdys, randamas 99% lietuviškos C++ literatūros:
#include <iostream.h>
#include <math.h>
Nuo 1998 metų (beveik 10 metų praėjo), toks kodas oficialiai yra neteisingas ir neturi kompiliuotis. Pamėginau su nemokamu ir populiariu gcc, štai ką gavau:
In file included from D:/Code/Compilers/MingW/bin/../lib/gcc/mingw32/3.4.2/../..
/../../include/c++/3.4.2/backward/iostream.h:31,
from test.cpp:1:
D:/Code/Compilers/MingW/bin/../lib/gcc/mingw32/3.4.2/ ../../../../include/c++/3.4.2/ backward/backward_warning.h:32:2: warning: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, orinstead of the deprecated header <iostream.h>. To disable this warning use -Wno-deprecated.
Ir ką galvot vargšui studentui perrašius helloword.cpp ir tokį dalyką pamačius ?
C++ standartiniai headeriai neturi galūnės h, įsikalkit vieną kartą ble. Jau dešimt metų reikia rašyti <iostream>, <cmath>.
Žinoma, visi pagal defaultą naudoja Borland C++ Builder, arba dar geriau, Borland C. Kažkur net buvo pasiūlytų kompilerių sąrašas, kuriam puikavosi netgi toks dalykas kaip Microsoft Visual C. Žinau iš bendro išprusimo, kad toks kažkada buvo, bandžiau pagūglint, tai pavyko sužinoti, kad jis gyveno prieš 1992 metus.
Na o visiškas topas buvo kažkurios tais knygos gale pateiktas Windows programų kūrimo pradžiamokslis. O šiais laikais programos pasirodo kuriamos WinAPI’iu. Taigi, nors viešai skelbiama, kad mokoma esmės, o ne kažko konkretaus, nuklyst į 15 metų senumo API, kurio realiai niekas nebenaudoja ir kuris yra nepaprastai sunkus naudot, vis dėlto prireikė. Way to go.

Tai vat, apibendrinus, galiu tik pasakyt, kad situacija tikrai ne iš geriausių. Man iš vis įdomu, kas leidžia tokiems autoriams knygas rašyt ir kam kyla ranka jas rekomenduot ar tuo labiau iš jų dėstyti. Iš tokios knygos paskaitęs man atrodo ne tik kad nieko neišmoksi, bet ir sau žalos pasidarysi.
Vis dėlto, kadangi informatikos nestudijuoju (dėkui dievui), realios situacijos aišku nežinau. Neabejoju, kad yra iš normalių dėstytojų su normalia literatūra. Bet vien tokių “metodinių priemonių” ir visų Blonskio knygų egzistavimas sako, kad kažkas yra ne taip.
Komentarų: 15 ↓
Beda tame, kad lietuviai vietoj to kad paimtu kokia uzsenietiska n-tojo leidimo atslifuota knyga, ja bando rasyt patys, o raso panasiai kaip studentai kursinius ar bakalaurinius darbus: “pastraipa pavogiam is cia, kita is cia ir niekas nepastebės” :(
Kai aš KTU IF mokiausi, tai labai panašių dalykų ir dėstytojai sakė. Taip, buvo juokinga ir graudu tuo pačiu metu. Ypač graudu jei C++ destytojui atneši Stroustrupo “The C++ Programming Language” knygą, idant parodyt, kad operatorius delete[] iš tikro egzistuoja, o jis: “o čia patikima knyga? aš tokios nežinau”. Na ir nebėra ką pridurt tada.
Bėda tame, kad C++ dėstytojai niekada gyvenime nieko realaus nėra su C++ darę. Užtad visos žinios yra tai, kaip jie ką nors suprato iš kažkokios atsitiktinės knygos. Praktiškai tas pats galioja ir kitų kalbų dėstytojams. Ar bent jau taip man atrodė, kai aš studijavau — kad praktiškai visi programavimo / informatikos dėstytojai patys nieko realaus nėra gyvenime darę, išskyrus sėdėję univere visą laiką (ir jame jokių realių projektų nedarę). Tai iš kur tada jiems žinot?
…bet kartais būdavo visai fun su dėstytojais kariaut :)
Don Quixote
smagi dviprasmybė gavosi…: “toks dalykas kaip Microsoft Visual C gyveno prieš 1992 metus.” :)
dovanotam arkliui i dantis neziurima
yra ir pas mus tokiu geniju, VU. mif’e.. labiausiai megstamas tai tikriausiai dj gerbiamas chyras su savo dirbtiniu intelektu. Belieka tiketis, kad kai mokslas bus pilnai mokamas studentai tokiu bajeriu nebetoleruos :)
Apie MS Visual C, gal išvis nebuvo (ypač 1992 metais), o buvo MS Visual C++, ir dabar dar yra. Pamenu 1998 m. su MS Visual C++ neatsimenu kuria tik versija, studentai kompiliuodavo mif’e
http://en.wikipedia.org/wiki/Visual_C++
Tai Visual C++ kad yra čia savaime aišku. Tam pačiam straipsny gi parašyta:
The predecessor to Visual C++ was called Microsoft C/C++.
Kadangi pirma Visual C++ versija išleista 92, tai assuminu, kad Visual C gyveno dar anksčiau.
“The C++ Programming Language” knygą, idant parodyt, kad operatorius delete[] iš tikro egzistuoja, o jis: “o čia patikima knyga? aš tokios nežinau”
gal dar per trumpai studijuoju, bet tokių dėstytojų kol kas nespėjau nei pažint, nei apie juos išgirsti. Pas mus dėstytojai visada (bent jau pas kuriuos teko mokytis) pateikia tiek lietuviškos literatūros, tiek angliškos. Žinoma, universitetų bibliotekos neturi tiek lietuviškų knygų, kad visiems studentams duoti, tai ką jau šnekėti apie angliškas. Tačiau PDF dažniausiai galima rasti dėstytojo tinklalapyje. Tai kokios problemos. :) O ir ginčytis bei pasakyti, kad šitoj vietoj dėstytojau jūs klystate, jie tiesiog reikalauja to. :)
Hehe, ką tik smagiai su kolega padiskutavom perskaitę šitą Sauliaus straipsnį, prisiminė jis vieną MIF’o dėstytoją Golubevą, kuris vieną kartą gan smagiai išsireiškė:
„Kauniečiai labai norėjo knygą išleisti apie C++. Na, aš jiems sakiau to nedaryti, bet… Kaunas yra Kaunas…“
Sveiki,ash tai noriu kurti zaidimus PC
kalboje C++ ,tai kokia knyga patartumete skaityt,
jei Jablonskis neteisingai rasho?
Anglishkus skaitat,labai daug laiko atima,
skaityt,ishsiverst dar kokia nesamone nesigauna..
Tai ka daryt?
„Faina šiknė“, tas pats VU duoda: http://uosis.mif.vu.lt/~saulukas/oop2/oop2007src/1–1-hello/hello.cpp
Sauliau, visi klysta, o Tu vietoj kritikavimo geriau kurk wikipedijoj mokymo , bet Tu deja to nesugebi (manau), nes temoki kritikuoti.
Sauliau,
Tiesa, o pats dar rašei savo programoje: „#include
#include
#include “
Taigi sukritikavai ne tik kitus, bet ir pats save :DDD
Smagumėlis… Dar nukirpo tekstą…
Nu l. įdomu, ką aš savo programoj rašiau tokio ? :>
Klysti ir mokyti senienų iš principo skirtingi dalykai. Šiaip jau turėjau kažkada hobį rašyt į wikipedią, tik ne programavimo temom, nes ten yra kas ir taip normaliai parašo.
Nors straipsnis senas, bet nesusilaikysiu neikišęs savo trigrašio.
Jau kaip ir baiginėju aš mif’e studijas ir galiu pasakyti drasiai, univere niekas tavęs neišmokys programuoti šiuolaikinėmis aplinkomis, šiuolaikinėmis technologijomis.
Nėra universitete tiek resursų, kad tą daryti. Ir tai sakydamas aš turiu omeny visas prasmes, pradedant nusenusiais dėstytojais, baigiant įrangos trūkumu.
Todėl ir gaunasi taip, kad uversitete tau duoda pauostyti biški vieno biški kito, atšipina smegenis dar ant kokio nukaršusio brudo ir paleidžia nusivylusį į darbo rinką.
Taigi norint kažko talkovo išmokti reikia neršti internete, žiūrėti, kokiu specialistų ir kur reikia, ir atitinkamas knygas skaityti.
Palik komentarą