Kaip išmokti programuoti C/C++ -- The Ultimate Guide

Šita trumpa pamokėlė yra inspiruota eilės bandymų šiame forume [originaliai šis tekstas buvo pranešimas gamedev.lt forume] išmokyti žmones programuoti C kalba. Ji skirta žmonėms, pasišovusiems išmokti programuoti ir prisiklausiusiems klaidingų gandų, kad visas pasaulis programuoja C ir C yra jėgų jėga. (Sakydamas "C" aš turiu omenyje tiek C, tiek C++, tiek bet kokią jų kombinaciją).

Taigi, trumpas atsakymas: *nesimokykit* C! C yra žemo lygio, be galo sudėtinga kalba. Ja programuoti yra neefektyvu. Ji turi pointerius, makrosus-teksto-substitutorius, pačius neefektyviausius būdus atminčiai valdyti, neturi garbage collectoriaus, yra nevaldoma (unmanaged), kompiliuojama, kai kur nenuosekli, skatina programuotoją priprasti prie prasto programavimo stiliaus, trūkumų sąrašą galima būtų tęsti ir tęsti...

Bet jūs labai norite programuoti? Labai labai? Prašom! Bet, būkit mieli, tik ne C. Juk žmonija sukūrė tiek daug gerų programavimo kalbų. Kad ir, pavyzdžiui, žavingoji Wirth'o kalba-vaiduoklis Pascal. Kuo jis netinka? Jis skitras kaip tik mokymuisi. Nuo jo ir pradėkit. Sakot paskalis anachronizmas? Norit programuoti šiuolaikine "tikrų vyrų" kalba? Tuomet, go Python! Common Lisp, Lua, Ruby, Perl... Tiek daug gerų kalbų, o jūs renkatės tą bjaurią C, kurioje net stringai yra FALSE-terminated.

Įsisavinkit štai ką: jūsų tikslas -- Išmokti Programtuoti! Jūsų tikslas /nėra/ išmokti C. C jūs galbūt išmoksite tada, kai nepainiosite alternatyvos su iteracija, kai suvoksite rekursiją, įsikalsite į galvas duomenų tipo, funkcijos, klasės abstrakcijas. Kai pažiūrėję į programos kodą jūs matysite ne keywordų, buzzwordų ir prastai pavadintų kintamųjų krūvą, o *matysite* duomenų srautus, *nematysite* trivialių algoritmų, nes vietoj jų bus tik abstraktus plėmas "čia išfiltruojama X". Kai patikimai mokėsit programuoti ir kai mokėsit programuoti patikimai, kai nė viena iš keturių jums žinomų kalbų negalės padaryti to, ko jums reikia, tik tada pribręs reikalas mokytis C.

Ačiū už dėmesį ir sėkmės moksluose! Žiūrėk, nepraeis nė dešimt metų, o jau kai kurie iš jūsų galbūt bus šiek tiek pramokę C.

-rtfb

Valid HTML 4.01 Strict