C ++

Úvod

Nie som programátor. Uvedomil som si to pred pár dňami. Je síce pekné, že zvládam algoritmy, mám silné logické a analytické myslenie a viem naprogramovať veľmi veľa vecí. Programoval som na Didaktiku M, programoval som v Basicu na PMD 85, v dosovskom QBasicu, v Pascale, Assembleri, C a napokon aj v C++ Builderi a PHP. Ale aj tak nie som programátor. Veci, ktoré viem sa ozajstný programátor naučí za týždeň. To čo ma mrzí (dúfam, že len v tejto chvíli) je to že neviem programovať objektovo. Nielen z frajeriny, ale preto, že to je v podstate základ. Tak som si otvoril jeden seriál o C++ z PC Revue, a už po pár stránkach som pochopil, že toho neviem viac - nielen objektový prístup k programovaniu. Začal som si to teda opakovať s pocitom, že za víkend to pochopím, ale chyba! C++ je tak neuveriteľne zložité (opäť dúfam, že len v tejto chvíli), že sa mi z toho už pár dní točí hlava (to preto lebo sa chcem naučiť neuveriteľne veľa za neuveriteľne krátku dobu...). A tak som sa rozhodol, že si to celé spoznámkujem.
Prišlo mi ako dobrý nápad dať to aj na web, lebo možno je v situácii ako ja viac ľudí, a tak si to budú môcť prečítať tiež. Ono keď som čítal ten seriál, a mnoho iných zdrojov na internete, tak sa mi zdalo, že to autori píšu poriadne komplikovane. A povedal som si, že je to možno len taká profesionálna deformácia, a teda že to čo im pripadá elementárne, je pre mňa vrchol komplexnosti (opäť pevne verím, že len v tejto chvíli... :) Takže, možno keď napíšem čosi ja z pohľadu lamy, tak to aj iné lamy pochopia ľahšie. V skutočnosti mám rád keď sú veci poriadne ľahké a fajne vysvetlené, a tak tu budem písať občas fakt ako pre mantakov :) Ale to je úmysel.
Bolo by super, keby som sa raz naučil aj iné jazyky, príp. technológie ako C++ (nie, nie preto že by som nemal doma čo robiť, preto, že keď to robí človek za peniaze tak za to dobre platia....) a potom si budem písať aj o nich, ale začnem zľahka. Ani neviem, koľko mi môj elán vydrží :)

Výstraha

A hneď je na mieste malá výstraha. Alebo vlastne celá sada výstrah...
  • Tieto poznámky sú určené pre mňa. Je pekné ak pomôžu dakomu inému, ale budem ich písať tak aby som ich pochopil najmä ja, ak sa k nim raz budem musieť vrátiť.
  • Nie som síce programátor, ale "programujem" už dlho. Teda úplne základné veci tu napísané nebudú.
  • Veľmi dôležité. Nie som programátor, a poznámky si budem písať, tak ako sa budem "učivo" učiť a tak ako ho pochopím ja. Je tu šanca, že ho pochopím zle :) a tým pádom tu budú popísané hlúposti. Treba na to dávať pozor. Aj ja si budem dávať pozor.
Proste celé to treba brať s rezervou, keď ste sa tu už dostali a čítate si to. Znova - sú to poznámky pre mňa, a dal som si ich na web lebo sa možno hodia aj niekomu inému.

Ešte raz niečo málo o mne

Tak a teraz, napíšem niečo málo o mne. Nie aby som sa pochválil čo všetko viem, ale práve naopak aby som ukázal, že napriek tomu čo všetko viem si myslím, že som lama. Nesnažím sa o nejakú prehnanú skromnosť, alebo sebakritiku, jednoducho to tak je. Proste darmo - treba sa učiť, kým sa dá.

Takže - narodil som sa dávno, to nie je podstatné.
K prvému počítaču - PMD 85 som sa dostal asi pred 17 rokmi. Naučil som sa vtedy základy tvorby programov v miestnom Basicu, ale bol to skôr len taký ľahký úvod do programovania. Krúžok sa volal počítače a programovať sa tam učilo len tak naoko - v skutočnosti som sa tam chodil hrávať.

Asi pred 15 rokmi som sa dostal k počítaču Didaktik M. Na ňom som začal programovať (opäť okrem hrania, samozrejme) v Didaktik M Basicu, a myslím, že mi to celkom šlo. Posilnil som si logické a analytické myslenie. "Naprogramoval" som aj pár jednoduchých textových hier. "Naprogramoval" je v úvodzovkách pretože sada IF, GOTO a príkazov na vypísanie, ešte nie je programom. Veľmi mierne som začal aj s assemblerom, ale to bolo skôr prepisovanie programov z manuálu, a snaha o pochopenie jednotlivých inštrukcií.

Asi pred 13 rokmi som sa dostal prvýkrát k PC o niečo neskôr aj k programovaciemu jazyku Pascal v rámci výuky na škole. Vzhľadom na moje predošlé programátorské schopnosti som nemal problém ho zvládnuť, a celý čas som patril medzi najlepších v ročníku.

Pred približne 11 rokmi som sa na škole (opäť v rámci výuky) oboznámil s assemblerom PMD 85. Nebolo prekvapením, že vďaka mojim "skúsenostiam" som bol opäť medzi najlepšími v triede.

Pred 9 rokmi som sa na technickej univerzite v Košiciach zoznámil s jazykom C. Keďže sme programovali v terminálovom prostredí unixu, k tomuto programovaniu som mal hneď od začiatku odpor. Prednášky som veľmi nenavštevoval, a tak bolo zvládnutie jazyka o niečo zložitejšie. Avšak počas skúškového obdobia som sa to rýchlo celé doučil, a s drobnými ťažkosťami som spravil skúšku za jedna. Opäť musím povedať, že som v rámci skúšky patril k lepšej polovici.

Približne v tom istom období som absolvoval ďalší semester programovania v assembleri 8086. Znova vďaka mojej iba občasnej návšteve prednášok, som s tým mal menšie ťažkosti, ale pri skúške som opäť patril medzi najlepších a dosiahol som známku 1. Absolvoval som ďalšie predmety spojené s programovaním, s najhoršou známkou 2.

Asi pred 7 rokmi som sa dostal k RAD nástrojom, konkrétne najprv k Optime a neskôr k Borland C++ Builder. Na nich som sa učil v škole základy objektovo orientovaného programovania, a z objektovo orientovaného programovania som dostal zápočet. Neskôr som z Košíc odišiel, ale len tak doma som sa v C++ ešte viac zdokonalil.

Pred 5 rokmi som opäť absolvoval semester programovania v C/C++, celý čas som patril opäť medzi najlepších v ročníku a nakoniec som (skôr z lenivosti ako nedostatku vedomostí) spravil skúšku za 2.

Pred 4 rokmi som sa v škole v rámci predmetu databázy dostal k systému Informix s SQL databázami, a naučil som sa tvoriť jednoduché dotazy, triggre a uložené procedúry v SQL. Zápočet som na prvý krát nedal (slabá návštevnosť prednášok :) ale nakoniec samozrejme, ako jeden z najlepších v skupine som skúšku spravil s prehľadom za 1.

V rámci predmetu automatizované systémy merania som programoval v asembleri 8051 (a ešte dákom inom divnom programe pre zbernice IMS2, ktorého meno už neviem :) a opäť nebolo veľkým prekvapením, že som spravil skúšku za 1.

Na predmete programovanie 2 som programoval v Microsoft Visual C++, a aj keď bol celý predmet úplne o ničom (nenáročný profesor) nedá mi pre úplnosť nespomenúť, že aj toto programovanie som spravil za 1.

Pred 3 rokmi som na predmete číslicové počítače dostal opäť možnosť programovať v asembleri 80386 a aj keď to bol predmet zabijak (pani L.G.) na konci som spravil zadania z asembleru nielen sebe ale asi 5 ďalším kamarátom, a skúšku som spravil za 1.

V tomto istom období som na predmete operačná analýza programoval pár zadaní (znova nie len sebe, ale aj iným spolužiakom) v C++ Builderi, ktoré boli výborne ohodnotené a konečná známka z predmetu (aj keď sa netýkal priamo programovania) znova 1.

Popri tom som spravil pár programov v C++ Builderi, či už do školy, alebo len tak pre seba (pár z nich nájdete v sekcii download)

Pred dvoma rokmi som začal aktívne pracovať na svojej diplomovej práci (programátorská téma). Pracoval som v assembleri, C (konverzia C kódu do assemblera v Keili), a samozrejme C++ Builderi. Doplnil som svoje programátorské techniky o znalosť algoritmov umelej inteligencie, a implementoval som do úlohy v podstate obe úlohy - genetické algoritmy aj expertné systémy. Diplomovú prácu som obhájil bez akýchkoľvek problémov za 1. Dokonca som s ňou bol na súťaži ŠVOČ a získal fajn druhé miesto.

Posledný pol rok programujem, len tak keď potrebujem niečo pre seba, začal som s PHP a ako vidieť na tejto stránke je to celkom v pohode začiatok.

Pred pár mesiacmi som zistil, že až tak dobrý nie som, a dnes alebo včera som si uvedomil, že vôbec neviem programovať, a rozhodol naučiť sa C++ poriadne, alebo aspoň o dosť lepšie ako ho viem teraz. Pri pohľade na množstvo moderných objektových programovacích jazykov používaných v súčasnosti, mám aj tak nepríjemný pocit, že dokonalé zvládnutie obyčajného C++ mojemu programátorskému sebavedomiu až tak veľmi nepridá. Nejak ale začať treba.

Programovanie ma "nebaví" práve, kvôli tomu, že ho viem tak slabo. Raz možno prejdem na nejaký úplne iný jazyk, alebo si začnem prehlbovať svoje znalosti v niečom inom (web, siete, photoshop...) a začnem si písať poznámky aj z toho. Uvidíme. To čo je isté v tejto chvíli je, že sa mám toho ešte veľa čo učiť...

Wray 2006