სად ვისწავლო პროგრამირება? ონლაინ აკადემია

რომელ აკადემიაში ვისწავლოთ პროგრამირება? ონლაინ აკადემიები თუ ოფლაინ?

By გიგი ჩაკაბერია
სად ვისწავლო პროგრამირება? ონლაინ აკადემია

პროგრამირების კურსის არჩევისას ერთ-ერთი, თუმცა არც ისე გავრცელებული წინააღმდეგობა, რომელსაც ადამიანები გამოთქვამენ, ასეთია: „მე არ შემიძლია პროგრამირების ონლაინ სწავლა. მე მჭირდება ფიზიკური საკლასო ოთახი.“ ერთი შეხედვით, ეს სრულიად ლოგიკურად ჟღერს, თუმცა...

ეს არგუმენტი უგულებელყოფს პროგრამირების ერთ ფუნდამენტურ რეალობას. პროგრამირება არის ერთ-ერთი იმ მცირერიცხოვან პროფესიათაგანი, სადაც ის ადგილი, სადაც სწავლობ, ასევე არის ის ადგილი, სადაც მოგიწევს მუშაობა. ინტერნეტი არ არის უბრალოდ პროგრამირების სასწავლო ადგილი, ეს არის დეველოპერის ბუნებრივი საარსებო გარემო! ზუსტად ისევე, როგორც თევზისთვის წყალი არის ბუნებრივი ჰაბიტატი, ანუ ეკოსისტემა, სადაც ის არსებობს.


პროგრამირება ცხოვრობს და სუნთქავს ონლაინ

წარმოიდგინეთ, ვინმემ რომ თქვას: „მინდა გავხდე საზღვაო ბიოლოგი, მაგრამ არ მინდა დროის გატარება ოკეანესთან ახლოს.“ წინააღმდეგობა აშკარაა. საზღვაო ბიოლოგია უბრალოდ არ მოიცავს ოკეანეს; ის მის გარშემო ტრიალებს. თქვენ, რა თქმა უნდა, შეგიძლიათ დაესწროთ ლექციებს, იკითხოთ სახელმძღვანელოები და შეისწავლოთ დიაგრამები საკლასო ოთახში, მაგრამ ადრე თუ გვიან მოგიწევთ შეხვიდეთ იმ გარემოში, სადაც საზღვაო სიცოცხლე რეალურად არსებობს. ამ ჩართულობის გარეშე, თქვენი გაგება ყოველთვის არასრული დარჩება.

პროგრამირებაც იმავე პრინციპს მიჰყვება. Python-ის, Django-ს, React-ის, Docker-ის, PostgreSQL-ისა და პრაქტიკულად ყველა თანამედროვე ტექნოლოგიის ოფიციალური დოკუმენტაცია ონლაინ არის. საწყისი კოდი (Source code) ონლაინ არის. ღია კოდის (Open-source) პროექტები ონლაინ არის. ტექნიკური დისკუსიები, შეცდომების რეპორტები, რელიზის შენიშვნები, API ცნობარები, დეველოპერთა საზოგადოებები და ათასობით ტუტორიალი; ყველაფერი ონლაინ არის. ეს არ არის დამთხვევა. ეს პროგრამული ინჟინერიის ბუნებრივი საარსებო არეალია. ყოველდღიურად, მილიონობით დეველოპერი მთელს მსოფლიოში მუშაობს, თანამშრომლობს, ჭრის პრობლემებს და სწავლობს ამ ეკოსისტემის შიგნით.

ონლაინ სწავლა მჭიდროდ ასახავს რეალურ სამუშაოს

ირონიულია, მაგრამ ბევრს ჰგონია, რომ ონლაინ სწავლა გარკვეულწილად ნაკლებად ავთენტურია, ვიდრე საკლასო ოთახში სწავლა, მაშინ როცა ხშირად პირიქითაა. როდესაც პროგრამირებას ონლაინ სწავლობთ, თქვენ უკვე ვარჯიშობთ ბევრ იმ ჩვევაში, რომელსაც გამოიყენებთ მთელი თქვენი პროფესიული კარიერის განმავლობაში. თქვენ კითხულობთ ოფიციალურ დოკუმენტაციას, მიჰყვებით ტექნიკურ გიდებს, დამოუკიდებლად აკეთებთ დებაგინგს, იკვლევთ საწყის კოდს, მონაწილეობთ დეველოპერთა საზოგადოებებში და აშენებთ პროექტებს იმავე ინსტრუმენტების გამოყენებით, რომლებსაც მომუშავე ინჟინრები იყენებენ. ეს არ არის უბრალოდ საგანმანათლებლო სავარჯიშოები. ეს პროგრამული უზრუნველყოფის დეველოპერების ყოველდღიური საქმიანობაა. სტუდენტიდან პროფესიონალზე გადასვლა ბევრად უფრო მარტივი ხდება, როდესაც თქვენი სასწავლო გარემო ჰგავს თქვენს მომავალ სამუშაო ადგილს.

საკლასო ოთახები არ არის უსარგებლო. თუმცა არ ჰგავს სამუშაო გარემოს

არცერთი ზემოთქმული არ ნიშნავს იმას, რომ საკლასო ოთახები უსარგებლოა. გამოცდილ ინსტრუქტორს შეუძლია მკვეთრად შეამციროს თქვენი სწავლის მრუდი (learning curve) რთული კონცეფციების ახსნით, გავრცელებულ შეცდომებზე მითითებითა და ზუსტად მაშინ უკუკავშირის მიწოდებით, როცა ეს გჭირდებათ. სტრუქტურირებული სასწავლო პროგრამა იცავს დამწყებებს გადატვირთვის შეგრძნებისგან, ხოლო თანაკლასელებს შეუძლიათ შექმნან მოტივაცია და ანგარიშვალდებულება. ეს ნამდვილად რეალური უპირატესობებია, განსაკუთრებით სწავლის საწყის ეტაპებზე.

თუმცა, მნიშვნელოვანია იმის გაცნობიერება, რომ ყველა საკლასო ოთახი საბოლოოდ ქრება. მიუხედავად იმისა, სწავლობთ უნივერსიტეტში, ბუტკემპში (bootcamp) თუ ადგილობრივ აკადემიაში, კურსს აქვს დასრულების თარიღი. თქვენი ინსტრუქტორი არ იჯდება თქვენს გვერდით თქვენი პირველი სტაჟირების, პირველი ფრილანს პროექტის ან პროდაქშენის პირველი შეფერხების (outage) დროს. როდესაც კურსი სრულდება, ყველა დეველოპერი ზუსტად ერთსა და იმავე ადგილას ხვდება: სხედან კომპიუტერთან, ონლაინ, უცნობი პრობლემის წინაშე, და აქვთ მხოლოდ ოფიციალური დოკუმენტაცია, ტექნიკური სტატიები, GitHub-ის რეპოზიტორები, საზოგადოების დისკუსიები და საკუთარი ცოდნა და უნარი, ლოგიკურად მიუდგნენ საკითხს. ეს არ არის უჩვეულო სიტუაცია, ეს პროგრამებისა თუ აპლიკაციების შექმნის ყოველდღიური რეალობაა.

პროფესიონალი დეველოპერები არასდროს წყვეტენ ონლაინ სწავლას

ბევრ დამწყებს ჰგონია, რომ გამოცდილ დეველოპერებს უკვე ყველაფერი დაზეპირებული აქვთ და სწავლას წყვეტენ. რეალურად, პირიქითაა. ტექნოლოგია ზედმეტად სწრაფად ვითარდება იმისთვის, რომ ვინმე დაეყრდნოს მხოლოდ იმას, რაც წლების წინ ისწავლა. ყოველწლიურად ჩნდება ახალი ფრეიმვორქები, პროგრამირების ენები იღებენ განახლებებს, API-ები იცვლება, უსაფრთხოების რეკომენდაციები ვითარდება და სრულიად ახალი ინსტრუმენტები იქმნება. ათწლეულების გამოცდილების მქონე დეველოპერებიც კი თავიანთი სამუშაო დღის მნიშვნელოვან ნაწილს უთმობენ დოკუმენტაციის კითხვას, რელიზის შენიშვნების შესწავლას, გადაწყვეტილებების შედარებას და უცნობი ტექნოლოგიების გამოკვლევას.

ეს უწყვეტი სწავლა არ არის სისუსტის ან გამოუცდელობის ნიშანი. ეს პროფესიის განმსაზღვრელი მახასიათებელია. საუკეთესო დეველოპერები არ არიან ისინი, ვინც ყველაფერი იცის — ისინი არიან ადამიანები, რომლებმაც იციან, როგორ იპოვონ სწრაფად სანდო ინფორმაცია, კრიტიკულად შეაფასონ იგი და გამოიყენონ რეალური პრობლემების გადასაჭრელად. ეს უნარი ვითარდება სწორედ იმ გარემოში სწავლით, სადაც პროფესიონალური დეველოპმენტი ხდება.


პროგრამირების სწავლის რეალური მიზანი

პროგრამირების კურსის მიზანი არ არის უპასუხოს ყველა იმ კითხვას, რომელიც ოდესმე გაგიჩნდებათ. ეს შეუძლებელი იქნებოდა ისეთ სფეროში, რომელიც ისე სწრაფად იცვლება, როგორც პროგრამული უზრუნველყოფის დეველოპმენტი. ამის ნაცვლად, მიზანია მყარი საძირკვლის აშენება, პრობლემების გადაჭრის ძლიერი უნარების განვითარება და იმის სწავლება, თუ როგორ გააგრძელოთ სწავლა კურსის დასრულებიდან დიდი ხნის შემდეგ. კარგი ინსტრუქტორი აჩქარებს თქვენს პროგრესს, გაძლევთ გზამკვლევს და გეხმარებათ თავიდან აიცილოთ ზედმეტი იმედგაცრუება, მაგრამ მათ არ შეუძლიათ ჩაანაცვლონ თქვენი დამოუკიდებლად სწავლის უნარი. საბოლოო ჯამში, ყველა წარმატებული პროგრამისტი ხდება მთელი ცხოვრების განმავლობაში შემსწავლელი. მიუხედავად იმისა, ორი წელია წერენ კოდს თუ ოცი, ისინი აგრძელებენ დოკუმენტაციის კითხვას, ახალი ტექნოლოგიების შესწავლას, უცნობ ინსტრუმენტებთან ექსპერიმენტებს და მუდმივ ცვლილებებთან ადაპტაციას. ეს არ არის კარიერის დროებითი ფაზა — ეს თავად კარიერაა.


როგორია ScaleUp აკადემიის მიდგომა?

მარტო სწავლის ყველაზე დიდი ხაფანგი ვალდებულების განცდის არარსებობაა. როცა ერთ კონკრეტულ ამოცანაზე იჭედები, არავინაა, ვინც შენს პროგრესს თვალს მიადევნებს ან სწორ მიმართულებას მოგცემს. სწორედ ამიტომ არსებობს რეალურ ტექ-ინდუსტრიაში ჯუნიორ დეველოპერის გამოცდილ მენტორთან „მიმაგრების“ პრაქტიკა. ადამიანები ბევრად უფრო მარტივად და მოკლე გზებით ვსწავლობთ მაშინ, როცა რეალურ გამოცდილებას გვიზიარებენ, შეცდომებზე მიგვითითებენ და წინსვლის მოტივაციას გვაძლევენ. და სწორედ ამის გვჯერა სქეილაფში.

გარდა ამისა, სტანდარტული ვიდეოკურსების უმეტესობა მხოლოდ იმას განახებს, თუ რა უნდა დაწერო. ScaleUp კი გასწავლის მთავარს — რატომ მუშაობს კონკრეტული კოდი, რატომ ვირჩევთ ამ კონკრეტულ ლოგიკას და არა სხვას. ჩვენი მიზანია, კოდის მიღმა არსებული არქიტექტურის დანახვა გასწავლოთ.

რას გთავაზობთ ScaleUp-ის სასწავლო პროცესი:

  • ინსტრუქტორის უკუკავშირი და ანგარიშვალდებულება: პროფესიონალთან მუდმივი კომუნიკაცია გიქმნის პასუხისმგებლობის ჯანსაღ განცდას, რათა დაწყებული საქმე ბოლომდე მიიყვანო. ყოველ დაშვებულ შეცდომაზე შენ იღებ დეტალურ, კონკრეტულ ახსნას, რაც დამოუკიდებელი ძიების პროცესს ბევრად უფრო პროდუქტიულს ხდის.
  • სტრუქტურირებული დაცვა ქაოსისგან: დამწყებთათვის ინტერნეტი ხშირად ინფორმაციული ჯუნგლებია. გამოცდილი ლექტორის მიერ ნაბიჯ-ნაბიჯ გაწერილი გეგმა გიცავს ინფორმაციული გადატვირთვისგან და უზრუნველყოფს შენი ცოდნის ლოგიკურ, თანმიმდევრულ განვითარებას.
  • რეალურ სამუშაოზე მორგებული პრაქტიკა: თეორია მხოლოდ ინსტრუმენტია. ScaleUp გაძლევს რეალურ ამოცანებსა და პროექტებზე მუშაობის გამოცდილებას, რაც დაგეხმარება მიღებული ცოდნის პრაქტიკაში მომენტალურად და ეფექტურად გადატანაში.

დასკვნა

ფიზიკურ საკლასო ოთახებს ნამდვილად აქვთ ღირებულება, განსაკუთრებით დამწყებთათვის, რომლებიც სარგებელს იღებენ სტრუქტურით, მენტორობითა და ანგარიშვალდებულებით. მაგრამ თავად პროგრამირება არ ცხოვრობს საკლასო ოთახებში. ის ცხოვრობს დოკუმენტაციაში, საწყის კოდში, ტექნიკურ საზოგადოებებში, open-source პროექტებში, დეველოპერთა დისკუსიებში და უთვალავ ონლაინ რესურსში, რომლებსაც პროფესიონალები ყოველდღიურად ეყრდნობიან.

სწორედ ამიტომ, იმის თქმა, რომ „მე არ შემიძლია პროგრამირების ონლაინ სწავლა,“ საოცრად ჰგავს იმის თქმას, რომ „მე არ შემიძლია სწავლა ზუსტად იმ გარემოში, სადაც პროგრამირება რეალურად არსებობს.“ ისევე როგორც საზღვაო ბიოლოგმა საბოლოოდ უნდა შეისწავლოს ოკეანე, თითოეული პროგრამისტი კომფორტულად უნდა გრძნობდეს თავს იმ ციფრული ეკოსისტემის შიგნით სწავლისას, სადაც პროგრამული უზრუნველყოფა იქმნება, ზიარდება, უმჯობესდება და ნარჩუნდება. ინტერნეტი არ არის პროგრამირების სწავლის მხოლოდ ერთი გზა — ის არის ყველა თანამედროვე პროგრამისტის, დეველოპერის ბუნებრივი ჰაბიტატი. თუ მზად ხართ გადადგათ ნაბიჯი ამ სამყაროში, გაეცანით ScaleUp Academy-ის კურსებს და დაიწყეთ მომავლის პროფესიის დაუფლება.


ავტორის შესახებ

გიგი ჩაკაბერია

back-end დეველოპერი და მენტორი