Bakı, Koroğlu Rəhimov, 70

Niyə C/C++ dillərini öyrənim?

b9a97bb10aa924ea0e2eba828ae32d39

Proqramlaşdırma dilini “tez bir zamanda pul qazanım” məqsədli öyrənmirsinizsə, C/C++ dillərini öyrənməyiniz ən doğru seçimdir. Demək olar ki, müasir dillərin 98%’i bu dillərin üzərində qurulub. C/C++ dillərini yaxşı öyrənən hər proqramçı müasir dilləri çox-çox asanlıqla qısa müddətdə öyrənib istifadə edirlər.
 
– Sual yarana bilər ki, “Birbaşa Java, Python vs. dilləri öyrənsəm yaxşı proqramçı ola bilməyəcəm?” Düzünü desək, birbaşa Objective-C, Java, C#, Ruby, PHP, ASP.NET vs. öyrənən proqramçılardan hansılar daha yaxşı səviyyəyə qalxmaq istəyirlərsə, mütləq C/C++ dillərinə üz tuturlar. Sosial şəbəkələrdə(Məsələn: LinkedIn) Development sahəsində “öz sözünü deyən” proqramçıları araşdırsanız hamısı C/C++ dillərini bildiyini görəcəksiniz. Hal hazırda xüsusi şirkətlər var ki, C(GNU) və C++(ISOCPP) dillərini daim yeniləyir, xətaları düzəldirlər. Hətta bu işdə onlara həm səhvlərin tapılmasında, həmdə mini-blogların yazılmasında dəstək belə olarsınız ki, bu da sizin community fəaliyyətinizi daha da önə çəkmiş olacaq. Bu isə sizə gələcəkdə xarici şirkətlər tərəfindən iş təklifinə səbəb olacaq qədər önəmli bir fəaliyyətdir.
 
Bir dostum sual vermişdi ki, “C dilini təkcə öyrənib iş tapa bilərəmmi bəs? Təkcə C dili.” Nə tək bir dil, nə də tək bir texnologiyanı öyrənməklə heç kim sizə iş verməyəcək. Buna əmin olun. İş axtararkən həmişə özünüzü iş verən şəxslərin yerinə qoyun. Düşünün siz bir layihə rəhbərisiniz. Çox dərinə getməyəcəm. İşə 3 nəfər müraciət edib. Birinci adam deyir ki, “mən təkcə C dilin bilirəm. Amma super bilirəm.” İkinci adam deyir ki, “məndə C/C++ bilirəm. Amma super olmasa da yaxşı bilirəm.” Üçüncü adam deyir ki, “mən C/C++ dilini super, Python dilini də normal bilirəm.” İnsafla və tam səmimi düşünsək, birinci adamın işə götürülmə ehtimalı yox dərəcəsindədir. Bu cür bir vəziyyətin yaranması isə IT sahəsindəki milyonlarla proqramçının olduğunu nəzərə alsaq, çox rast gəlinəcəyi mütləqdir.
WW29O9bb
Bir məsələyə də toxunum ki, fərq yoxdur hansı dil olması, istənilən dili öyrənərkən “normal bilirəm də” deyəcək səviyyədə öyrənməyin. Bir düşünün ki, “normal bilirəm də” deyənlərdən ibarət tanıdığınız bir proqramçı komandası var. Bir gün qarşılarına real məsələ qoyursunuz və məsələni həll etmələri müqabilində hər birinə istədikləri pulu verəcəyinizi vəd edirsiniz. Onlar ən yaxşı halda çox çətinlik çəkib copy&paste ilə intenetdən kodları götürüb biraz işləyən, biraz error verən, biraz da çökən proqram hazırlayacaqlar ki, bu da sizin üçün vaxt və maddiyyat itkisindən başqa heçnə olmayacaq. Məqsədim heç də kimisə tənqid deyil. Bu məsələyə toxunmaqda məqsədim proqramlaşdırma onsuzda Azərbaycanda hələ indi yavaş-yavaş dirçəlməyə doğru gedir. Gəlin bu sahəni bazar kimi yox, elm sahəsi kimi təsəvvür edək ki, reallıq təsəvvürlərimizdə heç olmasa yerin tapsın.
 
– Bir də belə sual verirlər ki, “Eşidirəm ki, C++ dilin öyrənəndə C dilini öyrənməyə gərək qalmır. Nə qədər düz fikirdi bu?” Məncə, də elədir. Amma 100% eynidir də demək tamamilə yanlışdır. Çünki bu dillər arasında incə mövzular var ki, onlar böyük bir fərq göstərir. Amma ümumilikdə tip, dəyişən, funskiya, direktivlər ilə işləmək C və C++ dillərində çox oxşardır. C++ dilini C’dən əsaslı şəkildə ayıran əsas fərq OYP(Obyekt Yönümlü Proqramlaşdırma)’dir. C++ dilini öyrəndikdən sonra C dilinə qayıtmaq bir yana, C++ dilini öyrənən zaman C dilinə tez-tez qayıtmalı olacaqsınız. Ona görə ilk önəcədən C dilini öyrənin ki, arası kəsilməz kiçik “bezdirici” çətinliklərlə qarşılaşmayasınız. Aşağıdakı şəkildə C və C++ dilləri çoxluqlar formasında göstərilərək bir-birinə nə qədər yaxın olduğu ifadə edilib. Üzərinə Shared yazılmış kəsişmə isə C və C++ dilinin ortaq özəllikləridir ki, birə-bir eyni özəlliklər həmin kəsişmədə yerləşir. Göy hissədə isə yanlız C++ dilinin gətirdiyi yeniliklər yerləşir. C və C++ dillərini öyrənərkən Linux üzərində öyrənməniz sizə ayrıca bir avantaj olacaq ki, onu da Linuxda öyrənməyi seçsəniz biləcəksiniz. Bir sözlə güclü proqramçı, necə deyərlər güclü xakker[:-)], lap belə “babat aytişnik” olmaq istəyirsinizsə, C dilindən başlayın bu sahəyə.
14717314_165220130604492_746710427169493896_n
– C/C++ dillərini özü öyrənməyi qərara alanlara tövsiyəm.
İlk öncə riyazi biliyinizin ən azından 11’ci sinif səviyyəsində olduğundan əmin olun. Bu mütləqdir. Ondan sonra isə hədəfiniz blox-sxem anlaşını qavramaq olsun. Öncədən qeyd edim ki, sadə anlayışdır. Üzərinə yaxşı düşsəniz 1 gün tam bəs edəcək. Blok-sxem(flowchart) öyrəndiyiniz müddətdə bütün blokların hansı işi gördüyünü öyrənmənizə gərək yoxdur. Əsas istifadə olunan başlanğıc, əməliyyat, giriş/çıxış, dövr, şərt, funksiya, çıxış bloklarını bilməniz yetərlidir ki, siz nümunələrdəki blok-sxemlərin iş prinsipini başa düşəsiniz. Blok-sxem nümunələrini öz dilimizdə Aydın Əliyevin İnformatika və Proqramlaşdırma kitabından da tapıb baxa bilərsiniz.
Blok-sxemi başa düşdükdən və blok-sxemlə sadə alqoritmləri qura bildikdən sonra C dilini öyrənməyə başlayın. İlk başlanğıc üçün Deitel qardaşlarının C How to Program, 8/e kitabından başlamanız faydalı olar. Hər mövzunu öyrəndikdən sonra mütləq bir gün öyrənməyə fasilə verin. Və həmin gün yanlız öyrəndiyiniz bütün mövzuları düşünün. İnternetdə bildiyiniz mövzular əhatəsində kodlara baxın. Ən əsası isə C dilini müəyyən qədər bildikdən sonra alqoritmik məsələləri həll etməyə cəhd göstərin. Sizin düşünmə tərzinizin formalaşmasına çox böyük təkan olacaq ki, bu da sizin irəli də proqramlaşdırma sahəsində öz yerinizi tutmanıza böyük yardımçı vasitədir.
Tutaq ki, siz bir alqoritmik məsələni həll edən kodu əldə etmisiniz. Kodu kompüterinizdə yazmısınız, kompilyasiya etmisiniz, düzgün işlədiyini yoxlamaq üçün bir neçə testlər vermisiniz və qısacası əminsiniz ki, əldə etdiyiniz kodun nəticəsi olan proqram düz işləyir. Onda ilk olaraq o kodu “silsəm birdə yaza bilməyəcəm” düşüncəsindən tam azad olana qədər analiz edin. Tam başa düşdükdən sonra kompüterinizdən kodu silin. Bir müddət sonra(9-15 gün) həmin alqoritmik məsələnin şərtini(Şərti oxuyun, kodu yox) oxuyun. Və başlayın o məsələni tam sərbəst şəkildə heç kimdən dəstək almadan həll edib kodlaşdırmağa. Bəlkə çox asanlıqla alınacaq onu kodlaşdırmaq. Bəlkə də dəfələrlə də cəhd etsəniz uğursuzluqla qarşılaşacaqsınız. Amma unutmayın ki, uğursuzluq məğlubiyyət deyil. Məğlubiyyət kompüteri söndürüb “əşi kimdən olsa da məndən kod yazan nədi e heç telefona proqram yazanda olmaz” deməkdir. Həyata problemlər, uğur hekayənizə uğursuzluqlar məna qatır. Hə, indi gələk əsas məsələyə. C dilini öyrənib bitirdiniz. İndi nəyi öyrənim düşünürsünüzsə, C++ dilini isə Herbert Schildtin C++: The Complete Reference, 4th Edition kitabından öyrənməyi tövsiyə edirəm. C++ dilin öyrənərkəndə yuxarıda qeyd edilənlərə əməl etsəniz daha uğurlu olarsınız.
 
Müəllif – Nahid Camallı
 

Sizə həftəsonu elektron dərslərinin nümunəsini göndərək?


Bəli
Xeyr

Zəhmət olmasa formu doldurun