ამბავი გაყრად Facebook-ისა
გამარჯობა მკითხველო!
მინდა დავწერო ჩემი ისტორია როგორ მოვხვდი Facebook-თან გასაუბრებაზე Android ინჟინერის პოზიციაზე პირველ და მეორე ეტაპზე და რას უნდა ველოდოთ თუ აქამდე მივალთ(მეტი მეც არ ვიცი ჯერ :D ). ამავდროულად ამას ვწერ ჩემთვის, ისტორიის სახით რომ იყოს შენახული და შესადარებლად სამომავლოდ.
წინასიტყვაობა
მოდი დავიწყებ თავიდან ზოგადად აღვწერ სიტუაციას. ყველას თუ არა უმეტესობას ალბათ გვიფიქრია და მოგვისურვებია FAANG (Facebook, Amazon, Apple, Netflix, Google)-ში მუშაობა, თუმცა ყველამ ვიცით რომ დაუღალავ შრომას მოითხოვს და პირველივე ცდაზე მიღწევა საკმაოდ რთულია. თვითონ ინტერვიუს მოპოვება და დრო რომ დაგითმონ ესეც გამომწვევი ქვეპირობაა, რადგანაც ყოველდღე ათასობით რეზიუმე შესდით მსურველებისგან. საქართველოდან მსურველებს Facebook-თან გასაუბრება მოუწევთ ლონდონის ფილიალის წარმომადგენლებთან, რადგან რეგიონალურად ევროპის ქვედანაყოფთან ვართ ახლოს. ლონდონში მუშაობს Whatsapp-ის და Instagram-ის mobile ჯგუფი, ასევე შიდა პროდუქტებზე მომუშავე დეველოპერები.
მინდოდა მუშაობა დიდ კომპანიაში და გამომეცადა თუმცა ვიცი რომ რთულია, ამიტომ პირველადი მიზანი იყო ჯერ როგორმე ინტერვიუ მომეპოვებინა, ინტერესი გაჩენილიყო ჩემდამი, ჩაეთვალათ რომ ღირს მათი დროის დახარჯვა ჩემზე, მოვხედრილიყავი ტექნიკური ინტერვიუს ნაწილზე და მენახა უშუალოდ რა ხდება და როგორია ეს პროცესი ასეთ დიდ ორგანიზაციებში. ძალიან დიდი გამოცდილება და ამის მერე მერწმუნეთ სხვა ინტერვიუები ძალიან მარტივი ჩანს. საკმაოდ გრძელი და რთული გზაა.
დასაბამი
ყველაფერი დაიწყო 2018 წლის ივლისში. ჩავხედე რა ვაკანსიები იყო ამერიკაში და გავაგზავნე რეზიუმე, ამ დროს ლონდონში Whatsapp-ზე მხოლოდ Senior Android Enginner უნდოდათ რომელ პოსტზეც გასაუბრებაზე დრაკონის მოკვლასაც ითხოვენ, ამიტომ ეგ არ ავირჩიე. ცოტა მოგვიანებით დაახლოებით აგვისტოს დასაწყისში მოვიდა ავტომატური უარი. შევცვალე Linkedin ინფო, უფრო მოვაწესრიგე რეზიუმე, სამოტივაციო წერილი(Cover letter) და ხელახლა გავაგზავნე. ეს არის ერთი გზა. მეორე გზა არის თუ ვინმე მეგობარი, ნაცნობი, მეგობრის მეგობარი გყავს ვინც ამ კომპანიაში მუშაობს რეკომენდაციის გაწევა რაც 100%-იან ყურადღებას ნიშნავს და აუცილებლად შენს რეზიუმეს გადახედავენ. მთავარია ინტერვიუს დანიშვნა, თავგადასავალი მანდ იწყება.
აუცილებლად სანახავი ვიდეო
მინდა დიდი მადლობა გადავუხადო აქედანვე ლუკა ლომთაძეს გაწეული დახმარებისთვის და რჩევებისთვის ❤ მოკლედ ლუკამ რეკომენდაცია გამიწია ამერიკაში. დამიკავშირდა FB და რეკომენდაციის საფუძველზე ზარი დაიმსახურე ჩვენგანო. რათქმაუნდა მიხარია, ვემზადები ჩემი თავი რომ წარმოვაჩინო და წერილებით დაგეგმვის შემდგომ ველი ზარს. ბოლო დღეს გაირკვა რომ ამერიკის ფილიალი არ დარეკავს საქართველოში რადგანაც ეს საქმე შეუძლია გადაიბაროს ლონდონმა და Georgia შტატი არ არის მხოლოდ და არსებობს ქვეყანა Georgia. გადამიშვეს ლონდონში, გაიწელა ამაში დრო, ლონდონმა კი იმ ძლივს მოპოვებულ სატელეფონო ზარზეც კი უარი მითხრა რადგანაც ამ წუთას მხოლოდ super Senior-ს ვეძებთ და თან შეზღუდულები ვართ რაოდენობაშიო -_- კი, ნამდვილად ნერვის მომშლელი მომენტია. წარმოიდგინე ელოდები ახალ გამოცდილებებს, მოიპოვე ზარი, გეუბნებიან უნდა დაგირეკონ და არ გირეკავენ სხვა ფილიალიდან.
დასაბამი და იმპერია
2019 წლის თებერვალში 6 თვის შემდეგ, ერთ მშვენიერ საღამოს მოდის წერილი, რომ Facebook ლონდონის ოფისი დაინტერესებულია ჩემი კანდიდატურით მანამდე გადაგზავნილი რეზიუმეს საფუძველზე და ჩემი სურვილის შემთხვევაში მზად არიან დამირეკონ. არის კონტაქტი. შევათანხმეთ დღე/საათი და რეკრუტერი რეკავს. არის დაახლოებით 30 წუთიანი გასაუბრება, ზოგადად უნდა მოყვე შენს თავზე, მიყვე შენს რეზიუმეს, ახსენო მოტივაცია, რას აკეთებ, რა გევალება ძირითადად, გეკითხებიან რა იცი ფეისბუქის შესახებ და გაცნობენ ინტერვიუს პროცესს. მთავარია სტრესს არ აჰყვე ეს არის ყველაზე მარტივი საფეხური გასაუბრებაში აქ არ ღირს ნერვიულობა. რათქმაუნდა გავაცანი ჩემი თავი, ისიც ვუთხარი რომ facebook-ის ანდროიდ ბიბლიოთეკა 1 საათის გამოსული რომ არის უკვე მე მას აპლიკაციაში ვტესტავ და შეცდომებიც დამირეპორტებია და contributor ბეჯი მაქ github-ზე მათთივე რეპოზიტორებზე. მოკლედ ყველაფერი კარგად არის. მითხრეს შემდგომი დაინტერესების შემთხვევაში დაგიკავშირებითო და თუ დაგიკავშირდით რა არის მოსამზადებელი მომდევნო ეტაპისთვის.
მე, რობოტი
მოკლედ გადამიყვანეს შემდეგ ეტაპზე და მოსამზადებელი მასალა:
ალგორითმები, ალგორითმები, ალგორითმები! ჩემი სუსტი მხარე, რომელზეც ყველაზე მეტი მუშაობა მომიწია. ანდროიდ SDK -ს მხარეს არც მიფიქრია მომზადება რომ დამჭირვებოდა, საკმაოდ მყარად და საიმედოდ ვგრძნობდი თავს. რაც შეიძლება მეტი ამოცანა გააკეთო უნდა HackerRank და LeetCode პლატფორმაზე. დაიწყო მარტივი და საშუალო და რთულ ამოცანებზე გადახვიდე. მარტივი ალგორითმების ყველაზე ცუდი ამოხსნის დრო უნდა იცოდე და რა მახსოვრობა სჭირდება, ასევე როგორ იწერება. მასივებზე და სტრინგებზე არ მაქ საუბარი, საუბარია რეკურსიაზე, საუბარია dynamic programming, stacks, binary tree, double linked list, graphs, bitwise operations, ძებნის ალგორითმები, hashmap ები და ამას დამატებული კონკრეტულ ენაში იმპლემენტაცია და თავისებურებები. მაგალითად Java/Kotlin-ზე როგორ მუშაობს ეს Map, garbage collection, შემდეგ concurrency და threads. მოკლედ ძალიან ბევრი რამეა. არ დავივიწყოთ ანდროიდის მხარე, სავარაუდოდ მოვა memory management, storage options და საკმარისი არ არის მხოლოდ ტერმინების დახეთქება, ღრმად უნდა შეგეძლოს საუბარი და გამოცდილება უნდა გიწყობდეს ხელს. მოამზადო უნდა ასევე კითხვებზე პასუხი რა იყო საინტერესო პროექტები და ა.შ. ტექნიკურ ინტერვიუზე შეგიძლია აბსოლუტურად ბოლომდე ტექნიკურ დონეზე ჩახვიდე და ისაუბრო ყველაფერზე.
ზოგადად თვითონაც იციან რომ მაგარ სტრესს ქმნიან ამიტომ გთავაზობენ 1000 საშუალებას რომ შეიმცირო სტრესი, მინიშნებებს გაძლევენ, გესაუბრებიან და ა.შ
სასწაულად რთული არაფერია, უბრალოდ ამოხსნის დრო გჭირდება, სტრესთან გამკლავება, უნდა იაზროვნო ხმამაღლა და ბევრი სხვა რამ რაც გაბრკოლებს, თორემ ამოცანას ამოხსნი როდისმე. საკითხები მართლა ულევია
აუცილებლად სანახავი ვიდეო #2:
და წიგნი: http://www.crackingthecodinginterview.com/
ამ ვიდეობს, წიგნებს, რესურსებს და მითითებებს თვითონვე გიგზავნიან, მათივე ინტერესშია კარგად მოემზადო და მალე აიყვანონ წარმატებული კადრი. ანუ ყველაფერში გეხმარებიან. მოსამზადებლად გაძლევენ დაახლოებით 1 თვეს
პირველ 2 კვირაში ვიდეოები, წიგნები უკვე გადაღეჭილი უნდა იყოს, პროფესიულად თავს კარგად უნდა გრძნობდე და ალგორითმებზე იყო ჩაციკლული. მე გამოვტყდები და არასდროს მომწონდა ალგორითმები და არ ვიყავი ძლიერი, ახლა მომიწია დღეში 3 საათის მინიმუმ დახარჯვა და ვარჯიში. ძალიან კარგი რამე ყოფილა და აუცილებლად გავაგრძელებ მუშაობს და ვარჯიშს, ამდენი სამუშაო გამოცდილების შემდეგ სულ სხვა ეშხით უყურებ ამ ამოცანებს და სასიამოვნო სასწავლი და ამოსახსნელია.
დამავიწყდა ამეღნიშნა ამ ყველაფერს გასაუბრებაზე არ დაწერ სადმე IDE-ში, არამედ CoderPad-ზე მხოლოდ სინტაქსის მხარდაჭერა აქვს, არავითარი autocomplete და რამე. ანუ ფურცელზე წერ. ამაში უნდა ივარჯიშო თუ არაკომფორტულად ხარ, ენა და სინტაქტი არ უნდა გერეოდეს, ცვლადებს კარგი სახელები უნდა ერქვას, ფუნქცია ნორმალურად აღწერო. მოკლედ ასეთი რაღაცები ყურადღებას იქცევს.
მოკლედ სადღაც 3 კვირაში HackerRank-ზე ჯავას სავარჯიშოებში 5/5 ვარსკლავი ავიღე(უმარტივესია 1 დღე უნდა რეალურად), და ალგორითმებში 4/5-ზე ავედი (ოქროს ვუმიზნებ მალე). უნდა იჯდე და იმუშავო და იმუშავო. ამოხსნის დროზეა სავარჯიშო და ეს საკმაოდ რთულია.
ლუკა ძალიან დამეხმარა სასარგებლო რჩევებით, ასევე იმიტირებული ინტერვიუს პროცესით და რაც მთავარია აქამდე ბოლომდე ვერ ვუგებდი ეშხს bitwise ოპერაციებს თუმცა ლუკასთან საუბრის მერე აღმოჩნდა ბევრი საშუალო სირთულის ამოცანა შეიძლება მარტივად ამოიხსნას ასე და ასევე დინამიური პროგრამირების მეთოდით გაცილებით გამარტივდეს სიტუაცია.
განკითხვის დღე
მოვიდა 29 მარტი. ის თარიღი რომლისთვისაც ვემზადებოდი და 1 თვე ადამიანს არ ვგავდი. არ ვამბობ რომ ცუდია, ძალიან მომწონს ჩემი ტრანსფორმაცია და ვფიქრობ 1 თვის წინანდელ ჩემს თავთან გაცილებით წინ ვარ ახლა.
გასაუბრება მიდის ან skype ან bluejeans პლატფორმაზე, მე ამ უკანასკნელზე მომიწია. საკმაოდ კომუნიკაბელური და სასიამოვნო დეველოპერი დამხვდა რომელიც მუშაობს Messenger -ზე და Instagram-ზე. გამომიკითხა რამოდენიმე ჩემი აზრით მარტივი სირთული კითხვა ანდროიდის გარშემო thread-ებზე, storage-ზე წარსულ გამოცდილებებზე. გადავედით ალგორითმებზე. აქ სტრატეგია ასეთია შეიძლება 1 რთული შეგხვდეს ან 2 საშუალო დონის ან რთულის მერე შედარებით მარტივი, გააჩნია. მე შემხვდა რთული LeetCode-ს კლასიფიკაციით. სტრესის დონეა ძალიან მაღალი თავიდან ვერ აზროვნებ, საოცარ სტრესში ხარ, ცარიელ გვერდზე უნდა დაიწყო კოდის წერა, ფიქრი და სრულიად უცხო ამოცანაზე, რომელზეც სავარაუდოდ ამოხსნის დრო 15–20 წთ გაქვს. ამის შემდგომ ამოცანას შეგიცვლიან ან სხვა თემას გააგრძელებენ. ამოხსნის პროცესში მუდმივი კონტაქტია საჭიროა, რას ფიქრობ, რა გზით მიდიხარ, რომ შეაფასოს შენი აზროვნება და არა საბოლოო შედეგი. აუცილებლად უნდა კითხო ამოცანის წაკითხვის შემდგომ სხვა დამატებითი პირობები ხო არ იმალება, მაგალითად დროის ლიმიტი, მახსოვრობის, რა ტიპის ცვლადი შეიძლება შემოვიდეს, თუ ხეებთან გვაქვს შეხება Binary Search Tree არის თუ Complete Tree, Full Tree თუ ზოგადად binary tree და მსგავი რამ. მოკლედ მოვიდა ამოცანა HARD კატეგორიიდან და ვფიქრობ, დავიბენი, ამოხსნა ვერ დავასრულე, თუმცა სწორ გზაზე ვიდექი. გადამიყვანა მეორე ამოცანაზე რომელიც ჯავას სტანდარტული მეთოდებით ამოვხსენი, დავუწერე test case-ები, დავარედაქტირე კოდი, ვკითხე დამატებითი დეტალები და დრო ამომეწურა. სადაც უნდა მეკითხა ჩემი ინტერესთა სფეროდან რა მაინტერესებდა facebook-ისგან. ვკითხე როგორ აკეთებდნენ Messenger-ში ავტომატიზირებულ ბილდებს და ტესტერების ლოკალიზებულ ჯგუფებს.
მოკლედ ძალიან სტრესული ინტერვიუ პროცესი აღმოჩნდა, თუმცა ვთვლი იმაზე კარგად გავართვი თავი ვიდრე ველოდი. მივიღე დიდი გამოცდილება და ვიცი მომავალში როგორ დავხვდე მსგავსი სახის სიტუაციებს.
4 დღის მერე პასუხი მაცნობეს რომ სამწუხაროდ ვეღარ გადამიყვანეს მესამე ეტაპზე თუმცა იყო დადებითი კომენტარები ჩემს მიმართ. როდესაც ერთხელ უკვე მოხვდები ამ პროცესში შემდგომში უკვე ქსელში ხარ და შეგიძლია თავიდან სცადო სხვადასხვა პოზიციებზე. კომუნიკაცია უკვე გამარტივებული იქნება.
დასაბამის პირას
ნასწავლი გაკვეთილი, მოტივაცია, არანაირად არ დამკარგვია პირიქით ვაგრძელებ უკეთ მომზადებას და უფრო მეტ გამოწვევაზე შეჭიდებას, რადგანაც ამ მიღებული არაჩვეულებრივი გამოცდილებით ვაანალიზებ რომ მიღწევადია. შეიძლება მეორე ცდაზე მესამე ეტაპზე გავიდე მხოლოდ, შემდგომ კიდევ ერთით ზემოთ, ან ისევ ჩავიჭრა მაგრამ მთავარი არის მიღებული გამოცდილება და ზრდა.
ხელახლა აღმოვაჩინე 25 წლის ასაკში რომ ალგორითმები აუცილებელი არაა დაიზუთხო და უბრალოდ კარგად გემრიელად მოირგო და გაერთო.
// ბევრი დეტალი შევამოკლე და გავამარტივე ასახსნელად რადგანაც ძალიან დიდი ბიუროკრატიული პროცესია, ამავდროულად საკმაოდ სტრესული და ძალიან გრძელი პოსტი გამოვიდოდა.
დასაწყისისთვის ცუდი არ არის, როდესაც უარს მიიღებ, შემდგომ 6 თვის მერე გიხსენებენ, გეკონტაქტებიან, ინტერვიუს გინიშნავენ ორჯერ და გაძლევენ საშუალებას შენი თავი გამოცადო.
// მადლობა ყველას ვინც გვერდით მედგა, რჩევებს მაძლევდა ეს პერიოდი, ცოდნას მიზიარებდა და მამხნევებდა ❤