Sənədin İnternet ünvanı: http://www.soft.tusi.biz/ts_general/azl/kitabxana/article/art-5.htm
Proqramçı olmaq istəyirəm!
Proqramçı olmaq istəyirəm!
bu istəyi necə realizə etməli?
Etibar Axundov
Məqalə peşəkar proqramçı olmaq istəyənlərə metodik yardım məqsədilə yazılıb. SSRİ-nin dağılması, iqtisadi böhranlar və d. səbəblər Azərbaycanda proqşramçılıq sənətinə çox ciddi zərər vurdu. Peşəkar proqramçılar ya sənətlərini dəyişdilər(əsasən biznes sahəsinə), ya da ölkəni tərk etdilər. İndi İKT sahəsində mütəxəsislərin böyük əksəriyyəti mövcud sistemlərin istismarı ilə məşğuldurlar. Yeni kompleks sistemləri realizə edən, proqram təminatı bazarı üçün müasir və real  tələblərə cavab verən çox funksiyalı, iri həcmli sistemlər yarada biləcək mütəxəsisslərin sayı cüzidir. Mövcud peşə hazırlığı ilə bu problemi həll etmək qeyri-realdır. Ən inkişaf etmiş ölkələrdə bununla bağlı vəziyyət, dediklərimizin bariz sübutudur.

Dünyada heç bir ölkə peşəkar proqramçılara olan tələbatını 100% ödəyə bilməyib. Bu ölkələr digər ölkələrdən(əsasən iqtisadi, dövlətçilik və digər sahələrdə zəif olan) peşəkar proqramçıları və müəyyən fitri istedadı olan şəxsləri öz ölkələrinə dəvət etməklə, bu boşluğu doldurmağa səy göstərirlər. Proqramçı əməyinin yüksək qiymətləndirilməsi peşəkarların xaricə miqrasiya etməsinin ən əsas səbəblərindən biridir.

Bütün problemləri həll edən unversal proqram təminatları yoxdur. İstənilən sistemin istismarı zamanı ortaya çıxan problemləri həll etmək üçün yeni proqram təminatının yaradılmasına böyük ehtiyac əmələ gəlir. Ölkədəki iqtisadi inkişaf professional proqramçılara ciddi tələbatın əmələ gəlməsinə səbəb olmuşdur. Bu isə öz növbəsində bir çox gənclərdə proqramçı olmaq istəyi əmələ gətirmişdir. Amma Azərbaycan Proqramçı Məktəbinin olmaması(daha doğrusu baxımsızlıq ucbatından iflas etməsi), mütəxəsisslərin sayının azlığı  gənclərimizin qarşısında ciddi bir problemə çevrilmişdir. Gənc proqramçılara(beginer)yardım məqsədi üçün yazılmış bu məqalədə peşəkar proqramçı sənətinə yiyələnmək istəyənlərə zəruri metodik məsləhətlər verilir.

Proqramçı kimdir?

- Mən C++, JAVA, Visual Basic alqoritmik dillərini bilirəm!!!(?)
- Bu dillər vasitəsilə hansı sistemi yaratmısan?
- ...

(tələbərlə ilk söhbətlərdən)

Kompüterə yüklənmiş əməliyyat sistemləri, ofis proqramlarından ala-babət istifadə edən və özünü proqramçı adlandıranlar haqda bir söz demək istəmirəm. Burada hər şey aydındır. :-)

Alqoritmik dillərdən xəbərdar olan, bəzən proqram fraqmentlər yazan gənclərimizlə proqramçılıq haqda fikirlərimi bölüşmək istərdim. Bununla bağlı bəzi məsələlərə aydınlıq gətirmək yaxşı olardı:

  • Əvvəla, Alqoritmik dillər (C, Delphi, C++, C#, VB, Pascal, PHP, PERL və d.) proqram təminatı yaratmaq üçün nəzərdə tutulmuş vasitələrdir. Yəni proqramçı üçün alqoritmik dilin öyrənilməsi məqsəd deyil. Məqsəd qarşıya qoyulmuş sistem və ya problem məsələnin(ya məsələlərin) həllidir. Belə məsələlərin həlli zamanı proramçı bir və ya bir neçə alqoritmik dildən istifadə edə bilər. Uyğun Alqoritmik Dilin (AD) seçilməsi proqramçının peşəkarlıq göstəricilərindən biridir.
    Məsələn, fərz edək ki, biz zərgərik. Məqsədimiz sifariş olunmuş üzüyün hazırlanmasıdır. Aydındır ki, körükdən çıxardılmış üzüyün lazımi formaya salınması üçün çəkicə ehtiyac var. Alətlər qutusunda olan bir neçə çəkicdən bu işə ən yararlısın götürüb, işi tamamlayırıq. Əlbəttə bu işi görmək üçün ağır dəmirçi çəkicindən də istifadə edə bilərik. Amma bu zaman hazırladığımız üzük çox kobud olacaq. Deməli zərgərin peşəkarlığının ən əsas göstəricilərindən biri uyğun alətin seçilməsidir.

  • İkincisi, bütün tələbləri ödəyə biləcək AD mövcud deyil!!! Bu səbəbdən proqramçı, öz fəaliyyəti dövründə onlarla AD-lər öyrənməyə məcbur olur. Öyrənmə deyəndə AD-in funksiyalarını, siniflərini, obyektlərini şer kimi əzbərləmək nəzərdə tutulmur. 20 il bundan öncə DOS əməliyyat sistemində istifadə olunan Basic (QB, TurboB, GBasic və d.) AD-də 300 yaxın operator, funksiya mövcud idi. Bunlar o dövrdə qarşımızda duran məsələləri həll etmək üçün kifayət idi. Müasir AD obyektə yönəlmiş alqoritmik dillər olduğu üçün, proqramçının minlərlə operatorlardan, funksiyalardan, obyekt/siniflərdən istifadə etmək zəruriyyəti ortaya çıxıb. Amma bu qədər məlumatları əzbərləmək mümkün deyil. Proqramlaşdırma zamanı AD-lə bağlı zəruri məlumatları əldə etmək üçün AD-in Texniki Sənədlərinə/Kömək sisteminə(HELP) müraciət etmək lazımdır. Bu mənbələri araşdırmaq üçün əvvəlcə zəruri metodologiyanı öyrənmək lazımdır.

  • Üçüncüsü, kompleks sistemlərin yaradılması prosesində zəruri olan 5 mərhələnin (daha geniş bax: "PROQRAMLAŞDIRMA" məqaləsinə) üçüncüsü proqramlaşdırmadır. Buna qədər zəruri digər mərhələlər keçilməlidir.  Amma bu ayrıca bir mövzudur. Bu haqda daha geniş yazmağa ehtiyac var.

  • Dördüncüsü, proqramlaşdırmanı öyrənən zaman AD-nin seçilməsində aşağıdakı tələbləri nəzərə almaq lazımdır:

    • AD öz konstruksiyasına görə digərlərinə nisbətən sadə və anlaqlı olmalıdır.

    • Seçilmiş AD, real və sadə məsələlərin (məsələn ofis məsələlərinin) həllinə asanlıqla tətbiq etmək imkanına malik olmalıdır.

    • AD-in interpretatorunun olması vacib şərtlərdən biridir. Xüsusilə proqram kodlarının araşdırılması, sazlanması zamanı buna çox böyük ehtiyac var.

    • Seçilmiş AD-in Kömək Sistemi(HELP) vasitəsilə qarşıya çıxacaq problemləri həll etmək imkanı olmalıdır.

    • Seçilmiş AD-lə bağlı kifayət qədər və bütün səviyyələrdə (beginer&profi) samballı ədəbiyyatların olması zəruri şərtlərdən biridir. Bundan başqa bu kitablarda istifadə olunan kommentariyalı proqram kodlarının CD/DVD disklərin olması da yaxşı haldır. Bu, AD-i daha dərindən öyrənmək üçün gənc proqramçıya yardım olar.

    • İngilis və rus dillərindən heç olmazsa birini texniki terminlər səviyyəsində bilmək AD-in öyrənilməsində gənc proqramçıya yardımçı ola bilər. Çünkü, Azərbaycan dilində müasir tələblərə cavab verən ədəbiyyat yox dərəcəsindədir.

  • Beşincisi, riyazi təfəkkür proqramlaşdırmanın əsasını təşkil edir. Məhz proqramlaşdırmaya qədər hər hansı bir məsələnin əvvəlcə riyazi modeli/alqoritmi yaradılır. Sonra bu alqoritm AD-də realizə olunur. Riyazi təfəkkürü zəif olan insanın proqramçılıq peşəsinə yiyələnməsi qeyri-mümkündür.

  • Altıncısı, proqrpamçı sənətinə yiyələnmək istəyən şəxs böyük səbr və zəhmətsevər olmalıdır. Digər sənətlərdən fərqli olaraq proqramçı sənətini öyrənən şəxs "marafonçu" olmalıdır. Yəni peşəkar səviyyəsinə çatmaq üçün uzun müddətli və məqsədyönlü zəhmət çəkilməsi tələb olunur.

  • Yeddincisi, geniş dünyagörüşünün və mücərrəd fikirləşmə qabiliyyətinin olması proqramçılıq sənətində kifayət qədər zəruri  tələblərdən biridir. Faktiki bu xüsusiyyətlər proqrpamçılıqda hansı səviyyəyə qədər yüksəlmək imkanlarını müəyyən edir.

Hansı alqoritmik dilin əsasında proqramlaşdırma sənətini daha asan və kamil öyrənmək məqsədəuyğun olar?

Əldə olan təcrübə göstərir ki, yuxarıda göstərilən 4-cü bəndin şərtlərinə daha çox cavab verən AD-dən ən üstünü Excel ofis proqramının daxilində realizə olunmuş Visual Basic for Aplication (Excel&VBA)-dır. Aşağıdakılar bu fikirin doğruluğunu isbatlayır:

  1. Excel&VBA Visual Basic AD-nin altçoxluğu olub, demək olar ki, onun bütün funksional imkanlarını özündə cəmləyir

  2. Excel-in Kitab və Səhifələri, VBA-da  məlumatların saxlanılması, emal olunması, mühafizəsi və praktik olaraq istənilən praktik məsələni həll etməyə imkan verir.

  3. Proqram kodlarla, Excel-in Kitab və Səhifələri bir faylda saxlanması imkanı  proqramçıya əlavə imkanlar yaradır.

  4. VBA interpretator olmasına baxmayaraq, kompilyasiya olunmuş Excel proqraqramının alt-proqramlarından, yüzlərlə  obyekt siniflərindən(o cümlədən kitab, səhifə, xana, Excel-in kompilyasiya olunmuş modul/funksiyalarından və s)  geniş istifadə etmək imkanına malikdir.

  5. Excel&VBA “Edit and continue”, “Intelli Sense”, “Auto Complate” texnologiyalarından istifadə edir. Bu isə proqram kodunun tez və səhvsiz yığılması işinə yardım edir.

  6. Excel&VBA sistemi tam həcmli Texniki Yardım Sənədinə - HELP sisteminə malikdir.

  7. Müasir sistemlərdə geniş istifadə olunan Windows FORM sinifi tam realizə olunub.

  8. Proqram kodunun sazlanması üçün geniş imkanlar mövcuddur (Immediate Window, Locals Window, Watch Window, Call Stack)

  9. Excel&VBA proqram kodunu prosedur və ya sətr şəkilində addım-addım yerinə yetirilməsinə, çıxış nöqtələrinin qoyulmasına imkan verir (Debuger: Compile, Step Into, Step Over, Step Out, Run to Cursor, Add Watch, Edit Watch, Quick Watch, Toggle Breakpoint, Clear All Breakpoint, Set Next Statement, Show Next Statement imkanları)

  10. OLE texnologiyasının dəstəklənməsi.  Excel&VBA müxtəlif sistemlərə aid DLL fayllardan istifadə etmək imkanına malikdir.

  11. Excel&VBA obyektləri encapsulation(inkapsulyasiya), polymorphism(polimorfizm) xüsusiyyətlərinə malikdirlər. NET texnologiyasının inkişafı yaxın gələcəkdə inheritance (vərəsəlik) xüsusiyyətinin VBA-da realizasiyasına imkan verəcək.

  12. Excel&VBA-dan Visual Basic6 və Visual Basic.NET AD-nə keçid az zəhmət hesabına başa gələ bilər.

  13. Excel-də realizasiya olunmuş MACROS sistemi Excel-in bütün obyektləri üçün VBA kodunu yaratmağa imkan verir. Bu isə yaradılacaq kompleks sistemlərdə proqramlaşdırma mərhələsini daha sürətlə realizə etməyə imkan verməklə yanaşı, effektiv proqram kodlarının yazılmasına imkan verir.

  14. Ölkəmizdə geniş yayılmış MsOffice proqramları (Word, Excel, PowerPoint, Front Page) VBA-dan istifadəni maraqlı edir. Faktiki VBA vasitəsilə bu proqram sistemlərin imkanlarını dəfələrlə artırmaq olar.

  15. Və ən nəhayət, Excel&VBA yalnız 2 sistemi: Excel ofis proqramının və VBA AD-ni bilməklə, mürəkkəb problem məsələləri həll etməyə imkan verir.
    Amma digər AD-də vəziyyət belə deyil. Məsələn, WEB proramlaşdırmada proqramçı HTML, DHTML, JavaScript, PHP, MySQL, Qrafik, Audio/Video fayllarla işləyən sistemləri sistemlərini kamil öyrənəndən sonra WEB sistem yarada bilər.
    Peşəkar proqramçıların istifadə etdiyi Ci (C, C++, C#) ailəsi kifayət qədər mürəkkəb AD-olub, proqramlaşdırma sənətini öyrənməyə imkan vermir. Bu tip dillərdən artıq peşəkar proqramçı olandan sonra istifadə etmək məsləhətdir.

Excel&VBA-da zəruri mövzular(dərslər şəkilində)

Excel&VBA əsasən Excel faylı sənədi(kitabla) işlədiyi üçün, Excel ofis proqramının kamil öyrənilməsinə ehtiyac var. Burada əsasən aşağıdakı mövzulara diqqət etmək zəruridir:

  • Excel-in funksiyalarını öyrənmək
  • Makros yazan modul vasitəsilə müxtəlif Excel-in kompilyasiya edilmiş modullarının VBA kodunu əldə etmək
  • Excel kitab/səhifə/xana obyektlərinin mühafizəsi məsələləri

Aşağıdakı dərs proqramı isə BEGİNER səviyyəsində VBA-nı öyrənmək üçün yetərlidir:

I hissə: Giriş

  • Dərs 1: Proqramlaşdırma haqqında

  • Dərs 2: Excel haqqında. Makros.

  • Dərs 3: Excel VBA interfeysi.

II hissə: VBA – Visual Basic for Aplication

  • Dərs 4: VB redaktoru

  • Dərs 5: Verilənlərin tipləri, dəyişənlər və sabitlər

  • Dərs 6: İfadələr, operatorlar, prosedurlar, funksiyalar

  • Dərs 7: VBA-nın funksiyaları. Riyazi, Çevirmə, Tarix, Sətri

  • Dərs 8: Şaxələnmə. Şərti operatorlar.

  • Dərs 9: Dövrlər.

  • Dərs 10: Massivlər.

  • Dərs 11: Fayl sistemi və onunla iş

  • Dərs 12: Səhvlər və onların tapılması. Proqramın sazlandırılması.

  • Dərs 13: Windows Form.

  • Dərs 14-16: Kalkulyator proqramı

III hissə:  Excel sənədin VBA vasitəsilə idarə olunması

  • Dərs 17-18: Excel kitabı iş

  • Dərs 19-20: Excel səhifələri ilə iş

  • Dərs 21: “Ədədlərin yazıya keçirilməsi” proqramı: məsələnin araşdırlılması və texniki layihəni hazırlamaq

  • Dərs 22-23: “Ədədlərin yazıya keçirilməsi” proqramı: proqramlaşdırma, ekspremental tətbiq(Excel).

  • Dərs 24: Nəticə. Nələr öyrəndik? Peşəkar proqramçı olmaq üçün lazım olan zəruri təhsil haqqında.

Məsləhət görülən ədəbiyyat

  1. А.Васильев,... VBA в Office 2000. Учебный курс
  2. В. Кузьменко. Программирование на VBA 2002
  3. Джон Уокенбах. Профессиональное программирование на VBA в Excel 2002
  4. Л.Демидова,... Программирование в среде Visual Basic for Applications.
  5. Роман C.Использование макросов в Excel.
  6. Холи Р., Холи Д. Excel. Трюки. 100 профессиональных примеров.
  7. Лоран Абдулазар . Лучшие методики применения Excel в бизнесе
  8. Гарнаев А.Ю. Использование MS Excel и VBA в экономике и финансах
  9. Гельман В.Я. Решение математических задач средствами Excel.
  10. А. А. Гладкий, А. А. Чиртик. Excel. Трюки и эффекты pdf
  11. Дж. Мур, Л. Уэдерфорд, Г. Эппен, Ф. Гулд, Ч. Шмидт. Экономическое моделирование в Microsoft Excel.
  12. Златопольский Д.М. 1700 заданий по Microsoft Excel.