Xeyr yəni sadə riyazi biliyi olan adamda yüksək səviyyədə bilə bilər proqramlaşdırmanı ancaq proqram qurmağa gələndə alqoritm qəlizləşir buna da biraz yüksək riyazi biliklər tələb olunur bu halda proqramçı ya riyaziyyatı bilməlidir, ya da riyaziyyatı bilən biri ilə alqoritm hazırlamalıdır əlbəttə birinci hal daha yaxşıdır söhbət kiçik proqramlardan gedir çox böyük proqramlarda çox riyaziyyatçı iştirak etdiyinə görə proqramçıya qalır alqiritmi koda çevirmək(bildiyimə görə belədir)
Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır
Belə deyək də sadə dildə.
Proqramlaşdırma dərin bir dənizdirsə, təsəvvür edin ki ancaq ən üstdə suya girmədən riyaziyyat lazım olmur. Ayağını suya qoydunmu artıq azacıq da olsa riyazi məntiq lazımdır, dərinə getdikcə daha çox lazımdır, bir neçə metr sonra isə artıq tam riyaziyyat qalır, başqa heç nə, yəni dərin yerdə proqramlaşdırma=riyaziyyat olur, nə qədər çox riyaziyyat biliyi varsa o qədər çox baş çıxarmaq olur.
Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır
Riyaziyyatın saheleri çoxdur ve heç de hamısı kompüter eelmi ile elaqeli deyil. Riyaziyyatın kompüter elmile elaqeli sahesi diskret riyaziyyat adlanır. Esas ededler nezeriyyesi, alqoritmler, qraflar nezeriyyesi, ağaclar ve diger saheleri bilmek teleb olunur. Kesilmez riyaziyyatın kompüter elmile ele de yaxın bağlılığı yoxdur.
Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır
Bəlkə də artıq qoyulan suala tam olaraq cavab tapmısınız, ancaq bir-iki kəlmə də mən öz fikrimi bildirmək istərdim.
Suala cavabı ilk öncə Siz proqramist dedikdə nəyi nəzərdə tutduğunuza bağlıdır. Mənim subyektiv fikrimə görə iki cür proqramçı var: koderlər və alqoritm üzərində çalışanlar. Koderlər dilin strukturunu bilir, proqram parçasına baxdıqda orada olan sintaksis səhvi görür, onu düzəldir və əgər yenə səhv çıxırsa, onu aradan qaldırmağa çalışır və s. Alqoritm üzərində çalışan proqramçılar koderlər kimi deyil, qoyulan problemi həll etmək üçün ilk öncə o saat proqramlaşdırma dilini açıb, kodun üzərinə “hücum” çəkmir. İlk öncə məsələnin tam olaraq başa düşməyə çalışır, onun riyazi modelini qurur, yarana biləcək xətaları beynindəcə analiz edir, problemi həll etməyin ən sadə və qısa zaman ərzində cavabını ortaya çıxara biləcək alqoritm üzərində düşünür, əgər model hər hansı yerdə “ilişmə” yaratmayacaqsa, bundan sonra koderin etdiyini etməyə başlayır və başlanğıcda düzgünə yaxın bir model qurduğuna görə koderin aldığı qədər “xəta” almır.
Sadə bir misal: Bir dostuma olduqca böyük ədədlərin (9^99 kimi) rəqəmləri cəmini hesablamaq lazım idi və Javanı bilən 2 koder dostuna, C# bilən bir koder dostuna deyir. Dostları biri-birindən asılı olmayaraq “…bu mümkün deyil, 2^64dən böyük ədədləri hesablamaq olmayacaq get kimdən istəyirsənsə, soruş…” tipli cavabları verir. Bir gün həmin şəxs riyaziyyatı bilən, proqramlaşdırmadan da az-çox başı çıxan bir dostuna da eyni sualı verir, həmin dostu nəinki 9^99 ədədini, 999^999 ədədini də (2997 rəqəmli bir ədəd) bir neçə saniyə ərzində hesablayan proqramı PASCALda yazır və verir. PASCAL hara, Java hara, C# hara…
Düzdür, bütün problemlər təkcə ədədlər üzərində olmur, bu sadəcə sadə bir misal idi. Məsələ burasındadır ki, Javanı da, C, C#, Delphi, Python da bilə bilərsən və heç şübhəsiz bütün bu dillərin hamısı Pascaldan üstün bir dildir və imkanları daha genişdir, dili bilmək hələ heç nəyi həll etmir. Eyni məsələyə koder bir cür həll tapır, “riyaziyyatçı-koder” tam başqa cür… Riyaziyyatı bilməsəniz də proqramçı ola bilərsiniz, amma əgər riyaziyyatı da bilsəniz…
Güclü proqramçı güclü riyaziyyatçı olmaya da bilər (ancaq güclü proqramçıdırsa, ən azı riyazi təfəkkürü var deməkdir), fəqət güclü riyaziyyatçı istərsə, hər zaman güclü proqramçı ola bilər. Bəziləri bu fikirlə razı olacaq, bəziləri yox, amma inanki bu belədir.
Buna oxşar sual bir dəfə müzakirə olunmuşdu, maraqlıdırsa, buradan baxa bilərsiniz.
Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır
Bircə sonuncu ilə qismən razı deyiləm. Güclü riyaziyyatçı heç də hər zaman güclü proqramçı ola bilməz 🙂 siz yəqin savad potensialı baxımdan dediniz, onunla razıyam, problem savadında deyil, o savad bes edir güclü proqramçı olmağa. Problem başqa faktorlardadir. Yanaşma tərzi, mühafizəkarlıq psixologiyası da rol oynayır burda. Təhsil illərindən yadımdadı elə alimlər vardı fundamental nəzəri riyazi elmlər üzrə olanlar, şəxsi söhbətlər əsnasında etiraf edirdilər ki bu proqramlaşdırmani başa düşə bilmirlər, filan filan şeylər istəsələr də çatmır onlara. Belə deyim də, nəzəri riyaziyyata möhkəm bağlı olanlarin bəzilərinə çətindir tətbiqi riyaziyyatın bir çox sahələrini dərk etmək. Proqramlaşdırmada mühəndislik işi var, əməli iş görmə, yaratma gərəyi var, bir çox nəzəri riyaziyyatçılar isə bu qabiliyyətden məhrumdur, problem bu olur olanda
Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır
Elvin, dediyinizlə razıyam və nə demək istədiyinizi də çox gözəl başa düşürəm. Bir riyaziyyatçı üçün ən sadə misalla desək, i:=i+1 bir qədər qəribə (mənasızlıq kimi) görünür, amma riyaziyyatçı dərk edəndə ki, “görülən iş” riyaziyyat müstəvisindən informatika müstəvisinə keçib,onda həmin riyaziyyatçını tutmaq yüngül desək, bir az müşkül olur. Mən həmin cümlədə “istərsə” sözünü elə-belə işlətməmişəm. 😉
Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır
Verilmiş cavablar və yazılan şərhlər (7 cavab var)
2
Xeyr yəni sadə riyazi biliyi olan adamda yüksək səviyyədə bilə bilər proqramlaşdırmanı ancaq proqram qurmağa gələndə alqoritm qəlizləşir buna da biraz yüksək riyazi biliklər tələb olunur bu halda proqramçı ya riyaziyyatı bilməlidir, ya da riyaziyyatı bilən biri ilə alqoritm hazırlamalıdır əlbəttə birinci hal daha yaxşıdır söhbət kiçik proqramlardan gedir çox böyük proqramlarda çox riyaziyyatçı iştirak etdiyinə görə proqramçıya qalır alqiritmi koda çevirmək(bildiyimə görə belədir)
4
Belə deyək də sadə dildə.
Proqramlaşdırma dərin bir dənizdirsə, təsəvvür edin ki ancaq ən üstdə suya girmədən riyaziyyat lazım olmur. Ayağını suya qoydunmu artıq azacıq da olsa riyazi məntiq lazımdır, dərinə getdikcə daha çox lazımdır, bir neçə metr sonra isə artıq tam riyaziyyat qalır, başqa heç nə, yəni dərin yerdə proqramlaşdırma=riyaziyyat olur, nə qədər çox riyaziyyat biliyi varsa o qədər çox baş çıxarmaq olur.
0
Riyaziyyatın saheleri çoxdur ve heç de hamısı kompüter eelmi ile elaqeli deyil. Riyaziyyatın kompüter elmile elaqeli sahesi diskret riyaziyyat adlanır. Esas ededler nezeriyyesi, alqoritmler, qraflar nezeriyyesi, ağaclar ve diger saheleri bilmek teleb olunur. Kesilmez riyaziyyatın kompüter elmile ele de yaxın bağlılığı yoxdur.
0
Kəsilməz riyaziyyatın kompüter elmi ilə birbaşa olmasa da körpü ilə böyük bir əlaqəsi var. Körpü də ədədi üsullar qoludur 🙂
1
Bəlkə də artıq qoyulan suala tam olaraq cavab tapmısınız, ancaq bir-iki kəlmə də mən öz fikrimi bildirmək istərdim.
Suala cavabı ilk öncə Siz proqramist dedikdə nəyi nəzərdə tutduğunuza bağlıdır. Mənim subyektiv fikrimə görə iki cür proqramçı var: koderlər və alqoritm üzərində çalışanlar. Koderlər dilin strukturunu bilir, proqram parçasına baxdıqda orada olan sintaksis səhvi görür, onu düzəldir və əgər yenə səhv çıxırsa, onu aradan qaldırmağa çalışır və s. Alqoritm üzərində çalışan proqramçılar koderlər kimi deyil, qoyulan problemi həll etmək üçün ilk öncə o saat proqramlaşdırma dilini açıb, kodun üzərinə “hücum” çəkmir. İlk öncə məsələnin tam olaraq başa düşməyə çalışır, onun riyazi modelini qurur, yarana biləcək xətaları beynindəcə analiz edir, problemi həll etməyin ən sadə və qısa zaman ərzində cavabını ortaya çıxara biləcək alqoritm üzərində düşünür, əgər model hər hansı yerdə “ilişmə” yaratmayacaqsa, bundan sonra koderin etdiyini etməyə başlayır və başlanğıcda düzgünə yaxın bir model qurduğuna görə koderin aldığı qədər “xəta” almır.
Sadə bir misal: Bir dostuma olduqca böyük ədədlərin (9^99 kimi) rəqəmləri cəmini hesablamaq lazım idi və Javanı bilən 2 koder dostuna, C# bilən bir koder dostuna deyir. Dostları biri-birindən asılı olmayaraq “…bu mümkün deyil, 2^64dən böyük ədədləri hesablamaq olmayacaq get kimdən istəyirsənsə, soruş…” tipli cavabları verir. Bir gün həmin şəxs riyaziyyatı bilən, proqramlaşdırmadan da az-çox başı çıxan bir dostuna da eyni sualı verir, həmin dostu nəinki 9^99 ədədini, 999^999 ədədini də (2997 rəqəmli bir ədəd) bir neçə saniyə ərzində hesablayan proqramı PASCALda yazır və verir. PASCAL hara, Java hara, C# hara…
Düzdür, bütün problemlər təkcə ədədlər üzərində olmur, bu sadəcə sadə bir misal idi. Məsələ burasındadır ki, Javanı da, C, C#, Delphi, Python da bilə bilərsən və heç şübhəsiz bütün bu dillərin hamısı Pascaldan üstün bir dildir və imkanları daha genişdir, dili bilmək hələ heç nəyi həll etmir. Eyni məsələyə koder bir cür həll tapır, “riyaziyyatçı-koder” tam başqa cür… Riyaziyyatı bilməsəniz də proqramçı ola bilərsiniz, amma əgər riyaziyyatı da bilsəniz…
Güclü proqramçı güclü riyaziyyatçı olmaya da bilər (ancaq güclü proqramçıdırsa, ən azı riyazi təfəkkürü var deməkdir), fəqət güclü riyaziyyatçı istərsə, hər zaman güclü proqramçı ola bilər. Bəziləri bu fikirlə razı olacaq, bəziləri yox, amma inanki bu belədir.
Buna oxşar sual bir dəfə müzakirə olunmuşdu, maraqlıdırsa, buradan baxa bilərsiniz.
1
Bircə sonuncu ilə qismən razı deyiləm. Güclü riyaziyyatçı heç də hər zaman güclü proqramçı ola bilməz 🙂 siz yəqin savad potensialı baxımdan dediniz, onunla razıyam, problem savadında deyil, o savad bes edir güclü proqramçı olmağa. Problem başqa faktorlardadir. Yanaşma tərzi, mühafizəkarlıq psixologiyası da rol oynayır burda. Təhsil illərindən yadımdadı elə alimlər vardı fundamental nəzəri riyazi elmlər üzrə olanlar, şəxsi söhbətlər əsnasında etiraf edirdilər ki bu proqramlaşdırmani başa düşə bilmirlər, filan filan şeylər istəsələr də çatmır onlara. Belə deyim də, nəzəri riyaziyyata möhkəm bağlı olanlarin bəzilərinə çətindir tətbiqi riyaziyyatın bir çox sahələrini dərk etmək. Proqramlaşdırmada mühəndislik işi var, əməli iş görmə, yaratma gərəyi var, bir çox nəzəri riyaziyyatçılar isə bu qabiliyyətden məhrumdur, problem bu olur olanda
1
Elvin, dediyinizlə razıyam və nə demək istədiyinizi də çox gözəl başa düşürəm. Bir riyaziyyatçı üçün ən sadə misalla desək, i:=i+1 bir qədər qəribə (mənasızlıq kimi) görünür, amma riyaziyyatçı dərk edəndə ki, “görülən iş” riyaziyyat müstəvisindən informatika müstəvisinə keçib,onda həmin riyaziyyatçını tutmaq yüngül desək, bir az müşkül olur. Mən həmin cümlədə “istərsə” sözünü elə-belə işlətməmişəm. 😉
Sual verin
Cavab verin