მოცემულ გვერდზე შეგიძლიათ გაეცნოთ ჩემს მიერ დაწერილ ბლოგებს, რომელიც ძირითად შემთხვევაში შეეხება ვებ-პროგრამირებას ან ინფორმაციულ ტექნოლოგიებს
სანამ თქვენს პირველ სამსახურს იპოვით, დეველოპმენტის სფეროში, აუცილებელია გამოიმუშავოთ რეალურ პროექტებთან მუშაობის უნარი, რაც გულისხმობს ჩვენი დროის და დავალებების მენეჯმენტს.
პირველი რაც ყველაზე მნიშვნელოვანია, აუცილებელია გავიაზროთ, რომ კომპლექსური პროექტები 1 დღეში არ კეთდება და მისი დეველოპმენტი ხანდახან ათწელეულებიც გრძელდება.
როდესაც წარმატებით დაასრულებთ პროგრამირების კურსებს ნებისმიერი პლატფორმის/ვიდეო გაკვეთილის დახმარებით დროა ნელ-ნელა მიეჩვიოთ პროექტის დაგეგმვას.
დღევანდელ ბლოგში შევეცდები აგიხსნათ თუ როგორ უნდა მოვახდინოთ პროექტის დაშლა მიკრო დავალებებად და მისი შესრულების თანმიმდევრობები.
სანამ ჩვენი პროექტის მიკრო დავალებებად დაშლას შევუდგებით აუცილებელია ავარჩიოთ აპლიკაცია, რომელიც დაგვეხმარება მის შემდგომ მართვაში.
ასეთი ე.წ. "task managment"-ის აპლიკაციები საკმაოდ ბევრია, მაგალითისთვის შემიძლია მოვიყვანო რამდენიმე მათგანი :
ზემოთ მოცემული სიის გარდა კიდევ უმრავი მსგავსი აპლიკაცია არსებობს, მაგრამ მე შევეცდები დღეს trello-ს მაგალითზე აგიხსნათ.
ტრელოზე რეგისტრაციის გავლის შემდგომ აუცილებელია შევქმნათ ჩვენი პირველი ე.წ. "board" რომელიც იქნება პროექტის სპეციფიკაზე მორგებული, მაგალითად შეგვიძლია დავარქვათ "დეველოპმენტი".
მას შემდეგვ რაც დავასრულებთ "board"-ის შექმნას, აუცილებელია შევქმნათ დავალების სიები, რომლებიც დაგვეხმარებიან მათ მენეჯმენტში.
თანამედროვე კომპანიების უმეტესობა, რომლებიც ბაზარზე პოზიციონირებენ, ძირითადად იყენებენ ე.წ. Agile მიდგომას კომპანიაში დეველოპმენტისთვის და არა მარტო...
პირადად მე ვიყენებ შემდეგი დავალებების სიებს:
ქვემოთ ვეცდები აღვწერო თუ რომელი რაში გამოიყენება და როგორ მიმდინარეობს დეველოპმენტის პროცესი.
მოცემულ სიაში აუცილებელია მაქსიმალურად ვეცადოთ ჩვენი პროექტი დავშალოთ პატარა ნაწილებად, მაგალითად წარმოვიდგინოთ, რომ გვაქვს ვებ-გვერდი, რომელიც შედგება 4 გვერდისგან:
დასაწყისისთვის შეგვიძლია ბექლოგის სიაში დავამატოთ დავალებები ამ გვერდების შექმნის შესახებ იგივე თანმიმდევრობით.
მოცემულ სიაში ასევე ვამატებთ იმ ყველა იდეას ან სურვილს, რომელიც გვინდა პროექტში განვახორციელოთ, ასევე აუცილებელია ყველა დავალებას მივანიჭოთ შესაბამისი გონივრული ვადა და პრიორიტეტი.
კომპანიები თავისი მოთხოვნიდან გამომდინარე აწესებენ კონკრეტული დაველებებისთვის შესასრულებელ გონივრულ ვადებს, მაგალითისთვის წარმოვიდგინოთ, რომ 1 კვირის შუალედში დასასრულებელი გვაქვს მთავარი და დეტალური გვერდები.
სწორედ ამისთვის გამოიყენება to do სია. დაველებები რომლებზეც 1 კვირის განმავლობაში ვიმუშავებთ აუცილებელია გადავიდეს backlog-იდან to do სიაში.
ბუნებრივია ერთდროულად არ შეგვიძლია 2 დავალებაზე მუშაობა, შესაბამისად, დავალება რომელზეც ამჟამად ვმუშაობთ, აუცილებელია გადავიტანოთ in progress სიაში.
მოცემული სია ასევე ეხმარება მენეჯმენტის გუნდს იმის გაგებაში, თუ რაზე მუშაობს დეველოპერი.
მას შემდეგ რაც დავალებას წარმატებით დავასრულებთ, აუცილებელია მისი ტესტირება, რომელსაც ტესტერი შეასრულებს.
დასრულებული დავალება გადადის QA სიაში და იწყება მისი ტესტირება.
იმ შემთხვევაში თუ დავალებამ ვერ გაიარა ტესტირება, ტესტერი QA სიიდან დავალებას QA failed-ში გადმოიტანს და ჩვენ ვიწყებთ დავალების პრობლემის გამოსწორებას და ვიმეორებთ იგივეს, ანუ დავალება ისევ გადაგვაქვს QA სიაში.
მოცემულ სიაში დავალებები გადადის იმ შემთხვევაში, თუ მან ტესტირება წარმატებით გაიარა და მზადაა რეალურ გარემოზე ასატვირთად.
როგორ წესი, 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 ფაილი. იმ შემთხვევაში თუ გასაუბრებაზე მოხვდები და გამოცდილებას შეგეკითხებიან, უკვე გექნება რეალური პროექტი, რომელზეც გექნება ნამუშევარი და ამ პროექტის კოდიც კი შეგიძლია აჩვენო პოტენციურ დამკვეთს.
ზემოთ მოყვანილ ბლოგში, მოკლედ ვეცადე ჩემი გამოცდილება და რჩევები გამეზიარებინა, რომელიც ვფიქრობ გამოგადგებათ პირველი სამსახურის დაწყებაში.
დღევანდელ ბლოგში მინდა განვიხილო გამოცდილება ჩემი და ლინუქსის ურთიერთობის შესახებ. თუ თქვენ ჩემი არხის გამომწერი ხართ, კარგად გეცოდინებათ რამდენად დიდი სიმპატიით ვარ განმსჭვალული ამ ოპერაციული სისტემის მიმართ, მაგრამ დღეს მინდა მისი ნაკლოვანებები მკაფიოდ დაგანახოთ, რომელიც ბოლო რამდენიმე თვეში გადამხდა.
როგორც იცით რამდენიმე თვის უკან გადავწყვიტე შემეძინა პერსონალური კომპიუტერი რათა დავბრუნებოდი ლინუქსის ოპერაციულ სიტემას დიდი განშორების შემდეგ.
კომპიუტერის არჩევისას მაქსიმალურად გავითვალისწინე ამეწყო AMD-ის პროცესორით და ვიდეობარათით, რადგან როგორც ფორუმებზე მქონდა წაკითხული არ შემექმნებოდა დრაივერებთან დაკავშირებული პრობლემები Nvidia-სგან განსხვავებით, ასე რომ, ჩემი კომპიუტერი ავაწყე შემდეგ პროცესორზე და ვიდეო ბარათზე:
ჩემი პირველი ურთიერთობა ლინუქსთან დებიან დისტრიბუციის, კერძოდ Ubuntu-სთან შეხებით იყო. Ubuntu ჯერ კიდევ სტუდენტობის ასაკში მქონდა დაყენებული ჩემს პირად ლეპტოპზე და ჩემი მთავარი ოპერაციული სისტემა დაალხოვებით 2-დან 5-წლამდე იყო, სანამ MacOS-ზე გადავიდოდი.
ახალი პერსონალური კომპიუტერის შეძენის შემდგომ გადავწყვიტე ისევ Ubuntu დამეყენებინა მთავარ ოპერაციულ სისტემად და პრობლემებიც დაიწყო...
ინსტალაციის შემდეგ, რა თქმა უნდა დავიწყე სამუშაო გარემოს გამართვა, როგორც პროგრამირებისთვის, ასევე YouTube-სთვის. პროგრამირების მხრივ პრობლემა ნამდვილად არაფერზე შემქნია, პირიქით, ლინუქსზე დეველოპმენტი ერთი დიდი სიამოვნებაა, მაგრამ YouTube-ისთვის გარემოს გამართვაში ჩაფლავდა...
როგორც მოგეხსენებათ Adobe და Linux დიდად ვერ მეგობრობენ შესაბამისად ვიდეოს მონტაჟისთვის ვიყენებ Davinci Resolve აპლიკაციას, რომელსაც ასევე აქვს Linux-ის მხარდაჭერა, მაგრამ როგორც აღმოჩნდა არ ირთვებოდა.
მიუხედავად რამდენიმე კვირიანი ინტერნეტში ქექვა და ფორუმების გადატრიალება არ აღმოჩნდა საკმარისი, იმისთვის რომ მე ეს სამონტაჟო პროგრამა დამეყენებინა, შესაბამისად მოვნახე გამოსავალი და ე.წ. dualboot-ში დავაყენე Windows-ის ოპერაციული სიტემა, რომელზეც გადაღებულ გაკვეთილს/ვიდეოს ვამონტაჟებდი.
ასევე ჩაფლავდა OBS, რომელიც რატომღაც ყოველგვარი გაბრთხილების გარეშე ითიშებოდა იმ შემთხვევაში თუ ვეცდებოდი მისი პარამეტრების შეცვლას, როგორც ფორუმებიდან წავიკითხე ეს ძალიან გავრცელებული პრობლემა იყო...
ასევე WIFI-ზე დაკავშირებული პრობლემა, რომლის დროსაც კომპიუტერი WIFI-ს ჩვეულებრივ იღებდა, მაგრამ ქონდა წყვეტები, იმისთვის, რომ სიგნალი აღმდგარიყო მიწევდა პარამეტრებიდან WIFI-ის ჩართვა და უბრალოდ გამორთვა...
ასევე პრობლემა ქონდა Bluetooth-ს რომესაც ქონდა საოცარი წყვეტები. ადაპტერი უბრალოდ 1 ჩართვაზე მუშაობდა 2-ზე არა.
ჩემი ბოლო შეხება იყო უშუალოდ Arch ლინუქსი, რომელიც საკმაო პოპულარულობით სარგებლობს advanced მომხმარებლებში.
რამდენიმე ცდის შემდეგ როგორც იქნა Arch დავაყენე archinstall სკრიპტის დახმარებით, რომელიც როგორც აღმოჩნდა დიდი შეცდომა იყო.
Arch-ზე ინსტალაციის შემდგომ კიდევ ბევრი რამის გამართვა დამჭირდა იმისთვის, რომ სისტემა დეველოპმენტისთვის გამოსადეგი ყოფილიყო, მაგალითად სისტემას არ მოყვება ინტერნეტ კავშირი და გიწევს შენით ჩართო მისი სერვისი რა თქმა უნდა ტერმინალის დახმარებით, ასევე საბედნეროდ წყვეტების გარეშე ამუშავდა OBS და ვიდეოს გადაღების დროს პრობლემები აღარ მქონდა.
პირველი პრობლემა რაც შევამჩნიე ეს იყო გათიშვის და დარესტარტების პრობლემა, როდესაც დღის ბოლოს ვცადე ოპერაციული სისტემის გათიშვა ის უბრალოდ შავ ეკრანზე გადადიოდა და სისტემური ბლოკი (პროცესორს რომ ვეძახით) აღარ ითიშებოდა.
საბედნიეროდ რამდენიმე საათიანი ძიების შემდეგ პრობლემა მოვაგვარე და ეს პრობლემა აღარ მაწუხებდა.
WIFI-ს პრობლემა გაგრძელდა Arch-ზეც, სანამ ამ დიაგნოზს დავსვავდი ახალი WIFI ადაპტერიც კი ვიყიდე და პრობლემა პრობლემად დარჩა, WIFI-ს ისევ დიდი drop-ები ქონდა.
შემდეგ როგორც ფორუმზე წავიკითხე მსგავსი პრობლემის წინაშე საკმაოდ ბევრი ადამიანი იდგა და მისი მიზეზი ლინუქსის ერთ ერთი განახლება იყო.
ანალოგიურად ვერც Bluetooth-ს მოვუხერხე ვერაფერი, მიუხედავად იმისა რომ ამ პრობლემეის მოგვარებას ძალიან დიდი დრო და ენერგია დავახარჯე ფორუმების ინფორმაცია სამწუხაროდ არ გამომადგა.
როგორც ზემოთ ავღნიშნე Arch დავაინსტალირე archinstall სკრიპტის დახმარებით, რომელიც საბოლოო ჯამში ცუდი გადაწყვეტილება აღმოჩნდა იმის გამო რომ, ავტომატურად root დირექტორიას მხოლოდ 20GB მეხსიერება გამოუყო და შემდგომში აპლიკაციის დასაყენებლად უბრალოდ ადგილი აღარ მქონდა, სწორედ ამის გამო მიწევდა ტერმინალიდან partition-ების გაყოფა რაც რამდენიმე ცდით არ გამომივიდა...
მიუხედავად იმისა, რომ მივყვებოდი ფორუმების პასუხებს რატომღაც ვერაფერი გავაწყე და მივხვდი, რომ უბრალოდ ძალიან დიდ დროს ვუთმობდი ოპერაციული სისტემის გამართვას.
მიუხედავად ჩემი დიდი სიყვარულისა ლინუქსის მიმართ, უბრალოდ ამ პრობლემების მოგვარების დრო ნამდვილად აღარ მქონდა და გადავწყვიტე ისევ პერსონალურ კომპიუტერზე Windows დამეყენებინა.
გადამწყვეტი ფაქტორი Windows-ზე გადასვლის იყო WIFI-ს პრობლემა რომელსაც მინიმუმ 1 თვე ვებრძოლე, მაგრამ მიუხედავად უამრავი ინფორმაციისა ლინუქსის ფორუმებზე არცერთი პასუხი არ გამომადგა...
საბოლოო ჯამში მაინც მივედი იმ დასკვნამდე, რომ დეველოპმენტისთვის და ასევე YouTube-არხზე ვიდეოების ასატვირთად და დასამონტაჟებლად იდეალური სისტემა არის MacOS, რომელსაც ერთნაირად აქვს კარგი წარმადობაც და აპლიკაციების ხელმისაწვდომობაც.
მაკის ერთადერთ მინუსად მხოლოდ იმას ჩავთვლი, რომ მასზე ვიდეო თამაშებს ვერ ითამაშებ.
დღევანდელ ბლოგში ვისაუბრებ, თუ როგორ დავრჩე მოტივირებული ვებ პროგრამირების შესწავლის დროს.
თუ დამწყები დეველოპერი ხართ, ალბათ ხშირად გამოგიცდიათ დემოტივაცია გარკვეული კურსის თუ პროგრამირების ენის შესწავლისას, მინდა გითხრა, რომ მარტო არ ხართ და ყოველდღიურად, როგორც დამწყებ დეველოპერებს, ისევე გამოცდილებსაც გვაქვს მსგავსი სახის დემოტივაცია.
ახლა გაგიზიარებთ საკუთარ გამოცდილებას, თუ როგორ ვებრძვი მას და ვრჩები მოტივირებული.
მოტივაცია, მოგეხსენებათ, ყველასთვის სხვადასხვანაირად აღიქმება, ამიტომ დიდი შანსია ჩემი გამოცდილება თქვენს პერსონაზე არ მოქმედებდეს.
ალბათ გქონიათ შემთხვევა, როდესაც გაქვთ რაიმე დავალება, ე.წ. “თასქი” ან თუნდაც დაგეგმილი გაკვეთილი გაქვთ, მაგრამ ძალიან გეზარებათ და ვერანაირად ფოკუსირდებით.
დემოტივაციის დაძლევის საპირისპირო ძალა არის მოქმედება და მხოლოდ მოქმედება… არ აქვს მნიშვნელობა რამდენად პატარაა ქმედება, უბრალოდ ადექით და რამე გააკეთეთ, ამ დროს ხშირად ვიყენებ ჩემს საყვარელ წინადადებას 0-ს ყოველთვის სჯობს 1 ასევე 0-ს სჯობს 0.00001-იც.
ეცადეთ თქვენი საქმე დაყოთ უმცირეს ნაწილებად და ისე მოახერხოთ მისი დასრულება. დამიჯერეთ, როგორც არ უნდა უმოტივაციოდ იყოთ, როგორც კი პატარა დავალებას მაინც შეასრულებთ, ის უკვე დადებითად იმოქმედებს თქვენს მოტივაციაზე და ყოველი პატარა, თუნდაც მიზერული შესრულებული საქმე ნელ-ნელა დაგმუხტავთ დადებითი ენერგიით და წინ გაგიძღვებათ დემოტივაციის დაძლევაში.
მოტივაცია, უხეშად რომ ვთქვათ, არის კუნთივით და მისი გამომუშავება შესაძლებელია.
ასევე არის მომენტები, როდესაც მოტივაციას რაიმე რთული პროგრამირების დავალება გვაკარგინებს. ვუზივართ, ვცდილობთ ამოვხსნათ არსებული პრობლემა, მაგრამ არაფერი გამოგვდის, ამ დროს ხშირად ვვარდებით ე.წ. თვით გვემაში და თავი დედამიწის ზურგზე ყველაზე სულელი გვგონია…
დამიჯერეთ თქვენ მარტო არ ხართ… მსგავს შემთხვევას პირადად მე ხანდახან კვირაში ან დღეში რამდენჯერმეც კი ვაწყდები, მაგრამ საბედნიეროდ უკვე გამოვიმუშავე უნარი, რომელიც მეხმარება მარტივად ვფოკუსირდე და ისევ ახალი მოტივაციით შევუდგე საქმეს, ახლა კი ვისაუბროთ თუ როგორ დავამარცხოთ ეს პრობლემა.
ზემოთ ხსენებული პრობლემის დასამარცხებლად, ხანდახან უბრალოდ უნდა ადგე და ჰაერზე გახვიდე, რამენაირად უნდა სცადო შენი გონება დააკავო განსხვავებული საქმით, უბრალოდ ადექით და ჰაერზე გადით. 5-10 წუთი გასეირნება ან უბრალოდ კომპიუტერიდან ადგომა და შინაური ცხოველის მოფერებაც კი დაგეხმარებათ იმაში, რომ თქვენი გონების განახლების ღილაკს მიწვდეთ და განაახლოთ ის :) “დაარეფრეშოთ”.
მოდი ამ აბზაცის ქვემოთ განვიხილოთ უკიდურესი შემთხვევა, როდესაც ყველანაირად ცდილობ კონცენტრაციას, მოტივაციას, მაგრამ მაინც არაფერი გამოგდის… ამ დროს მინდა საკუთარ თავს დაუსვათ კითხვა როგორ გამოვიძინე?
ძალიან ნაცნობი შემთხვევაა როდესაც დატვირთული გრაფიკის ან თუნდაც უბრალოდ კარგი გართობის გამო ზედიზედ რამდენიმე დღე გვიან დაიძინე და შენს სხეულს ძილი ძალიან აკლია, ასეთ შემთხვევაში დამიჯერეთ არაფერი გიშველით ისე, როგორც კარგად გამოძინება და ახალი ენერგიით დამუხტული მთებსაც კი გადადგავთ.
დღევანდელ ბლოგში მიმოვიხილე პირადად ჩემი გამოცდილება, რომელიც სწავლის ან უბრალოდ სამსახურში ყოფნის დროს მოტივაციას ეხებოდა, დანარჩენს კი ჩემს YouTube არხზე ვიდოს სახით მოგახსენებთ
პროგრამირების შესწავლა არც თუ ისე მარტივი საქმეა. ეს პროცესი მოითხოვს ძალიან დიდ შრომას და თავდადებას, იმისთვის რომ დაიწყოთ თქვენი პირველი საოცნებო სამსახური.
ჩემი კარიერის მანძილზე ძალიან ბევრჯერ ვცადე სხვადასხვა მიდგომა ახალი პროგრამირების ენის შესასწავლად და მხოლოდ რამდენიმე მეთოდმა თუ გაამართლა. დღევანდელ ბლოგში ვაპირებ სწორედ ამ მიდგომებზე ვისაუბრო, რომელიც რა თქმა უნდა ჩემს შემთხვევაში ამართლებდა.
როდესაც პროგრამირების შესავლას YouTube-ის ვიდეოებით იწყებთ ძალიან მარტივია მოხვდეთ ე.წ. Tutorial hell-ში რაც გულისხმობს იმას, რომ თქვენ უყურებთ უამრავ ვიდეოს სადაც სხვადასხვა მეთოდით გასწავლიან გამოცდილი დეველოპერები და საბოლოო ჯამში იმდენად ბევრ ინფორმაციას იღებთ, რომ იკარგებით და ვეღარც თავს, ვეღარც ბოლოს ვერ უგებთ თუ რას სწავლობთ.
იმისთვის, რომ ამ პროცესს თავი დავაღწიოთ, აუცილებელია პირველ რიგში, მოვძებნოთ ისეთი კურსი, რომელიც დასაწყისიდან დასასრულამდე მოგვცემს სრულფასოვან ცოდნას ენის საფუძვლების შესახებ.
მოცემული კურსები შესაძლოა ავარჩიოთ მომხმარებლის შეფასებებიდან გამოდინარე ან მეგობრის რეკომენდაციით.
აუციელბელია კურსი დავასრულოთ მთლიანად და არ შევწყვიტოთ მისი მოსმენა შუა გზაში, ასევე უნდა ვაკეთოთ კურსის ინსტრუქტორის მითითებები ზედმიწევნით.
ახლა კი მოგიყვებით ჩემს მიდგომაზე, თუ როგორ ვსწავლობ პროგრამირების ახალ ენას ვიდეო გაკვეთილების დახმარებით.
მას შემდეგ რაც ავარჩევ კურსს რომელიც უნდა შევისწავლო ვიწყებ მის ყურებას და უბრალოდ მოსმენას, მაქსიმალურად ვცდილობ ვიყო ყურადღებით და თუ რაიმე არ მესმის ან მიჭირს გაგება, არ ვაიგნორებ, არამედ გარკვეულ მონაკვეთს მანამ ვუკირკიტები, სანამ 100%-ით არ ვიქნები დარწმუნებული, რომ ყველაფერი კარგად გავიგე.
ასევე, თუ თქვენი კურსი არის ინგლისურ ენაზე და არ მესმის კარგად რასაც საუბრობს ლექტორი, ვრთავ ე.წ. ტიტრებს და ისე ვაგრძელებ მოსმენას და თუ მაინც ისეთი სიტყვა ვიპოვე, რომელიც აქამდე არ ვიცოდი ვიყენებ გადათარგმნის ონლიან სერვისებს ისეთებს, როგორებიცაა: translate.google.com ან translate.ge
მოცემული მეთოდი მეხმარება გაკვეთილის პირველად ყურებისას გავიაზრო თუ რის გაკეთებას ცდილობს ლექტორი და რა პროექტი თუ ამოცანები უნდა გადაჭრას მოცემულ გაკვეთილში.
აუცილებელი მოთხოვნაა, პირველად გაკვეთილის მოსმენისას არ დავიწყო მასთან ერთად კოდის წერა და უბრალოდ გულდასმით ვუსმინო კურსის ბოლომდე.
მას შემდეგ რაც გაკვეთილს ბოლომდე მოვისმენ, უკვე მექმნება წარმოდგენა თუ როგორ მუშაობს მთლიანად ენა, როგორ ხდება ცვლადების აღწერა, მონაცემების გაცვლა და ა.შ.
როდესაც მეორედ ვიწყებ გაკვეთილის მოსმენას უკვე ლექტორთან ერთად ვცდილობ ავაწყო ზუსტად ის პროექტი, რასაც თავად ლექტორი აკეთებს, სწორედ ამ პროცესის გავლისას უკვე გონებაში ნელ-ნელა ჯდება ის განვლილი პროგრამირების თეორია, რომელიც პირველად მოვისმინე.
აუცილებელია მეორედ მოსმენის დროს არ გავჩერდეთ და აუცილებლად მივაღწიოთ კურსში განვლილი პროექტის ფინალურ ფაზას, ანუ უნდა ავაწყოთ ზუსტად ის რასაც ლექტორი გვასწავლის.
შესწავლის ფინალური ფაზა წარმოადგენს ჩემს პროექტს, რომელსაც ვცდილობ ავაწყო აღნიშნულ ტექნოლოგიაზე, მაგრამ მაინც ვცდილობ პროექტის თემატიკა ძალიან არ განსხვავდებოდეს კურსში არსებული პროექტის თემატიკისგან, ანუ ვცდილობ მივამატო ახალი ფუნქციონალი, რომელიც გაკვეთილში იყო გამოყენებული, უბრალოდ ვცდილობ მცირე მოდიფიკაცია გავუკეთო და დამოუკიდებლად ვცადო კურსში განხილული თემების პრაქტიკაში გამოყენება.
არსებული მიდგომა მეხმარება პრობლემის შემთხვევაში დავუბრუნდე კურსის იმ ქვეთავს, რომელსაც კარგად ვერ ვიგებ და გავიხსენო ლექტორის მიერ ახსნილი მასალა.
პროგრამირების შესწავლის ფინალური ფაზა უკვე პროექტის სრულიად დამოუკიდებლად აწყობის მცდელობაა, მაგრამ არ უნდა დაგავიწყდეთ, რომ არ ხართ შეზღუდული განვლილი მასალის გადამეორებაში.
გახსოვდეთ როდესაც რაიმეს ვერ გაიგებთ, აუცილებელია გადახედოთ განვლილ მასალას ან ჩაიხედოთ პროგრამირების ენის დოკუმენტაციაში.
თუ ჩემი გამომწერი ხართ ალბათ გეცოდინებათ, რომ შევიძინე მეორადი პერსონალური კომპიუტერი პროგრამირებისთვის და ზოგადად არხის მეტად განვითარებისთვის.
ასევე გეცოდინებათ ჩემი დამოკიდებულება ლინუქსის ოპერაციულ სისტემაზე და რა თქმა უნდა ახალი კომპიუტერის მთავარ ოპერაციულ სისტემადაც ლინუქსი ავირჩიე, კერძოდ დებიან დისტრიბუცია Ubuntu.
მას შემდეგ რაც სისტემაზე დავაყნე პროგრამირებისთვის საჭირო პროგრამები დავიწყე ე.წ. შორთქათების შესწავლა, რომელიც რუტინულ ოპერაციებს გამიმარტივებდა, სწორედ ამ ღილაკების კომბინაციებს ასევე გაგიზიარებთ თქვენ და იმედი მაქვს დაგეხმარებათ დეველოპმენტის აჩქარებაში
ღილაკის კომბინაცია | რა ფუნქციას ასრულებს |
Alt+Tab |
აქტიურ ფანჯრებს შორის ნავიგაცია |
Super+H |
აქტიური ფანჯრის ჩაკეცვა |
Ctrl+W |
აქტირუ ფანჯრის გათიშვა |
Super+Shift+left arrow |
აქტიური ფანჯრის მარცხნივ ეკრანზე გადატანა |
Super+Shift+right arrow |
აქტიური ფანჯრის მარჯვნივ ეკრანზე გადატანა |
Alt+Esc |
აქტიურ ფანჯრებს შორის გადართვა პირდაპირი მეთოდით |
Ctrl+Super+D |
ყველა აქტიური ფანჯრის დამალვა |
Super+up arrow |
აქტიური ფანჯრის მთელ ეკრანზე გადიდება |
Super+left arrow |
მარცხნივ გახსნა სპლიტ ფანჯრის |
Super+right arrow |
მარჯვნივ გახსნა სპლიტ ფანჯრის |
Super+L |
ეკრანის დაბლოკვა |
Super+A |
ყველა აპლიკაციის ნახვა |
Ctrl+Alt+T |
ტერმინალის გახსნა |
Super+V |
შეტყობინებების პანელის გახსნა |
Super ღილაკი წარმოადგენს კლავიატურაზე ე.წ. Win (Windows) ღილაკს
დღევანელ ბლოგში განვიხილავთ mozilla firefox-ის ღილაკების კომბინაციებს, რომლებიც გაგვიმარტივებენ ვებ-დეველოპმენტს და პროცესს მინიმუმ 10-ჯერ უფრო სწრაფს გახდიან.
🔴 მნიშვნელოვანი ინფორმაცია ‼️
ქვემოთ მოცემულ ბრძანებებში command ღილაკი Windows და Linux სისტემებზე ნიშნავს ctrl ღილაკს
ბრძანება | ღილაკის კომბინაცია |
დეველოპერის პანელი (inspect element) | command + alt + I |
ვებ კონსოლი (web console) | command + alt + K |
ინსპექტორი (inspector) | command + alt + C |
სქრინშოტის გადაღება | command + shift + S |
ქსელის პანელი (network) | command + alt + E |
ბრძანება | ღილაკის კომბინაცია |
ფოკუსირება ULR-ის ბარზე | command + L |
მთელ ეკრანზე გადიდება/დაპატარავება | command + shift + F |
ძიება გვერდზე | command + F |
საძიებო სისტემის ფოკუსი და ძიება | command + K |
ბრძანება | ღილაკის კომბინაცია |
ჩანართის დახუვა (tab) დახურვა | command + W |
ფანჯრის დახურვა | command + shift + W |
ბრაუზერის დახურვა | command + Q |
ახალი ჩანართის გახსნა | command + T |
ახალი ფანჯრის გახსნა | command + N |
ახალი პივატული ფანჯრის გახსნა | command + shift + P |
ბოლი გათიშული ჩანართის აღდგენა | command + shift + T |
ბოლო გათიშული ფანჯრის აღდგენა | command + shift + N |
აქტიური ჩანართის გადართვა მარჯვნივ 1-ით | command + shift + [ |
აქტიური ჩანართის გადართვა მარცხნივ 1-ით | command + shift + ] |
თუ ერთხელ მაინც მიგიბავთ გუგლის ფონტი თქვენს საიტზე ალბათ შემჩნეული გექნებათ ფონტის მთავარი სახელის შემდეგ sans-serif, serif ან სხვა ჩანაწერი.
დღევანდელ ბლოგში და ასევე ვიდეოში, რომელიც YouTube-ზე უკვე დევს ვისაბუბრებ web safe და browser safe-ფონტებზე.
არსებობენ სტანდარტული ფონტები, რომლებიც მოყვება ნებისმიერ ოპერაციულ სისტემას და არ აქვს მნიშვნელობა თუ რომელი სისიტემაა ის, იქნება ეს Windows, Mac os თუ Linux-ის ნებისმიერი დისტრიბუცია.
web safe ფონტებს ძირითადად ორი გამოყენება აქვთ, პირველი ის, რომ თუ ჩვენ მხოლოდ მათ გამოვიყენებთ დარწმუნებული ვიქნებით, რომ ჩვენი ფონტი ნებისმიერ ოპერაციულ სისტემაში ზუსტად ისე გამოჩნდება, როგორც ჩვენს ეკრანზე.
რაც შეეხება მეორე ვერსიას, web safe ფონტები ასევე გამოიყენება იმ შემთხვევისთვის თუ ჩვენი ე.წ. (custom) ფონტი სწორად არ ჩაიტვირთება, ამ შემთხვევაში მოერე ვერსიად ასევე შეიძლება გვქონდეს web safe ფონტი.
სანამ პროგრამირების სწავლას გადავწყვეტთ, აუცილებელია გვქნოდეს კომპიუტერი, რომელიც დააკმაყოფილებს ჩვენს მინიმალურ მოთხოვნილებებს, რომლებიც უშუალოდ კოდის წერის დროს დაგვჭირდება.
დამწყებებს ხშირად აქვთ არასწორი წარმოდგენა, რომ კომპიუტერი აუცილებლად უნდა იყოს ძალიან ძლიერი და უმკლავდებოდეს ყველაზე რთულ პროცესებსაც კი, მაგრამ მინდა გითხრათ, რომ ვებ პროგრამირების შესწავლის დასწყებად არაა აუცილებელი ე.წ. სუპერკომპიუტერი.
სანამ უშუალოდ კომპიუტერის მონაცემებზე გადავალთ, მოდი ჩამოვთვალოთ იმ პროგრამების მიახლოვებითი სია, რომლებიც სწავლისთვის დაგვჭირდება.
როგორც ზემოთ ჩამოთვლილში ხედავთ, ვებ პროგრამირების შესწავლის დასაწყებად ძალიან ცოტა პროგრამაა საჭირო, შესაბამისად ის წარმოდგენები, რომ ჩვენ აუცლებელია შევიძინოთ ე.წ. სუპერკომპიუტერი და შედარებით ბიუჯეტური კომპიუტერით არ გამოგვივა პროგრამირება, არის მცდარი.
მოდი განვსაზღვროთ მინიმალური მოთხოვნები კომპიუტერისთვის, რომელიც უნდა გავითვალისწინოთ შეძენის დროს. ამის გასარკვევად აუცილებელია კომპიუტერი აკმაყოფილებდეს პროგრამების გაშვებისთვის საჭირო მოთხოვნებს.
მაგალითისთვის, რომ გავუშვათ chrome-ის ბრაუზერი, როგორც მათ საიტზე ვკითხულობთ, აუცილებელია მინიმუმ კომპიუტერის პროცესორს ქონდეს 2GHz-ზე მეტი სიხშირე, ხოლო რაც შეეხება ოპერატიულ მეხსიერებას, სასურველია იყოს მინიმუმ 4GB და მყარი დისკის მოცულობა იყოს მინიმუმ 256GB
ასევე, აღსანიშნავია რომ თუ გამოვიყენებთ კოდის წერისთვის თანამედროვე IDE-ებს როგორიცაა მაგალითად Web Storm, მათ საკმაოდ უყვართ დიდი რაოდენობის ოპერატიული მეხსიერების გამოყენება, ისევე როგორც ჩვენს ბრაუზერებს, ამიტომ გაითვალისწინეთ, რომ თუ თქვენ მინიმალური მონაცემების კომპიუტერს იყიდით დეველოპმენტის დრო შესაძლოა გაგიგრძელდეთ, კომპიუტერის სისწრაფიდან გამომდინარე.
ვებ პროგრამირების სწავლის დაწყებისას ამას არ აქვს მნიშვნელობა, მთავარია თქვენ სად გრძნობთ თავს კომფორტულად იქნება ეს Windows, Mac OS თუ Linux, მაგრამ, მე, ჩემი გამოცდილებით, Linux-ს და Mac OS-ს მივანიჭებდი უპირატესობას, რადგანაც ისინი დაშენებულია UNIX-ზე
ვებ პროგრამირების შესასწავლად უამრავი ინგლისურენოვანი ინტერნეტ რესურსი არსებობს, მაგრამ თუ თქვენთვის ინგლისური ბარიერს წარმოადგენს, შეგიძლიათ val-do.com-ზე ან Val Do-ს YouTube არხზე შეისწავლოთ 0-დან, საიტზე მოცემულია შემდეგი უფასო კურსები:
მოგეხსენებათ პროგრამირების შესწავლა არც ისე მარტივი საქმეა და ის ძალიან დიდ შრომას და დროს მოითხოვს.
არის მომენტები, როდესაც ძალიან მარტივი საქმის გაკეთებას დიდ დროს ანდომებ ვინაიდან არ გაქვს საკმარისი გამოცდილება და მიდგომა საქმის მიმართ. სწორედ ამიტომ, გადავწყვიტე დღევანდელი ბლოგის დაწერა რათა მოგიყვეთ რა რჩევებს მივცემდი საკუთარ თავს მაშინ, როდესაც პროგრამირების შესწავლას ვიწყებდი.
პირველი შეცდომა პროგრამირების შესწავლისას იყო არა თანმიმდევრულობა და ფოკუსირება.
პროგრამირების შესწავლას ვიწყებდი მაშინ როდესაც მინდოდა ხან დილის 11 საათზე ხან საღამოს 5 საათზე, ხან 2 დღე ჩავაგდებდი და ბოლოს თავში ძალიან დიდი არეულობა მქონდა.
თუ თქვენ მიზნად დაისახავთ პროგრამირების შესწავლას აუცილებლად გამოყავით სწავლისთვის მკაცრად განკუთვნილი დრო, მაგალითად დღეში 6 საათი დილის 10-დან 4-მდე და მაქსიმალურად ფოკუსირდით სწავლაზე.
პროგრამირების შესწავლის ყველაზე რთული ნაწილი არის თანმიმდევრულობა და სწავლაზე დიდი ხნის განმავლობაში ფოკუსირება.
სანამ კოდის წერაზე გადავალთ აუცილებელია ჩვენი ფავორიტი ედითორის ძირითადი მახასიათებლები და სწრაფი ღილაკების კომბინაციების შესწავლა.
შესაძლოა ეს რჩევა არა საჭიროდ მოგეჩვენოთ, მაგრამ დამიჯერეთ დეველოპმენტს მინიმუმ 10-ჯერ ააჩქარებთ თუ კლავიატურის ღილაკების კომბინაციებით შეასრულებთ ისეთ რუტინულ საქმეებს როგორიცაა, მაგალითად დაკოპირება ხაზების წაშლა და ა.შ.
აუცილებელია იცოდეთ თქვენი ფავორიტი ედითორის ის მხარეები, რომლებიც რუტნიული ოპერაციების დროს მაქსიმალურად დაგიზოგავთ და ნაკლებად დამოკიდებული იქნებით "მაუსზე"
პირველი მთავარი პრობლემა არის, ის რომ დამწყებები ყოველთვის ვცდილობთ რაც შეიძლება რთული საიტები ან პროგრამები დავწეროთ და ამ პროცესში პროგრამირების ენის ძირითადი საფუძვლები კარგად არ გვესმის.
ხშირად ვიწყებთ ისეთი დავალების კეთებას რომელსაც უბრალოდ იმის გამო ვერ ვაკეთებთ, რომ ენის საფუძვლები კარგად არ ვიცით, შესაბამისად აუცილებელია ენის ყველა ძირითადი საფუძველი ვიცოდეთ მანამ სანამ პროექტის კეთებას დავიწყებთ.
მაშინ როდესაც კოდთან პირველი შეხება მქონდა ძალიან მიჭირდა და დოკუმენტაციის შესწავლა ინგლისურიდან და ვინაიდან მაშინ კარგად არ ვიცოდი ინგლისური ძალიან ვწვალობდი თარგმნაში.
თუ ინგლისური კარგად იცით ეს უკვე ძალიან დიდი წინ გადადგმული ნაბიჯია პროგრამირების შესასწავლად, ვინაიდან ნებისმიერი პროგრამირების ენა, ეს იქნება ჯავასკრიპტი, ტაიპსკრიპტი თუ სხვა არის ინგლისურ ენაზე და მოგიწევთ ინგლისურენოვან დოკუმენტაციასთან მუშაობა.
თუ გაქვთ იმის საშუალება, რომ პარარელურად მოემზადოთ ინგლისურშიც დამიჯერეთ, როგორც პროგრამირების სწავლაში ასევე სხვა საქმეშიც ძალიან გამოგადგებათ, ვინაიდან თქვენ გზას გაიხსნისთ ინფორმაციის უწყვეტ მარაგებთან და არ დაელოდებით რაიმე დოკუმენტაციის ქართულ ენაზე თარგმანს.
ჩემი ყველაზე დიდი შეცდომა პროგრამირების შესწავლისას იყო ის, რომ ვცდილობდი კოდი მესწავლა მხოლოდ ე.წ. "თუთორიალებით" და არ ვკითხულობდი დოკუმენტაციას.
დოკუმენტაცია არის ის ერთადერთი წყარო ინფორმაციის რომელიც არის 100%-ით ზუსტი და გაძლევთ საშუალებას უშუალოდ ენის შემქმნელებისგან ისწავლოთ ამა თუ იმ ენის საფუძვლები, ხოლო "თუთორიალები" არის უბრალოდ ამ ენით რაიმე პატარა პროგრამის აწყობის გაკვეთილები, რომლებიც მიუხედავად იმისა, რომ კარგი სანახავია და მარტივი ენით წერია არ მოგცემთ პროგრამირების ენაზე სრულ სურათს.
მას შემდეგ რაც საფუძვლების თეორიულ ნაწილს შეისწავლით გეგონებათ, რომ ამ ენაზე უკვე ყველაფერი იცით და CV-შიც ამაყად ჩაწერთ, რომ ჯავასკრიპტის დეველოპერი ხართ.
დამიჯერეთ პროგრამირება ის სფეროა სადაც მხოლოდ თეორია არ კმარა და აუცილებელია პრაქტიაკში გამოიყენოთ ყველა ფუნქცია ან მეთოდი რომელიც თეორიაში შეისწავლეთ. სწორედ ამიტომ აუცილებელია დაიწყოთ ნამდვილი პროექტების კეთება, თუნდაც უმარტივესად გეჩვენებოდეთ.
დაიწყეთ უმარტივესი პროექტით რომელსაც აუცილებლად მიიყვანთ ბოლომდე და სრულიად იფუნქციონირებს ყოველგვარი ხარვეზების გარეშე. ასევე ეცადეთ ყოველი შემდეგი პროექტი იყოს წინაზე რთული.
პროგრამისტის და არა მარტო პროგრამისტის ერთერთი მთავარი უნარი არის საჭირო ინფორმაციის მოძიება.
დღეს ალბად უკვე აღარაა ისეთი შეკითხვა რომელზეც პასუხი არ გაცემულა და რომელიც ინტერნეტში არ იქნება გამოქვეყნებული, სწორედ ამიტომ აუცილებელია მივეჩვიოთ საძიებო სისტემის მაქსიმალურად ეფექტურად გამოყენებას.
პროგრამისტის ერთერთი სუპერ ძალა უნდა იყოს ნებისმიერი ინფორმაციის მოძიება უმოკლეს ვადებში.
ყოველთვის გახსოვდეთ, რომ მას შემდეგ, რაც თქვენ მიაღწევთ თქვენს პირველ მიზანს და დაიწყებთ რომლიმე კომპანიაში სტაჟირებას ან სამსახურს აუცილებლად მოგიწევთ გუნდთან მუშაობა, არ არსებობს კომპანიები სადაც მხოლოდ 1 პროგრამისტზე იქნება დამოკიდებული მთელი პროექტი.
მაქსიმალურად ეცადეთ შეუერთედ ისეთ ფორუმებს, ჩათებს, ჯგუფებს სადაც დამწყები დეველოპერები არიან და ხშირად დახმარებასაც ითხოვენ, არ დაგეზაროთ სხვისი დახმარება თუ რა თქმა უნდა შეგიძლიათ.
განიხილეთ თქვენთვის საინტერესო თემები გააკეთეთ გამოწვევბი გაარჩიეთ ერთმანეთის კოდი. ეს მოგცემთ სუპერ უნარს რათა მარტივად ადაპტირდეთ სხვა ჯგუფებში და გაიგოთ სიახლეები და განიხილოთ სიღრმისეულად.