لقد أجريت مقابلة مع GS في مكتبهم في بنغالورو. لدي 4 سنوات من الخبرة في تطوير المكدس الكامل باستخدام Java. لقد تلقيت مكالمة من مستشار.
الجولة 1
ما هي المفاهيم التي تشعر بالراحة داخل جافا؟ قلت جمعات. سأل ما هي فئات التجميع التي استخدمتها؟ قلت HashMap ArrayList وHashSet.
متى ستستخدم Set ومتى القائمة؟ قلت أن Set يدعم العناصر الفريدة غير الفارغة وأن القائمة لا تحتوي على هذا القيد. لذلك إذا كنت أريد عناصر فريدة سأستخدم Set. وسأل أي اعتبار آخر؟ قلت نوع الاستعلامات التي سيتم إجراؤها على المجموعة. مثل البحث. سأل أي مثال؟ قلت - قاعدة بيانات الموظفين. يجب أن يكون الموظفون فريدين حتى نتمكن من استخدام القائمة والبحث عن طريق البحث الثنائي أو تقنية مشابهة حيث يتم فرزهم عمومًا بترتيب ما. لكنني أعتقد أنه كان يتوقع إجابة أو تعيين وقت البحث O(1). لقد شرحت عمل HashMap وHashSet وكيف سيساعد ذلك المطور على تحقيق تفرد العناصر بسهولة، لكن القائم بإجراء المقابلة لم يكن مقتنعًا بإجابتي على سؤاله الأصلي.
ما هو عقد يساوي () و hashCode ()؟ ماذا لو تم تجاوز أحدهما ولكن الآخر لم يتم تجاوزه؟
ابحث عن الحد الأدنى الثاني في مصفوفة معينة .
ابحث عن النقطة المحورية في مصفوفة مرتبة ومدورة.
أي سؤال بالنسبة لي؟
الجولة 2
تقديم مقدمة موجزة عن خبرتك في العمل.
أعط لمحة عامة عن تصميم مشروعك الأخير.
لنفترض أن لدي واجهة مستخدم حيث توجد قائمة أو جدول عناصر وكل عنصر له سمة ربح وسمة خصم وما إلى ذلك. كيفية التأكد من عدم ترك العديد من المستخدمين لحالة أي عنصر غير متناسقة. يمكن للمستخدم تحديث السمات أو يمكن لبعض خدمات الويب الأخرى أن تفعل الشيء نفسه. اقترحت مزامنة أساليب ضبط العنصر. وسأل عن كيفية فرز العناصر. قلت إن العناصر ستكون موجودة في قائمة المصفوفات وقمت بتنفيذ الواجهة القابلة للمقارنة. لقد طلب رمز العمل. عندما كتبت التعبير داخل طريقة المقارنة () قال إن التصميم ليس مرنًا نظرًا لوجود ترميز صعب لمعايير الفرز. وقال إنه عندما يريد شخص ما الفرز حسب سمة أخرى، سيكون من المستحيل إدارة العديد من الكائنات المكررة. قلت أنه يمكننا القيام بذلك باستخدام نمط طريقة المصنع. عند هذا أنهى جولة المقابلة فعليًا. في مكان ما بينهما ذكر واجهة المقارنة وشرحت له كيف تعمل. قلت إنه اختيار جيد إذا كان المرء لا يريد تعديل الفئات الموجودة. أعتقد أنه كان يتوقع تنفيذ طريقة المقارنة () لأن ذلك لن يتطلب كائنات مكررة ويمكن إجراء الفرز حسب معايير مختلفة ببساطة عن طريق تطبيق المقارنة في فئات مختلفة فئة واحدة لكل معيار فرز ثم استدعاء طريقة الفرز () لفئة المجموعات مع تطبيق المقارنة هذا.
أي سؤال بالنسبة لي؟
قيل لي أن أغادر لهذا اليوم. نصيحة: حاول ألا تطرح أنماط التصميم إلا إذا طلب منك ذلك أو إذا كانت لديك خبرة في حل المشكلات المتعلقة بأنماط التصميم. استمع إلى المحاور وكن حذرًا. أنها توفر تلميحات. في الجولة الأولى أيضًا ارتكبت خطأً في سؤال المصفوفة التي تم تدويرها. لقد أعطى حالة اختبار حيث سيفشل الكود الخاص بي. لقد أصلحت المأزق. خذ قسطاً كافياً من النوم قبل يوم المقابلة. جميع مشاكل الممارسة لجولدمان ساكس ! إنشاء اختبار