მინდა შემოგთავაზოთ ჩემი მეგობრის დავით რაჭველიშვილის პოსტი, რომელიც ჯერ თავის თავს გაგაცნობთ ხოლო შემდეგ მოგიყვებათ თავის ძალიან საინტერესო ისტორიას.
სანამ ძირითად თემაზე გადავიდოდი მინდა ყველას გაგეცნოთ, რომ გქნოდეთ წარმოდგენა ჩემს შესახებ. მე ვარ დავით რაჭველიშვილი(რაჭველა), 2008 წელს დავამთავრე თბილისის სახელმწიფო უნივერსიტეტი და ეხლა ვმუშაობ რამოდენიმე ადგილას ჯავა პროგრამისტად, ასევე ჩემს მეგობრებთან ერთად ვარ GeOlymp-ის დამფუძნებელი. უნივერსიტეტის დაწყებისას მე მხოლოდ C/C++ საბაზისო ცოდნა მქონდა და პირველივე დღეებიდან დავიწყე ინფორმატიკის ოლიმპიადებში მონაწილეობის მიღება. გზა საკმაოდ რთული იყო ვინაიდან არ გამაჩნდა არანაირი ცოდნა, მაგრამ საკუთართავზე ბევრი მუშაობის შედეგად მოვედი დღევანდელ დღემდე. მას შემდეგ 6 წელზე მეტი გავიდა და კიდევ დიდი სიამოვნებით ვწერ პროგრამირების შეჯიბრებებს და ვსწავლობ ახალახალ ალგორითმებს. ეხლა გადავიდეთ მთავარზე...
ვინც ლეკვას ბლოგს კითხულობთ კარგად გემახსოვრებათ მისი და facebook-ის ურთიერთობის ისტორია, რამაც ჩემზე დიდი შთაბეჭდილება მოახდინა და მაგალითი მომცა რომ მეც მეცადა ბედი. უამრავ ადგილად გავაგზავნე ჩემი CV და ყველამ უარი მითხრა, მაგრამ ამ დროს გამოჩნდა Facebook რომლიც TopCoder-ის ჩემპიონატის ერთერთ მთავარ სპონსორად მოგვევლინა. მეც ვიფიქრე გამოვიყენებ ამ შანს და ტოპკოდერის საიტზე დავაჭირე “Apply” ღილაკს.
დიდი ხნის ლოდინი არ დამჭირდა, 2 დღეში ჩემს ინბოქსში გამოჩნდა წერილი კინჰ დემარისგან, რომელიც მეკითხებოდა თუ ვიყავი დაინტერესებული მათან მუშაობაზე. მეც მაშინვე მივწერე პასუხი და დავნიშნეთ პირველი გასაუბრება.
გასაუბრება I
პირველი გასაუბრება, როგორც ყოველთვის ზოგადი ხასიათის იყო. ამიხსნა ვინ იყო, რა უნდოდა, რა ხდებოდა FB-ში. შემომთავაზა სტაჟირებისათვის ჩაგიტარებთ გასაუბრებებსო, როგორც სტუდენტსო. მე ცალსახად გადაწყვეტილი მქონდა რომ სრულ განაკვეთზე მინდოდა მუშაოაბა და თუ ამიყვანდნენ უნივერსიტეტს მივატოვებდი. ეს ყველაფერი ავუხსენი და გადაწყდა რომ ორივე პოზიციაზე განმიხილავდნენ. ამის შემდეგ ჩემდა გასაკვირვად კითხვები დამისვა ჯავაზე, საკმაოდ მარტივი კითხვები, შემამოწმა რამე ვიცოდი თუ არა. ესე დასრულდა პირველი გასაუბრება...
გასაუბრება II
ეს გასაუბრება თავიდანვე ცუდად დაიწყო, ვერაფრით ვერ დამირეკა ტელეფონზე და გადავწყვიტეთ, რომ სკაიპით დამიკავშირდებოდა. მაგრამ ახალი დაწყებული გვქონდა საუბრარი, რომ ზარი გაწყდა, რამაც ძალიან დამძაბა. თუმცა ამის შემდეგ უკვე კავშირის პრობლემა აღარ გვქონია. ეს ინტერვიუც როგორც ველოდი დაიწყო ზოგადი საუბრებით, ამიხსნა ვინ იყო, რას აკეთებდა. აღმოჩნდა რომ სტენდფორდის ალუმნი იყო, 9 თვეა რაც FB security ჯგუფის წევრია და ეს მისი პირველი სამსახური იყო. პირველი კითხვა რაც დამისვა იყო, თუ რატომ ვიღებდი მონაწილეობებს ამდენ შეჯიბრებებში. ლეკვასგან დარიგებული რომ რაც შეიძლება ბევრი მელაპარაკა. მოვუყევი მთელი ჩემი ისტორია პირველი კურსის შემდეგ. შემდეგ იყო კითხვები Java-ზე და C++ -ზე, შევადარეთ ერთმანეთს, მკითხა თუ რატომ გადავედი C++ დან Java-ზე. ამას მოყვა კითხვები Python-ზე, რამაც მაგარად დამაბნია. CV-ში მეწერა რომ პითონი ვიცოდი დამწყების დონეზე, მაგრამ მაინც დამისვა კითხვები. შევადარეთ მკაცრად ტიპიზირებული და არა ტიპიზირებული ენები, რა პლიუსები და მინუსები აქვთ, სად რისი გამოყენება ჯობია. ამ კითხვებზე პასუხები ადგილზე მოვიფიქრე, იმიტომ რომ მანამდე თითქმის არ მქონია შეხება არა ტიპიზირებულ ენებთან, რაც ძალიან მოეწონა მას.
და აი ამის შემდეგ მივედით კოდის წერამდე, პირველი დავალება იყო BFS (Bread First Search), რომელიც მანამდე ძალიან ბევრჯერ დამიწერია შეჯიბრებების დროს და ადვილად გავართვი თავი. შემდეგ მთხოვა დამეწერა რიცხვიდან ფესვის ამოღების ფუნქცია მოცემული P სიზუსტით, ისე რომ სტანდარტული sqrt() არ გამომეყენებინა. ესეც ადვილად დავუწერე ორობითი ძებნის მეთოდით, სამწუხაროდ ამ კოდში ბაგი მქონდა, არასწორედ ვახდენდი ცვლადების ინიციალიზაციას, რომელიც მალევე ვიპოვე. და ბოლო დავალება იყო დამეწერა ფუნქცია რომელიც LinkedList-ს შეაბრუნებდა.
კოდის წერის დროს საკმაოდ ბევრს ველაპარაკებოდი და რაღაცეებზე ვხუმრობდით კიდეც, რამოდენიმეჯერ კარგადაც ვიცინეთ. ბოლოს ჩემი კითხვების დრო დადგა, ამაზეც ვიყავი გაფრთხილებული ლეკვასგან რომ ბევრი კითხვები უნდა დამესვა. ვკითხე თუ რას ნიშნავს იყო FB ინჟინერი, რა დეველოპმენტ თულზებს იყენებენ, რა ენებზე შეიძლება წერა, თუ ყოფილა რაიმე დიდი შემოტევა FB-ზე რომელიც ჩელენჯი იყო მისი გუნდისათვის. ამაზე ამომწურავი პასუხები გამცა და დავემშვიდობეთ კარგად.
ინტერვიუს შემდეგ საკმაოდ დადებითად ვიყავი განწყობილი და მოვძებნე ინტერვიუერი FB-ში. ძებნისას მის ერთ საკმაოდ საინტერესო ვიდეო წავაწყდი: ვიდეო იწყება და თვითონ ლაპრაკობს, რომ მისი ძმის მეგობრებს არ ჯერათ რომ FB-ში მუშაობს და ვერაფრით ვერ ამტკიცებს ამას, და ამიტომ ჩაიწერა ეს ვიდეო, ამ დროს კამერას აბრუნებს და ჩანს მარკ ცუკენბერგი, რომელიც ამბობს, ბიჭებო დაუჯერეთ ამ კაცს ის მართლა ჩემთან მუშაობსო
. მარტო ეს ვიდეოც კი განსაზღვრავს თუ როგორი სიტუაცია FB-ში.
გასაუბრება III
წინა გასაუბრების შემდეგ მალევე დამიკავშირდა რეკრუიტერი და შემდეგი ინტერვიუც დავნიშნეთ. ვერც ამ ინტერვიუერმა დამირეკა ტელფონზე და ამასთანაც სკაიპით ვისაუბრეთ. ეხლაც ყველაფერი სტანდარტულად დაიწყო, მომიყვა თავის შესახებ და შემდეგ კითხვები დამისვა ჩემი პროექტების შესახებ: მანამდე რა გამიკეთებია, რომელი პროექტი იყო ყველაზე საინტერესო და რატომ, რას შევცვლიდი შენ პროექტებში ეხლა რომ შეგეძლოსო – ამზე პირდაპირ ვუპასუხე რომ აბსოლუტურად ყველაფერს თქო 
შემდეგ კოდირებაზე გადავედით. ორი პროგრამა დამაწერიანა, ორივე რეკურსია იყო და საკმაოდ ადვილად გავრთვი თავი. მეორე იყო N ლაზიერის ამოცანა, ფუნქციას უნდა დაებრუნება ან კი ან არა, იმის მიხედვით შეიძლებოდა თუ არა ლაზიერების დასმა დაფაზე ისე რომ ერთმანეთს არ დამუქრებოდნენ. ამაზე მე დავუწერე, რომ თუ N განსხვავებულია ორისგან და სამისგან, მაშინ პასუხი ყოველთვის “კი” არის
მაგრამ მაინც დამაწერინა რეკურსია.
შემდეგ ჩემი კითხვების დრო მოვიდა, ვკითხე თუ როგორი იყო ერთი დღე FB-ში, რა ბონუსები აქვთ თანამშრომლებს, ასევე ვკითხე Cassandra, მითხრა რომ inbox-ის ინდექსირებისათვის იყენებენ და მათი სისტემა დაახლოებით 100 node-ისგან შედგება. შემდეგ ვილაპარაკეთ Thrift-ზე და ამასაც ტკბილად დავემშვიდობე.
გასაუბრება IV
როგორც აღომჩნდა წინა ინტერვიურს მოვეწონე და მეოთხე ინტერვიუც მალე დავნიშნეთ. ინტერვიუ გვიან დავიწყეთ, პრობლემები ქონდა ტელეფონზე დარეკვასთან. აქაც სტანდარტულად დავიწყეთ ზოგადი საუბრებით, და გავაგრძლეთ კოდირებით. პირველი პროგრამა რაც დამაწერინა იყო რომელიღაც ჩემთვის მანამდე უცნობი დაფაზე თამაშის სვლის სიმულაცია უნდა გამეკეთებინა. ამის შემდეგ დამაწერინა Composite იტერატორი next(), hasNext() და remove() მეთოდით, ანუ ისეთი იტერატორი რომელიც Collection-ების Collection-ებზე მოახდენდა იტერირებას უკვე არსებული სტანდარტული იტერატორის გამოყენებით. ამის წერისას როდესაც ბოლოში გავედი მივხვდი, რომ რაღაც არ მქონდა გათვალისწინებული და ის რაც დავწერე არ იმუშავებდა, ამიტომ საჭირო გახდა კოდში დიდი ცვლილებების შეტანა. შევთავაზე ორი გზა გასწორების, მაგრამ დიდი ხანია უკვე ვლაპრაკობთო და არ დამამთავრებინა. ამაზე მაგარად გავბრაზდი და უკვე იმედი მქონდა დაკარგული რომ შემდეგ ინტერვიუზე დამპატიჟებდნენ.
ამის მერე მე დავუსვი კითხვები, ველაპარაკე Open Graph-ის შესახებ, ვკითხე თუ აპირებდნენ like-ის გარდა ახალი კავშირის შემოტანას, რაზეც მიპასუხა, რომ ფიქრობენ მაგრამ არ უნდათ რომ გაართულონ პროტოკოლი ამიტომ ჯერ გადაწყვეტილება არ მიუღიათ. ასევე ვკითხე თუ აპირებდნენ ინდექსირება/ძებნას ახალ ნოუდებში, ამაზეც იგივე ტიპის პასუხი მივიღე, რომ სურთ მაგრამ ჯერ ფიქრობენ როგორ გააკეთებენ. ამით დასრულდა ბოლო სატელეფონო ინტერვიუ.
და დაიწყო ნერვების თამაში, ერთი კვირის მანძლიზე ველოდებოდი მათგან პასუხს, დამპატიჟებენ თუ არა დასწრებულ გასაუბრებაზე. ბოლო წარუმატებელი ინტერვიუს შემდეგ საკმაოდ პესიმისტურად ვიყავი განწყობილი და მხოლოდ პატარა იმედი მქონდა. ნერვიული დღეების შემდეგ, ხუთშაბათ დილის 7 საათზე დამხვდა წერილი, რომელიც მამცნობდა, რომ მოვეწონე ყველას და მზად არიან ჩამიყვანონ კალიფორნიაში, პალო ალტოში მე-5-ე გასაუბრებისათვის. ჩემს რეაქციაზე აღარაფერ მოვყვები, ყველა მიხვდებოდით რა დამემართებოდა. აქ შევწყვეტ მოყოლას და დანრჩენს კალიფორნიიდან დაბრუნების შემდეგ მოგიყვებით.
მინდა წარმატება ვუსურვო რაჭველას და დარწმუნებული ვარ რომ ყველაფერი კარგად დამთავრდება
. ასე რომ დარჩით ჩვენთან გაგრძელება იქნება 

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

