fbpx

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

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

მიღებული ცოდნა მოგცემს შესაძლებლობას, რომ დამოუკიდებლად გაიკვლიო გზა ამ სფეროში და გახდე პროფესიონალი.

კურსის მენტორები

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

Lead Software Engineer

“ჩემი მიზანია, უფრო მეტად დავაინტერესო ამ სფეროთი ადამიანები და დავეხმარო მათ პროფესიონალებად ჩამოყალიბებაში.

პროგრამირების მიმართ ინტერესი 2019 წელს გაუჩნდა. მისი პირველი სამუშაო გამოცდილება იწყება კომპანია Graey-ში, Back-End დეველოპერის პოზიციაზე, სადაც მუშაობდა სასწავლო და E-commerce პლატფორმებზე. 

შემდეგ შეუერთდა Winguard-ის გუნდს, Software Engineer-ად, სადაც დღემდე ქმნის ისეთ პროდუქტებს, რომლებიც ამარტივებს ადამიანების ყოველდღიურობას.

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

ინდივიდუალური პროექტები: Stack Overflow-ს კლონი (Full stack), Spotify-ს კლონი (Full stack), Messenger-ის კლონი (Full stack) და ა.შ.

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

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

Back-End Developer

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

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

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

4 წელზე მეტია, რაც დეველოპმენტის სფეროში აქტიურად არის ჩართული. ამ დროის მანძილზე იმუშავა მრავალ საინტერესო პროექტზე, თუ პროგრამირების ენებზე, განსაკუთრებით კი Javascript-ზე.

მისი სამუშაო გამოცდილება იწყება ამერიკულ კომპანია Quantori-ში, Python Back-End დეველოპერის პოზიციაზე. აქ შექმნა რამდენიმე ვებ პროექტი Django, Flask, FastAPI ფრეიმვორკებით. 

შემდეგ მუშაობდა კომპანია Nandi-ში, DevOps Engineer-ის პოზიციაზე. პარალელურად იყო ფრილანს WordPress დეველოპერი, როგორც ქართულ, ისე საერთაშორისო ბაზარზე.

გამოცდილების დაგროვებასთან ერთად აკადემიური საქმიანობაც შეითავსა. Algorithmics School-ში იყო Python-ის მენტორი. ასევე ასწავლიდა ვებ დიზაინს (HTML, CSS, Figma და Wix).

უმუშავია შემდეგ პროექტებზე: Quantori Discovery Engine, DevOps პროექტი: “CI/CD Pipeline”-ის აგება, BackSupport: “WordPress Dropshipping” პროექტი, Sotco: WordPress პროექტი, Mdello და ა.შ.

ინდივიდუალური პროექტები: Musicmaven – პროექტი, რომელსაც შეუძლია სასურველი სიმღერების სხვადასხვა მუსიკალური წყაროებიდან წამოღება, დაკვრა და გადმოწერა. Stypops – ონლაინ გაყიდვების ვებგვერდი, რომელიც მოიცავს კონკრეტული სტილის ტანისამოსს, Zanyzest – ბლოგის ტიპის ვებგვერდი, რომელიც განკუთვნილია სათავგადასავლო და საინტერესო ტიპის ინფორმაციის გაზიარებაზე.

ამჟამად არის Back-End Web Developer-ი, კომპანია Noxtton-ში.

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

Workshop 1

 შესავალი

სამუშაო გარემოს გამართვა, შესავალი პროგრამირებაში

  • რა არის პროგრამირება? 
    • მანქანური კოდი (ორობითი სისტემა)
    • ბრძანებები
    • თარგმნა
    • მაღალი და დაბალი დონის პროგრამული ენები
  • რატომ Python – ი?
    • Python -ის შესახებ
    • გამოყენებები
    • დადებითი და უარყოფითი მხარეები
  • სამუშაო გარემოს გამართვა
    • Python -ის ინსტალაცია
    • Visual Studio Code -ის ინსტალაცია
  • შესავალი Python – ში
  • Print ფუნქცია
    •  Terminal / console / command line etc.
    • სინტაქსი
  • ცვლადები
    • რა არის ცვლადი
    • snake_case
    • ცვლადის სახელის დარქმევა (რისი გამოყენება შეძლება და რისი არა)
    • მინიჭების ოპერატორი (=)
    • მნიშვნელობა
  • მონაცემთა ტიპები (Data Types)
    • რა არის  byte
    • რატომ არის საჭირო მონაცემთა ტიპები?
    • Int
    • float
    • Str
    • Bool
  • მათემატიკური ოპერაციები რიცხვებზე
    • +
    • /
    • *
    • **
    • //
    • %
  • ოპერაციები str -ზე
    • + (კონკატენაცია)
    • F strings
    • სტრიქონებთან დაკავშირებული მეთოდები: count, replace, islower, isupper
  • ცვლადის სახელები
    • snake_case
    • რა უნდა იქნეს გათვალისწინებული ცვლადის სახელის შერჩევისას.
  • კონსტანტები (UPPER_CASE, SCREAMING_SNAKE_CASE)
    • რა არის კონსტანტას დანიშნულება და როგორ შეიძლება შევქმნათ იგი?

Workshop 2

კომენტარები, type casting, მონაცემთა სტრუქტურა list, ციკლები (for)

  • კომენტარები
    • კომენტარის დანიშნულება
    • ერთ ხაზიანი კომენტარი (#)
    • მრავალ ხაზიანი კომენტარი სტრინგის გამოყენებით
  • type casting
    • სინტაქსი 
    • Falsy და Truthy მნიშვნელობები
  • List
    • რა არის მონაცემთა სტრუქტურის დანიშნულება
    • როგორ ინახება ოპერატიულ მეხსიერებაში სიები(list) 
    • რატომ იწყება ინდექსი 0-დან
    • ელემენტებზე წვდომის დამყარება
    • სიაში ელემენტების ჩამატება
    • სიიდან ელემენტების წაშლა
    • სხვა ჩაშენებული მეთოდები
    • IndexError
  • While ციკლი
    • Continue
    • Break
    • Else

Workshop 3

ბულიანი ოპერატორები, ბულის არითმეტიკა, Flow Control, ციკლები (while),  Data Structures (tuple), Guessing Game

  • Boolean Operators
    • ==
    • !=
    • >
    • >=
    • <
    • <=
  • Boolean Arithmetic
    • Operator and
    • Operator or
    • Truth table (and)
    • Truth table (or)
  • Flow Control
    • If
    • Else
  • Tuple
    • ფუნქცია
    • Commas or Brackets?

განსხვავება ლისტისგან

  • For Loop
    • სინტაქსი
    • რა არის კოდის ფრაგმენტი?
    • ინდენტაცია
    • In ოპერატორი
    • Range ფუნქციის გამოყენება (სხვადასხვა რაოდენობის არგუმენტებით)
  • Guessing Game
    • მომხმარებლის მხრიდან დატის მიღება (Input ფუნქცია)
    • Game Loop (უსასრულო ციკლი)
    • მოდულების გამოყენება (imports)
    • Random module

Workshop 4

Advanced Control Flow, გაფართოებული ოპერაციები სიებზე, ლექსიკონი

  • If chaining
    • Elif
    • If without else
    • განსხვავება elif – სა და if -ს შორის
    • რამდენიმე if -ის ერთად გამოყენება
  • List slicing
    • სინტაქსი
    • უარყოფითი step-ები
  • List Comprehension
    • სინტაქსი
    • If პირობის გამოყენება
  • Dict
    • ელემენტების ამოღება
    • წყვილის ჩამატება
    • ელემენტების შეცვლა
    • წაშლა გასაღების და მნიშვნელობის
    • Get და Pop მეთოდის გამოყენება
    • მონაცემთა სტრუქტურები dict-ში

Workshop 5

ფუნქციები, ხილვადობის არე

  • ფუნქცია
    • გასაზღვრება
    • ცარიელი კოდის ფრაგმენტი (ტანი)
    • ფუნქციის გამოძახება
    • ინფორმაციის გადაწოდება ფუნქციისთვის
    • განსხვავება არგუმენტებსა და პარამეტრებს შორის
    • პოზიციური / სავალდებულო არგუმენტები
    • Default მნიშვნელობები
    • Keyword არგუმენტები 
    • ექვივალენტური ფუნქციის გამოძახებები
    • არგუმენტებთან დაკავშირებული პრობლემები
      • თანმიმდევრობის არევა
    • პოზიციური და არა პოზიციური არგუმენტების არევა
    • Unpacking 
    • Args და kwargs
  • ხილვადობის არე
    • ლოკალური არე 
    • გლობალური არე

Workshop 6

მოდულები, კლასები

  • მოდულები
    • ფუნქციების შენახვა სხვადასხვა მოდულებში
    • მთლიანი მოდულის დაიმპორტება
    • ფუნქციების დაიმპორტება
    • As ოპერატორი
    • მთლიანი მოდულის კონტენტის დაიმპორტება და მისი უარყოფითი თვისებები
  • შესავალი ობიექტზე ორიენტირებულ დაპროგრამებაში
    • რა არის პროცედურული პროგრამირება
    • კლასის განსაზღვრა
      • კონსტრუქტორი
      • ატრიბუტები
      • ჩვენი შექმნილი მეთოდები
    • ობიექტების შექმნა
    • Default ატრიბუტები
    • ატრიბუტების შეცვლა

Workshop 7

More about OOP, Working with files, Error Handling, Context manager

  • Inheritance
    • რა შემთხვევაში უნდა გამოვიყენოთ? („არის“ კავშირი)
    • სინტაქსი
    • შვილობილი კლასის კონსტრუქტორი
    • მეთოდების გადატვირთვა
  • ატრიბუტების ხილვადობა
    • Public 
    • Private
    • Protected
  • Polymorphism
  • Composition
  • Multiple inheritance
    • Diamond Problem

Workshop 8

Introduction To Django, PIP, Virtualenv

  • რა არის ინტერნეტი
    • IP
    • HTTP / HTTPS
    • Domain
    • DNS
  • PIP
    • Package-ების დაყენება
  • Virtualenv -ის გამოყენება
    • რა არის ვირტუალური გარემო
    • გააქტიურება
    • Package-ების დაყენება
  • Django
    • მიმოხილვა
    • პროექტის სტრუქტურა
    • MVT
    • View-ს შექმნა
    • Url-ების გამართვა
    • Development საიტის გაშვება

Workshop 9

  • მოდელების შექმნა
    • Fields
  • Queryset API
    • Shell-თან მუშაობა
    • ობიექტების შექმნა
    • განახლება
    • პოვნა (filter/get)
    • წაშლა
  • Admin Panel
    • createsuperuser
    • მოდელის დამატება ადმინ პანელზე
    • ModelAdmin -ის გამოყენება

Workshop 10

  • Views
    • მოდელების გამოტანა ვიუებში კონტექსტის დახმარებით
    • ობიექტის გვერდის აწყობა
  • URLs
    • დინამიური პარამეტრების მიღება
    • Name
    • App_name
  • Templates
    • For loops
    • If statements
    • კონტექსტის გამოყენება
    • Base template-ს შექმნა
    • Include

Workshop 11

  • Post and Get methods
  • Forms
  • ModelForms
  • Rendering forms into templates
  • Creating objects via page
  • Deleting objects
  • Validation process
  • Status codes

Workshop 12

  • Class Based Views
  • Rewriting function-based views to class-based

Workshop 13

  • ცოდნის გამოყენება და საფინალო პროექტზე მუშაობა
  • Blog აპლიკაციის აწყობა 

Workshop 14

  • Blog აპლიკაციის აწყობა (გაგრძელება)