fbpx

Python-ის კურსის აღწერა

“Python” გახლავთ პროგრამირების ენა, მარტივი სინტაქსითა და დამხმარე ბიბლიოთეკების დიდი არჩევანით.  მისი ფართო სპექტრში გამოყენების შესაძლებლობისა და სამუშაო სიმარტივის გამო იგი არის პროგრამულ ბაზარზე ერთ-ერთი ყველაზე პოპულარული და მოთხოვნადი პროგრამირების ენა.

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

კურსში მონაწილეობა შეუძლიათ მიიღონ როგორც უბრალოდ პროგრამირებით დაინტერესებულმა პიროვნებებმა, რადგან “Python” ერთ-ერთი საუკეთესო გზაა პროგრამულ სფეროში ფეხის მარტივად ასაკიდებლად ისე ისეთმა პიროვნებებმაც რომელთაც უკვე შეიძინეს გარკვეული ცოდნა პროგრამულ სფეროში და სურთ მისი გაღრმავება.

Python-ის კურსის მენტორი

ლუკა თავხელიძე

2021 წლიდან არის Full stack ვებ დეველოპერი. ფლობს ისეთ პროგრამულ ენებს, როგორიც არის: Python, javascript, php, C++, C#, SQL და მათ ფრეიმვორკებს, ასევე დეველოპერებისთვის საჭირო სხვა თულებს: AWS, Docker, Git და სხვა. ამ ყველაფერს იყენებს საიტების ასაწყობად ან მონაცემთა ანალიზისას.

მუშაობსWinguard-ში, lead software engineer-ად. Full stack დამოუკიდებლად უმუშავია საიტებისთვის: ecommerce და თსუ-ს scientific journal-ზე, ხოლო Back-End სასწავლო პლატფორმაზე.

მისი მიმდინარე პროექტებია: API – ების შექმნა, ალგორითმების იმპლემენტაცია, ბაზის არქიტექტურა, მონაცემების შეგროვება, დამუშავება, ანალიზი და სხვა.

მიქაელ მალანია

2019 წლიდან არის ვებ დეველოპმენტის სფეროში. უმუშავია, როგორც Back-end ისე Front-end ტექნოლოგიებზე, სხვადასხვა პროგრამული “stack”-ების მეშვეობით.

ამჟამად დასაქმებულია კომპანია “Noxtton”-ში, Back-end დეველოპერის პოზიციაზე. უმუშავია 10-ზე მეტ მსხვილ ვებ პროგრამულ პროექტში და 20-ზე მეტ საკუთარ პირად ვებ პროექტში.

Python-ის კურსის სილაბუსი

Workshop 1

  • რა არის პროგრამირება / პროგრამული აზროვნება ?
  • Python -ის მიმოხილვა, უპირატესობები და გამოყენების სფეროები.
  • Python -ის ინსტალაცია
  • Code Editor -ების მიმოხილვა/ინსტალაცია
  • სამუშაო გარემოს გამართვა
  • რეკომენდაციები – როგორ მივიღოთ მაქსიმალური შედეგი კურსიდან
  • I/O (input/output) ოპერაციები და Python -ის სინტაქსი 

Workshop 2

მონაცემთა ტიპები, პირობითი ოპერატორები და ციკლები

  • „პრიმიტიული მონაცემთა ტიპები“
  • ცვლადის შექმნა, მნიშვნელობის მინიჭება და მათზე სხვადასხვა ოპერატორების გამოყენება
  • პირობითი ოპერატორები (if, else, elif | Structural pattern matching)
  • for და while ციკლების გამოყენება, მათი მნიშვნელობა პროგრამირებაში
  • continue და break ბრძანებები

Workshop 3

Data Structures (მონაცემთა სტრუქტურები)

  • რა არის მონაცემთა სტრუქტურა და მათი გამოყენება
  • List
  • Tuple
  • Dictionary
  • List Comprehension (Generators)
  • ციკლების გამოყენება სტრუქტურებზე
  • ჩაშენებული ფუნქციების გამოყენება მონაცემთა სტრუქტურებზე (enumerate, zip, sorted, len)

Workshop 4

ფუნქციები და კოდის წერის თანამედროვე სტანდარტები (typing | PEP 8)

  • რა არის ფუქნცია? 
  • ლოკალური და გლობალური ხილვადობა
  • ფუნქციების დანიშნულება, გამოყენება.
  • რა არის არგუმენტები და პარამეტრები?
  • დასაბრუნებელი მნიშვნელობები
  • *args, **kwargs – რა სხვაობაა და რა დანიშნულება აკისრიათ?
  • Typing მოდულის მიმოხილვა, როგორ ავღინშნოთ ცვლადის ტიპი?
  • როგორ დავწეროთ კოდი უკეთესად?
  • PEP 8 -ის მიმოხილვა

Workshop 5

ფაილებთან მუშაობა და შესავალი ობიექტზე ორიენტირებული დაპროგრამებაში

  • ფაილების წაკითხვა
  • Context managers (with)
  • წაკითხვის ტიპები (r, a, w, +, x, b და სხვა)
  • ფაილების ტიპები (extensions) და მათი წაკითხვის მეთოდები (csv, json, xml და სხვა)
  • რა არის OOP?
  • რა არის კლასი?
  • რა არის ობიექტი?
  • კონსტრუქტორი, დესტრუქტორი

Workshop 6

OOP – encapsulation, Polymorphism, Inheritance

  • მეთოდები
  • სტატიკური და საკუთრივი ველები
  • სტატიკური მეთოდები
  • რა არის ენკაპსულაცია?
  • Public, Private, Protected ხილვადობა
  • Inheritance 
  • რა არის super?
  • Diamond problem

Workshop 7

პითონი ვებში | Django Framework -ის მიმოხილვა

  • Git / Github
  • რა არის მოდული და package პითონში?
  • Pip, ვირტუალური გარემო და მოდულების დაყენება
  • ვების მუშაობის პრინციპი (http / https / requests / sessions / cookies / server / dns / domain / hosting)
  • რატომ Django? დადებითი და უარყოფითი მხარეები
  • არქიტექტურა (რა გზას გადის ბრძანება, მომხმარებლიდან – შედეგამდე)
  • ინსტალაცია და პროექტის შექმნა
  • პროექტის სტრუქტურის მიმოხილვა და გვერდის შექმნა

Workshop 8

Django 

  • MVT არქიტექტურა
  • აპების ცნება Django – ში
  • Settings -ების გამართვა (Static, Media და ა.შ.)
  • ბმულები (urls)
  • რა არის ORM?
  • Models, მიგრაციები
  • Meta კლასი, გმოყენება და დანიშნულება
  • Relations (FK, MTM, OTO, etc.)
  • QuerySet API
  • Django Shell – თან მუშაობა
  • Templates

Workshop 9

Django

  • Function based views და Class based views
  • Admin panel
  • Forms
  • Generic views
  • User authentication & authorization
  • Custom user model
  • Template tags, ჩვენი Template tag-ების შექმნა

Workshop 10

Django advanced

  • სხვის მიერ დაწერილი აპების ინსტალაცია (მაგ. Ckeditor, Django debug toolbar)
  • ტესტები, მათი საჭიროება და მნიშვნელობა
  •  კომპლექსური ქვერების დაწერა და აგრეგაცია
  • Select_related & prefetch_related
  • Admin panel customization (list_display, filter_horizontal, etc.)

Workshop 11

პროექტის აწყობა – Blog platform 

  • Git -ის სწორი გამოყენება
  • მოდელების შექმნა
  • CRUD ოპერაციები
  • Docker -ის გამოყენება
  • Postgres -ს ბაზის გამოყენება

Workshop 12

  • კურსის გავლის შემდეგ, როგორ გავაგრძელოთ Python და Django
  • Python – ვებ დეველოპერის Job Interview კითხვებისთვის მომზადება
  • საჭირო თულსეთის განვითარება (ალგორითმები)
  • ონლაინ რესურსები
  • ფინალური პროექტი