Proqramlaşdırmaya necə başladım və özümü necə inkişaf elətdirdim?
Bu postun ingiliscə tərcüməsi də vardır.
Giriş
2015ci ildə ADA univeristetində Komputer Mühəndisliyi üzrə bakalavr təhsilimə başlamışam. Mənim vaxtımda biz ilk programming kursuna Java ilə start verirdik. Professorum kodlarla “oynamağın”, praktika etməyin vacib olduğunu dəfələrlə vurğulasa da, buna əhəmiyyət vermirdim və buna görə də bəzi konseptləri tam anlamırdım. Nəzəriyyədə hər şeyi anlasam da, tətbiq etməyə gəldikdə necə irəliləmək lazım olduğunu bilmədiyim üçün çox tərəddüd edirdim.
İkinci semestrdə C-ni başqa bir professordan götürdüm və onun kurrikulumu eolymp-ə əsaslanırdı (həmçinin o bu platformun qurucularından biri idi): bizə mövzunu izah edər, və həll etməyimiz üçün öz websaytından məsələlər bölüşərdi. Ancaq kiçik bir problem var idi: bu kifayət deyildi, tapşırıqlar mənim üçün asan idi və onları çox tez bir zamanda həll edirdim. Daha çoxunu istəyirdim, amma əlbəttə ki, dərsi də sürətləndirə bilməzdim.
İnkişaf
Semestrin başlamağından bir neçə ay sonra mən eolymp-in hamıya açıq programming marafonu qabağıma çıxdı. Bu, hər həftə programming sualları paylaşılan “Qış Marafonu” idi və 2 liqada keçirilirdi: Junior və Senior liqaları. Mən hər həftə müxtəlif mövzulara aid 10-11 məsələ həll edirdim. Bu periodda nə zaman ilişsəm və ya problemi həll edə bilməsəm, professorum detallı izahlar verərək mənə dəstək olurdu. Nəticədə, bu marafon və professorumun köməyi ilə semestrın ortasında mən artıq semestr materialından da çoxunu mənimsəmişdim. Bunların hamısı universitetin məndən gözlədiyindən də çoxunu etdiyim üçün idi.
Novruz ərəfəsində yaxınlaşan ACM ICPC yarışına hazırlıq üçün təlim kampının (düşərgəsinin) təşkil olunacağını öyrəndim. Mənim C professorum da burada mentor olacağı üçün 6 nəfər (2 qrup) ADA tələbəsinin də kampa qoşulmasına icazə verilirdi. Hər kəs Novruz tətilində dincələrkən, mən hər gün 9.00-18.00 arası bu kampa getdim. Baxmayaraq ki, mövzular mənim üçün çox mürəkkəb idi, professorumuz bizə bu alqorirmlərin daha az kompleks versiyalarını başa salırdı. İnanıram ki, məhz bu hissədə mən artıq proqramlaşdırmaya bağlandım.
Kulminasiya nöqtəsi
Semestrın sonunda universitet komandaları üçün ölkə miqyasında yarış keçirildi. Hər universitetin top komandaların ACM ICPC regional yarışında iştirakı sponsorlaşdırılacaqdı. Bizim universitetin digər komandaların iştirakçılarının senior olduğu yarışa biz 1ci kurs tələbələri olaraq qatılmışdıq. Baxmayaraq ki, 2 problemi həll etdikdən sonra ilişmişdik, geri dönüş edərək son 10 dəqiqədə daha 2sini də həll edib 8ci yeri qazandıq (universitet üzrə 3cü yer). Düzdür bu çox böyük nailiyyət deyildi, amma inanıram ki ortaya yaxşı iş çıxarmışdıq. Hətta universitet Gürcüstanda keçiriləcək növbəti yarış üçün bizə sponsorluq etdi. Bundan sonra mən mütəmadi olaraq DSA məsələləri həll etməyə və ACM ICPC yarışlarında iştirak etməyə başladım. Bu yolla, mən bacardığım qədər C-ni daha yaxşı öyrənə və praktikadan keçirə bilirdim, hansi ki, sonradan mənə embedded engineering karyerama başlamaqda çox kömək oldu.
Nəticə
Nəticə olaraq, inanıram ki, DSA məsələləri və yarışlar mənə mühəndis olmaqda çox kömək etdi. Onlar mənim həll metodlar axtarıb tapmağımı formalaşdırdı, yeni alqoritmlər və problemlərə yanaşma yolları öyrətdi. Bu həm də mənim üçün davamlı praktika etmək yolu idi, hansı ki, bu öyrənmə və yeni bacarıq inkişaf etdirmə prosesinin ən önəmli hissəsidir. Beləliklə, bu gündən etibarən, Eolymp, LeetCode, HackerRank, Codeforces kimi müxtəlif platformlarda yeni məsələlər və bunların izahlı həllini paylaşmağı planlayıram. Təkliflərə açığam, həllini və ya izahını istədiyiniz məsələni bildirə bilərsiniz, köməklik etməkdən məmnun olaram! Məsələ həllərində əsasən C istifadə edəcəm, lakin siz də hər hansı başqa bir dildə həlli bu repoya əlavə edə bilərsiniz!
Şərh edən Disqus