في كل مرة ، أستعد للمقابلات لشغل منصب "Java Developer" ، أدرك أن خطة التحضير الملموسة ستساعدني حقًا. لذلك ، جميع ملاحظاتهم المتراكمة خلال المقابلات ، تقرر هيكل ونشر. آمل أن يجد شخص ما هذه الخطة مفيدة.
وأنا عمدا لا أكتب لمن تهدف هذه الخطة التدريبية: لمطور كبير أو متوسط أو مبتدئ - كل هذا يتوقف على الوظيفة الشاغرة المحددة ومتطلبات صاحب العمل. لذلك ، اعتمد على هذه الخطة ، لكن قم بالتصفية وفي نفس الوقت لا تأخذها كدليل شامل.
- جافا الأساسية . يمكنك هنا ، على سبيل المثال ، التركيز على كتاب "OCP: دليل دراسة Oracle Certified Professional Java SE 8 Programmer II: Exam 1Z0-809" للتحضير لشهادة Java من المستوى الاحترافي. يوجد كتاب مشابه ، OCA: دليل دراسة Oracle SE 8 Programmer I من Oracle Certified Associate: اختبار 1Z0-808 ، لمستوى Associate - يمكنك أيضًا الاطلاع عليه. انتقل من خلال جدول المحتويات وأبرز بنفسك ما يمكنك تكراره. بالطبع ، لا يجب أن تتعامل بجدية تامة وقراءة غلاف كتاب لتغطيته - يمكن تجاوز العديد من الموضوعات من هذا الكتاب ، على سبيل المثال ، تنسيق التاريخ. تسليط الضوء على أبسط. على سبيل المثال ، بالنسبة لي ، كانت هذه الموضوعات التالية: المجموعات (الأسئلة القياسية "كيف يتم ترتيب HashMap؟" أو "ما هو الفرق بين LinkedList و ArrayList؟" وغالبًا ما تُسأل أيضًا في المقابلات) ، والعوامل الوراثية ، والوصلات الوظيفية ، و multithreading (هنا ، وأيضًا الفلتر - لا تحتاج إلى دوري حاجز وشوكة الانضمام إلى الإطار).
أيضا لا تنسى أن مشروع المعرفة في تجربتك. على سبيل المثال ، متى يجب عليك استخدام البرمجة متعددة الخيوط؟ ما المشاكل التي حلتها؟ ما الأقفال التي استخدمتها؟
- خاصية تعدد. ما زلت أسلط الضوء على هذا الموضوع في فقرة منفصلة - حيث أن الكتاب أعلاه لا يفسر ما هي التقلبات والأقفال والانتظار / الإخطار. إذا لم تكن قد عملت مع البرمجة متعددة الخيوط من قبل - فكن صريحًا وتحدث في المقابلة. لكن بعض الأشياء ، على سبيل المثال ، تم سردها أعلاه ، سيكون من الجيد أن نعرف من الناحية النظرية على الأقل (خاصةً السؤال "ما هو التقلب؟" الذي أجريته في كل مقابلة تقريبًا).
- الخوارزميات. هذا الموضوع مناسب ليس فقط لمطوري جافا. من غير المحتمل أن يُطلب منك كتابة أي خوارزمية فرز. لا يهتم القائم بإجراء المقابلة بمعرفة كم هو رائع أنك تعلمت رمز ترتيب الدمج (على الأرجح سيطلب منك فقط إخبار المبدأ العام). ولكن لحل مشكلة حسابية ، لتقييم مدى تعقيد الحل الخاص بك ، أو على سبيل المثال أن تشرح بالكلمات مبدأ البحث العميق ، هو خيار ممكن تمامًا.
- هياكل البيانات. كيف تختلف الشجرة عن الرسم البياني؟ ما هي أشجار AVL؟ كيف يختلف المكدس عن قائمة الانتظار؟
بخصوص java: ما هي الفئات في java التي تنفذ رصة أو طابور؟ كيف يختلف LinkedList عن ArrayList؟ ما هو hashset؟ كيف هو مختلف عن TreeSet؟ كيف تعمل HashMap؟
من المحتمل جدًا إجراء مقابلات مع هذه الأسئلة والأسئلة المشابهة. ولكن تجدر الإشارة إلى أن الأسئلة المتعلقة بالأشجار والرسوم البيانية تكون أقل احتمالًا للظهور في المقابلات - لا يتم استخدام هذه الهياكل في الممارسة كثيرًا. بدلاً من ذلك ، من المتوقع أن تكون لديك معرفة جيدة بما استخدمته مسبقًا. لا أعرف أو لم تستخدم الخشب الأحمر والأسود؟ أخبرني ، لا يمكنك معرفة كل شيء.
- قواعد البيانات. العلائقية وغير العلائقية. ما هو الفرق؟ ماذا ومتى تستخدم؟
إذا كنا نتحدث عن قواعد علائقية ، فكرر كل كائنات قواعد البيانات هذه: الجداول ، المشاهدات ، الفهارس. كرر sql - كيف يتم بناء الاستعلام ، وما أنواع الصلة الموجودة ، بدلاً من الاختلاف عن المكان. كرر أيضًا المعاملات بشكل منفصل - مستويات العزل وخصائص ACID. تذكر ، هل سبق لك أن واجهت حالات لتحسين الاستعلام؟ هل كان عليك إلقاء نظرة على خطة تنفيذ الاستعلام؟
لا تنسَ أيضًا تكرار jpa (إذا كانت هذه المواصفات مطلوبة في الوظيفة الشاغرة). ما هو مدير الكيان؟ ما هو سياق المثابرة؟ وهكذا ، ما كان علي أن أواجهه.
- الأطر. الأطر التي تحتاج إلى تكرارها تعتمد على الوظيفة الشاغرة المحددة. في معظم الحالات ، مطلوب الربيع. ثم لا تنس أن تكرر الطريقة التي يعمل بها الربيع بشكل عام ، خطوات تهيئة الحبة. استرجع الأُطُر النابضة التي استخدمتها (مثل Spring mvc ، وأمن Spring ، وبيانات Spring) ولماذا. كرر التعليقات التوضيحية الرئيسية (لا تنسَ التصفيات ، الابتدائية والشرطية - فهم يحبون أن يسألوا عنها خاصةً في كثير من الأحيان). ولا تنسى عن نطاقات الفاصوليا.
بشكل منفصل ، أريد أن أتناول التعليق التوضيحي للمعاملات. كيف تعمل؟ ما يمكن تكوينه بالإضافة إلى ذلك في ذلك؟
- جهاز jvm. ما هي الكومة والمكدس؟ كيف يتم تخزين الأشياء في jvm؟ ما هو تجمع سلسلة؟ ما يوفر مبدأ يحدث من قبل؟ كيف يعمل جامع القمامة؟ كرر أكبر قدر ممكن - لن يكون لزوم له.
- الأنماط. لا حاجة للقيادة - لن يحتاج أي شخص إلى سرد جميع الأنماط الحالية. لكن بعضها ، المستخدم في Java أو Spring ، يحتاج إلى أن يكون معروفًا (على سبيل المثال ، غير قابل للتغيير ، و Singleton ، و Prototype ، و Builder ، و Proxy ، و Abstract factory ، و Wrapper).
- مشاكل الخوارزمية. في كثير من الأحيان في مقابلات يطلبون حل مشكلة معينة. في بعض الأحيان على قطعة من الورق ، وأحيانًا على سبورة ، وأحيانًا على موقع معين ، إذا كانت مقابلة Skype. كن مستعدًا لكتابة التعليمات البرمجية دون استخدام بيئة التطوير المفضلة لديك. تدرب أيضًا على حل الألغاز ، على سبيل المثال على Leetcode .
- الشبكة. كرر مستويات نموذج OSI. ولا تنسَ تكرار البروتوكولات الرئيسية بمزيد من التفصيل: tcp ، udp ، http ، https.
- الهندسة المعمارية. الصلبة ، واكتشاف الخدمة ، طوابير الرسائل. متى يجب استخدام الخدمات الصغيرة ومتى تكون متراصة؟ هل استخدمت يوريكا أو القنصل؟
- الباقي. Agile و Git و Gitflow و REST / SOAP و Linux (إذا كنت تعمل) و Docker و Kubernetes (إذا كنت تعمل). وكذلك الاختبارات - الوظيفية والتكامل والوحدة. ما هي الاختلافات ، أي منها كتبت ، هل استخدموا TDD؟
- الإنجليزية. فقط إذا لزم الأمر. بالطبع ، لا تكرر قواعد قواعد اللغة الإنجليزية. يكفي أن تدرب لتخبر عن نفسك ، فمن الممكن أن تتذكر بعض العبارات المعدة مسبقًا.
- لنفسي. كن مستعدًا للإجابة على مثل هذه الأسئلة: "ما هي المشكلة المثيرة التي كان عليك حلها في العمل؟" ، "أخبرنا بما تفخر به" ، "أخبرنا عن إنجازاتك." ، "أخبرنا عن إخفاقاتك." ، "كيف يمكنك تثقيف نفسك؟" "لماذا تركوا مكان عملهم السابق؟". إذا كان لديك مشاريع أو مقالات أو خطب خاصة بك ، فتأكد من إخبارهم عنها. إنهم مهتمون جدًا بهذه الأشياء وسيحرصون على طلب المزيد من التفاصيل.
تأكد أيضًا من إعداد أسئلة شركتك. تسليط الضوء على النقاط الرئيسية التي هي مهمة بالنسبة لك ، الحق في النقاط. على هابر هناك
وظيفة رائعة
حول هذا الموضوع .
وسأقدم بعض النصائح من نفسي.
أنا شخصياً أضع دائمًا المقابلات الأولى كالتدريب. وهذا هو ، عادة ما تكون هذه الشركات التي تهمني أقل. هناك حاجة إلى هذه المقابلات فقط للوصول إلى الإيقاع وعدم الخوف من المقابلات اللاحقة.
كن مستعدًا أيضًا للتحدث عن تجربتك من السيرة الذاتية. ماذا فعلوا ، لماذا ، ما هي المشاكل التي حلوها.
تذكر أنك لست موسوعة ، ويجب ألا تسرد على الفور ، على سبيل المثال ، جميع الواجهات الوظيفية في Java. سيكون من الطبيعي تمامًا أن تخبر فقط بما عملت معه.
وتذكر أن المقابلة هي في المقام الأول محادثة. إنهم لا يستجوبونك ولا يريدون أن يخجلوك إذا كنت لا تعرف أي شيء. سوف يكتشف صاحب العمل ما إذا كنت مرشحًا مناسبًا ، وسوف تكتشف ما إذا كانت هذه الوظيفة مناسبة لك أم لا.
كتاب جيد آخر هو
تكسير مقابلة الترميز . يمكنك إلقاء نظرة ، خاصة إذا كنت ستخوض مقابلات في شركات أجنبية مثل Google و Facebook.
موارد مفيدة قد تكون مطلوبة في الإعداد:
- تكسير مقابلة الترميز.
- OCP: دليل دراسة Oracle Certified Professional Java SE 8 Programmer II: الاختبار 1Z0-809.
- المنشور "سأتصل بك" .
- ليتود .
- Interviewbit . موقع آخر مع مشاكل حسابية. هنا ، يتم تنظيم المهام في فئات.
حظا سعيدا