كيف تستعد للمقابلة في جوجل وتفشل فيها. مرتين

كيف تستعد للمقابلة في جوجل وتفشل فيها. مرتين

يبدو عنوان المقال وكأنه فشل ملحمي، ولكن في الواقع كل شيء ليس بهذه البساطة. وبشكل عام، انتهت هذه القصة بشكل إيجابي للغاية، وإن لم يكن في جوجل. لكن هذا موضوع لمقالة أخرى. في هذا المقال نفسه، سأتحدث عن ثلاثة أشياء: كيف سارت عملية التحضير لي، وكيف تمت المقابلات في جوجل، ولماذا، في رأيي، كل شيء ليس واضحًا كما قد يبدو.

كيف بدأ كل شيء

في إحدى أمسيات الشتاء الباردة في قبرص، خطرت في بالي فجأة فكرة أن معرفتي بعلوم الكمبيوتر الكلاسيكية كانت بعيدة جدًا عن المتوسط، وكان لا بد من القيام بشيء حيال ذلك. إذا، بالمناسبة، لم يقرأ شخص ما بعد لماذا المساء قبرصي وبارد، فيمكنك معرفة ذلك هنا. بعد بعض التفكير، تقرر البدء بأخذ دورة عبر الإنترنت حول الخوارزميات وهياكل البيانات. سمعت من أحد زملائي السابقين عن دورة روبرت سيدجويك على كورسيرا. تتكون الدورة من جزأين (جزء 1 и جزء 2). إذا تغيرت الروابط فجأة، فيمكنك دائمًا البحث عن اسم المؤلف في Google. كل جزء يستمر 6 أسابيع. يتم إعطاء المحاضرات في بداية الأسبوع، وخلال الأسبوع لا تزال بحاجة إلى ممارسة التمارين. يغطي الجزء الأول من الدورة هياكل البيانات الأساسية والأنواع الأساسية للفرز وتعقيد الخوارزميات. الجزء الثاني هو بالفعل أكثر تقدمًا، حيث يبدأ بالرسوم البيانية وينتهي بأشياء مثل البرمجة الخطية والاستعصاء. بعد التفكير في كل ما سبق، توصلت إلى استنتاج مفاده أن هذا هو بالضبط ما أحتاجه. وبالمناسبة، قد يتساءل القارئ الفضولي، ما علاقة جوجل بالموضوع؟ وبالفعل، حتى هذه اللحظة لم يكن له أي علاقة بالأمر على الإطلاق. لكنني كنت بحاجة إلى هدف، لأن الدراسة لمدة 12 أسبوعًا في المساء دون هدف أمر صعب إلى حد ما. ماذا يمكن أن يكون الغرض من اكتساب المعرفة الجديدة؟ وبطبيعة الحال، تطبيقها في الممارسة العملية. في الحياة اليومية، يعد هذا مشكلة كبيرة، ولكن خلال مقابلة مع شركة كبيرة يكون الأمر سهلاً. أظهر بحث سريع على Google أن Google (معذرة عن هذا الحشو) هي واحدة من أكبر الشركات في أوروبا (وكنت أتطلع تحديدًا إلى أوروبا) التي تجري مثل هذه المقابلات. على وجه التحديد، يقع مكتبهم في زيوريخ، سويسرا. لذلك تقرر - دعنا ندرس ونذهب لإجراء مقابلة في Google.

التحضير للنهج الأول

مرت الأسابيع الـ 12 بسرعة وأكملت الدورتين. انطباعاتي عن الدورات أكثر من إيجابية، ويمكنني أن أوصي بها لأي شخص مهتم. أعجبتني الدورات للأسباب التالية:

  • يتحدث المحاضر اللغة الإنجليزية بشكل واضح إلى حد ما
  • المواد منظمة بشكل جيد
  • عروض تقديمية رائعة توضح الدواخل الداخلية لكل خوارزمية
  • اختيار المختصة للمواد
  • تمارين مثيرة للاهتمام
  • يتم فحص التمارين تلقائيا على الموقع، وبعد ذلك يتم إنشاء تقرير

عادةً ما كان عملي في الدورات التدريبية يسير على هذا النحو. لقد استمعت إلى المحاضرات في 1-2 أيام. ثم أجروا اختبارًا سريعًا لمعرفتهم بالمادة. وفي بقية الأسبوع قمت بالتمرين بعدة تكرارات. بعد المرة الأولى حصلت على 30-70%، والنتائج اللاحقة رفعت النتيجة إلى 97-100%. يتضمن التمرين عادةً تنفيذ بعض الخوارزميات، على سبيل المثال. نحت التماس أو بزيب.

بعد الانتهاء من الدورات، أدركت أن الكثير من المعرفة يأتي مع الكثير من الحزن. إذا كنت أعرف ببساطة أنني لا أعرف أي شيء، فقد بدأت الآن أدرك أنني أنا الذي لا أعرف.

وبما أنه كان شهر مايو فقط، وحددت موعد المقابلة في الخريف، فقد قررت مواصلة دراستي. وبعد مراجعة متطلبات الوظيفة الشاغرة، تقرر السير في اتجاهين متوازيين: مواصلة دراسة الخوارزميات وأخذ دورة أساسية في التعلم الآلي. بالنسبة للهدف الأول، قررت التحول من الدورات التدريبية إلى الكتاب واخترت العمل الضخم لستيفن سكيينا "الخوارزميات". دليل تصميم الخوارزمية. ليست ضخمة مثل تمثال كنوت، لكنها لا تزال كذلك. بالنسبة للهدف الثاني، عدت إلى كورسيرا وسجلت في دورة أندرو إنج. تعلم آلة.

مرت 3 أشهر أخرى وانتهيت من الدورة والحجز.

لنبدأ بالكتاب. تبين أن القراءة مثيرة للاهتمام للغاية، رغم أنها ليست سهلة. من حيث المبدأ، أود أن أوصي بالكتاب، ولكن ليس على الفور. بشكل عام، يقدم الكتاب نظرة أكثر تعمقًا على ما تعلمته في الدورة. بالإضافة إلى ذلك، اكتشفت (من وجهة نظر رسمية) أشياء مثل الاستدلال والبرمجة الديناميكية. وبطبيعة الحال، كنت قد استخدمتها من قبل، ولكن لم أكن أعرف ما اسمها. ويحتوي الكتاب أيضًا على عدد من الحكايات من حياة المؤلف (قصة حرب)، مما يخفف إلى حد ما من الطبيعة الأكاديمية للعرض. بالمناسبة، يمكن حذف النصف الثاني من الكتاب، فهو يحتوي على وصف للمشكلات الموجودة وطرق حلها. يكون مفيدًا إذا تم استخدامه بانتظام في الممارسة العملية، وإلا فسيتم نسيانه على الفور.

لقد كنت أكثر من مسرور بالدورة. من الواضح أن المؤلف يعرف أشياءه ويتحدث بطريقة مثيرة للاهتمام. بالإضافة إلى قدر لا بأس به منه، وهو الجبر الخطي وأساسيات الشبكات العصبية، التي كنت أتذكرها من الجامعة، لذلك لم أواجه أي صعوبات خاصة. هيكل الدورة قياسي تمامًا. الدورة مقسمة إلى أسابيع. كل أسبوع هناك محاضرات ممزوجة باختبارات قصيرة. بعد المحاضرات، يتم تكليفك بمهمة يتعين عليك القيام بها وإرسالها، وسيتم التحقق منها تلقائيًا. باختصار، قائمة المواد التي يتم تدريسها في الدورة هي كما يلي:
- دالة التكلفه
- الانحدارالخطي
- نزول متدرج
- تحجيم الميزة
- معادلة عادية
- الانحدار اللوجستي
- تصنيف متعدد الفئات (واحد مقابل الكل)
- الشبكات العصبية
- الانتشار العكسي
- التنظيم
- التحيز / التباين
- منحنيات التعلم
- مقاييس الخطأ (الدقة، الاستدعاء، F1)
— دعم الآلات المتجهة (تصنيف الهامش الكبير)
— ك- يعني
-تحليل المكونات الرئيسية
- إكتشاف عيب خلقي
- التصفية التعاونية (نظام التوصية)
— العشوائية، الدفعة الصغيرة، نزول التدرج الدفعي
- تعليم على الانترنت
- تقليل الخريطة
- تحليل السقف
بعد الانتهاء من الدورة، كان هناك فهم لجميع هذه المواضيع. وبعد مرور عامين، تم نسيان كل شيء تقريبًا بشكل طبيعي. أوصي به لأولئك الذين ليسوا على دراية بالتعلم الآلي ويريدون الحصول على فهم جيد للأشياء الأساسية للمضي قدمًا.

الجولة الأولى

لقد كان بالفعل شهر سبتمبر وحان الوقت للتفكير في المقابلة. وبما أن التقديم عبر الموقع أمر كارثي للغاية، فقد بدأت بالبحث عن أصدقاء يعملون في Google. وقع الاختيار datacompboyلأنه كان الشخص الوحيد الذي أعرفه بشكل مباشر (حتى لو لم يكن شخصيًا). لقد وافق على إرسال سيرتي الذاتية، وسرعان ما تلقيت رسالة من مسؤول التوظيف يعرض فيها حجز مكان في تقويمه للمحادثة الأولى. وبعد بضعة أيام تم الاتصال. لقد حاولنا التواصل عبر Hangouts، لكن الجودة كانت سيئة، لذلك قمنا بالتبديل إلى الهاتف. أولاً، ناقشنا بسرعة المعيار كيف ولماذا ولماذا، ثم انتقلنا إلى الفحص الفني. كان يتألف من عشرات الأسئلة بروح "ما هي صعوبة الإدراج في خريطة التجزئة"، "ما هي الأشجار المتوازنة التي تعرفها". ليس الأمر صعبًا إذا كان لديك معرفة أساسية بهذه الأشياء. تمت عملية الفحص بشكل جيد، وبناءً على النتائج، قرروا تنظيم المقابلة الأولى خلال أسبوع.

تمت المقابلة أيضًا عبر Hangouts. في البداية تحدثوا عني لمدة 5 دقائق تقريبًا، ثم انتقلوا إلى المشكلة. وكانت المشكلة على الرسوم البيانية. أدركت بسرعة ما يجب القيام به، لكنني اخترت الخوارزمية الخاطئة. عندما بدأت في كتابة التعليمات البرمجية أدركت ذلك وانتقلت إلى خيار آخر، وقد أكملته. طرح القائم بالمقابلة عدة أسئلة حول مدى تعقيد الخوارزمية وسأل عما إذا كان من الممكن القيام بذلك بشكل أسرع. لقد أصبحت مملة بطريقة ما ولم أستطع فعل ذلك. في هذه المرحلة، انتهى الوقت وقلنا وداعا. ثم، بعد حوالي 10 دقائق، خطر لي أنه بدلاً من خوارزمية Dijkstra التي استخدمتها، في هذه المشكلة تحديدًا، يمكنني استخدام بحث العرض أولاً، وسيكون أسرع. وبعد مرور بعض الوقت، اتصل مسؤول التوظيف وقال إن المقابلة بشكل عام سارت بشكل جيد وأنه يجب تنظيم مقابلة أخرى. واتفقنا على أسبوع آخر.

هذه المرة ساءت الأمور. إذا كان القائم بإجراء المقابلة ودودًا واجتماعيًا في المرة الأولى، فقد كان هذه المرة كئيبًا إلى حد ما. لم أتمكن من اكتشاف المشكلة على الفور، على الرغم من أن الأفكار التي توصلت إليها يمكن، من حيث المبدأ، أن تؤدي إلى حلها. وفي النهاية، وبعد عدة مطالبات من القائم بإجراء المقابلة، جاء الحل لي. هذه المرة، تبين أن البحث كان على نطاق واسع مرة أخرى، فقط من عدة نقاط. لقد كتبت الحلول، والتقيت بها في الوقت المحدد، ولكن نسيت حالات الحافة. بعد مرور بعض الوقت، اتصل مسؤول التوظيف وقال إن القائم بإجراء المقابلة هذه المرة كان غير سعيد، لأنه في رأيه كنت بحاجة إلى الكثير من التلميحات (3 أو 4 قطع) وقمت بتغيير الكود باستمرار أثناء الكتابة. وبناء على نتائج مقابلتين، تقرر عدم المضي أبعد من ذلك، بل تأجيل المقابلة القادمة لمدة عام إذا رغبت في ذلك. لهذا السبب قلنا وداعا.

ومن هذه القصة توصلت إلى عدة استنتاجات:

  • النظرية جيدة، لكن عليك أن تتنقل فيها بسرعة
  • النظرية دون ممارسة لن تساعد. نحن بحاجة إلى حل المشاكل وجلب الترميز إلى التلقائية.
  • الكثير يعتمد على القائم بإجراء المقابلة. ولا يمكن فعل أي شيء حيال ذلك.

التحضير للجولة الثانية

وبعد التفكير في الموقف، قررت أن أحاول مرة أخرى خلال عام. وعدل الهدف قليلا . إذا كان الهدف الرئيسي في السابق هو الدراسة، وكانت المقابلة في جوجل مثل الجزرة البعيدة، فإن اجتياز المقابلة الآن هو الهدف، والدراسة هي الوسيلة.
لذلك تم وضع خطة جديدة تضمنت النقاط التالية:

  • استمر في دراسة النظرية من خلال قراءة الكتب والمقالات.
  • حل المشكلات الخوارزمية بمبلغ 500-1000 قطعة.
  • استمر في تعلم النظرية من خلال مشاهدة مقاطع الفيديو.
  • الاستمرار في دراسة النظرية من خلال الدورات.
  • ادرس تجارب الآخرين من خلال إجراء المقابلات في Google.

لقد أكملت الخطة في غضون عام. بعد ذلك سأصف ما فعلته بالضبط لكل نقطة من النقاط.

كتب ومقالات

لا أتذكر حتى عدد المقالات التي قرأتها، فقد قرأتها باللغتين الروسية والإنجليزية. ربما الموقع الأكثر فائدة هذا واحد. يوجد وصف لعدد كبير من الخوارزميات المثيرة للاهتمام مع أمثلة التعليمات البرمجية.

قرأت 5 كتب: الخوارزميات، الطبعة الرابعة (سيدجويك، واين)، مقدمة إلى الخوارزميات الطبعة الثالثة (كورمن، ليسرسون، ريفست، ستاين)، كسر مقابلة الترميز الطبعة الرابعة (جايل لاكمان)، كشف مقابلات البرمجة الطبعة الثانية (مونجان، سوجانين) ، جيغير)، عناصر المقابلات البرمجية (عزيز، لي، براكاش). يمكن تقسيمها إلى فئتين. الأول يتضمن كتبًا لسيدجويك وكورمان. هذه نظرية. والباقي هو التحضير للمقابلة. يروي سيدجويك في الكتاب نفس الشيء كما في دوراته. فقط كتابيا. ليس هناك فائدة كبيرة من قراءتها بعناية إذا كنت قد أخذت الدورة التدريبية، ولكن الأمر يستحق القراءة على أي حال. إذا لم تكن قد شاهدت الدورة، فمن المنطقي أن تقرأها. بدا كورمين مملًا للغاية بالنسبة لي. وبصراحة، واجهت صعوبة في إتقانها. لقد أخرجته للتو من هناك نظرية الماجستيروالعديد من هياكل البيانات التي نادرًا ما تستخدم (كومة فيبوناتشي، شجرة فان إمدي بواس، كومة الجذر).

من المفيد قراءة كتاب واحد على الأقل للتحضير للمقابلة. كلها مبنية على نفس المبدأ تقريبًا. يصفون عملية المقابلة في شركات التكنولوجيا الكبرى، ويقدمون أشياء أساسية من علوم الكمبيوتر، ومشاكل لهذه الأشياء الأساسية، وحلول المشكلات وتحليل الحلول. من بين الثلاثة المذكورة أعلاه، ربما أوصي بـ Cracking the Coding Interview باعتباره الخيار الرئيسي، والباقي اختياري.

مشاكل خوارزمية

ربما كانت هذه هي النقطة الأكثر إثارة للاهتمام في التحضير. يمكنك بالطبع الجلوس وحل المشكلات بغباء. هناك العديد من المواقع المختلفة لهذا الغرض. لقد استخدمت بشكل رئيسي ثلاثة: Hackerrank, CodeChef и LeetCode. في CodeChef، يتم تقسيم المشكلات حسب الصعوبة، وليس حسب الموضوع. على Hackerrank سواء من حيث التعقيد أو حسب الموضوع.

ولكن كما اكتشفت بنفسي على الفور، هناك طريقة أكثر إثارة للاهتمام. وهذه هي المسابقات (تحديات البرمجة أو مسابقات البرمجة). جميع المواقع الثلاثة توفر لهم. صحيح أن هناك مشكلة في LeetCode - وهي منطقة زمنية غير مناسبة. ولهذا السبب لم أشارك في هذا الموقع. توفر Hackerrank وCodeChef عددًا كبيرًا من المسابقات المختلفة، والتي تستمر من ساعة واحدة إلى 1 أيام. التنسيقات المختلفة لها قواعد مختلفة، ولكن يمكننا التحدث عن ذلك لفترة طويلة. النقطة الرئيسية التي تجعل المسابقات جيدة هي إدخال عنصر تنافسي (ومرة أخرى الحشو) في عملية التعلم.

في المجموع، شاركت في 37 مسابقة على Hackerrank. من بينها، 32 منها كانت مصنفة، و5 منها إما تمت رعايتها (حتى أنني تلقيت 25 دولارًا في إحداها) أو للمتعة. في التصنيف، كنت ضمن أعلى 10% 4 مرات، وفي أعلى 11% 12 مرة، وفي أعلى 5% 25 مرات. وكانت أفضل النتائج 27/1459 في 3 ساعات و22/9721 في الأسبوع.

لقد تحولت إلى CodeChef عندما بدأ Hackerrank في استضافة المسابقات بشكل أقل. في المجمل تمكنت من المشاركة في 5 مسابقات. وكانت أفضل نتيجة هي 426/5019 في مسابقة الأيام العشرة.

في المجموع، في المسابقات، وهكذا، قمت بحل ما يزيد قليلاً عن 1000 مشكلة تتناسب مع الخطة. الآن، لسوء الحظ، لا يوجد وقت فراغ لمواصلة الأنشطة التنافسية، كما لا يوجد هدف يمكن شطب الوقت غير الحر من أجله. لكنها كانت ممتعة. أوصي بأن يجد المهتمين بهذا الأمر أشخاصًا متشابهين في التفكير. معًا أو في مجموعة يكون الأمر أكثر إثارة للاهتمام. لقد استمتعت بهذا مع صديق، لذلك ربما سارت الأمور على ما يرام.

عرض الفيديو

بعد قراءة كتاب سكيينا، أصبحت مهتمًا بما كان يفعله. وهو، مثل سيدجويك، أستاذ جامعي. وفي هذا الصدد، يمكن العثور على مقاطع فيديو لدوراته عبر الإنترنت. قررت مراجعة الدورة COMP300E - تحديات البرمجة - 2009 HKUST. لا أستطيع أن أقول أنني أحببت ذلك كثيرًا. بداية، جودة الفيديو ليست جيدة جدًا. ثانياً، لم أحاول حل المشكلات التي تمت مناقشتها في الدورة بنفسي. لذا فإن المشاركة لم تكن عالية جدًا.
أيضًا، أثناء حل المشكلات، ومحاولة العثور على الخوارزمية الصحيحة، صادفت فيديو Tushar Roy. كان يعمل في أمازون ويعمل الآن في أبل. وكما اكتشفت بنفسي لاحقًا، فقد فعل ذلك قناة يوتيوب، حيث ينشر تحليلاً للخوارزميات المختلفة. وحتى وقت كتابة هذا المقال، كانت القناة تحتوي على 103 مقاطع فيديو. ويجب أن أقول إن تحليله تم بشكل جيد للغاية. حاولت مشاهدة مؤلفين آخرين، لكن بطريقة ما لم ينجح الأمر. لذلك يمكنني بالتأكيد أن أوصي بهذه القناة للمشاهدة.

أخذ الدورات

لم أفعل أي شيء خاص هنا. شاهدت مقطع فيديو من Google Developer Nanodegree وحصلت على دورة تدريبية من ITMO كيفية الفوز بمسابقات البرمجة: أسرار الأبطال. إن درجة النانو جيدة جدًا، على الرغم من أنني بطبيعة الحال لم أتعلم أي شيء جديد منها. الدورة التدريبية من ITMO منحرفة قليلاً من الناحية النظرية، لكن المشكلات كانت مثيرة للاهتمام. لا أنصح بالبدء به، لكن من حيث المبدأ فقد كان وقتًا جيدًا.

تعلم من تجارب الآخرين

وبطبيعة الحال، حاول الكثير من الناس الدخول إلى جوجل. البعض حصل عليه، والبعض الآخر لم يفعل ذلك. وقد كتب البعض مقالات حول هذا الموضوع. من الأشياء المثيرة للاهتمام التي سأذكرها على الأرجح هذا и هذا. في الحالة الأولى، أعد الشخص لنفسه قائمة بما يحتاج إلى تعلمه لكي يصبح مهندس برمجيات ويدخل في جوجل. وانتهى به الأمر في النهاية في أمازون، لكن هذا لم يعد مهمًا بعد الآن. الدليل الثاني كتبته مهندسة جوجل لاريسا آجاركوفا (لار). بالإضافة إلى هذه الوثيقة، يمكنك أيضا أن تقرأ مدونتها.

من المنطقي قراءة مراجعات المقابلات على Glassdoor. إنهم جميعا متشابهون إلى حد ما، ولكن يمكنك الحصول على بعض المعلومات المفيدة.

لن أقدم روابط لمقالات صغيرة أخرى، يمكنك العثور عليها بسهولة على Google.

الجولة الثانية

والآن مر عام. اتضح أنها مكثفة للغاية من حيث الدراسات. لكنني اقتربت من الخريف الجديد بمعرفة نظرية أعمق بكثير ومهارات عملية متطورة. كان لا يزال هناك بضعة أسابيع متبقية قبل نهاية العام المخصص لي للتحضير، عندما وصلت فجأة رسالة من مسؤول التوظيف من Google إلى البريد، سألني فيها عما إذا كنت لا أزال أرغب في العمل في Google وسأفعل ذلك. أنا أمانع في التحدث معه. وبطبيعة الحال، لم يكن لدي مانع. اتفقنا على الاتصال في غضون أسبوع. كما طلبوا مني سيرة ذاتية محدثة، وأضفت إليها وصفًا موجزًا ​​لما قمت به خلال العام في العمل وبشكل عام.

بعد التواصل مدى الحياة، قررنا أنه خلال أسبوع ستكون هناك مقابلة Hangout، تمامًا مثل العام الماضي. مر أسبوع، وحان موعد المقابلة، لكن المذيع لم يحضر. مرت 10 دقائق، بدأت بالفعل أشعر بالتوتر، عندما اقتحم شخص ما الدردشة فجأة. كما اتضح بعد ذلك بقليل، لم يتمكن القائم بإجراء المقابلة من الحضور لسبب ما وتم العثور على بديل له بشكل عاجل. كان الشخص غير مستعد إلى حد ما سواء من حيث إعداد الكمبيوتر أو من حيث إجراء المقابلة. ولكن بعد ذلك سار كل شيء على ما يرام. لقد قمت بحل المشكلة بسرعة، ووصفت المخاطر المحتملة، وكيف يمكن التحايل عليها. ناقشنا عدة إصدارات مختلفة من المشكلة وتعقيد الخوارزمية. ثم تحدثنا لمدة 5 دقائق أخرى، أخبرنا المهندس عن انطباعاته عن العمل في ميونيخ (يبدو أنهم لم يجدوا بديلاً عاجلاً في زيورخ)، ثم افترقنا.

في نفس اليوم، اتصل بي مسؤول التوظيف وقال إن المقابلة سارت بشكل جيد وأنهم مستعدون لدعوتي لإجراء مقابلة في المكتب. في اليوم التالي اتصلنا عبر Hangouts وناقشنا التفاصيل. وبما أنني كنت بحاجة لتقديم طلب للحصول على تأشيرة، قررنا تحديد موعد للمقابلة خلال شهر.

بينما كنت أقوم بإعداد المستندات، ناقشت في نفس الوقت المقابلة القادمة مع مسؤول التوظيف. تتكون المقابلة القياسية في Google من 4 مقابلات خوارزمية ومقابلة واحدة لتصميم النظام. ولكن بما أنني كنت أتقدم بطلب للحصول على وظيفة كمطور Android، فقد قيل لي أن جزءًا من المقابلة سيكون خاصًا بنظام Android. لم أتمكن من التخلص من مسؤول التوظيف بالضبط بشأن ما ستكون عليه التفاصيل وما هي التفاصيل. وبقدر ما أفهم، تم تقديم هذا مؤخرًا نسبيًا ولم يكن هو نفسه على علم بذلك. لقد قمت أيضًا بالتسجيل في دورتين تدريبيتين: كيفية اجتياز مقابلة خوارزمية وكيفية اجتياز مقابلة تصميم النظام. وكانت الجلسات ذات فائدة متوسطة. هناك أيضًا، لا أحد يستطيع أن يخبرني بما يطلبه مطورو Android. ولذلك كان تحضيري لهذا الشهر يتلخص في الآتي:

  • شراء لوحة علامات وكتابة 2-3 عشرات من الخوارزميات الأكثر شيوعًا عليها من الذاكرة. 3-5 قطع كل يوم. في المجموع، تمت كتابة كل منها عدة مرات.
  • قم بتحديث ذاكرتك بالمعلومات المتنوعة على Android التي لا تستخدمها كل يوم
  • مشاهدة بعض مقاطع الفيديو حول Big Scale وأشياء من هذا القبيل

كما قلت سابقًا، كنت أقوم في نفس الوقت بإعداد المستندات الخاصة بالرحلة. في البداية، طلبوا مني معلومات لإعداد خطاب دعوة. ثم حاولت لفترة طويلة معرفة من يصدر تأشيرات دخول إلى سويسرا في قبرص، لأن السفارة السويسرية لا تتعامل مع هذا. وكما تبين فإن القنصلية النمساوية تقوم بذلك. اتصلت وحددت موعدا. لقد طلبوا مجموعة من المستندات، لكن لم يكن هناك أي شيء مثير للاهتمام بشكل خاص. صورة وجواز سفر وتصريح إقامة ومجموعة من الشهادات المختلفة وبالطبع خطاب دعوة. وفي الوقت نفسه لم تصل الرسالة. في النهاية، ذهبت مع نسخة مطبوعة عادية وعملت بشكل جيد. وصلت الرسالة نفسها بعد 3 أيام، ولم تتمكن شركة FedEx القبرصية من العثور على عنواني واضطررت للذهاب للحصول عليه بنفسي. في الوقت نفسه، تلقيت طردا من نفس FedEx، والذي لم يتمكنوا من تسليمه لي أيضا، لأنهم لم يجدوا العنوان، والذي كان مستلقيا هناك منذ يونيو (5 أشهر، كارل). وبما أنني لم أكن أعرف عن ذلك، بطبيعة الحال، لم أفترض أن لديهم ذلك. لقد استلمت تأشيرتي في الوقت المحدد، وبعد ذلك حجزوا لي فندقًا وعرضوا عليّ خيارات الطيران. لقد قمت بتعديل الخيارات لجعلها أكثر ملاءمة. لم تعد هناك رحلات جوية مباشرة، لذلك انتهى بي الأمر بالسفر إلى هناك عبر أثينا والعودة عبر فيينا.

وبعد الانتهاء من جميع الإجراءات الشكلية للرحلة، مرت بضعة أيام أخرى وسافرت بالفعل إلى زيوريخ. وصلت إلى هناك دون وقوع حادث. أخذت القطار من المطار إلى المدينة - بسرعة وسهولة. بعد التجول في المدينة قليلاً، وجدت فندقاً وقمت بتسجيل الدخول فيه. منذ أن تم حجز الفندق بدون طعام، تناولت العشاء في البيت المجاور وذهبت إلى السرير، لأن الرحلة كانت في الصباح وأردت النوم بالفعل. في اليوم التالي تناولت وجبة الإفطار في الفندق (مقابل أموال إضافية) وذهبت إلى مكتب Google. لدى Google عدة مكاتب في زيوريخ. مقابلتي لم تكن في المركزي. وبشكل عام، بدا المكتب عاديًا تمامًا، لذلك لم تتح لي الفرصة لإلقاء نظرة على كل الأشياء الجيدة في مكتب Google "العادي". لقد قمت بالتسجيل مع المسؤول وجلست للانتظار. وبعد مرور بعض الوقت، خرج مسؤول التوظيف وأخبرني بخطة اليوم، وبعد ذلك أخذني إلى الغرفة التي ستُجرى فيها المقابلات. في الواقع، تضمنت الخطة 3 مقابلات وغداء ومقابلتين أخريين.

المقابلة رقم واحد

المقابلة الأولى كانت فقط على نظام Android. وليس لها علاقة بالخوارزميات على الإطلاق. مفاجأة، رغم ذلك. حسنًا، حسنًا، الأمر أكثر شيوعًا بهذه الطريقة. لقد طُلب منا إنشاء مكون معين لواجهة المستخدم. أولا ناقشنا ماذا وكيف. عرض تقديم حل باستخدام RxJava، ووصف بالضبط ما سيفعله ولماذا. قالوا إن هذا أمر جيد بالتأكيد، ولكن دعونا نفعل ذلك باستخدام إطار عمل Android. وفي نفس الوقت سنكتب الكود على السبورة. وليس مجرد مكون، ولكن النشاط بأكمله الذي يستخدم هذا المكون. وهذا ما لم أكن مستعدًا له. يعد كتابة خوارزمية مكونة من 30 إلى 50 سطرًا على السبورة أمرًا واحدًا، وشيء آخر هو كتابة شعرية كود Android، حتى مع الاختصارات والتعليقات بروح "حسنًا، لن أكتب ذلك، لأنه واضح بالفعل". وكانت النتيجة نوعًا من صلصة الخل لثلاثة ألواح. أولئك. لقد قمت بحل المشكلة، لكنها بدت غبية.

المقابلة رقم اثنين

هذه المرة كانت المقابلة حول الخوارزميات. وكان هناك اثنان من المحاورين. أحدهما هو القائم بإجراء المقابلة الفعلي، والثاني هو شاب من بادوان (محاور الظل). كان من الضروري التوصل إلى بنية بيانات ذات خصائص معينة. أولاً، ناقشنا المشكلة كالمعتاد. لقد طرحت أسئلة مختلفة، أجاب القائم بإجراء المقابلة. بعد مرور بعض الوقت، طُلب منهم كتابة عدة طرق للهيكل المخترع على السبورة. لقد كنت ناجحًا هذه المرة إلى حد ما، وإن كان ذلك مع بعض الأخطاء الطفيفة، والتي قمت بتصحيحها بناءً على طلب الشخص الذي أجرى المقابلة.

المقابلة رقم ثلاثة

هذه المرة، تصميم النظام، والذي تبين فجأة أنه Android. كان من الضروري تطوير تطبيق بوظائف معينة. ناقشنا متطلبات التطبيق والخادم وبروتوكول الاتصال. بعد ذلك، بدأت في وصف المكونات أو المكتبات التي سأستخدمها عند إنشاء التطبيق. وبعد ذلك، عند ذكر برنامج جدولة المهام، كان هناك بعض الالتباس. والحقيقة هي أنني لم أستخدمها أبدًا في الممارسة العملية، لأنه في وقت إصدارها، كنت قد انتقلت للتو إلى دعم التطبيقات حيث لم تكن هناك مهام لاستخدامها. حدث الشيء نفسه عند تطوير الإصدارات اللاحقة. أي أنني أعرف نظرياً ما هو هذا الشيء ومتى وكيف يتم استخدامه، لكن ليس لدي خبرة في استخدامه. ويبدو أن القائم بإجراء المقابلة لم يعجبه كثيرًا. ثم طلبوا مني أن أكتب بعض التعليمات البرمجية. نعم، عند تطوير تطبيق ما، عليك كتابة التعليمات البرمجية على الفور. مرة أخرى، رمز Android على السبورة. اتضح مخيفا مرة أخرى.

غداء

وكان من المفترض أن يأتي شخص آخر، لكنه لم يفعل. وجوجل يرتكب الأخطاء. ونتيجة لذلك، ذهبت لتناول الغداء مع المحاورة السابقة وزميلتها، وبعد ذلك بقليل انضمت المحاورة التالية. كان الغداء لائقًا تمامًا. مرة أخرى، نظرًا لأن هذا ليس المكتب الرئيسي في زيورخ، فقد بدت غرفة الطعام عادية جدًا، على الرغم من أنها لطيفة جدًا.

المقابلة رقم أربعة

وأخيرا، الخوارزميات في أنقى صورها. لقد قمت بحل المشكلة الأولى بسرعة كبيرة وبشكل فعال على الفور، على الرغم من أنني فاتني حالة حافة واحدة، ولكن بناءً على طلب المحاور (أعطى هذه الحالة المتطورة للغاية) وجدت المشكلة وقمت بتصحيحها. بالطبع، كان علي أن أكتب الكود على السبورة. ثم تم تكليف مهمة مماثلة، ولكن أكثر صعوبة. لذلك، وجدت اثنين من الحلول غير المثالية ووجدت تقريبًا الحل الأمثل، ولم تكن 5-10 دقائق كافية لإنهاء الفكرة. حسنًا، لم يكن لدي الوقت لكتابة الكود الخاص به.

المقابلة رقم خمسة

ومرة أخرى مقابلة أندرويد. أتساءل لماذا درست الخوارزميات طوال العام؟
في البداية كانت هناك بعض الأسئلة البسيطة. ثم قام القائم بإجراء المقابلة بكتابة الكود على السبورة وطلب العثور على المشاكل فيه. وجدته، وشرحته، وأصلحته. مناقشة. ثم بدأت بعض الأسئلة غير المتوقعة مثل "ماذا تفعل الطريقة Y في الفصل X"، "ماذا يوجد داخل الطريقة Y"، "ماذا يفعل الفصل Z". بالطبع أجبت على شيء ما، لكن بعد ذلك قلت إنني لم أواجه هذا في عملي مؤخرًا وبطبيعة الحال لا أتذكر من يفعل ماذا وكيف بالتفصيل. بعد ذلك، سألني القائم بإجراء المقابلة عما أفعله الآن. وذهبت الأسئلة حول هذا الموضوع. لقد أجبت بالفعل أفضل بكثير هنا.

بعد انتهاء المقابلة الأخيرة، أخذوا تصريحي، وتمنىوا لي حظًا سعيدًا وأرسلوني في طريقي. مشيت حول المدينة قليلاً وتناولت العشاء وذهبت إلى الفندق حيث ذهبت للنوم حيث كانت الرحلة قد عادت مرة أخرى في الصباح الباكر. وفي اليوم التالي وصلت بأمان إلى قبرص. بناء على طلب المجند، كتبت تعليقات على المقابلة وملأت استمارة في خدمة خاصة لإعادة الأموال التي أنفقت. من بين جميع النفقات، تدفع Google مباشرةً ثمن التذاكر فقط. يتم دفع تكاليف الفندق والطعام والسفر من قبل المرشح. ثم نقوم بملء النموذج وإرفاق الإيصالات وإرساله إلى مكتب خاص. يقومون بمعالجة هذا وتحويل الأموال إلى الحساب بسرعة إلى حد ما.

استغرق الأمر أسبوعًا ونصف لمعالجة نتائج المقابلة. وبعد ذلك أُبلغت بأنني كنت "أقل قليلاً من الشريط". أي أنني قصرت قليلاً. وبشكل أكثر تحديدًا، جرت المقابلتان بشكل جيد، واثنتان لم تكن على ما يرام، ولم يكن تصميم النظام جيدًا. الآن، لو أن 2 على الأقل سارت بشكل جيد، لكان بإمكاننا المنافسة، وإلا فلن تكون هناك فرصة. عرضوا العودة في عام آخر.

في البداية، بالطبع، كنت مستاءً، لأنه تم بذل الكثير من الجهد في التحضير، وبحلول وقت المقابلة كنت أفكر بالفعل في مغادرة قبرص. بدا الانضمام إلى Google والانتقال إلى سويسرا خيارًا رائعًا.

اختتام

وهنا نصل إلى الجزء الأخير من المقال. نعم، لقد فشلت في مقابلة جوجل مرتين. أنه لأمر محزن. ربما سيكون من المثير للاهتمام العمل هناك. لكن بإمكانك النظر إلى الأمر من الجانب الآخر.

  • في عام ونصف، تعلمت قدرًا كبيرًا من الأشياء المتعلقة بتطوير البرمجيات.
  • لقد استمتعت كثيرًا بالمشاركة في مسابقات البرمجة.
  • ذهبت إلى زيوريخ لبضعة أيام. متى سأذهب إلى هناك مرة أخرى؟
  • لقد حظيت بتجربة مقابلة مثيرة للاهتمام في إحدى أكبر شركات تكنولوجيا المعلومات في العالم.

وبالتالي، فإن كل ما حدث خلال هذه السنوات ونصف يمكن اعتباره ببساطة تدريبًا أو تدريبًا. ونتائج هذا التدريب جعلت نفسها محسوسة. لقد نضجت فكرتي لمغادرة قبرص (بسبب بعض الظروف العائلية)، ونجحت في اجتياز عدة مقابلات مع شركة أخرى معروفة وانتقلت بعد 8 أشهر. لكن هذه قصة مختلفة تمامًا. ومع ذلك، أعتقد أنه لا يزال يتعين عليّ أن أشكر Google على العام ونصف الذي عملت فيه بنفسي، وعلى يومين مثيرين للاهتمام في زيورخ.

ماذا يمكنني أن أقول أخيرا؟ إذا كنت تعمل في مجال تكنولوجيا المعلومات، فاستعد لإجراء المقابلات في Google (Amazon، Microsoft، Apple، وما إلى ذلك). ربما في يوم من الأيام سوف تذهب إلى هناك للوصول إلى هناك. حتى لو كنت لا ترغب في ذلك، صدقني، فإن هذا الإعداد لن يجعلك أسوأ. في اللحظة التي تدرك فيها أنه بإمكانك (حتى لو كان الحظ فقط) الحصول على مقابلة مع إحدى هذه الشركات، سيكون هناك العديد من الطرق مفتوحة أمامك أكثر مما كانت عليه قبل بدء التحضير. وكل ما تحتاجه على طول الطريق هو الهدف والمثابرة والوقت. أتمنى لك النجاح :)

المصدر: www.habr.com

إضافة تعليق