Updated
ისე მოხდა, რომ ორი კვირის წინ google-ში ამოვყავი თავი
პოლონეთში, კრაკოვში მათი ოფისია. ხუთი ტექნიკური ინტევიუ ხუთ საათს გრძელდებოდა და საკმაოდ საინტერესო და სახალისო აღმოჩნდა ჩემთვის. აზარტულია, როცა რაიმეს ცოდნაში გცდიან. თუმცა მათი საბოლოო გადაწყვეტილება უკვე მივიღე და თბილისში ვაგრძელებ ჩემს ”მოღვაწეობას”
კიდევ უფრო სასიხარულო იყო ჩემთვის რომ ჩვენიანებთან გავატარე ის ერთი კვირა და ეხლა ცოტა ხანი კიდევ არ მომენატრებიან
ვინც არ იცის რას ვგულისხმობ, ლეკვა და რაჭველა (აწ უკვე გუგლერები) ცოტა ხნის წინ გადასახლდნენ იქ.
ტექნიკური ინტერვიუების დეტალებზე მე მგონი ყველასთან სათითაოდ ვისაუბრე დაწვრილებით
მაგრამ თუ ვინმეს აინტერესებს, აქაც დავწერ..
შთაბეჭდილებების გაზიარება არც ისე კარგად გამომდის ხოლმე
ამიტომ რამდენიმე ფოტო…
ეეეი.. ეხლა დავინახე თითები უკან
Update:
ხუთმა ინტერვიუმ ხუთ სხვადასხვა ადამიანთან ჩაიარა და სხვადასხვა თემის ირგვლივ სვამდნენ შეკითხვებს. პასუხი თუ კოდს შეიცავდა ფურცელზე ან დაფაზე იყო დასაწერი.
Coding შეკითხვები იყო შემდეგი (მე ჯავაზე ვწერდი, თუმცა შეიძლება C++-ზეც):
1. დასაწერი იყო მეთოდი, რომელსაც გადაეცემა პარამეტრად List ტიპის ობიექტი და მეთოდმა უნდა დააბრუნოს ამ ლისტიდან random ობიექტი. random-ისთვის შეიძლებოდა ჯავას Random კლასის გამოყენება.
მეთოდის დაწერის შემდეგ მოვიდა კითხვა, თუ როგორ გავტესტავდი ამ მეთოდს. და კიდევ, თუ რატომ იქრეშებოდა ჩემი დაწერილი მეთოდი ძალიან იშვიათ შემთხვევებში. კოდი ასეთია:
Object getRandom(List list){
if (list == null || list.size() ==0) do something;
int next = Random.nextInt(list.size());
return list.get(next);
}
2. დასაწერი იყო კეშის ზოგადი ინტერფეისი (ზოგადი ანუ, არა ერთი კონკრეტული ტიპის ობიექტების შესანახად, არამედ ჯენერიკებით) და შემდეგ ამ ინტერფეისის ერთ-ერთი რეალიზაცია.
3. დასაწერი იყო მეთოდი, რომელსაც პარამეტრად გადაეცემა ინდექსი (0-დან) და აბრუნებს შემდეგი სახის სტრიქონს: 0-ის შემთხვევაში A, 1 – B, ასე სანამ ინგლისური ალფაბიტი არ ამოიწურება. შემდეგ იქნება AA, AB…. AAA, AAB, AAC…
მაგალითად როგორც ექსელშია გადანომრილი სვეტები.
4. დასაწერი იყო Iterator-ის კლასი (next და hasNext მეთოდები), რომელიც დადის არა კოლექციის შიგნით, არამედ კოლექციების კოლექციაში. ანუ, რომ წარმოვიდგინოთ გადაბმული კოლექციები.
ალგორითმებზე შეკითხვები:
ერთი იყო სტრიქონის ანაგრამებზე, ჰეშირებას და ინდექს სორტზე, ხოლო მეორეში მოცემული იყო დიდი ტექსტი (სიტყვების მიმდევრობა) და ასევე მოცემული იყო სიტყვების მასივი (არც ისე დიდი). ამ დიდ ტექსტში უნდა მეპოვა ისეთი უმოკლესი ფრაგმენტი (სიტყვების რაოდენობით), რომელიც შეიცავდა მასივში არსებულ ყველა სიტყვას.
კიდევ ერთი კითხვა იყო ალგორითმებთან კავშირში: 10მბ ზომის ფაილი უნდა დამეკოპირებინა ერთი მანქანიდან 10000 მანქანაზე, ოღონდ სწრაფად. და ჩათვლილი იყო, რომ დისკიდან წაკითხვის და დისკზე წაკითხვის სიჩქარეა 100მბ/წმ, ხოლო ქსელში მონაცემების გადაცემის სიჩქარე – 1000 მეგაბიტი წამში. ასევე სანამ ფაილი ბოლომდე არ ჩაიწერება ერთ ადგილას არ შეიძლება იმ ადგილიდან მისი გადაწერა სხვაგან. და კიდევ ერთი კომპიუტერიდან რამდენიმეზე პარალელურად გაშვებული გადაწერა მაინც ცალცალკე დაითვლება, იმიტომ რომ არ შეუძლია ქსელში დაუკავშირდეს რამდენიმეს ერთად და ისე გადაუწეროს.
low level კითხვებში იყო ასეთი რამეები:
1. რა არის ბაიტის მაქსიმალური მნიშვნელობა?
2. როგორ შევინახოთ ბაიტში დიდი რიცხვი? მაგალითად 1000 ან 100 000
3. როგორ არის წარმოდგენილი float ტიპის მნიშვნელობა მეხსიერებაში?
4. როგორ არის ჯავაში რეალიზებული ArrayList? და საერთოდ როგორ ხდება დინამიური მასივის მართვა მეხსიერებაში
იყო კიდევ ერთი ასეთი შეკითხვა, რომელიც არ ვიცი რა ტიპში შედის..
ვთქვათ, მობილურის ერთ-ერთ ოპერატორს უნდა გაუკეთო sms-ების შესანახი ბაზა, რაიმე storage, რომელსაც შემდეგ აპლიკაციები გამოიყენებენ. რა მეხსიერებას (სერვერები) გამოყოფდი ამ sms-ების შესანახად?
მე მგონი სულ ეს იყო



მისი გალერეა
The Human Elementsby impodster



The Little Big Company by nido
Gel’s Kitchen by lboi
Grace Hospice by strangeideas
More by actiondesigner
Hope by janzabransky

