გამოიწერე YouTube-ის არხიyoutube white icon svg გამოწერა

Val Do-ს ბლოგი

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

ინგლისური ენის მნიშვნელობა პროგრამირების სამყაროში
ინგლისური ენის მნიშვნელობა პროგრამირების სამყაროში

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

რატომ არის ინგლისური საჭირო ენა პროგრამირებირებისათვის?

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

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

გლობალური თანამშრომლობა და საზოგადოების ჩართულობა

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

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

ვრცელ დოკუმენტაციასა და რესურსებზე წვდომა

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

გარდა ამისა, ონლაინ ფორუმები, ბლოგები და კოდირების თემები ძირითადად იყენებენ ინგლისურს, როგორც კომუნიკაციის საშუალებას. ამ პლატფორმებში ჩართვა პროგრამისტის სასწავლო პროცესის მნიშვნელოვანი ნაწილია.    პროგრამირების შესწავლა უფასოდ შეგიძლიათ  ისეთ ონლაინ კურსებზე და პროექტებზე როგორებიცაა: Codecademy, Udemy, Khan Academy, Code, FreeCodeCamp და სხვა.

სამუშაო შესაძლებლობები და კარიერული წინსვლა

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

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

მონაწილეობა ტექნიკურ კონფერენციებსა და ქსელურ ღონისძიებებში

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

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

ღია კოდის და პროფესიული ქსელის აშენება

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

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

როგორ ვისწავლოთ ინგლისური?

ინგლისურის სწავლა რამდენიმე მეთოდით შეგიძლიათ, გთავაზობთ მათგან ძირითადს:

სახლში სწავლება

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

ონლაინ სწავლება

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

სასწავლო ცენტრები

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

 სასაუბრო ინგლისურის კურსები უფასოდ

ციფრული ეპოქა და ტექნიკური მხარდაჭერა საშუალებას გვაძლევს გავიუმჯობესოთ ინგლისურის ცოდნა დამხმარე აპლიკაციების სხვადასხვა პლატფორმების დახმარებით, როგორებიცაა:  Duolingo, Babbel, Hello English, Memrise, Cambly Kids,  BBC Learning English, Busuu, HelloTalk  და სხვა.

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

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

თუ თქვენ გადაწყვიტეთ მსოფლიოში ყველაზე მოთხოვნადი პროფესიის შესწავლა და მზად ხართ  გაუღოთ  კარი უამრავ შესაძლებლობას - მოქმედების დროა!

როგორ ავაჩქაროთ საიტი, loading ატრიბუტის დახმარებით
როგორ ავაჩქაროთ საიტი, loading ატრიბუტის დახმარებით

როგორც წესი ვებგვერდების წონის 80%-ზე მეტს სურათები იკავებენ, მაგალითისთვის თუ ჩვენი საიტის უშუალოდ კოდის ნაწილი ზომაში პირობითად 1 მეგაბაიტია სურათები სულ ცოტა 5-ჯერ მეტი იქნება ზომაში.

როდესაც ვებგვერდი იტვირთება, ჩვენი ბრაუზერი ასევე ავტომატურად ცდილობს ჩამოტვირთოს ყველა ის ფოტო, რომელიც უშუალოდ კონკრეტულ გვერდზეა გამოსახული, მიუხედავად იმისა, არის ის თუ არა ჩვენს viewport*-ში.

საჭიროება

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

თუ საიტზე ჯამში გვქონდა 10 ფოტო, რომელთაგანაც მხოლოდ 3 მოხვდა ჩვენს viewport-ში გამოდის, რომ დანარჩენი 7 ფოტო ტყუილად ჩაიტვირთება, რაც გამოიწვევს ჩატვირთვის სიჩქარის შემცირებას, ასევე მოხდება სერვერთან დამატებითი 7 მოთხოვნის გაგზავნა, რომელსაც არც კი გამოვიყენებთ

პრობლემის გადაწყვეტა

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

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

მაგალითი:

<img src="img.1" loading="lazy">
<img src="img.2" loading="lazy">
<img src="img.3" loading="lazy">
<img src="img.4" loading="lazy">
<img src="img.5" loading="lazy">
<img src="img.6" loading="lazy">

loading ატრიბუტი ავტომატურად ხვდება არის თუ არა ჩვენი ფოტო viewport-ში, ან მასთან ახლოს და ამის მიხედვით იგზავნება სერვერზე მოთხოვნა ფოტოს ჩამოტვირთვასთან დაკავშირებით.

საყურადღებო ინფორმაცია

იმისთვის რომ loading="lazy" ატრიბუტმა ისე იმუშაოს, როგორც ზემოთ ავღნიშნეთ ასევე CSS-ით ჩარევაცაა საჭირო ჩვენს კოდში. კონკრეტულად კი img თეგს, რომელსაც loading="lazy" ატრიბუტი აქვს აუცილებელია ქონდეს წინასწარ განსაზღვრული სიმაღლე  ან height თვისებით, ან aspect-ratio-თი

img {
    height: 300px; 
    /* ან */
    aspect-ratio: 16 / 9;
}

მოცემულ ატრიბუტს აქვს ორი მნიშნველობა ესენია:

  • eager
  • lazy

eager-ის შემთხვევაში, საიტზე ყველა ფოტო აუცილებლად ერთდროულად იწყებს ჩამოტვირთვას. ეს img თეგის ე.წ. "default" მნიშვნელობაა

დამატებითი რესურსები

მოცემულ თემასთან დაკავშირებით ასევე მაქვს გადაღებული ვიდეო გაკევეთილი, რომლის დახმარებითაც მეტად შეძლებთ აღნიშნული ბლოგის გააზრებას, ვიდეო შეგიძლიათ იხილოთ ამ ბმულზე

*viewport - საიტის ხილული ნაწილი ბრაუზერის ფანჯარაში

nginx-ის კონფიგურაცია (ჩემი ჩანაწერები)
nginx-ის კონფიგურაცია (ჩემი ჩანაწერები)

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

nginx წარმოადგენს ღია კოდის პინციპზე დაფუძნებულ პროგრამულ უზრუნველყოფას, რომელიც შექმნილია Igor Sysoev-ის მიერ.

როგორც მოგეხსენებათ, val-do.com ჩემი პირველი პროექტია, რომელიც სრულიად ჩემს  მიერაა დაწერილი, როგორც frontend ასევე backend და ასევე სერვერის კონფიგურაციაზეც მე მომიწია შრომა.

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

nginx-ის ინსტალაცია

როგორც მოგეხსენებათ სერვერების 90%-ზე მეტი linux ოპერაციულ სისტემაზეა, შესაბამისად არ დავწვრილმანდები მისი ინსტალაციით, უბრალოდ დაგიტოვებთ მზა რესურსებს, რომლის დახმარებითაც შეძლებთ თქვენს სისტემაზე, Windows, Linux, Mac OS-ზე დააყენოთ nginx.

nginx-ის გამშვები ბრძანებები

nginx -s stop - გათიშვა
nginx -s quit - გამოსვლა
nginx -s reload - გადატვირთვა
nginx -s reopen - ხელახლა გახსნა ლოგ ფაილების

სახელების შეთანხმებები და ტერმინოლოგია

nginx როგორც სხვა პალიკაციები/ენები გამოირჩევა თავისი სპეციფიური სინტაქსით, ამ პარაგრაფში შევეცდები აგიხსნათ მოცემული შეთანხმებები

მაგალითი 1

http {
		server {
		}
}

მოცემული მაგალითი წარმოადგენს ბლოკებს, ანუ ბლოკები გამოიყოფა {} სიმბოლოებით, მაგალითში http არის ბლოკი, ასევე ამ ბლოკში მოთავსებულია
server ბლოკი

მაგალითი 2

server {
	listen 8080;
	root /data/mysite;
}

მაგალითი 2-ში წარმოსახული გვაქვს server ბლოკი, რომელშიც წერია შემდეგი რამ listen 8080, ერთ ხაზზე ჩაწერილი სიტყვა listen შემდეგ ე.წ. ჰარი (გამოტოვება) და 8080
ამ ჩანაწერს ეწოდება დირექტივები.

პ.ს. დირექტივა აუცილებლად უნდა სრულდებოდეს წერტილ მძიმით ;

მაგალითი 3

server {
	listen 8080;
	root /data/mysite;
}

იმ შემთხვევაში თუ ბლოკში ანუ {} ფრჩხილებში გვაქვს 1 დირექტივა მაინც მაშინ მას ეწოდება კონტექსტი, მესამე მაგალითში server-ს დავუძახებთ არა ბლოკს,
არამედ server კონტექსტს

ზუსტი დამთხვევები url-ებში და location კოტექსტი

ზუსტი დამთხვევებისთვის ე.წ. exact match-ისთვის გამოიყენება ტოლობის ნიშანი

მაგალითი 1

location = / {...}

ამ შემთხვევაში nginx შემომავალ მოთხოვნას გაუშვებს root მისამართზე ან პროექტზე, ანუ მაგალითად val-do.com-ზე ხოლო შიდა მისამართები შეგვიძლია საერთოდ
სხვა პორტზე ან პორექტზე გავუშვათ (შიდა მისამართებში იგულისხმება root-ის შემდეგი გვერდები, მაგალითად val-do.com/contact, val-do.com/courses)

მაგალითი 2

location / {...}

მაგალით 2-ში ყველა შემომავალი მოთხოვნა root მისამართზე, ანუ თუ ჩვენ გვაქვს საიტი მაგლითად val-do.com შემომავალი მოთხოვნა გაეშვება val-do.com-ზე
და ასევე ყველა შემდეგი მისამართი, ანუ val-do.com/contact, val-do.com/courses და ა.შ.

alias დირექტივა

გამოიყენება მაშინ, როდესაც გვინდა სტატიკური ასეტები კონკრეტულ url-ზე მიმართო.
მაგალითად თუ სერვერზე სტატიკური ასეტები გვაქვს შემდეგ დირექტორიაში /var/www/myproject/assets

პირობითად კოდში გვაქვს შემდეგი სურათი <img src="/assets/logo.png"/>, პროდაქშენზე გაშვებისას alias -ით შეგვიძლია
logo.png სერვერს წავაკითხინოთ /var/www/myproject/assets საქაღალდიდან

მაგალითი 1

location /assets {
	alias /var/www/myproject/assets
}

proxy_pass დირექტივა

გამოიყენება კონკრეტული url-ის გადამისამართებისთვის. მაგალითისთვის წარმოვიდგინოთ რომ სერვერზე გვაქვს რამდენიმე ლოკალჰოსტი გაშვებული სხვადასხვა პორტზე, მაგალითისთვის მთავარი პროექტი ეშევება localhost:3000 პორტზე, ამ დროს გაჩნდა საჭიროება, რომ localhost:3000/test  მისამართზე ჩავტვირთოთ საერთოდ სხვა პროექტი, რომელიც პირობითად localhost:4000 პორტზეა გაშვებული

მაგალითი 1

location /test {
	proxy_pass http://localhost:4000;
}

ამ მაგალითის მიხედვით მოხდება გადამისამართება localhost:3000/test-დან http://localhost:4000 პორტზე გაშვებულ პროექტზე

რა არის srcset ატრიბუტი და რესპონსიული სურათები?
რა არის srcset ატრიბუტი და რესპონსიული სურათები?

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

srcset ატრიბუტის დახმარებით ჩვენ შევძლებთ მაქსიმალურად გავაუმჯობესოთ ჩვენი აპლიკაციის წარმადობა.

რატომ რესპონსიული სურათები?

რესპონსიული სურათების საჭიროების დასადგენად წარმოვიდგინოთ მაგალითი, რომელიც დაგვეხმარება მისი საჭიროების გააზრებისთვის.

პირველ მაგალითში განვიხილოთ შემთხვევა, რომლის დროსაც სიატის დიზაინში გათვალისწინებულია desktop მოწყობილობებზე, ე.წ. ულტრა განიერი ფოტო რეზოლუციით 2560×1080. მობილურში კი  ფოტო, რომელიც აღარაა ულტრა განიერი და პროპორციებით არის 4/3-ზე 320x240 პიქსელზე სიგანით.

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

მოგეხსენებათ ფოტო რომლის ზომა 2560x1080-ზეა წონით გაცილებით მეტი იქნება, ვიდრე ფოტო, რომელიც 320x240-ზე, ეს კი საკმაოდ დიდ დისკომფორტს ქმნის მომხმარებლის მხარეს, რომელიც მობილური მოწყობილობიდან ეცდება 2560x1080-ზე ზომის ფოტოთი ვებგვერდის გახსნას, ვინაიდან მობილურ მოწყობილობებზე შესაძლებელია სწრაფი ინტერნეტი ყოველთვის არ იყოს ხელმისაწვდომი.

მოცემულ ბლოგში ვისაუბრებთ თუ როგორ გადავჭრით მსგავს პრობლემას srcset ატრიბუტის დახმარებით.

როგორ შევქმნათ რესპონსიული სურათები?

პრობლემის გადაჭრაში დაგვეხმარება HTML-ის 2 ატრიბუტი - srcset და  - sizes, რომელთა დამხარებითაც ჩვენ შევძლებთ მივუთითოთ ბრაუზერებს თუ რა ზომის ფოტო ჩამოტვირთონ ჩვენთვის სასურველ რეზოლუციაზე.

მაგალითი:

<img srcset="img-small.jpg 500w, img-large.jpg 800w" sizes="(max-width: 600px) 500px, 800px" src="img-800w.jpg" alt="srcet example" />

თითქოს ატრიბუტები რთულად გამოიყურება, მაგრამ საქმე არც ისე რთულადაა, ქვემოთ განვიხილავთ თუ როგორ მუშაობს ის.

srcset ატრიბუტი

srcset ატრიბუტში წარმოდგენილია ფოტოების მისამართები, რომლებიც არიან სპეციფიური ზომის, ისინი ერთმანეთისგან გამოიყოფიან მძიმით და ჰარით.

მაგალითში მოცემული გვაქვს სურათი img-small.jpg რომელიც არის ფაილის სახელი. ასევე თუ დავაკვირდებით ფაილის დასახელების და ჰარის შემდეგ მას მოსდევს 500w, რომელიც აღნიშნავს ფოტოს ზომას.

size ატრიბუტი

მოცემული ატრიბუტის დახმარებით ჩვენ შეგვიძლია მივუთითოთ ბრაუზერს, თუ რა ეკრანის ზომაზე რომელი ზომის ფოტო ჩამოტვირთოს. (max-width: 600px) 500px იგივეა რაც ვუთხრათ ბრაუზერს "როდესაც viewport-ის სიგანე არის 600 ან ნაკლები პიქსელი"

მუშაობს თუ არა srcset ატრიბუტი ძველ ბრაუზერებში?

ბრაუზერებში, რომლებსაც არ აქვთ srcset ატრიბუტის მხარდაჭერა ჩაიტვირთება სტანდარტულ src ატრიბუტში მითითებული სურათი ხოლო srcset ატრიბუტი უბრალოდ დაიგნორდება

Windows 11-ის უპირატესობები.
Windows 11-ის უპირატესობები.

ტექნოლოგიის მუდმივად განვითარებად სამყაროში, ოპერაციული სისტემის (OS) არჩევანი გადამწყვეტ როლს თამაშობს ჩვენი ციფრული გამოცდილების ჩამოყალიბებაში.
დღეს, ჩვენ ვაპირებთ განვიხილოთ ყველაზე პოპულარული ოპერაციული სისტემები. ჩავუღრმავდებით მათ მახასიათებლებს, მომხმარებლის ინტერფეისებს და საერთო შესაძლებლობებს. გარდა ამისა, ჩვენ გადავხედავთ  Windows 11-ს და განვიხილავთ განმასხვავებელ ნიშნებსა და უპირატესობებს მისი წინამორბედებისგან.

Windows 11: ოპერაციული სისტემების ახალი ერა

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

განახლებულია სტარტ მენიუ და სამუშაო პანელი:

Windows 11-ში ერთ-ერთი ყველაზე შესამჩნევი ცვლილება არის ხელახალი დიზაინი, Start მენიუ და დავალების პანელი. Start მენიუ ახლა ცენტრალიზებულია, უფრო გამარტივებული და ესთეტიურად სასიამოვნო გარეგნობისთვის. ეს განახლებული განლაგება აუმჯობესებს ხელმისაწვდომობას და უზრუნველყოფს უფრო ინტუიციურ ნავიგაციას.

ფანჯრების განლაგება და დაჯგუფება:

Windows 11 წარმოგიდგენთ Snap Layouts და Snap Groups, ფუნქციებს, რომლებიც რევოლუციას ახდენენ მრავალი დავალების შესრულებაში. Snap Layouts საშუალებას აძლევს მომხმარებლებს ეფექტურად მოაწყონ და მართონ ღია ფანჯრები, ხოლო Snap Groups აადვილებს გადართვას სხვადასხვა ამოცანებს შორის, აუმჯობესებს პროდუქტიულობას და სამუშაო ნაკადის მართვას.

Microsoft Store ძირეული განახლება:

Windows 11-ს მოყვება განახლებული Microsoft Store, რომელიც გთავაზობთ უფრო გამარტივებულ და მოსახერხებელ გამოცდილებას. მაღაზია ახლა მხარს უჭერს აპლიკაციების უფრო ფართო სპექტრს, მათ შორის გვაქვს Android აპლიკაციების მხარდაჭერაც, აფართოებს პროგრამული უზრუნველყოფის ეკოსისტემას, რომელიც ხელმისაწვდომია მომხმარებლებისთვის.

პოპულარული ოპერაციული სისტემების შედარება

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

Windows 10

როგორც Windows 11-ის წინამორბედი, Windows 10 იყო საიმედო და ფართოდ გამოყენებული ოპერაციული სისტემა. მას აქვს ნაცნობი ინტერფეისი, ძლიერი უსაფრთხოება და პროგრამული უზრუნველყოფის თავსებადობის ფართო სპექტრი. თუმცა, Windows 11-ის მოსვლასთან ერთად, მომხმარებლები იძულებულნი არიან განიხილონ განახლება, რათა მიიღონ უახლესი ფუნქციები და გაუმჯობესებები.

macOS

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

Linux

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

Windows 11: უდაო უპირატესობები

Windows 11-ზე განახლების დამაჯერებელი მიზეზების განხილვისას მნიშვნელოვანია აღინიშნოს მნიშვნელოვანი მახასიათებლები, რომლებიც ამ ოპერაციულ სისტემას გამოარჩევს:

1. განახლებული სათამაშო გამოცდილება:

Windows 11-ს გვთავაზობს თამაშების გაუმჯობესებას ისეთი ფუნქციებით, როგორიცაა DirectStorage და Auto HDR უფრო სწრაფი ჩატვირთვის დროისთვის და უფრო ღრმა ვიზუალური გამოცდილებისთვის. მოყვარული მოთამაშეებისთვის, ეს შეიძლება იყოს სრულიად ახალი გამოცდილება და  Windows 11-ზე განახლების მაცდური წინადადება.

2. ოპტიმიზირებულია უკეთესი ფუნქციონირებისთვის:

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

3. უსაფრთხოების განახლებები:

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

4. მომავალი მზად არის Windows განახლებებით:

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

დასკვნა:

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

პროექტის მენეჯმენტი, როგორ დავგეგმოთ პროექტი?
პროექტის მენეჯმენტი, როგორ დავგეგმოთ პროექტი?

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

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

როდესაც წარმატებით დაასრულებთ პროგრამირების კურსებს ნებისმიერი პლატფორმის/ვიდეო გაკვეთილის დახმარებით დროა ნელ-ნელა მიეჩვიოთ პროექტის დაგეგმვას.

დღევანდელ ბლოგში შევეცდები აგიხსნათ თუ როგორ უნდა მოვახდინოთ პროექტის დაშლა მიკრო დავალებებად და მისი შესრულების თანმიმდევრობები.

შევარჩიოთ დავალებების მენეჯმენტის აპლიკაცია

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

ასეთი ე.წ. "task managment"-ის აპლიკაციები საკმაოდ ბევრია, მაგალითისთვის შემიძლია მოვიყვანო რამდენიმე მათგანი :

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

დაფების (board) ების შექმნა

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

დავალებების სიები

დავალებების სიების შექმნა

მას შემდეგვ რაც დავასრულებთ "board"-ის შექმნას, აუცილებელია შევქმნათ დავალების სიები, რომლებიც დაგვეხმარებიან მათ მენეჯმენტში.

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

პირადად მე ვიყენებ შემდეგი დავალებების სიებს:

  • backlog
  • to do
  • in progress
  • QA
  • QA failed
  • done

ქვემოთ ვეცდები აღვწერო თუ რომელი რაში გამოიყენება და როგორ მიმდინარეობს დეველოპმენტის პროცესი.

backlog დავალებების სია

მოცემულ სიაში აუცილებელია მაქსიმალურად ვეცადოთ ჩვენი პროექტი დავშალოთ პატარა ნაწილებად, მაგალითად წარმოვიდგინოთ, რომ გვაქვს ვებ-გვერდი, რომელიც შედგება 4 გვერდისგან:

  1. მთავარი გვერდი
  2. დეტალური გვერდი
  3. ძიების გვერდი
  4. კონტაქტის გვერდი

დასაწყისისთვის შეგვიძლია ბექლოგის სიაში დავამატოთ დავალებები ამ გვერდების შექმნის შესახებ იგივე თანმიმდევრობით.

მოცემულ სიაში ასევე ვამატებთ იმ ყველა იდეას ან სურვილს, რომელიც გვინდა პროექტში განვახორციელოთ, ასევე აუცილებელია ყველა დავალებას მივანიჭოთ შესაბამისი გონივრული ვადა და პრიორიტეტი.

to do დავალებების სია

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

სწორედ ამისთვის გამოიყენება to do სია. დაველებები რომლებზეც 1 კვირის განმავლობაში ვიმუშავებთ აუცილებელია გადავიდეს backlog-იდან to do სიაში.

in progress დავალებების სია

ბუნებრივია ერთდროულად არ შეგვიძლია 2 დავალებაზე მუშაობა, შესაბამისად, დავალება რომელზეც ამჟამად ვმუშაობთ, აუცილებელია გადავიტანოთ in progress სიაში.

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

QA დავალებების სია

მას შემდეგ რაც დავალებას წარმატებით დავასრულებთ, აუცილებელია მისი ტესტირება, რომელსაც ტესტერი შეასრულებს.

დასრულებული დავალება გადადის QA სიაში და იწყება მისი ტესტირება.

QA failed დავალებების სია

იმ შემთხვევაში თუ  დავალებამ ვერ გაიარა ტესტირება, ტესტერი QA სიიდან დავალებას QA failed-ში გადმოიტანს და ჩვენ ვიწყებთ დავალების პრობლემის გამოსწორებას და ვიმეორებთ იგივეს, ანუ დავალება ისევ გადაგვაქვს QA სიაში.

done დავალებების სია

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

როგორ წესი, done-ში დავალებები გადააქვს ტესტერს, რაც გულისხმობს იმას, რომ ჩვენი დავალება წარმატებით შევასრულეთ.

რა განსხვავებაა პარამეტრსა და არგუმენტს შორის ჯავასკრიპტში?
რა განსხვავებაა პარამეტრსა და არგუმენტს შორის ჯავასკრიპტში?

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

ამ ბლოგის დახმარებით გავარკვევთ თუ რა განსხვავებაა პარამეტრსა და არგუმენტს შორის ჯავასკრიპტში.

მაგალითისთვის ავღწეროთ ფუნქცია.

function myFunc(a, b) {
    return a + b;
}

როგორც ზემოთ მოცემულ მაგალითში გვაქვს ნაჩვენები აღწერილი გვაქვს ფუნქცია სახელად myFunc() მოცემული ფუნქცია ეთანხმება 2 პარამეტრს ესენია a და b სწორედ ამ სიმბოლოებს ეწოდება პარამეტრები.

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

მაგალითი:

myFunc(5, 10);

მოცემულ მაგალითში ჩანს, რომ გამოვიძახეთ ფუნქცია და გადავეცით 5-ის და 10-ის მნიშვნელობები, სწორედ ამ მნიშვნელობებს ეწოდებათ არგუმენტები.

შეჯამება:

პარამეტრი(ები) ეწოდება ცვლადებს, რომლებიც გამოიყენება ფუნქციის აღწერისას, რომლებიც აღიწერება () სიმბოლოებს შორის.

არგუმენტი(ები) ეწოდება მნიშნველობებს, რომლებიც გადაეცემა ფუნქციას გამოძახებისას.

სანამ პროგრამირების კურსს შეიძენთ
სანამ პროგრამირების კურსს შეიძენთ

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

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

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

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

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

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

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

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

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

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

პირველ რიგში ეს ყველაზე კარგი “სატყუარაა” კურსის გასაყიდად, მაგრამ იდეაში არც ტყუილი გამოდის ასე, რომ ვთქვათ უფრო კარგად შელამაზებული რეალობაა…

მოდი დავსვათ შემდეგი კითხვები თუ რა შემთხვევაში დასაქმდები თუ შენ რომელიმე კონკრეტულ კურსს გაივლი?

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

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

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

ალბათ ხშირად გსმენიათ ფრაზა “თუ მუშაობა ვერ დავიწყე გამოცდილებას როგორ დავაგროვებ ?” გახსოვდეს პროგრამირებაში გამოცდილების დაგროვება არ მოითხოვს აუცილებლად რომელიმე კომპანიაში თანამშრომლად გაფორმებას.

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

რა შემთხვევაში არ უნდა შეიძინო პროგრამირების კურსი?

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

ამისთვის საჭიროა ხანდახან 6-დან 12 საათამდე მუშაობა და აქტიური მეცადინეობა, ასევე ძალიან რთულია სხვა სამსახურის შემდგომ პროგრამირების გაკვეთილების მოსმენა და დავალებების კეთება, მაგრამ არა შეუძლებელი.

აუცილებელია გახსოვდეთ, რომ პროგრამირებას 2-3 თვეში ვერ შეისწავლით, იმისთვის, რომ თქვენი პირველი სამსახური დაწიყოთ, ხანდახან რამდენიმე წელია საჭირო.

საბოლოო დასკვნა

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

თუ თქვენ არ იშრომებთ და მაქსიმალურად არ მოინდომებთ ვერცერთი აკადემია/ლექტორი/კურსი ვერ ჩაგიდებთ იმ გამოცდილებას გონებაში, რომელიც მხოლოდ თქვენი შრომით გროვდება.

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

აკეთეთ რეალურლი პროექტები მანამ სანამ თქვენ პირველ სამსახურს არ ნახავთ.


პ.ს. ასევე გააგზავნეთ თქვენი რეზიუმეები კომპანიების ვაკანსიებზე

როგორ დავაგროვოთ სამუშაო გამოცდილება?
როგორ დავაგროვოთ სამუშაო გამოცდილება?

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

რატომ იკავებენ თავს გამოცდილების გარეშე სამსახურში აგიყვანონ?

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

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

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

გამოცდილების არ ქონა

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

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

როგორ დავაგროვო სამსახურის გამოცდილება (სტაჟირება) უფასოდ ?

დეველოპმენტში და პროგრამირებაში, საბედნიეროდ, საქმე ბევრად მარტივად გვაქვს, განსხვავებით სხვა სამსახურებისგან, მაგალითად მოვიყვანოთ კბილის ექიმი.

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

დამწყები პროგრამისტების/დეველოპერების შემთხვევაში ეს ბევრად მარტივია.

გამოცდილების დაგროვება

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

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

სტაჟირების სიმულაცია

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

აუცილებელია გამოყოთ დღის განმავლობაში სამუშაო საათები, კარგ ვარიანტში მინიმუმ 8 საათი, 1 საათიანი შესვენების შუალედით.

პროექტის განსაზღვრა

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

პროექტის დაგემვა

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

პროექტის დაგეგმვის ეტაპზე აუცილებელია გამოვიყენოთ ე.წ. "თასქ მენეჯმენტ" საიტები ისეთები როგორებიცაა მაგალთად:

მოცემული საიტები საშუალებას მოგცემს მიკრო დავალებებად დაყო შენი პროექტი და ნაწილ-ნაწილ შეასრულო.

პროექტის ჩაბარების ვადები (დედლაინები)

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

დედლაინის განსაზღვირს შემდგომ აუცილებელია მაქსიმალუროად ეცადო ჩაეტიო პრეოქტის შესრულების ვადებში.

პროექტის დასრულება

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

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

საბოლოო ხარვეზების გამოსწორება

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

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

საბოლოო ეტაპი

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

შეჯამება

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

 

Linux-ის ბნელი მხარე
Linux-ის ბნელი მხარე

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

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

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

  • AMD Ryzen 5600G
  • RX 580 Nitro

Ubuntu-ს დისტრიბუცია

ჩემი პირველი ურთიერთობა ლინუქსთან დებიან დისტრიბუციის, კერძოდ Ubuntu-სთან შეხებით იყო. Ubuntu ჯერ კიდევ სტუდენტობის ასაკში მქონდა დაყენებული ჩემს პირად ლეპტოპზე და ჩემი მთავარი ოპერაციული სისტემა დაალხოვებით 2-დან 5-წლამდე იყო, სანამ MacOS-ზე გადავიდოდი.

ახალი პერსონალური კომპიუტერის შეძენის შემდგომ გადავწყვიტე ისევ Ubuntu დამეყენებინა მთავარ ოპერაციულ სისტემად და პრობლემებიც დაიწყო...

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

როგორც მოგეხსენებათ Adobe და Linux დიდად ვერ მეგობრობენ შესაბამისად ვიდეოს მონტაჟისთვის ვიყენებ Davinci Resolve აპლიკაციას, რომელსაც ასევე აქვს Linux-ის მხარდაჭერა, მაგრამ როგორც აღმოჩნდა არ ირთვებოდა.

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

OBS-ის პრობლემები

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

WIFI-ის პრობლემები

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

Bluetooth-ის პრობლემები

ასევე პრობლემა ქონდა Bluetooth-ს რომესაც ქონდა საოცარი წყვეტები. ადაპტერი უბრალოდ 1 ჩართვაზე მუშაობდა 2-ზე არა.


Arch დისტრიბუცია

ჩემი ბოლო შეხება იყო უშუალოდ Arch ლინუქსი, რომელიც საკმაო პოპულარულობით სარგებლობს advanced მომხმარებლებში.

რამდენიმე ცდის შემდეგ როგორც იქნა Arch დავაყენე archinstall სკრიპტის დახმარებით, რომელიც როგორც აღმოჩნდა დიდი შეცდომა იყო.

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

Shutdown, Restart-ის პრობლემები

პირველი პრობლემა რაც შევამჩნიე ეს იყო გათიშვის და დარესტარტების პრობლემა, როდესაც დღის ბოლოს ვცადე ოპერაციული სისტემის გათიშვა ის უბრალოდ შავ ეკრანზე გადადიოდა და სისტემური ბლოკი (პროცესორს რომ ვეძახით) აღარ ითიშებოდა.

საბედნიეროდ რამდენიმე საათიანი ძიების შემდეგ პრობლემა მოვაგვარე და ეს პრობლემა აღარ მაწუხებდა.

WIFI-ის პრობლემები

WIFI-ს პრობლემა გაგრძელდა Arch-ზეც, სანამ ამ დიაგნოზს დავსვავდი ახალი WIFI ადაპტერიც კი ვიყიდე და პრობლემა პრობლემად დარჩა, WIFI-ს ისევ დიდი drop-ები ქონდა.

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

Bluetooth-ის პრობლემები

ანალოგიურად ვერც Bluetooth-ს მოვუხერხე ვერაფერი, მიუხედავად იმისა რომ ამ პრობლემეის მოგვარებას ძალიან დიდი დრო და ენერგია დავახარჯე ფორუმების ინფორმაცია სამწუხაროდ არ გამომადგა.

Partition-ის პრობლემები

როგორც ზემოთ ავღნიშნე Arch დავაინსტალირე archinstall სკრიპტის დახმარებით, რომელიც საბოლოო ჯამში ცუდი გადაწყვეტილება აღმოჩნდა იმის გამო რომ, ავტომატურად root დირექტორიას მხოლოდ 20GB მეხსიერება გამოუყო და შემდგომში აპლიკაციის დასაყენებლად უბრალოდ ადგილი აღარ მქონდა, სწორედ ამის გამო მიწევდა ტერმინალიდან partition-ების გაყოფა რაც რამდენიმე ცდით არ გამომივიდა...

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


შეჯამება

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

გადამწყვეტი ფაქტორი Windows-ზე გადასვლის იყო WIFI-ს პრობლემა რომელსაც მინიმუმ 1 თვე ვებრძოლე, მაგრამ მიუხედავად უამრავი ინფორმაციისა ლინუქსის ფორუმებზე არცერთი პასუხი არ გამომადგა...

საბოლოო ჯამში მაინც მივედი იმ დასკვნამდე, რომ დეველოპმენტისთვის და ასევე YouTube-არხზე ვიდეოების ასატვირთად და დასამონტაჟებლად იდეალური სისტემა არის MacOS, რომელსაც ერთნაირად აქვს კარგი წარმადობაც და აპლიკაციების ხელმისაწვდომობაც.

მაკის ერთადერთ მინუსად მხოლოდ იმას ჩავთვლი, რომ მასზე ვიდეო თამაშებს ვერ ითამაშებ.

როგორ დავრჩეთ მოტივრებული ?
როგორ დავრჩეთ მოტივრებული ?

დღევანდელ ბლოგში ვისაუბრებ, თუ როგორ დავრჩე მოტივირებული ვებ პროგრამირების შესწავლის დროს.

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

ახლა გაგიზიარებთ საკუთარ გამოცდილებას, თუ როგორ ვებრძვი მას და ვრჩები მოტივირებული.

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

დემოტივაციის დაძლევის საპირისპირო ძალა არის მოქმედება და მხოლოდ მოქმედება… არ აქვს მნიშვნელობა რამდენად პატარაა ქმედება, უბრალოდ ადექით და რამე გააკეთეთ, ამ დროს ხშირად ვიყენებ ჩემს საყვარელ წინადადებას 0-ს ყოველთვის სჯობს 1 ასევე 0-ს სჯობს 0.00001-იც.

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

მოტივაცია, უხეშად რომ ვთქვათ, არის კუნთივით და მისი გამომუშავება შესაძლებელია.

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

ზემოთ ხსენებული პრობლემის დასამარცხებლად, ხანდახან უბრალოდ უნდა ადგე და ჰაერზე გახვიდე, რამენაირად უნდა სცადო შენი გონება დააკავო განსხვავებული საქმით, უბრალოდ ადექით და ჰაერზე გადით. 5-10 წუთი გასეირნება ან უბრალოდ კომპიუტერიდან ადგომა და შინაური ცხოველის მოფერებაც კი დაგეხმარებათ იმაში, რომ თქვენი გონების განახლების ღილაკს მიწვდეთ და განაახლოთ ის :) “დაარეფრეშოთ”.

მოდი ამ აბზაცის ქვემოთ განვიხილოთ უკიდურესი შემთხვევა, როდესაც ყველანაირად ცდილობ კონცენტრაციას, მოტივაციას, მაგრამ მაინც არაფერი გამოგდის… ამ დროს მინდა საკუთარ თავს დაუსვათ კითხვა როგორ გამოვიძინე?

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

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

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

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

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

როგორ დავაღწიოთ თავი Tutorial hell-ს?

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

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

მოცემული კურსები შესაძლოა ავარჩიოთ მომხმარებლის შეფასებებიდან გამოდინარე ან მეგობრის რეკომენდაციით.

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

როგორ ვსწავლობ პროგრამირების ენას (ჩემი მეთოდი)

ახლა კი მოგიყვებით ჩემს მიდგომაზე, თუ როგორ ვსწავლობ პროგრამირების ახალ ენას ვიდეო გაკვეთილების დახმარებით.

მას შემდეგ რაც ავარჩევ კურსს რომელიც უნდა შევისწავლო ვიწყებ მის ყურებას და უბრალოდ მოსმენას, მაქსიმალურად ვცდილობ ვიყო ყურადღებით და თუ რაიმე არ მესმის ან მიჭირს გაგება, არ ვაიგნორებ, არამედ გარკვეულ მონაკვეთს მანამ ვუკირკიტები, სანამ 100%-ით არ ვიქნები დარწმუნებული, რომ ყველაფერი კარგად გავიგე.

ასევე, თუ თქვენი კურსი არის ინგლისურ ენაზე და არ მესმის კარგად რასაც საუბრობს ლექტორი, ვრთავ ე.წ. ტიტრებს და ისე ვაგრძელებ მოსმენას და თუ მაინც ისეთი სიტყვა ვიპოვე, რომელიც აქამდე არ ვიცოდი ვიყენებ გადათარგმნის ონლიან სერვისებს ისეთებს, როგორებიცაა: translate.google.com ან translate.ge

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

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

პროგრამირების შესწავლის მეორე საფეხური

მას შემდეგ რაც გაკვეთილს ბოლომდე მოვისმენ, უკვე მექმნება წარმოდგენა თუ როგორ მუშაობს მთლიანად ენა, როგორ ხდება ცვლადების აღწერა, მონაცემების გაცვლა და ა.შ.

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

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

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

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

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

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

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

პროგრამირების უფასო კურსები ქართულად