ما هي المهارات المهنية التي تحتاجها لتصبح مبرمجًا أو مهندسًا مؤهلاً لـ Java ، وماذا يجب أن تستعد قبل المقابلة؟ خلال المقابلة ، يريد القائم بإجراء المقابلة معرفة المهارات المهنية التي لديك. فيما يلي ما يحتاجه مهندس برمجيات Java المؤهل.
1. المهارات المهنية
1. ماهر في البرمجة الموجهة للكائنات باستخدام لغة Java ، ولديها عادات برمجة جيدة ، وهي على دراية بآبار واجهات برمجة تطبيقات Java شائعة الاستخدام ، بما في ذلك أطر العمل ، والتربية المتعددة (البرمجة المتزامنة) ، I/O (NIO) ، Socket ، JDBC ، XML ، الانعكاس ، إلخ ، إلخ.
2. على دراية بتطوير الويب Java القائم على JSP و Servlets ، يتمتع بفهم متعمق لمبادئ العمل ودورات الحياة من Servlets و JSP ، يتقن استخدام JSTL و EL لكتابة صفحات ديناميكية بدون نص ، ولديها خبرة في تطوير مشروع الويب Java باستخدام المستمعين والمرشحات وغيرها من أنواع الهندسة المعمارية MVC.
3. لديك فهم عميق لحاويات IOC في الربيع ومبادئ AOP ، تكون بارعًا في استخدام إطار الربيع لإدارة مكونات الويب المختلفة وتبعياتها ، تكون بارعًا في استخدام الربيع للمعاملات والسجلات والأمن ، وما إلى ذلك ، تتمتع بخبرة في استخدام SPRINGMVC كطبقة عرض تقديمية واستخدام دعم الثبات من خلال تطوير مشروع الويب ، والتعرف على دمج Spring للآخرين.
4. ماهر في استخدام أطر ORM مثل السبات و MyBatis ، على دراية بآبار واجهات برمجة التطبيقات الأساسية من السبات و MyBatis ، ولديهم فهم متعمق لرسم خرائط لجمعية السبات ، ورسم خرائط الميراث ، ورسم خرائط المكونات ، وآلية التخزين المؤقت ، وإدارة المعاملات ، وإنفاق الأداء.
5. يتقن استخدام HTML و CSS و JavaScript لتطوير الواجهة الأمامية على شبكة الإنترنت ، على دراية بـ jQuery و Bootstrap ، ولديهم فهم متعمق لتطبيق تكنولوجيا AJAX في مشاريع الويب ، ولديهم خبرة في تطوير المشروع باستخدام Framework MVC (AngularJS) و JavaScript Engine (أشرطة المقبض).
6. كن على دراية بمنتجات قاعدة البيانات العلائقية شائعة الاستخدام (MySQL ، Oracle) ، وكن بارعًا في برمجة قاعدة البيانات باستخدام SQL و PL/SQL.
7. كن على دراية بمبادئ التصميم الموجهة نحو الكائن ، ولديهم فهم متعمق لأنماط تصميم GOF وأنماط بنية تطبيق المؤسسة والخبرة ذات الصلة في التطوير الفعلي ، تكون بارعًا في التحليل والتصميم الموجود نحو الكائنات باستخدام UML ، ولديها خبرة في TDD (التطوير الذي يحركه الاختبار) و DDD (تصميم يحركه المجال).
8. على دراية باستخدام خوادم الويب وخوادم التطبيقات مثل Apache و Nginx و Tomcat و Wildfly و Weblogic و The Meinning مع تكامل الخادم المتعدد والتجميع وموازنة التحميل.
9. ماهر في استخدام AXURE للأداة النموذجية للمنتج ، يتقن استخدام أدوات تصميم تصميم PowerDesigner ومهندس المؤسسة ، يبرر استخدام بيئات تطوير Java Eclipse و Intellij ، وبراعة في استخدام العاصفة على بيئة التطوير الأمامي ، والبراعة في استخدام أدوات التحكم في إصدار البرنامج SVN و GIT ، ومسؤوبة في استخدام أدوات المشروع وإدارة Maven. ملاحظة: يجب أن تكون على دراية بكل عنصر مدرج أعلاه. يمكنك إجراء الاستعدادات المستهدفة المقابلة بناءً على المتطلبات المحددة لتوظيف الشركات. ومع ذلك ، يجب أن تكون العناصر الستة الأولى هي الحد الأدنى من المتطلبات وهي المهارات المهنية التي يجب أن يمتلكها مهندس برمجيات Java.
2. تجربة المشروع
مقدمة المشروع
هذا النظام هو نظام لـ Z بتكليف من X ويستخدم لـ Z. ويشمل النظام A و B و C و D والوحدات النمطية الأخرى. يستخدم النظام إطار عمل Open Source على مستوى Java على مستوى Enterprise ، وتكنولوجيا الواجهة الأمامية F. تستخدم طبقة العرض التقديمي بنية G ، وتستخدم H كـ عرض I كوحدة تحكم وينفذ طلبات الراحة ؛ تستخدم طبقة منطق العمل وضع J ، وتنفيذ وظائف المعاملة والسجل والأمان من خلال K ، وتنفيذ خدمات ذاكرة التخزين المؤقت من خلال L ؛ تستخدم طبقة الثبات M لتغليف عمليات CRUD ، وتستخدم الطبقة الأساسية N لتنفيذ الوصول إلى البيانات. يعتمد المشروع بأكمله نموذج تطوير P.
يوضح:
يشير E عادةً إلى الربيع (اختيار واحد للتطوير على مستوى مؤسسة Java) ؛
من المرجح أن تكون F مكتبة jQuery ، أو إطار عملها أو إطار bootstrap. بالطبع ، إذا كنت ترغب في إنشاء تطبيق صفحة واحدة (SPA) ، فإن أفضل حل هو إطار MVC الأمامي (مثل AngularJS) ومحرك قالب JavaScript (مثل المقاود) ؛ من الواضح أن G MVC (Model-View-Control) ، وإطار التنفيذ الأكثر ترجيحًا هو Spring MVC. بالإضافة إلى ذلك ، هناك دعامات 2 و JSF و MyFaces التي توفرها Apache لـ JSF.
H هو JSP. JSP هو V في MVC. يمكنك أيضًا استخدام محركات القالب (مثل علامة الجاذبية والسرعة) لإنشاء وجهات نظر ، أو مستندات أو تقارير مختلفة (مثل Excel و PDF ، إلخ).
أنا servlet أو وحدة تحكم مخصصة. هم C في MVC. بالطبع ، يوفر SPRING MVC مرسلًا كوحدة تحكم أمامية ؛
J عادة ما يكون نص المعاملة.
يجب أن تكون K تقنية AOP (البرمجة الموجهة نحو المقطع).
يستخدم L حاليًا على نطاق واسع بواسطة Memcached و Redis ؛
هناك العديد من الخيارات ل M. الأكثر احتمالا هي السبات و mybatis. يمكن أيضًا استخدام كلتا التقنيتين في نفس الوقت ، ولكن عادةً ما يتم إضافة وحذف وتعديل الإضافة والحذف والتعديل يتم تسليمها إلى السبات للمعالجة ، بينما يتم الانتهاء من الاستعلامات المعقدة بواسطة MyBatis. بالإضافة إلى ذلك ، يعد Toplink و Jooq حلولًا ممتازة في طبقة الثبات ؛
يتم استخدام الوصول إلى البيانات في أسفل N تقليديًا لاستخدام قواعد البيانات العلائقية ، والتي يمكن أن تكون MySQL و Oracle و SQLServer و DB2 وما إلى ذلك مع ظهور عصر البيانات الضخمة ، NOSQL (مثل MongoDB ، Membase ، Bigtable ، إلخ) وحلول الوصول إلى البيانات الكبيرة الأخرى (مثل GFS ، HDFs ، إلخ) ؛
P هو نموذج تطوير المشروع ، والذي يمكن أن يكون نموذجًا للشلال ، ونموذجًا أوليًا سريعًا ، ونموذجًا تدريجيًا ، ونموذجًا حلزونيًا ، ونموذج نافورة ، ونموذج RAD ، إلخ.
عملية تطوير المشروع:
1. تحليل الجدوى: تقرير تحليل الجدوى ، خطة تطوير المشروع
2. تحليل المتطلبات: مواصفات المتطلبات
ooad (استخدم مخطط الحالة ، مخطط التوقيت ، مخطط النشاط)
النموذج الأولي للواجهة: يساعد على فهم المتطلبات واستنتاج البرامج النصية للمعاملات عند تصميم طبقة العمل
3. التصميم: ملخص تصميم يدوي ودليل تصميم مفصل لاستخراج كيانات الأعمال (كائنات المجال): مخطط فئة ، مخطط ER (مرحلة تصميم المفاهيم)
الهندسة المعمارية الهرمية: حدد حلول التنفيذ الفنية لكل طبقة (وتحديداً إلى الأطر المستخدمة ، وخوادم قاعدة البيانات ، وخوادم التطبيق ، إلخ).
تصميم طبقة الأعمال: وضع البرنامج النصي للمعاملات (المعاملة: المعاملة هي معاملة عندما يرسل المستخدم طلبًا ؛ البرنامج النصي: طريقة أو دالة ؛ برنامج نصي المعاملات: يقوم بتغليف طلب في طريقة أو دالة ؛ وضع البرنامج النصي للمعاملات: تبدأ المعاملة مع فتح البرنامج النصي وتنتهي مع إغلاق البرنامج النصي).
هناك ثلاثة أنواع من الكائنات المشاركة في طبقة العمل: فئة البرنامج النصي المعاملة (تغلف عملية الأعمال) ، وكائن الوصول إلى البيانات (DAO ، يتغلف العمليات المستمرة) ، وكائن نقل البيانات (DTO ، يغلف كائنات حقل الدم/فقر الدم). العلاقة بين الثلاثة هي كائن الوصول إلى بيانات فئة البرنامج النصي (التجميع). كلاهما يعتمد على الهندسة الأمامية (تخطيطات فئة UML تولد رمز Java) والهندسة العكسية (JAVA Code يولد مخططات فئة UML) قاعدة بيانات التصميم المادي (مخططات ER تحويلها إلى مخططات العلاقة بين الجداول وبناء المكتبة وبناء الجدول ، واستخدام أدوات لإدراج بيانات اختبار البيانات)
4. الترميز
5. الاختبار: تقرير الاختبار ، اختبار وحدة التقرير العيب: تحقق والتحقق من الحد الأدنى من الوحدة القابلة للاختبار في البرنامج. في Java ، يمكن اختبار الأساليب في الفصول وتنفيذها باستخدام أدوات Junit.
اختبار التكامل: يسمى اختبار التكامل أيضًا اختبار التجميع أو اختبار المفصل. بناءً على اختبار الوحدة ، يتم تجميع جميع الوحدات في أنظمة فرعية للاختبار وفقًا لمتطلبات التصميم.
اختبار النظام: الجمع بين البرامج المؤكدة والأجهزة والأجهزة الطرفية والشبكة والعناصر الأخرى معًا لإجراء اختبارات تجميع وتأكيد مختلفة لنظام المعلومات. اختبار النظام هو اختبار يتم إجراؤه لنظام المنتج بأكمله. والغرض من ذلك هو التحقق مما إذا كان النظام يفي بتعريف مواصفات المتطلبات ، ومعرفة ما الذي لا يتماشى أو يتناقض مع مواصفات المتطلبات ، وبالتالي يقترح حل أكثر اكتمالا. اختبار القبول: أنشطة اختبار البرمجيات التي يتم إجراؤها قبل إصدار المنتج بعد أن يكمل منتج البرنامج اختبار الوحدة واختبار التكامل واختبار النظام. إنها المرحلة الأخيرة من الاختبارات الفنية ، والمعروفة أيضًا باسم اختبار التسليم. الغرض من اختبار القبول هو التأكد من أن البرنامج جاهز ويمكنه استخدامه من قبل المستخدم النهائي لإجراء وظائف ومهام معروفة للبرنامج.
6. التسليم والصيانة: دليل المستخدم ، دليل التشغيل
ثالثا. إدارة المشروع
1. التحكم في الإصدار: CVS/SVN/GIT
2. البناء التلقائي: Ant/Maven/Ivy/Gradle
3. التكامل المستمر: هدسون/جنكينز
رابعا. بنية النظام
1. خادم موازنة التحميل: F5 ، A10
2. خادم التطبيق:
خادم HTTP: Apache ، Nginx (HTTP ، وكيل عكسي ، خادم وكيل البريد)
حاوية Servlet: Tomcat ، راتنج
حاويات EJB: Wildfly (JBOSS Application Server) ، Glassfish ، Weblogic ، WebSphere
3. خادم قاعدة البيانات: MySQL ، Eclipse ، Oracle
5. تطبيقات أدوات الطرف الثالث (الإضافات)
1. أدوات الرسم البياني: المكونات الإضافية للمخططات المستندة إلى jQuery (مثل JQChart ، Flot ، Charted ، إلخ) ، chart.js ، Highcharts ، إلخ.
2. أدوات الإبلاغ: Pentaho Reporting ، iReport ، DynamicReports ، إلخ.
3. معالجة المستندات: POI ، itext ، إلخ.
4. محرك سير العمل: JBPM ، Openwfe ، Snaker ، Swamp ، إلخ.
5. جدولة الوظائف: الكوارتز ، Jobserver ، OddJob ، إلخ.
6. خدمات التخزين المؤقت: ehcache ، memcached ، swarmcache ، إلخ.
7. قائمة انتظار الرسائل: Open-MQ ، Zeromq ، إلخ.
8. إطار الأمان: شيرو ، صندوق الاعتصام ، إلخ.
9. محركات البحث: IndexTank ، Lucene ، Elasticsearch ، إلخ.
10. Ajax Framework: jQuery ، extjs ، DWR ، إلخ.
11. المكونات الإضافية لاجئة واجهة المستخدم: easyui ، miniui ، إلخ.
12. مربعات نصية غنية: ueditor ، ckeditor ، إلخ.
6. اطرح أسئلة في المقابلة
1. ما هي الشركة التي تم تطويرها؟ كم هو الاستثمار في المشروع؟
2. كم عدد الأشخاص الذين شاركوا في تطوير المشروع؟ ما هي نسبة الاختبارات والمطورين ومديري المشاريع في الفريق بأكمله؟
3. ما هي المدة التي تم تطوير المشروع؟ ما مقدار الرمز الموجود في المشروع الكلي؟ كم كود موجود؟
4. ما نوع نموذج التنمية أو عملية التطوير التي يعتمدها المشروع؟ ما هي بنية المشروع؟ ما هو الاختيار الفني للمشروع؟
5. ما هي المسؤوليات التي افترضتها في المشروع؟ هل لديك اجتماعات أم عمل عمل إضافي في كثير من الأحيان؟ ما هي المكاسب أو الدروس المستفادة بعد اكتمال المشروع؟
6. ما هو أصعب جزء من المشروع؟ كيف تحل العديد من الصراعات التي واجهتها أثناء تطوير الفريق؟
7. يمكنك طرح أسئلة المقابلة أثناء المقابلة
1. لقد لاحظت أنك استخدمت تقنية X. كيف حللت مشكلة y؟
2. لماذا تستخدم منتجاتك تقنية X بدلاً من تقنية Y؟ على حد علمي ، على الرغم من أن تقنية X لها فوائد مثل A و B و C ، وما إلى ذلك ، فإنها لديها أيضًا مشاكل مع D و E ، بينما يمكن أن تحل تقنية Y مشاكل D و E.
3. لست على دراية بتقنية X التي ذكرتها ، لكنني أشعر أنها حل جيد. هل يمكن أن تخبرني المزيد عن كيفية عملها؟
4. كيف يخطط فريقك للمشروع؟ كم عدد الاجتماعات العادية التي ستكون هناك في غضون أسبوع؟ ما هو المبلغ التقريبي من الكود في الأسبوع؟
5. الحل الذي يمكنني التفكير فيه للمشكلة X هو حاليًا Y. كيف ستحل هذه المشكلة؟
8. قواعد SAR
تشير قاعدة SAR إلى وصف سيناريو المشكلة أولاً ، ثم شرح الإجراءات التي اتخذتها ، وأخيراً ذكرت النتائج.
9. مبدأ المقابلة
1. الصوت المعتدل ، الكلام الواضح ، الابتسام ، الصورة الشخصية والأدب.
2. خذ زمام المبادرة للتحدث مع القائم بإجراء المقابلة حول الموضوعات التي يهتم بها لجعل القائم بإجراء المقابلة راضيا.
3. خذ المبادرة وتحدث بجرأة مع القائم بإجراء المقابلة حول المحتوى المألوف والخبرة: المشاريع ، النقاط الفنية ، وما إلى ذلك ، وذلك للعب في نقاط قوتك وتجنب نقاط الضعف.
4. يجب أن تعبر عن أنك تريد حقًا الحصول على هذا الموقف وأنك على استعداد لتعلم التقنيات التي لا تفهمها.
5. قم بتوفير متطلبات علاج معقولة بناءً على مستواك الفعلي.
10. التقييم الذاتي
1. القدرة على التعلم (يحتاج الأشخاص في صناعة تكنولوجيا المعلومات إلى فهم التقنيات والأدوات والأساليب الجديدة باستمرار)
2. وعي الفريق (مقارنة بالبطولة الشخصية ، فإن صناعة تكنولوجيا المعلومات تدعو إلى العمل الجماعي أكثر)
3. مقاومة الضغط (شدة عمل العديد من شركات تكنولوجيا المعلومات مرتفعة نسبيًا)
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.