كيفية حل المشكلات في Leetcode للتحضير للمقابلات الفنية

التحضير للمقابلات الفنية مع Leetcode وكتاب

أدرك أن هناك العديد من المقالات حول هذا الموضوع ، لذا سأحاول تقديم معلومات قيمة أتمنى أن تكون لدي عندما بدأت رحلتي.

ملاحظة مهمة

إذا كنت مبتدئًا كليًا ، فاقرأ هذا أولاً.

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

كيفية ممارسة المشكلات على Leetcode أو Hackerrank أو "Cracking the Coding Interview" أو GeeksforGeeks

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

ورقة التقدم

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

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

هدف

سؤالان شائعان يطرحهما الناس: "كم عدد المشكلات التي يجب حلها؟" و "كم من الوقت الكلي يجب أن أقضي؟". يجب عليك التفكير في كل من الجودة والكمية. إذا كان العدد الإجمالي للمشاكل يقيس الكمية ، فقم بحل 40 مشكلة على الأقل. إذا كان إجمالي عدد الساعات يقيس الجودة ، فقم بقضاء 20 ساعة.

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

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

تأكد من وضع أهداف واقعية وقابلة للتحقيق. لا تضع أهدافًا لا يمكنك التحكم بها. بدلاً من قول "سأحصل على ثلاثة عروض عمل من الشركات الكبرى في 3 أشهر" ، قل "سوف أحل مشكلات x وسأمضي ما مجموعه ساعات تركيز عميقة في الأشهر z المقبلة". لديك سيطرة 100 ٪ على ذلك. لكن ليس لديك أي سيطرة على ما إذا كنت ستحصل على عرض العمل من شركة أحلامك أم لا.

الاستراتيجية

  1. الذهاب إلى مكان هادئ.
  2. اختيار سؤال.
  3. ضبط مؤقت لمدة 25 دقيقة.
  4. خصص الدقائق الخمس الأولى لفهم المشكلة واسأل / أجب عن الأسئلة التوضيحية لنفسك
  5. اقض 20 دقيقة التالية في حل المشكلة على الورق والقلم / القلم (حتى يرن الموقت).
  6. اقض الدقائق العشر التالية في دراسة الحل.
  7. توقف. حتى لو كنت في منتصف شيء مهم مثل محاولة فهم الحل. لا تنفق أكثر من 30-35 دقيقة لكل سؤال.
  8. سجل النشاط على الرسم البياني الخاص بك التقدم.
  9. إعادة النظر في السؤال الأسبوع المقبل.

ملاحظات

  1. لا تعمل في مقهى أو في أماكن أخرى صاخبة. ادرس في مكتبتك المحلية أو في مكان هادئ آخر.

2. لا يهم من أين أنت المشكلة. يمكن أن يكون ذلك من Leetcode أو Cracking the Coding Interview أو Hackerrank أو أي مكان آخر.

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

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

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

7. بمجرد أن تصل إلى ما مجموعه 30 إلى 35 دقيقة بشأن هذه المشكلة ، لا تواصل العمل على حل المشكلة - حتى لو كنت في منتصف فهم الحل. توقف.

على مقابلات وهمية

المقابلات الوهمية مفيدة للغاية لإعداد نفسك للمقابلات. ومع ذلك ، أعتقد أنها مبالغ فيها.

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

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

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

استمتع بالدراسة. أتمنى لك حظا سعيدا!