რა არის პროგრამირება?
რა არის პროგრამირება? ახსნილი მარტივად და ყველასთვის გასაგებ ენაზე.
როგორ გაძლევთ Google ზუსტ პასუხებს? ან როგორ რეაგირებენ ვიდეოთამაშები თქვენს ღილაკზე თითის დაჭერაზე? ყველა ამ ციფრული საოცრების მიღმა რაღაც უხილავი და ძლიერი დგას: პროგრამირება.
მაგრამ სინამდვილეში რა არის პროგრამირება? ეს არ არის მხოლოდ ტექსტის სტრიქონები ან რთული კოდი, რომელიც ტექნოლოგიური გენიოსებისთვისაა განკუთვნილი. თავისი არსით, პროგრამირება უბრალოდ იმის ხელოვნებაა, რომ კომპიუტერს უთხრა, რა გააკეთოს. დღეს კი ამ ყველაფერს მაქსიმალურად მარტივად ავხსნით.
როგორ მუშაობს პროგრამირება? (სენდვიჩის ანალოგია)
მოდით, ცოტა უფრო დავშალოთ ეს საკითხი. წარმოიდგინეთ, რომ ცდილობთ ინსტრუქციები მისცეთ ვინმეს, ვისაც წარმოდგენა არ აქვს, როგორ მუშაობს სამყარო. თუ ეტყვით: "წადი, სენდვიჩი გამიკეთე", ის გაკვირვებული მოგაშტერდებათ. მაგრამ თუ ეტყვით: "აიღე ორი ნაჭერი პური, გახსენი არაქისის კარაქის ქილა, წაუსვი ის ერთ ნაჭერს, დახურე ქილა და დაადე ნაჭრები ერთმანეთს", ახლა მარტივად მიხვდება.
ზუსტად ეს არის პროგრამირება. თქვენ აძლევთ მკაფიო, დეტალურ ინსტრუქციებს კომპიუტერს ნაბიჯ-ნაბიჯ, რათა მან ზუსტად იცოდეს, რა გააკეთოს და როგორ გააკეთოს ეს.
პროგრამირების ენები და "თარჯიმნები"
ახლა, ისევე როგორც ადამიანები საუბრობენ სხვადასხვა ენაზე, ინგლისურად, ესპანურად, ქართულად, კომპიუტერებსაც აქვთ საკუთარი ენები. მათ პროგრამირების ენები ეწოდება. შეიძლება გსმენიათ კიდეც ზოგიერთის შესახებ: Python, JavaScript, Java ან C++. თითოეულს აქვს თავისი გრამატიკა და წესები, მაგრამ ყველა მათგანი ერთსა და იმავე მიზანს ემსახურება: დაეხმაროს ადამიანებს მანქანებთან კომუნიკაციაში.
მაგრამ აქ არის ერთი საინტერესო დეტალი: კომპიუტერებს სინამდვილეში პირდაპირ არ ესმით ინგლისური ან Python. რაც მათ ესმით, არის ეგრეთ წოდებული ორობითი კოდი (Binary), ერთიანებისა და ნულების გრძელი თანმიმდევრობა. ეს მათი მშობლიური ენაა. ასე რომ, როდესაც ჩვენ ვწერთ კოდს ისეთ ენაზე, როგორიცაა Python, ის უნდა ითარგმნოს ორობით კოდში. რათა კომპიუტერმა შეძლოს ინსტრუქციების შესრულება, ამ თარგმნას აკეთებენ პროგრამები, რომლებსაც კომპილატორებს ან ინტერპრეტატორებს უწოდებენ. წარმოიდგინეთ ისინი, როგორც თარჯიმნები მრავალენოვან საუბარში.
პროგრამირება ათწლეულების წინ დაიწყო, როდესაც კომპიუტერები მთელი ოთახის ზომის იყო და ძლივს ასრულებდა ძირითად მათემატიკურ ოპერაციებს. მაგრამ ტექნოლოგიების განვითარებასთან ერთად ენებიც განვითარდა. პროგრამირება უფრო ადამიანური გახდა, ნაკლებად ფოკუსირებული აპარატურის კონტროლზე და უფრო მეტად პრობლემების გადაჭრაზე.
პროცესი: იდეიდან რეალურ პროდუქტამდე
დღეს კოდი ყველგანაა. ჭკვიანი სახლებიდან დაწყებული ონლაინ შოპინგით, სტრიმინგის პლატფორმებით თუ საბანკო სისტემებით დამთავრებული. ყველაფერი მუშაობს პროგრამისტების მიერ დაწერილ კოდზე. მაშ, როგორ მუშაობს პროგრამირება სინამდვილეში? ვთქვათ, გსურთ მარტივი კალკულატორის შექმნა:
- დაგეგმვა: ჯერ უნდა გაარკვიოთ, რა უნდა გააკეთოს მან (მიმატება, გამოკლება, გამრავლება, გაყოფა).
- დიზაინი: შემდეგ წყვეტთ, როგორ იურთიერთებს მასთან მომხმარებელი; შესაძლოა ეკრანზე განთავსებული ღილაკების საშუალებით.
- ლოგიკის დაწერა: ამის შემდეგ, თქვენ წერთ ლოგიკას. "თუ მომხმარებელი დააწკაპუნებს პლუსზე, შეკრიბე ორი რიცხვი." ეს ლოგიკა იწერება კომპიუტერისთვის გასაგებ ენაზე.
- ტესტირება და დიბაგინგი: კოდის დაწერის შემდეგ, ხდება მისი ტესტირება, რათა დარწმუნდეთ, რომ ის სწორად მუშაობს. სწორედ აქ შეიძლება გამოჩნდეს "ბაგები", ანუ შეცდომები კოდში. დიბაგინგი პროგრამირების უზარმაზარი ნაწილია. ეს ნაკლებად ჰგავს ესეს წერას და უფრო ჰგავს თავსატეხის ამოხსნას.
როგორც კი კოდი დაიხვეწება, ის შეიძლება დაკომპილირდეს ან გაეშვას და ვუალა — კალკულატორი მუშაობს. კულისებს მიღმა თქვენი ინსტრუქციები ელვის სისწრაფით სრულდება და აკეთებს ზუსტად იმას, რაც მანქანას დაავალეთ.
პროგრამირება = პრობლემის გადაჭრა
პროგრამირება არც მხოლოდ სოლო თავგადასავალია. მიუხედავად იმისა, რომ ბნელ ოთახში მარტოხელა პროგრამისტის სტერეოტიპი შეიძლება გაგახსენდეთ, რეალური სამყაროს პროექტების უმეტესობა გუნდური მუშაობის შედეგია. ერთმა ადამიანმა შეიძლება იზრუნოს მომხმარებლის ინტერფეისზე, მეორე ფოკუსირდეს მონაცემთა ბაზაზე, ხოლო სხვამ უზრუნველყოს აპლიკაციის შეუფერხებელი მუშაობა სხვადასხვა მოწყობილობაზე.
თავისი არსით, პროგრამირება ნამდვილად პრობლემების გადაჭრას ემსახურება. იქნება ეს ხალხის დახმარება ტრანსპორტის პოვნაში, ტექსტის თარგმნა თუ ჯანდაცვის სისტემების გაუმჯობესება. კოდი არის ინსტრუმენტი, რომელიც ამ გადაწყვეტილებებს შესაძლებელს ხდის. რაც ყველაზე მაგარია, პროგრამირების სწავლა ყველას შეუძლია. არ აქვს მნიშვნელობა ახალგაზრდა ხართ თუ მოხუცი, მათემატიკის გენიოსი თუ ხელოვანი!
ეს ჰგავს ლეგოს კუბიკებით შენების სწავლას. თავიდან თქვენ აკოპირებთ ინსტრუქციებს (მასწავლებლისგან, ვიდეოდან...), მაგრამ საბოლოოდ იწყებთ საკუთარი დიზაინის შექმნას. და არა, დასაწყებად არ გჭირდებათ იყოთ გენიოსი ან გქონდეთ ხარისხი კომპიუტერულ მეცნიერებებში. პლატფორმები, როგორიცაა Scratch, Python-ის სასწავლო კურსები და ისეთი ვებსაიტებიც კი, როგორიცაა Code Academy ან Free Code Camp, გთავაზობთ ნაბიჯ-ნაბიჯ გაკვეთილებს, რომლებიც დაგეხმარებათ. ერთადერთი, რაც გჭირდებათ, არის ცნობისმოყვარეობა და მოთმინება.
კოდი ჩვენს ყოველდღიურობაში და მომავალი
მოდით, დავუბრუნდეთ ყოველდღიურ ცხოვრებას. როდესაც აპლიკაციის საშუალებით საკვებს უკვეთავთ, კოდი ამუშავებს თქვენს ლოკაციას, გაჩვენებთ ახლომდებარე რესტორნებს, მართავს თქვენს კალათას, ამუშავებს გადახდებს და ეუბნება რესტორანს, რა შეუკვეთეთ. ეს ყველაფერი წამებში ხდება სხვადასხვა პროგრამისტის მიერ დაწერილი ათასობით სტრიქონი კოდის წყალობით.
და პროგრამირება მხოლოდ ციფრულ სამყაროს არ ეხება. ის გადამწყვეტია რობოტიკაში, კოსმოსის კვლევაში, სამედიცინო მოწყობილობებსა და სოფლის მეურნეობაშიც კი. ფერმერები ახლა იყენებენ პროგრამულ უზრუნველყოფას მოსავლის ჯანმრთელობის მონიტორინგისთვის, ხოლო ექიმები იყენებენ კოდზე მომუშავე ინსტრუმენტებს დაავადებების უფრო ზუსტი დიაგნოსტიკისთვის.
ხელოვნური ინტელექტისა და მანქანური სწავლების განვითარებასთან ერთად, პროგრამირება სცდება მხოლოდ ავტომატიზაციის ფარგლებს. კომპიუტერებს ახლა შეუძლიათ ამოიცნონ სახეები, გაიგონ მეტყველება, იწინასწარმეტყველონ ამინდის ცვლილებები ან წვლილი შეიტანონ სამეცნიერო აღმოჩენებში. და ამ ყველაფრის მიღმა, როგორც მიხვდით, არიან პროგრამისტები, რომლებიც წერენ კოდს, ავარჯიშებენ მანქანებს და ქმნიან უფრო ჭკვიან სისტემებს.
ეთიკა და პასუხისმგებლობა
რა თქმა უნდა, დიდ ძალაუფლებას დიდი პასუხისმგებლობაც მოჰყვება (მადლობა ძია ბენს ამ სიბრძნისთვის). როგორც პროგრამისტებმა, ასევე უნდა გავითვალისწინოთ ეთიკური მხარეც. როგორ ვწერთ კოდს, ვისზე ახდენს ის გავლენას, როგორ ამუშავებს მონაცემებს; ამ ყველაფერს მნიშვნელობა აქვს. კოდს შეუძლია შეცვალოს ცხოვრება უკეთესობისკენ ან უარესობისკენ. სწორედ ამიტომ, არა მხოლოდ იმის სწავლა, თუ როგორ დავწეროთ კოდი, არამედ იმის, თუ რატომ ვწერთ მას, ზუსტად ისევე მნიშვნელოვანია. მაგრამ ზოგიერთ პროგრამისტს საიტების გატეხვასა და სისტემის სუსტი წერტილების აღმოჩენაში გასამრჯელოსაც კი უხდიან! ჰო, მათ კიბერუსაფრთხოების სპეციალისტები ჰქვიათ! მაგრად ჟღერს, არა?!
შეჯამება
მაშ ასე, რა არის პროგრამირება? ეს არ არის მხოლოდ აპლიკაციები ან ვებსაიტები. ეს არის სუპერძალა. ის გაძლევთ საშუალებას აიღოთ იდეები, მიუხედავად იმისა, დიდი თუ პატარა, და აქციოთ ისინი რაღაც რეალურად, რაღაცად, რისი გაზიარებაც მსოფლიოსთვის შეგიძლიათ. ის გასწავლით, როგორ დაშალოთ დიდი პრობლემები პატარებად, როგორ იყოთ მომთმენი და დისციპლინირებული. ეს უკანასკნელი, ვფიქრობ, ყველაზე ღირებული უნარია!
ავტორის შესახებ
გიგი ჩაკაბერია
back-end დეველოპერი და მენტორი