Xətti proqramlaşdırma: nə üçündür, modellər, məhdudiyyətlər, tətbiqlər
Bu xətlərlə əhatə olunan bölgədəki bütün nöqtələr mümkün həllərdir, buna görə də sonsuz çoxları var. Mümkün bölgənin boş olduğu hallar istisna olmaqla, ortaya qoyulan problemin həlli yoxdur.
Proqramlaşdırma haqqında bilməli olduğunuz 38 yanlış fikir
İnformasiya texnologiyaları hələ də çoxlu stereotiplərlə, yanlış fikirlərlə doludur. Bunu ölkəmizdə daha da aydın hiss etmək olur. “Mən proqramçıyam” deyən kimi “Facebook-un parolunu qıra bilirsən?”, “komputerim donur, format edərsən?”, “televizorun pultunu düzəldərsən?!” və başqa bu kimi sualları ilə üzbəüz qalırsan. Bunlardan əlavə proqramlaşdırma sahəsinə yeni başlamaq istəyənlərə və ya İT-dən uzaq şəxslərə bu sahə “çox çətindir” deyirlər, müxtəlif fikirlərlə qorxudurlar. Buna görə də, ən çox yayılan yanlış fikirləri, mifləri bir yerə yığıb, nəyin doğru, nəyin yanlış olduğunu izah etməyə çalışacam.
Mündəricat
- Proqramlaşdırma haqqında ümumi miflər (12)
- Proqramlaşdırma öyrənməklə bağlı miflər (10)
- Proqramlaşdırmada məhdudiyyətlərlə bağlı miflər (3)
- Proqramçıların bacarıqları haqqında miflər (2)
- Proqramlaşdırma dilləri və alətləri haqqında miflər (6)
- Proqramçının karyera və qazancları haqqında miflər (5)
Proqramlaşdırma haqqında ümumi miflər
1. Çox ağıllı olmaq lazımdır
Bu ən çox yayılmış miflərdəndir, proqramlaşdırmaya yeni başlamaq istəyənlərin çoxunda qorxu yaradır. Buna görə də çoxları özlərini proqramçı olmaq üçün kifayət qədər ağıllı hesab etmir. Lakin ilk baxışda göründüyü kimi, proqramlaşdırma öyrənmək elə də çətin deyil.
Proqramçılar – komputer proqramları, veb saytlar, oyunlar və mobil tətbiqlər yaratmaq üçün ehtirasları olan adi insanlardır. Kod yazmağa başlamaq üçün dahi olmaq lazım deyil. İntizamın, motivasiyanın, maraq və həvəsin olması kifayətdir. Əgər yeniliklərə açıq və öyrəndiklərinizi praktikada tətbiq etməyə hazırsızsa, proqramlaşdırmanı rahat öyrənəcəksiniz.
Əlbəttə, yalnız çox ağıllı insanların həll edə biləcəyi həqiqətən çətin tapşırıqlar var. Lakin belə ağıllı olmaq məcbur deyil, istisnadır.
2. Riyaziyyatı yaxşı bilmək lazımdır
“Proqramlaşdırmanı öyrənmək, güclü riyazi biliklər tələb edir?”. CodeBit-ə müraciət edən şəxslərin əksəriyyəti məndən bu sualı soruşurlar. Lakin proqramlaşdırmada müvəffəqiyyətli olmaq, birbaşa riyazi savaddan asılı deyil. Yaxşı riyaziyyat biliyinin olması həmişə üstünlükdür, lakin başlamaq üçün məktəb bilikləri də kifayət edir.
Formal olaraq, proqramlaşdırma – komputer üçün əmrlərin, təlimatların yazılmasıdır. Bunu tortun hazırlanması üçün resept kimi fikirləşin. İnqridientlərin çəkisini ölçmək, kalorini hesablamaq, yumru və ya düzbucaqlı formaya salmaq, əməliyyatlar ardıcıllığını düzgün etmək lazımdır. Bunun üçün isə ali riyaziyyat, inteqral və ya mürəkkəb düsturlar istifadə etmirik.
Əlbəttə, riyaziyyatın çox böyük rol oynadığı sahələr var. Məsələn, oyunlarının yaradılması üçün ən azı minimal səviyyədə triqonometriya, matrislərlə işləmək və fizika bilmək lazımdır. Hazırda hamının daimi eşitdiyi süni intellekt, maşın öyrənməsi (bax: machine learning), verilənlər elmi (bax: data science) və onların alt bölmələri riyaziyyat tələb edən sahələrdəndir.
Bundan başqa, bir çox problemi daha asan həll etmək üçün, üçüncü tərəf kitabxanalar (third-party libraries) və pluginlər-dən istifadə edə bilərsiz. Riyaziyyat və ya fizika ilə bağlı əlavə məlumatlara ehtiyacınız varsa, xarici təlim, təhsil ala və ya kitablar oxuya bilərsiz.
3. Proqramlaşdırma “komputer xəstələri” üçündür
Kinolarda proqramçılar iri eynəklə bir neçə monitora baxan, uzun saç-saqqallı biri kimi təsvir edilir. Buna görə də insanlar proqramlaşdırmaya başlayanda eyni olacağını düşünürlər, qadınlar isə bu sahəyə elə də maraqlı olmurlar. Əslində isə bu sadəcə stereotipdir.
Proqramçılar bütün günü komputer arxasında oturmurlar, onların da əlavə hobbi və məşğuliyyətləri var. Onların arasında musiqiçilər, rəqqaslar, idmançılar var. Buna görə proqramçıların digər peşələrdəki işçilərdən fərqli olduğuna inanmaq üçün heç bir səbəb yoxdur.
Qeyd: “komputer xəstələri” söz birləşməsi üçün daha yaxşı təklifləri şərhlərdə yaza bilərsiz.
4. Proqramlaşdırma darıxdırıcıdır
İşə qarşı maraq, o işə göstərdiyin münasibətdən asılıdır. Proqramlaşdırma üzrə həvəsli olan insanlar onu darıxdırıcı və cansıxıcı saymırlar. Yoxsa nəyə görə insan illərlə eyni işlə məşğul olsun? Bu hər bir işə aiddir: hər kəs özünə maraqlı və ya sıxıcı olan işi özü təyin edir.
Proqramlaşdırmada sizə maraqlı olan sahəni seçə bilərsiz: mobil telefonlar üçün tətbiqlər yaza, müxtəlif tipli veb saytlar hazırlaya, əməliyyatları avtomatlaşdırmaq üçün qurğulara proqram təminatları yarada bilərsiz və s.
Proqramlaşdırma bacarıqları kənd təsərrüfatından başlamış, raket istehsalına qədər çox fərqli sahələrdə işləməyə imkan verir. Həmçinin, sizin hazırladığınız proqramların dünya üzrə milyonlarla istifadəçisinin olması mümkündür. Sizcə bu necə maraqsız ola bilər?!
5. İnsanlarla ünsiyyət qurmağı dayandıracaqsız
Digər çox yayılmış miflərdən biri də – proqramçıların günün böyük hissəsini komputer arxasında, insanlardan uzaq keçirməsidir. Əslində isə proqramçılar müxtəlif seminar, konfranslarda iştirak edir, tez-tez tanımadıqları insanlarla kiçik məclislər təşkil edərək texnologiya, maraqlı yeniliklər haqqında danışırlar. Digər peşə sahələrində belə hallar nadirən olur.
Mənim cavanlığımın misalında bunun şahidi ola bilərsiz =)
Baku GTUG (Google Technology User Group), Tural Bədirxanlı ilə görüş, International PHP Conference in Tbilisi, Baku Tech Talks, Django weekend, Seedstars, SUP, proqramçılarla ad günüm və hələ paylaşmadığım bir çox tədbirdən şəkillər.
Məni şəkildə tapın =)
6. Çoxlu kod əzbərləmək lazımdır
Xarici dildə normal başa düşmək üçün ən azı 2000 söz bilmək lazımdır. Proqramlaşdırma dillərinin əksəriyyətində isə sintaksis çox oxşayır və daimi istifadə etdikcə lazım olan 50-60 metod, funksiyanı avtomatik əzbərləmiş olursuz. Hətta yadda saxlaya bilməsəniz, internetdən və ya rəsmi dokumentasiyaya baxaraq xatırlaya bilərsiz. Ümumiyyətlə, hər kodu yadda saxlamaq lazım deyil. Onsuz da zamanla istifadə etmədiyiniz kodları unudacaqsız. Hətta tanınmış proqramçılar da, bəzən ən sadə alqoritmləri belə yadda saxlaya bilmədiklərini etiraf edirlər.
Kod yazmaq üçün istifadə olunan IDE, code editor-lar hazır şəkildə ipuclarını verirlər. Sizə sadəcə olaraq lazım olan kodu seçirsiz
7. Bütün alqoritmləri bilmək lazımdır
Alqoritmlər proqramlaşdırmanın əsasıdır. Bəziləri sadə, bəzilərini isə anlamaq üçün xüsusi bilik tələb edir. Ancaq onları əzbər bilməyə ehtiyac yoxdur. Proqramlaşdırmada bir tapşırığı müxtəlif alqoritmlərlə və fərqli variantlarda yazmaq mümkündür. Hər bir variantın isə üstün və mənfi cəhətləri olur.
Müasir proqramlaşdırmada daimi təkrarlanan əməliyyatları azaltmaq üçün yeni alətlər, kitabxanalar yaradılır. Bu da öz növbəsində proqram təminatlarının yaradılması müddətini azaldır, proqramçıları rutin işlərdən azad edir. Artıq proqramçılar həqiqətən lazım olan işlərlə məşğul olur, gündəlik istifadə olunan alqoritmlərə əlavə vaxt sərf etmirlər. Buna baxmayaraq, alqoritmik həllərin, bilklərin öyrənilməsi vacib məqamlardandır.
8. Çoxlu kod yazmağa səbrim çatmır
Professional proqramlar, on-yüz minlərlə sətir koddan ibarət olurlar. Bu isə yeni başlayanların bəzilərini qorxudur. Yuxarıda qeyd etdiyim kimi, proqramçılar bəzi işlər üçün adətən hazır həllərdən, eyni kod hissələrindən istifadə edirlər. Bunu xarici dil ilə müqayisə etsək: deyilənlərin 80%-ni anlamaq üçün 2000 söz (dildə olan 50.000 sözü bilməyə ehtiyac yoxdur) bilmək kifayətdir. Müxtəlif söz və ifadələri birləşdirərək hər kəslə danışa bilərsiniz. Proqramlaşdırmada da bənzər prinsipdir. Müəyyən kod həllərini bilməklə çoxlu sayda fərqli tapşırıqlara tətbiq edə bilərsiz.
Əlbəttə ki, yeni başlayarkən dəqiq işləyən böyük bir proqram yazmaq qeyri-mümkündür. Amma bacarıqlarınızı inkişaf etdirməklə bir gündə yazdığınız kodu artıq bir neçə saata yaza bilərsiz. Bir qədər praktika etdikdən sonra 10.000 sətir kod sizin üçün uşaq oyunu olacaq.
9. Güclü komputer lazımdır
Yeni başlayanlar proqramlaşdırma üçün güclü bir komputer və bir neçə monitorun lazım olduğunu düşünürlər. Bu belə deyil. Başlanğıc üçün adi komputer(2-3 RAM və i3 prosessor) də kifayət edir. Həmçinin, böyük ekrana və bir neçə monitora da ehtiyac yoxdur.
“Silikon Vadisi” serialından Gilfoyle və 7 monitoru
10. Kodları anlamaq çox çətindir
İlk baxışdan kodlar çox mürəkkəb və anlaşılmaz görünür. Onda Çin heroqliflərinə baxaq. Bilməyən şəxs onların içərisində yalnız işarələr görür, lakin dünyada 1,3 milyard insan asanlıqla Çin yazılarını oxuyur, yazır və anlaya bilir. Kodlar isə heroqliflərdən və digər xarici dillərdən daha sadədir. Bu dili eşitməyə və tələffüz etməyə ehtiyac yoxdur. Proqramlaşdırma dilləri baza üçün adətən əsas 50-100 metod, funksiyadan ibarət olur.
11. Veb sayt yaratdım, artıq “proqramistəm”
Veb saytların yaradılması dolayısı ilə HTML, CSS və ya ümumiyyətlə, proqramlaşdırma əsaslarını bilmək tələb etmir. Hazır şablon və sistemlərlə hər kəs sayt hazırlaya bilər. Lakin professional web proqramçılar müxtəlif texnologiyalar və proqramlaşdırma dillərini sərbəst şəkildə bilirlər. Web proqramlaşdırma kurslarının şüarlarına zidd olaraq 1-2 ay ərzində bu cür biliklərə sahib olmaq mümkün deyil, hələ digər mifik öyrənmə müddətlərini demirəm. CodeBit-də proqramlaşdırma və veb saytların yaradılmasının əsasları minimum 6 ay(3 ay frontend və 3 ay backend) davam edir.
HTML, CSS, PHP, JavaScript, verilənlər bazası, client-server texnologiyaları, SQL, Apache, NGINX, versiya nəzarət sistemləri web proqramçının gündəlik qarşılaşdığı texnologiyaların cəmi bir hissəsidir. Ancaq qorxmayın: bir az çalışqanlıq və həvəs göstərməklə funksional veb saytlar yaratmağı öyrənə bilərsiz.
12. Proqramçılar hər şeyi sıfırdan yazırlar
Əgər proqramçılar bütün kodları sıfırdan yazsaydılar, biz bu qədər müxtəlif və faydalı proqramlar görməzdik. Müasir proqramlar yüz minlərlə kod sətrindən ibarətdir və onların əksəriyyəti daha əvvəl digər proqramçılar tərəfindən yazılmışdır. Proqramçılar tez-tez üçüncü tərəf kitabxanalar və digər layihələr üçün yazdıqları kodu istifadə edirlər. Bu, oyunlar, əməliyyat sistemləri daxil olmaqla, böyük proqramların yaradılmasını asanlaşdırır və sürətləndirir.
Proqramlaşdırma öyrənməklə bağlı miflər
13. Kurs bitdikdən sonra öyrənmək də bitir
Kursda proqramlaşdırma dilini öyrənməklə iş bitmir. Dilin əsas sintaksisini öyrənmək çətin deyil, praktikada necə istifadə etmək çətindir. Öyrənmə prosesi heç vaxt dayanmır: öyrənməyi dayandırsanız, bir müddət sonra öyrəndiklərinizi də unutmuş olacaqsız. Bunun üçün öyrəndiklərinizi praktiki məşğələlərlə gücləndirmək lazımdır. Buna görə də CodeBit-də veb proqramlaşdırma dərsləri 85% praktikadan ibarətdir. Xarici dillərin öyrənilməsində olduğu kimi, uzunmüddətli fasilələr də öyrənmə nəticəsinə mənfi təsir göstərir.
14. Proqramçı olmaq üçün universitet bitirmək lazımdır
Bu mövzu həmişə müzakirə olunur və fərqli düşünənlər çoxdur. Kimin nə düşünməsindən asılı olmayaraq, proqramçı olmaq üçün universiteti bitirmək vacib deyil. Bunu öz tanışlarımdan, tələbələrimdən, özümün və dünya təcrübəsinə əsasən deyirəm. Universitet oxumağın ziyanı yoxdur, lakin VACİB deyil. Lazımlı məlumatların çoxu internetdə – online dərslərdə, kitablarda, forumlarda, tematik saytlarda var. Bu mənbələrdən istifadə etməklə universitetdə keçiləndən daha artıq biliyi, daha qısa müddətdə öyrənmək olar. Hətta evdən çıxmağa belə ehtiyacınız yoxdur. Əlbəttə ki, köhnə sistemin tərəfdarları “baza bilikləri və riyaziyyatı universitetdə öyrənmək daha yaxşıdır” deyəcəklər. Amma daha əvvəl qeyd etdiyim kimi, proqramlaşdırmaya başlamaq üçün inteqral hesablamağa ehtiyac yoxdur.
4 il sərf etmək əvəzinə, daha qısa müddətə kursda və ya fərdi müəllimlə nəzəriyyə və praktika yığaraq öyrənmə prosesini sürətləndirə bilərsiz. Şirkət və müəssisələr komandalarında diplomlu bir mütəxəssis görmək istəsə də, işini bilən təcrübəli amma diplomsuz mütəxəssisdən imtina etmirlər.
15. Əvvəlcə dilin sintaksisini öyrənmək lazımdır
Sintaksis – proqramlaşdırma dilinin qaydalarıdır. Əlbəttə ki, sintaksisi bilmək proqramlaşdırma dilinin bütün imkanlarından istifadə etməyə şərait yaradır, amma onu bütünlüklə bilmək vacib deyil. Dilin əsas konstruksiyaları sadə proqramlar yazmaq üçün kifayətdir. İstənilən zaman dil haqqında biliklərinizi artıra bilərsiniz. Təcrübə göstərir ki, illər boyu kod yazmaq da dilin bütün özəlliklərinizi biləcəyinizə zəmanət vermir. Proqramlaşdırma dilləri sürətli şəkildə inkişaf edir, yeni xüsusiyyətlər, funksionallıqlar əlavə olunur.
16. Proqramçı olmaq asandır
Proqramçı dedikdə peşəkar, işini bilən və bu işə ürəkdən həvəslə çalışan şəxsləri nəzərdə tuturam. Belə mütəxəssis olmaq üçün isə hər kəsin iradəsi, səbri, biliyi çatmaya bilər. Bir proqramlaşdırma dilini bilmək də “proqramçıyam” demək deyil. Proqramçı olmaq üçün bir çox: komanda ilə işləmək, tapşırıqların struktrunu hazırlamaq, dokumentasiya yazmaq, kodu test etmək və s. kimi bacarıqlar tələb edir. Əsl peşəkar proqramçı olmaq üçün vaxt, əzmkarlıq tələb edən bir çox texnologiya və metodikaları da bilmək lazımdır. İstənilən peşədə olduğu kimi davamiyyət, intizamlılıq, motivasiya sizin əsas köməkçiləriniz olacaq.
17. Öyrənmək çox vaxt tələb edir
Başlayandan 2-3 dərs sonra ilk kodlarınızı yaza bilərsiniz. Əlbəttə ki, bu kodlar ilə pul qazanmaq mümkün olmayacaq, amma sadə problemlərinizi həll edə bilərsiz. Aydındır ki, dərhal ağır, yuxarı səviyyəli proqramlar yaza bilməyəcəksiz, ancaq bunun üçün illər deyil, aylar ərzində öyrənə biləcəksiz. Proqramlaşdırma öyrənməyə çox vaxt və səy göstərsəniz, daha qısa vaxta uğur qazana bilərsiz. Universitetdəki kimi 4-6 il oxumağa vaxt sərf etməyə ehtiyac qalmayacaq.
18. Ən yaxşı proqramlaşdırma kursunu və ya dərsliyini axtarıram
Online minlərlə, offline isə Bakıda onlarla kurs var. Bu resursların hər biri fərqli şəkildə öyrədir və hər birinin öz metodikası var. Amma yaxşı kurs, müəllim və ya kitab yoxdur, özünüz üçün uyğun olan kurs, müəllim və ya kitab var. Bir neçə resursdan qeydiyyatdan keçin, kitablara baxın, video dərslər izləyin, offline proqramlaşdırma kursları haqqında məlumat əldə edin, sınaq dərslərinə yazılın və sonra sizə ən uyğun olan təlim formatını seçin. Yəqin ki, bir neçə yol olacaq: online kurslar + kitab və ya fərdi müəllim + xüsusi saytlarda problemlərin həlli və s. Əsas odur ki, daha az reklamlara inanıb, daha doğru seçim, daha çox cəhd və praktika edəsiz.
19. Proqramlaşdırma öyrənəcəyəm, qısa müddətdə tətbiq/sayt yaradacam və varlanacam
Varlı olmaq əla hədəfdir və proqramlaşdırma bu hədəfə çatmaqda kömək edə bilər. Amma qısa müddətə varlanacağınızı, pul qazanmağı unudun!. Bill Geyts, Mark Zuckerberg, Pavel Durov və ya Sergey Brin – bir gündə milyarder olmayıblar. Onlar illərlə təhsil alıb və çox çalışaraq hazırki vəziyyətə çatıblar.
2 həftəlik tədrisdən sonra mobil tətbiq və ya vebsayt hazırlayıb, varlanmaq deyə bir düstur, formul yoxdur. Proqramlaşdırma tez və asan pul qazanmaq istəyənlər üçün deyil. Buna baxmayaraq, proqramlaşdırma həm karyera inkişafı, həm də öz biznesinizi yaratmaq üçün böyük imkanlar açır.
20. Çətin proqramlaşdırma dili ilə öyrənməyə başlamaq lazımdır
Birinci sinifdə heç kəs sizə inteqral öyrətmir. Hətta vurma-bölməni belə, bir müddət sonra öyrədirlər. Proqramlaşdırmada da eynilə belədir. Motivasiyanı saxlamaq və qısa zamanda nəticə əldə etmək istəyirsinizsə, JavaScript kimi sadə dillərlə başlayın. Proqramlaşdırma üzrə baza bilikləri öyrənəndən sonra, digər dillərə asanlıqla keçə bilərsiz.
21. Bütün proqramlaşdırma kursları eynidır
Xeyr, bütün kurslar fərqlidir, hətta tədris planındakı dərslər eyni olsa da. Kurslarda dərslər müxtəlif tədris metodlarından və materiallarından istifadə edən müxtəlif müəllimlər tərəfindən tədris olunur. Pis və ya yaxşı kurs yoxdur, sadəcə sizin üçün doğru olan kursu seçməlisiniz. Bunun üçün isə kursları araşdırmaq, ətraflı məlumat toplamanız lazımdır.
CodeBit olaraq seçiminizi daha da dəqiqləşdirmək üçün ödənişsiz sınaq dərsinə yazılmağı təklif edirik.
22. Proqramçı olmaq üçün gündə 30 dəqiqə sərf etmək kifayətdir
Təəssüf ki, bu kifayət deyil, hətta gündə 2 saat belə azdır. Bu templə tam öyrənmə müddətiniz uzana və çətin proyektlər etmək üçün uyğun səviyyəyə çatmaq daha çox vaxt tələb edə bilər.
Hobbi deyil, işində peşəkar olmağı qarşınıza məqsəd qoymusunuzsa, proqramlaşdırmanı həyat tərzinizə çevirməlisiz. CodeBit-ə müraciət edənlər üçün gündəlik minimum 3 saat, ortalama isə 5-6 saat kod yazmağa vaxt ayırmağı tövsiyyə edirəm.
Sağolsun “Facebook Memories” keçmişdə yazdıqlarımızı xatırladır. Vaxtilə mənim gündəlik hədəfim minimum 5-6 saat kod yazmaq idi, imkan düşdükcə də 7-9 saat məşğul olmağa çalışırdım. Buna görə də bu facebook post-dan 1 ay sonra, 2012-ci il mart ayında 3-cü kurs tələbəsi kimi yarımştat (part-time) iş tapmışdım. Sıfırdan online dərslərlə 3 ay öyrənərək iş tapmaq yaxşı göstəricidir. Nəzərə alsaq ki, online öyrənmək kursda öyrənməkdən daha çətindir. Qısa müddətə nəticə əldə etmək üçün gərək çox çalışasınız. Qeyd: İngilis dili biliklərinizi və stereotipləri də qıraraq daimi inkişaf etdirməyə çalışın.
2012-ci il yazdığım Facebook postu.
İndi oxuyanda adama gülməli gəlir =)
Proqramlaşdırmada məhdudiyyətlərlə bağlı miflər
23. Proqramlaşdırma öyrənmək üçün yaşım çoxdur, artıq gecdir
Proqramlaşdırma öyrənmək üçün nə yaşlı, nə də gəncsiz. Bu yalnız proqramlaşdırmaya aid deyil. İstənilən sahəni öyrənmək və uğur qazanmaq yaşla məhdudlaşmır. Öyrənmək arzusu və bu bilikləri praktikada tətbiq etmək istəyi yaşdan asılı olmayan amildir. Hər yaşda xarici dil öyrənə biləcəyiniz kimi, hər yaşda proqramlaşdırmanı da öyrənə bilərsiniz.
CodeBit-ə müraciət etmiş ən yaşlı tələbənin 41 yaşı olub. Digərləri bu yaşda həyatdan ümidlərini itirəndə, digərləri yeni səhifə açmağa çalışır. Yaş bəhanələrindən mümkün qədər uzaq olmaq lazımdır. İstək və məqsəd olduqca istənilən sahədə, istənilən yaşda uğur əldə etmək mümkündür
24. O, proqramlaşdırma öyrənmək üçün çox balacadır, gəncdir
Çox vaxt valideynlər uşağın proqramlaşdırma öyrənməyə uyğun olma vaxtını yaşa görə təyin edirlər. Əlbəttə, uşaqların və yetkinlərin tədris metodikalarında fərqlər var, ancaq yaş proqramlaşdırmağa başlamağa mane olmamalıdır. Necə ki, uşaqlar az yaşdan şahmata, üzgüçülüyə, futbola başlayırsa, proqramlaşdırmada da bunu tətbiq etmək olar.
8-9 yaşından sonra uşaqlar proqramlaşdırmanın əsas konsepsiyalarını yaxşı başa düşürlər. Onlar üçün ilk proqramlaşdırma dili kimi Scratch daha uyğundur.
25. Proqramlaşdırma qadınlar üçün deyil
İT sahələri üzrə kişilər üstünlük təşkil etsə də, bu qadınların proqramlaşdırma öyrənməyinə mane olmamalıdır. Hətta dünyanın ilk proqramçısı Ada Lovelace qadın olub. Marissa Mayer – Google-un 21-ci işçisi və ilk qadın proqramçısı idi.
Sadəcə kişilər parfümeriya sahəsi ilə maraqlanmadığı kimi, qadınlar da İT sahəsinə maraq göstərmirlər. Bu peşənin mürəkkəbliyi ilə deyil, əksinə, sosial-iqtisadi təzyiq və qadınların şəxsi maraqları ilə bağlıdır. Bir qadının proqramçı olmaması üçün heç bir obyektiv səbəb yoxdur. Kişi və qadınlarda proqramlaşdırma üzrə seçim və karyera yolları tamamilə eynidır.
Proqramçıların bacarıqları haqqında miflər
26. Bütün proqramçılar hakerdir
Əksərən proqramçıları hakerlərlə müqayisə edirlər. Haker-cinayətkarlar resurslara icazəsiz giriş əldə etməyə, adi proqramçılar isə məlumatların təhlükəsizliyini müdafiə etməyə çalışırlar. Həmçinin, proqramçılar Facebook, Instagram hesablarını sındıran “hakerlər” deyil və bu işlə də məşğul olmurlar.
27. Bütün proqramçılar texnika təmir etməyi bacarmalıdır
Əgər siz proqramçısınızsa, qohumlarınız, qonşularınız və dostlarınız belə sizin telefon, komputer, televizor kimi cihazların təmirini bildiyinizi düşünəcəklər. Printerin sazlanması, komputer formatı və yenisinin alınması deyiləndə siz yada düşəcəksiz.
Proqramçıya – komputer də daxil olmaqla, texnikanı anlamaq məcbur deyil. Komputerə olan maraq proqramçıda sərt diskin dəyişdirilməsi, komputer formatı, proqramların komputerə quraşdırılması kimi bacarıqların yaranmasına səbəb olur, amma bu proqramçıların əsas işi deyil. Proqramçı kod yazaraq proqramları yaradır, texnika təmiri üzrə mütəxəssislər isə onları bərpa edir.
Proqramlaşdırma dilləri və alətləri haqqında miflər
28. Bir proqramlaşdırma dili digərindən daha yaxşıdır
Proqramçılar öz istifadə etdikləri proqramlaşdırma dilini tərifləməyi sevirlər. Buna görə də tez-tez həmin dilin digərindən daha yaxşı olduğunu iddia edirlər. Lakin hər dil müəyyən bir məqsədə xidmət edir və bir dilin başqa birindən yaxşı olduğunu iddia etmək doğru deyil. İtalyan və fransız dilinin hansının daha yaxşı olduğunu soruşsanız, cavab olduğunuz ölkəyə görə dəyişəcək. Proqramlaşdırmada da buna bənzər vəziyyətdir.
Yeni başlayanlar üçün daha rahat dillər var – məsələn, JavaScript. Amma bir qədər çətin Java, C# və ya C++ ilə də başlaya bilərsiniz. Bəzi dillər qurğu təminatı (hardware), bəziləri riyazi hesablamalar, bəziləri veb üçün daha yaxşıdır. Buna əsasən, vəziyyətdən asılı olaraq müəyyən bir proqramlaşdırma dilinin tapşırıq çərçivəsində daha yaxşı seçim olduğunu söyləmək olar. Adətən, tapşırıqların həlli üçün bir neçə dil istifadə edilir. Dillər isə birlikdə işləyərək bir-birlərini tamamlayırlar.
29. Bütün proqramlaşdırma dilləri eynidır
Adətən, bütün proqramlaşdırma dillərinin eyni problemi həll etdiyini düşünürlər. Ancaq bu həmişə belə deyil. Müxtəlif problemləri həll etmək üçün müxtəlif proqramlaşdırma dilləri istifadə olunur. Python tədris və məlumatların emalı üçün, PHP veb saytların yaradılması üçün, JavaScript veb saytlara dinamiklik qatmaq üçün, C++ performansın vacib olduğu qəliz proqram təminatları üçün, Swift iOS-a tətbiqlərin yazılması üçün istifadə olunur. PHP veb saytların yaradılması üçün ən populyar dildir. Gördüyünüz kimi, müxtəlif dillər müxtəlif tapşırıqları həll etmək üçün yararlıdır və peşəkar proqramçılar bunların bir neçəsini bilirlər.
30. Gənc proqramlaşdırma dillərini öyrənmək lazımdır
C dili 1972, C++ 1985, JavaScript və PHP isə 1995-ci ildə yaranıb. Ancaq bu onların köhnəlmiş və ya yeni yaranan dillərdən pis olması demək deyil. Proqramlaşdırma dilləri daim yenilənir, onlara yeni sintaktik konstruksiyalar əlavə olunur, kitabxanalar genişləndirilir. Bunu avtomobil kimi təsəvvür edin: Mercedes 92 il əvvəl (1926) yaradılmışdır, lakin hər il yeni modellər buraxılır.
Sadəcə olaraq, sizin tətbiq etmək istədiyiniz sahəyə uyğun dili öyrənmək lazımdır. Proqramlaşdırma öyrənmək üçün JavaScript, veb saytlar hazırlamaq üçün PHP, mobil tətbiqlər üçün Swift (iOS), Kotlin və ya Java (Android) öyrənə bilərsiz.
31. Əsl proqramçılar C/C++ ilə kod yazır
Əsl sürücülər də yalnız mexaniki sürət qutulu maşın sürürlər və həftədə bir dəfə qarajda avtomobilin mühərrikini söküb-yığırlar. Əlbəttə ki, bu belə deyil. “Əsl əjdaha” proqramçıları bəzi proqramlaşdırma dillərini lazımsız sayırlar. Məsələn, uzun müddət PHP-ni belə hesab edirdilər, indilərdə isə JavaScript-i server-side dil kimi zəif hesab edirlər. Buna baxmayaraq, PHP Facebook (HHVM), Vkontakte, Wikipedia və milyonlarla digər saytların yazıldığı güclü və məşhur bir dildir. Hazırda PHP 7.3.x versiyası ilə ən sürətli dillərdən biridir. Bəzi benchmark testlərə baxa bilərsiz: digər dillər ilə müqayisə və versiyaları arasında müqayisə.
Zəif və ya güclü dil yoxdur, xüsusi problemlərin həlli üçün daha uyğun dil var. Qalan hər söz boş danışıqdan başqa bir şey deyil.
32. HTML və CSS öyrənmişəm, artıq “proqramistəm”
Təəssüf ki, HTML və CSS proqramlaşdırma dilləri deyil. Amma bu onların web proqramlaşdırmada vacibliyinə təsir göstərmir. Bütün web saytların əsas görünüş və strukturu bu ikisinə bağlıdır.
Web proqramçı HTML və CSS-si ən azı baza səviyyəsində bilməlidir. Yeni web proqramlaşdırmaya başlayanlar üçün isə HTML və CSS öyrənmək rahatdır.
33. Professional proqramçı olmaq üçün bir proqramlaşdırma dili bilmək kifayətdir
Professional proqramçılar bir neçə dil və müxtəlif köməkçi texnologiyalar bilirlər. Bunlardan başqa, proqramçı yalnız proqramları yazmağı (kodlaşdırma) deyil, dokumentasiya və testlər yazma qabiliyyətinə, böyük tapşırıqları kiçik hissələrə bölmək, komanda işi və s. kimi çoxlu bacarıqlara malik olmalıdır. Kiçik bir veb saytı hazırlamaq üçün HTML, CSS, JavaScript, PHP və ya başqa bir server-side dili bilmək lazımdır. Bir tərəfdən, peşəkar proqramçıya bir dil bilməsi kifayət deyil. Digər tərəfdən isə, bir dili yaxşı biləndən sonra digər dilləri öyrənmək çox rahatdır.
Proqramçının karyera və qazancları haqqında miflər
34. Qısa müddətə çoxlu pul qazanacam
Peşəkar proqramçılar digər sahələrin işçilərinə görə adətən daha çox qazanırlar. Amma bu vəziyyət hər proqramlaşdırmaya başlayan üçün belə olacaq mənasına gəlmir. Aylıq ortalama 800-1200 AZN və daha artıq qazanmaq mümkündür, lakin bu dərhal baş vermir. Belə əmək haqqı üçün bir neçə il vaxt lazım ola bilər. Proqramçının əmək haqqı bacarıqları, təcrübə və portfelindən(portfolio) asılıdır, ancaq yeni başlayanda isə bunların heç biri olmur. Ona görə daha çox təcrübə qazanmaq üçün müxtəlif çətinlikli proyektlər etmək lazımdır.
35. Çox gec pul qazanacam
Yeni başlayanların əksəriyyəti yalnız professional olandan sonra pul qazana biləcəklərini düşünürlər. Ancaq bu tam olaraq belə deyil. Təcrübəli proqramçılar yaxşı qazanırlar, amma bu yeni başlayanların illərlə pul qazanmağa cəhd etməməsi anlamına da gəlmir.
Bəzən peşəkar proqramçılar üçün maraqsız, xırda freelance proyektlər olur. Belə fürsətlər yeni başlayanların özlərini sınamaq və ilk gəlirlərini qazanmaq üçün yaxşı təcrübədir. Zamanla bacarıqlarınız, təcrübəniz və portfolio-nuz böyüdükcə, daha mürəkkəb layihələr götürərək, daha çox pul qazana bilərsiniz. Alternativ variant kimi təcrübəçi (stajor) ya da kiçik proqramçı (junior) kimi iş tapıb, real layihələr üzərində işləyə və öyrənə bilərsiniz.
36. Qısa zamanda tez iş tapacam, çünki, proqramçılara təlabat yüksəkdir
Həqiqətən də yerli və xarici bazarda proqramçılara çox böyük tələbat var, lakin bu yeni başlayanlara tam olaraq aid deyil. Əksər şirkətlər minimum 2-3 il təcrübəsi olan proqramçılar axtarır. Buna görə variantlardan biri orta və ya böyük bir şirkətdə təcrübə keçmək və ya kiçik bir şirkətdə junior proqramçı olmaqdır.
Mən vaxtilə (2012-2013) bu yollardan keçmişəm. Lakin hazırda daha fərqli bir variantın tərəfdarıyam – özünüz və ya hansısa startup üçün müxtəlif tipli proyektlərdə çalışaraq yaxşı təcrübə toplamaq, sonra isə orta və ya yuxarı maaşa işlərə müraciət etmək. Hazırda texniki heyəti savadlı olan şirkətlər illərə görə deyil, görülən proyektlərin təcrübəsinə görə işçiləri qəbul edirlər.
37. Şirkətlər özləri məni tapacaq
Bir çox tələbə universitet və kurslardan məzun olarkən şirkətlərin onları tapacağına, yaxşı şərtlərlə işə qəbul ediləcəklərini gözləyirlər. Onlar gözləyən müddətdə digərləri biliklərini artırır, şirkətlərə CV göndərir, şəxsi veb saytlarını yaradır, GitHub layihələrinə qoşulurlar. GitHub – proqramçıların şəxsi mənbə kodlarını digər proqramçılarla paylaşdığı sosial şəbəkədir. Siz hər hansı bir layihəyə qoşula və onu təkmilləşdirə bilərsiniz. Şirkətlər bu cür kadrları yüksək qiymətləndirirlər.
Ən yaxşı universiteti və ya ən bahalı kursu bitirsəniz belə, iş axtarışında daim aktiv olmalısınız, yeni cəhdləri, axtarışları dayandırmamalısız.
38. Proqramlaşdırma bilikləri yalnız proqramçılar üçün lazımdır
Hazırki müasir dövrdə proqramlaşdırma haqqında minimum anlayışın olması belə çox vacibdir. Biznesdə, şəxsi işlərdə, qeyri-İT peşələrdə (marketoloq, satıcı və s.) proqramlaşdırma, ümumilikdə İT bilikərin olması həmişə xüsusi üstünlükdür. Bu işəqəbuldan, gündəlik şəxsi işlərin avtomatlaşdırılmasına kimi hər bir sahədə köməyinizə gələcək biliklər deməkdir.
Ümid edirəm ki, məqalə faydalı oldu. Əgər elədirsə, maraqlı olan dostlarınızla paylaşmağı unutmayın.
Xətti proqramlaşdırma: nə üçündür, modellər, məhdudiyyətlər, tətbiqlər
The xətti proqramlaşdırma funksiya və məhdudiyyətlər dəyişənlərdən xətti asılı olduğu müddətcə dəyişənləri məhdudiyyətlərə məruz qalan funksiyanı optimallaşdırmaq (tələb olunduqda maksimum və ya minimuma endirmək) üçün istifadə olunan riyazi üsuldur.
Ümumiyyətlə, optimallaşdırılacaq funksiya praktiki vəziyyəti modelləşdirir, məsələn, girişləri, əməyi və ya maşınları məhdud olan istehsalçının mənfəəti.
Şəkil 1. Mənfəəti optimallaşdırmaq üçün xətti proqramlaşdırma geniş istifadə olunur. Mənbə: Piqsels.
Ən sadə hallardan biri, yalnız iki dəyişəndən asılı olan, maksimuma çatdırılacaq xətti bir funksiyadır. qərar dəyişənləri. Bu formada ola bilər:
K ilə1 və k2 Sabit. Bu funksiya kimi tanınır Obyektiv funksiya. Əlbəttə ki, daha mürəkkəb olmaqla öyrənmək üçün ikidən çox dəyişənə layiq olan hallar var:
Məhdudiyyətlər də eyni dərəcədə xətti olan tənliklər və ya bərabərsizliklər sistemi ilə riyazi olaraq modelləşdirilmişdir. x və və.
Bu sistemin həllər toplusu adlanır mümkün həllər və ya mümkün nöqtələr. Mümkün məqamlar arasında məqsəd funksiyasını optimallaşdıran ən azı biri var.
Xətti proqramlaşdırma müstəqil olaraq amerikalı fizik və riyaziyyatçı Corc Dantzig (1914-2005) və rus riyaziyyatçısı və iqtisadçısı Leonid Kantoroviç (1912-1986) tərəfindən İkinci Dünya Müharibəsindən qısa müddət sonra işlənib hazırlanmışdır.
Kimi tanınan problemlərin aradan qaldırılması üsulu simpleks üsulu ABŞ Hərbi Hava Qüvvələri, Berkeley Universiteti və Stanford Universitetində çalışan Dantzigin fikiridir.
Şəkil 2. Riyaziyyatçılar George Dantzig (solda) və Leonid Kantoroviç (sağda). Mənbə: F. Zapata.
- 1 Xətti proqramlaşdırma modelləri
- 2 Model nümunəsi
- 3 Həll üsulları
- 3.1 – Qrafik və ya həndəsi üsul
- 3.2 – Dantzig simpleks üsulu
- 5.1 – Məşq 1
- 5.2 – Məşq 2
Xətti proqramlaşdırma modelləri
Praktik bir vəziyyətə uyğun olaraq xətti bir proqramlaşdırma modeli qurmaq üçün lazım olan elementlər bunlardır:
Məqsəd funksiyasında nəyə nail olmaq istədiyinizi müəyyənləşdirirsiniz. Məsələn, fərz edək ki, siz müəyyən məhsulların istehsalından maksimum qazanc əldə etmək istəyirsiniz. Sonra məhsulların satıldığı qiymətə uyğun olaraq “mənfəət” funksiyası qurulur.
Riyazi dildə bu funksiya toplama qeydindən istifadə edərək qısaldılmış şəkildə ifadə edilə bilər:
Bu tənlikdə ki əmsallar və xi qərar dəyişənləridir.
Qərar dəyişənləri idarə olunan sistemin elementləridir və dəyərləri müsbət real ədədlərdir. Təklif olunan nümunədə qərar dəyişənləri maksimum mənfəət əldə etmək üçün istehsal ediləcək hər bir məhsulun miqdarıdır.
Nəhayət, qərar dəyişənləri baxımından xətti tənliklər və ya bərabərsizliklər olan məhdudiyyətlərimiz var. Problemin məhdudiyyətlərini, məsələn, məlum olan və istehsalda mövcud olan xammal miqdarı ola bilər.
Məhdudiyyət növləri
M -dən başlayaraq M sayı məhdudiyyətləriniz ola bilər j = 1 qədər j = M. Riyazi olaraq məhdudiyyətlər üç növdür:
Birinci məhdudiyyət xətti tənlik növüdür və A dəyərinin olması deməkdirj, məlumdur ki, hörmət edilməlidir.
Qalan iki məhdudiyyət xətti bərabərsizliklərdir və bu o deməkdir ki, B qiymətlərij və C.jgöstərilən simvol ≥ (böyük və ya bərabər) olduqda və ya hörmət və ya aşılmadıqda, əgər simvol ≤ (az və ya bərabərdir) olduqda hörmət və ya aşmaq olar.
Model nümunəsi
Tətbiq sahələri biznes idarəçiliyindən qidalanmaya qədər çox müxtəlifdir, lakin metodu başa düşmək üçün aşağıda iki dəyişənli praktik vəziyyətin sadə modeli təklif olunur.
Yerli bir pasta iki ixtisasla tanınır: qara meşə tortu və sakripantin tortu.
Hazırlanması üçün yumurta və şəkər lazımdır. Qara meşə üçün 9 yumurta və 500 q şəkər, sacripantine üçün isə 8 yumurta və 800 q şəkər lazımdır. Müvafiq satış qiymətləri 8 və 10 dollardır.
Problem budur: Çörəkçilik, 10 kilo şəkər və 144 yumurta olduğunu bilə -bilə, qazancını artırmaq üçün hər növdən neçə tort hazırlamalıdır?
Qərar dəyişənləri
Qərar dəyişənləri “x” və “y” dir ki, bunlar real dəyərlər alır:
-x: qara meşə tortlarının sayı
-y: sacripantine tipli tortlar.
Məhdudiyyətlər
Məhdudiyyətlər tortların sayının müsbət kəmiyyət olması və onları hazırlamaq üçün məhdud miqdarda xammalın olması ilə verilir.
Buna görə də, riyazi formada bu məhdudiyyətlər aşağıdakı formanı alır:
- x ≥ 0
- və ≥0
- 9x + 8y ≤ 144
- 0,5 x + 0,8y ≤ 10
1 və 2 məhdudiyyətlər neqativ olmayan vəziyyət əvvəllər açıqlanmış və qaldırılan bütün bərabərsizliklər xəttidir. 3 və 4 -cü məhdudiyyətlərdə aşılmaması lazım olan dəyərlər var: 144 yumurta və 10 kq şəkər.
Obyektiv funksiya
Nəhayət, məqsəd funksiyası “x” miqdarda qara meşə tortu və “y” miqdarında saxripantin istehsal edərkən əldə edilən qazancdır. Qiyməti hazırlanan tortların sayına vuraraq və hər növ üçün əlavə etməklə qurulur. G (x, y) adlandıracağımız xətti funksiyadır:
Həll üsulları
Müxtəlif həll metodologiyaları arasında qrafik metodlar, sadə alqoritm və daxili nöqtə metodu var.
– Qrafik və ya həndəsi üsul
Əvvəlki bölmədə olduğu kimi iki dəyişkən bir probleminiz varsa, məhdudiyyətlər təyyarədəki çoxbucaqlı bir bölgəni təyin edir. xy, zəng edin mümkün region və ya canlılıq bölgəsi.
Şəkil 3. Optimallaşdırma probleminin həllinin tapıldığı mümkün bölgə. Mənbə: Wikimedia Commons.
Bu bölgə vasitəsilə qurulur məhdudiyyət xətləri, yalnız bərabərlik işarəsi ilə işləyən məhdudiyyətlərin bərabərsizliklərindən alınan xətlərdir.
Mənfəəti optimallaşdırmaq istəyən çörək zavodu vəziyyətində, məhdudiyyət xətləri aşağıdakılardır:
- x = 0
- y = 0
- 9x + 8y = 144
- 0.5 x + 0.8y = 10
Bu xətlərlə əhatə olunan bölgədəki bütün nöqtələr mümkün həllərdir, buna görə də sonsuz çoxları var. Mümkün bölgənin boş olduğu hallar istisna olmaqla, ortaya qoyulan problemin həlli yoxdur.
Xoşbəxtlikdən, pasta problemi üçün mümkün olan bölgə boş deyil, aşağıda var.
Şəkil 4. Xəmir probleminin mümkün bölgəsi. Qazancı 0 olan xətt mənşəyi kəsir. Mənbə: Geogebra ilə F. Zapata.
Optimal həll, əgər varsa, obyektiv funksiyanın köməyi ilə tapılır. Məsələn, maksimum G qazancını tapmağa çalışarkən, adlanan aşağıdakı xəttə sahibik iso-mənfəət xətti:
Bu xətlə, müəyyən bir G qazancını təmin edən bütün cütləri (x, y) əldə edirik, buna görə G -nin dəyərinə görə bir xətt ailəsi var, amma hamısı eyni yamacda -k1 / k2, paralel xətlərdir.
Optimal həll
İndi göstərilə bilər ki, xətti bir problemin optimal həlli həmişə mümkün bölgənin həddindən artıq nöqtəsi və ya zirvəsidir. Sonra:
Çözüm xətti, mənşəyindən ən uzaqdır və mümkün bölgə ilə ən az bir ortaq nöqtəyə malikdir.
Mənşəyə ən yaxın olan xəttin, mümkün bölgə ilə ümumi bir seqmenti varsa, sonsuz həllərin olduğu söylənilir. Bu hal, iso-mənfəət xəttinin yamacı bölgəni məhdudlaşdıran digər xətlərin hər hansı birinə bərabər olduqda baş verir.
Xəmirimiz üçün namizəd zirvələr A, B və C -dir.
– Dantzig simpleks üsulu
Qrafik və ya həndəsi üsul iki dəyişən üçün tətbiq olunur. Bununla belə, üç dəyişən olduqda daha mürəkkəbdir və daha çox sayda dəyişən üçün istifadə etmək mümkün deyil.
İki dəyişəndən çox problemi həll edərkən simpleks üsulu, məqsəd funksiyalarını optimallaşdırmaq üçün bir sıra alqoritmlərdən ibarətdir. Hesablamaları həyata keçirmək üçün tez-tez matrislər və sadə arifmetikadan istifadə olunur.
Simplex metodu, mümkün olan bir həll yolu seçmək və optimal olub olmadığını yoxlamaqla başlayır. Əgər belədirsə, biz artıq problemi həll etmişik, əgər belə deyilsə, optimallaşdırmaya daha yaxın bir həll yoluna davam edirik. Çözüm varsa, alqoritm bir neçə cəhddə tapır.
Tətbiqlər
Xətti və qeyri-xətti proqramlaşdırma, xərclərin azaldılması və mənfəətin artırılması baxımından ən yaxşı qərarların qəbul edilməsi üçün bir çox sahədə tətbiq olunur, bu da həmişə pul deyil, çünki onlar zamanla ölçülə bilər, məsələn, lazım olan vaxtı minimuma endirmək istəyirsinizsə bir sıra əməliyyatlar həyata keçirmək.
Budur bəzi sahələr:
-Marketinqdə müəyyən bir məhsulu reklam etmək üçün medianın (sosial şəbəkələr, televiziya, mətbuat və digərləri) ən yaxşı birləşməsini tapmaq üçün istifadə olunur.
-Bir şirkətin və ya fabrikin işçilərinə müvafiq tapşırıqların verilməsi və ya onlara iş qrafiki.
-Heyvandarlıq və quşçuluq sənayesində ən qidalı qida seçimində və ən aşağı qiymətə.
Həll edilmiş məşqlər
– Məşq 1
Əvvəlki bölmələrdə qaldırılmış xətti proqramlaşdırma modelini qrafik şəkildə həll edin.
Həll
Problemdə göstərilən məhdudiyyət sistemi ilə təyin olunan dəyərlər toplusunu qrafikləşdirmək lazımdır:
- x ≥ 0
- və ≥0
- 9x + 8y ≤ 144
- 0.5 x + 0.8y ≤ 10
1 və 2 bərabərsizliyi ilə verilən bölgə Kartezyen müstəvisinin birinci kadrına uyğundur. 3 və 4 -cü bərabərsizliklərə gəldikdə, məhdudiyyət xətlərini taparaq başlayırıq:
0.5 x + 0.8y = 10 → 5x + 8y = 100
Mümkün bölgə təpələri A, B, C və D nöqtələri olan dördbucaqlıdır.
Minimum mənfəət 0-dır, buna görə də 8x + 10y = 0 xətti aşağı hədddir və izo-mənfəət xətləri -8/10 = – 0.8 meylinə malikdir.
Bu dəyər digər məhdudiyyət xətlərinin yamaclarından fərqlənir və mümkün bölgə məhdudlaşdırıldığından unikal həll yolu mövcuddur.
Şəkil 5. Mümkün bölgəni və qeyd olunan bölgənin təpələrindən birində C həll nöqtəsini göstərən 1 -ci məşqin qrafik həlli. Mənbə: F. Zapata.
Bu həll, koordinatları A, B və ya C nöqtələrindən hər hansı birinin yanından keçən -0.8 yamac xəttinə uyğundur:
Optimal həll
Bu nöqtələrin hər biri üçün G dəyərini hesablayırıq:
– (11; 5.625): GTO = 8 x 11 + 10 x 5,625 = 144,25
– (0; 12,5): GB = 8 x 0 + 10 x 12.5 = 125
– (16, 0): G.C = 8 x 16 + 10 x 0 = 128
Ən yüksək gəlir 11 qara meşə tortu və 5625 sakripantin tortu istehsalında tapılıb. Bu həll proqram təminatı vasitəsilə tapılan həll ilə uyğun gəlir.
– Məşq 2
Xətti proqramlaşdırmada optimallaşdırma üçün Simplex alqoritmini özündə birləşdirən Excel və ya LibreOffice Calc kimi elektron tablolarda mövcud olan Solver funksiyasından istifadə edərək əvvəlki məşqin nəticəsini yoxlayın.
Həll
Şəkil 6. Libre Office Calc elektron cədvəli vasitəsi ilə 1 -ci məşqdəki həll detalları. Mənbə: F. Zapata.
Şəkil 7. Libre Office Calc elektron cədvəli vasitəsi ilə 1 -ci məşqdəki həll detalları. Mənbə: F. Zapata.
İstinadlar
- parlaq. Xətti Proqramlaşdırma. Brilliant.org saytından bərpa edildi.
- Eppen, G. 2000. İnzibati Elmdə Əməliyyat Araşdırmaları. 5 -ci. Nəşr. Prentice Hall.
- Haeussler, E. 1992. İdarəetmə və İqtisadiyyat üçün Riyaziyyat. 2 -ci. Nəşr. Qrup redaktoru Iberoamericana.
- Hiru.eus. Xətti proqramlaşdırma. Hiru.eus ünvanından bərpa edildi.
- Vikipediya Xətti proqramlaşdırma. Bərpa: es. wikipedia.org.
Proqnozlaşdırma və planlaşdırma arasındakı fərq
Videonuz: Он переоделся в джинсы вместо офисных брюк и его приняли за курьера. Если бы он знал что случится.
MəZmun
- Müqayisə qrafiki
- Proqnozlaşdırma tərifi
- Planlaşdırmanın tərifi
- Proqnozlaşdırma və planlaşdırma arasındakı əsas fərqlər
- Misal
- Nəticə
Proqnozlaşdırma, keçmiş və indiki performans və meyldən asılı olaraq, gələcəkdə baş verəcək bir hadisə haqqında bir proqnoz və ya proyeksiyadır. Əksinə planlaşdırma, adından da göründüyü kimi, gələcəkdə görüləcək işlər üçün planların hazırlanması prosesidir və bu da indiki performansa və gözləntilərə əsaslanır.
Planlaşdırma və proqnozlaşdırma digər funksiyalar üçün vacib olan iki mühüm idarəetmə funksiyasıdır. Əsasən, proqnozlaşdırma şirkətin keçmişdəki və indiki fəaliyyətindən asılı olaraq praktik olaraq nələrin baş verə biləcəyi barədə danışır. Əksinə, planlaşdırma hərəkət etmədən əvvəl düşünməyi, yəni bugün, sabah ediləcək şeylərə qərar vermək deməkdir. Bu məqalə proqnozlaşdırma və planlaşdırma arasındakı fərqləri aradan qaldırmağa çalışır.
Müqayisə qrafiki
Müqayisə üçün əsas Proqnozlaşdırma Planlaşdırma Məna Keçmiş və cari fəaliyyət və faktları nəzərə alaraq bir müəssisənin gələcək fəaliyyətinin qiymətləndirilməsinə işarə edir. Planlaşdırma, firma və onun daxilindəki digər vahidlər üçün irəliyə baxaraq gələcək fəaliyyət istiqamətini proqnozlaşdırmaqdır. Əsasən Müəyyən dərəcədə təxminləri ehtiva edən postulasiyalar və fərziyyə. Müvafiq məlumatlar, proqnozlar və hədəflər. İlə maraqlanıram Gələcək hadisənin və ya trendin qiymətləndirilməsi. Gələcəyi qiymətləndirmək və onu təmin etmək. Stresslər açıqdır Faktlar Faktlar və gözləntilər Məsuliyyət Rəhbərlik tərəfindən müxtəlif səviyyəli menecerlər və ya bəzən mütəxəssislər işə götürülür. Ən yüksək səviyyəli menecerlər Proqnozlaşdırma tərifi
Proqnozlaşdırma, müəssisənin fəaliyyətinə dair gələcək bir dövlətin təhlili və aydınlaşdırılması mənasında istifadə olunur. Gələcək hadisələri gözləmək üçün keçmiş və indiki məlumatları və faktları nəzərə alan bir prosesdir. Sadə dildə desək, proqnozlaşdırma gələcək işgüzar təşkilatlara təsirləri ilə yanaşı, gələcək tendensiyaları və hadisələri gözləmək və əvvəlcədən təyin etmək deməkdir.
Proqnoz müxtəlif səviyyələrdə çalışan menecerlər tərəfindən həyata keçirilir, lakin bəzən analitiklər, iqtisadçılar və statistiklər kimi mütəxəssislər proqnoz vermək üçün firma tərəfindən işə götürülür. Proqnozlaşdırmanın iki üsulu var:
- Kəmiyyət proqnozlaşdırma metodu
- Zaman seriyası təhlili
- Ekstrapolyasiya
- Ekonometrik Analiz
- Reqressiya Analizi
- Keyfiyyətli Proqnozlaşdırma Metodu
- Delphi Metodu
- İstehlakçı Anketləri
- İcra Rəyi
Hadisələrin gələcək gedişatını 100% dəqiqliklə proqnozlaşdırmaq üçün heç bir proqnozlaşdırma texnikası yoxdur, yəni müəyyən miqdarda tahmin həmişə mövcuddur və buna görə də səhv baş verə bilər.
Planlaşdırmanın tərifi
Planlaşdırma əvvəlcədən, nəyin, necə və nə vaxt ediləcəyinə qərar verən əsas idarəetmə fəaliyyəti kimi müəyyən edilə bilər. Bu, təşəbbüs üçün arzu olunan məqsədlərə çatmağa yönəlmiş gələcək fəaliyyət planının dizaynına aiddir. Məqsədyönlü, intellektual və hər yerə yayılan bir fəaliyyətdir.
Planlaşdırma firmanı gələcək mühiti ilə əlaqələndirir, çünki bu günlə gələcək arasındakı uçurumu aradan qaldırır. Bu nəzərdə tutur:
- Gələcək fəaliyyətin müəyyənləşdirilməsi və
- Eyni nail olmaq üçün müddəalar edilməsi.
Planlaşdırma, gələcək üçün fərziyyələr və əsaslar vermək üçün müvafiq məlumat və faktların toplandığı və təhlil olunduğu bir müddətdir. Bu fərziyyələri və əsasları nəzərə alaraq təşkilatın məqsədinə çatmaq üçün bir fəaliyyət planı hazırlanır.
Qısacası, planlaşdırma bir az fərasət göstərərək təxmini hadisələri vurğulamaq üçün irəliyə baxaraq gələcəyə baxmağı nəzərdə tutur. Bu müddət, firmalara hədəfləri və imkanları ilə mənbələrini uyğunlaşdırmağa kömək edir.
Proqnozlaşdırma və planlaşdırma arasındakı əsas fərqlər
Proqnozlaşdırma və planlaşdırma arasındakı əsas fərqlər aşağıda təsvir edilmişdir:
- Firma və onun daxilindəki digər vahidlər üçün gələcək fəaliyyət istiqamətini əvvəlcədən düşünmə prosesi planlama adlanır. Fərqli olaraq proqnozlaşdırma keçmiş və cari fəaliyyət və faktları nəzərə alaraq müəssisənin gələcək fəaliyyətinin proqnozlaşdırılmasını nəzərdə tutur.
- Proqnozlaşdırma müəyyən dərəcədə təxminləri ehtiva edən postulyasiyalara və fərziyyələrə əsaslanır və bu səbəbdən səhv ehtimalı tamamilə aradan qaldırıla bilməz. Digər tərəfdən, planlaşdırma müvafiq məlumatlara, proqnozlara və hədəflərə əsaslanır.
- Proqnozlaşdırma hadisənin və ya trendin gələcək gedişatını proqnozlaşdırmaqla əlaqədardır. Bunun əksinə olaraq, planlaşdırma gələcək fəaliyyətin qiymətləndirilməsi və eyni səviyyəyə çatmaq üçün müddəaların yaradılması ilə əlaqələndirilir.
- Proqnozlaşdırma müəssisənin keçmişinə və indiki fəaliyyətinə istinad edərək faktları nəzərə alır. Bunun əksinə olaraq, planlaşdırma keçmiş və indiki məlumatları və faktları və gələcək fəaliyyət istiqamətini əvvəlcədən qərar vermək istəklərini nəzərə alır.
- Proqnozlaşdırma fəaliyyəti müxtəlif səviyyəli menecerlər tərəfindən həyata keçirilir və ya bəzən rəhbərlik tərəfindən statistik, analitik və iqtisadçı kimi mütəxəssislər işə götürülür. Əksinə, iş üçün planlar qurmaq ən yüksək səviyyəli menecerlərin məsuliyyətidir.
Misal
Firmanın keçmiş və indiki fəaliyyətinə əsasən gəlir aşağıdakı kimi qiymətləndirilə bilər:
İl Gəlir Mart 2014 50,00,000 Mart, 2015 80,00,000 Mart, 2016 1,25,00,000 Mart, 2017 2,00,00,000 Proqnozlaşdırma (2018-ci il üçün) 3,00,00,000 Planlaşdırma (2018-ci il üçün) 3,50,00,000 Beləliklə, növbəti maliyyə ili üçün proqnoz Rs-dir. Şirkətin əldə edə biləcəyi bir təxmindən başqa bir şey olmayan 3 crores. Digər tərəfdən şirkət Rs əldə etməyi planlaşdırır. Növbəti maliyyə ilində 3.50 kro, proqnoz və istəklərə söykənir.
Nəticə
Planlaşdırma və Proqnozlaşdırma, hər ikisi çətin tapşırığı təsirli və təsirli şəkildə yerinə yetirmək üçün rəhbərlərdən yansıtıcı düşüncə, uzaqgörənlik, qərar qəbul etmə, təcrübə və təxəyyül kimi qabiliyyətləri tələb edir. Planlaşdırma yerləri proqnoza əsaslandığı üçün proqnozlaşdırma planlaşdırma prosesində böyük rol oynayır.
Comments are closed, but trackbacks and pingbacks are open.