بدايةً، أشكر الله عز وجل الذي وفقني باجتياز الامتحان وبالتالي الحصول على شهادة الجافا OCA 1Z0-803. سأكتب هنا تقريراً موجزاً عن تجربتي في التحضير لهذا الامتحان وما هي المصادر التي اعتمدتُ عليها، وكيفية التسجيل لهذا الامتحان وما مدى صعوبته.
– ما هي شهادة OCA 1Z0-803؟
تقدم شركة Oracle العديد من الشهادات في تقنياتها، ومن ضمن هذه الشهادات شهادة الجافا OCA 1Z0-803، و OCA هي اختصارٌ لـ Oracle Certified Associate. تعتبر هذه الشهادة المستوى الأول من ضمن 3 شهادات لمنصة Java SE. يوجد أيضاً شهادات لتقنيات منصة Java EE ولكن للحصول عليها يتطلب الحصول على المستوى الثاني من الشهادات وهي OCP 1Z0-804 و OCP اختصارٌ لـ Oracle Certified Professional. وهذه لن يمكنك الحصول عليها إلى بعد الحصول على شهادة OCA. الشهادة الأخيرة في منصة Java SE هي OCM وتعتبر متقدمة جداً، و OCM اختصارٌ لـ Oracle Certified Master. وللحصول على شهادة الماستر، يجب الحصول على شهادتي OCA و OCP أولاً، وكلٍ منهما يتطلب اجتياز امتحان على حدة. للحصول على OCM تحتاج أيضاً أن تتقدم لأخذ دورة من أوراكل، بالإضافة إلى إنجاز مشروع كـ Assignment في مدة أقل من 6 أشهر، وأخيراً اختبار مقالي Essay مدته ساعتين (كل هذا؟ :O).
للمزيد من التفاصيل:
Oracle Certified Associate, Java SE 7 Programmer
Oracle Certified Professional, Java SE 7 Programmer
Oracle Certified Master, Java SE 6 Developer
توجد أيضاً شهادات Upgrade، مثلاً لديك شهادة SJCP القديمة وتريد الحصول على شهادة OCP، يوجد اختبار مناسب لك دون الحاجة للحصول على شهادة OCA:
Oracle Certified Professional, Java SE 7 Programmer
– التسجيل لهذا الامتحان.
قمتُ بالتسجيل للامتحان عن طريق الموقع http://www.pearsonvue.com/oracle، ومن هناك يتم تحديد موعد الامتحان والمركز أو المعهد الذي سيتم أداء الامتحان فيه. سجلتُ للامتحان قبل 3 أشهر تقريباً، واخترت TOPAZ Systems بشارع التحلية بالرياض. اختياري لهذا المكان ليس بسبب معرفته ولكن لأن مواعيده ناسبتني أكثر، حيث أن يوم السبت 30 نوفمبر 2013 هو يوم عطلة ولا يوجد لدي أعمال. قيمة الامتحان هي 245 دولار أمريكي، وسددت المبلغ عن طريق الفيزا (لا أدري إن كان هنالك حلول أخرى للتسديد).
– مصادر للتحضير من أجل الامتحان.
خبرتي بالجافا هي 3 سنوات، وأستطيع أن أقول بأن هذا الشيء ساعدني كثيراً لاجتياز الامتحان. أيضاً مشاركتي بموقع stackoverflow لمدة 3 سنوات تقريباً ساعدتني أيضاً في معرفة خفايا لغة الجافا وخصوصاً على مستوى الـ syntax.
بالنسبة للمصادر، اعتمدتُ بشكل كلي على الكتاب Sun Certified Programmer for Java 6 Study Guide وخصوصاً من الفصل الأول إلى الفصل السادس. صحيح أن الكتاب يعتبر قديماً وهو موجه للشهادة SCJP للجافا الإصدار السادس وشهادة OCA هي للجافا الإصدار السابع، ولكن أساس اللغة واحد. الكتاب جميل جداً وفي نظري أفضل كتاب لتعلم أساسيات الجافا بشكل دقيق. قرأتُ الستة فصول الأولى من الكتاب خلال شهر واحد تقريباً (> 400 صفحة).
بالإضافة لمنهج الكتاب توجد الميزات الجديدة التي أضيفت في جافا 7، وهي:
- استخدام String داخل switch.
- الـ diamond-operator، اعرف فقط ماذا تعني.
- الـ try-with-resource.
- الـ binary representation للأعداد؛ مثل: 0b1001011.
- خاصية الـ underscore في الأعداد؛ مثل: 000_000_1.
أيضاً اشتريتُ OCAJP Oracle Certified Associate Java SE 7 Programmer Practice Exams وهو عبارة عن بنك أسئلة مشابهة تماماً لما في الامتحان (بعض الأسئلة من هذا الكتاب وجدتها بالامتحان).
هنا قائمة بالمواضيع المدرجة في الامتحان: Programmer Level I Exam.
– الامتحان ومدى صعوبته.
إجمالاً، الامتحان بسيط وبإمكان أي مطور جافا يفهم أساسيات اللغة أن يجيب عن الأسئلة بكل سهولة. ولكن، توجد أسئلة مخادعة (tricks) وهي كثيرة، وتوجد أيضاً أسئلة سخيفة لدرجة أنك تشك إن كان بها خدعة ما، وهذا ما يزيد من صعوبة الاختبار. هذا الامتحان يختبر مستوى فهمك للـ syntax وأساسيات الـ object-oriented مثل الـ inheritance وغيرها. بعض الأسئلة تختبرك وكأنك compiler لتكتشف خطأ ما بـ syntax وبالتالي compilation error، أو خطأ أثناء التشغيل وبالتالي exception at runtime، ولذلك هذا الامتحان يحتاج إلى تركيز عالي وقراءة السؤال أكثر من مرة حتى يُفهم بشكل تام.
بالنسبة للوقت، أخبروني برسالة إيميل بأن الوقت سيكون 150 دقيقة، ولكنني تفاجأت داخل قاعة الامتحان بأن الوقت هو 140 دقيقة فقط! لا تخف، الوقت كافي جداً وسيتبقى الكثير من الوقت وأنت قد انتهيت من حل جميع الأسئلة. أنهيت الامتحان مع المراجعة في 90 دقيقة فقط.
بالنسبة للأسئلة، فقد كانت 90 سؤالاً، بعضها يطلب منك أن تختار إجابة واحدة، وبعضها إجابتين، وبعضها ثلاثة. لا تقلق، سيخبرك بعدد الإجابات التي من المفترض أن يتم اختيارها. بعض الأسئلة يوجد بها tab إضافي ويسمى Exhibition ويحتوي على source code يشار إليه ضمن السؤال. مع كل سؤال، يوجد checkbox يسمى review وهو لوضع علامة على السؤال لمراجعته لاحقاً. بعد الانتهاء كلياً، تستطيع أيضاً مراجعة جميع الأسئلة من جديد بالضغط على الزر Review All.
بالنسبة للأوراق المطلوب إحضارها وقت الامتحان، أنا أحضرت بطاقة الأحوال المدنية ورأيتُ شخصاً آخر أحضر جواز سفره. أيضاً، أحضرتُ بطاقة بنكية ووقعت في خلف البطاقة في المكان المخصص (لأول مرة أستخدمه D:) ثم أخذوا صورة من بطاقة الأحوال ومن التوقيع. أيضاً التقطت لي صورة في نفس مركز الامتحان. درجة النجاح في الامتحان هي 77%، والحمد لله اجتزتُ الامتحان بدرجة 96%.
– أمثلة لبعض الأسئلة.
للأسف، عندما تعطيك أوراكل النتيجة، لا تخبرك بالأسئلة التي أخطأت فيها. على أية حال، يوجد سؤال كنت قد أجبت عليه بإجابة صحيحة ثم عدلت الإجابة مع الـ review:
<List<String> list = new ArrayList<String>(); list.add("EE"); list.add("SE"); list.add("ME"); list.add("SE"); list.add("EE"); list.remove("SE"); System.out.println(list);
في البداية أجبت إجابة صحيحة واخترت أن remove تحذف أول occurrence فقط، ولكن مع المراجعة اخترت أن remove تحذف جميع الـ occurrences. الحمد لله على كل حال.
من الأسئلة المخادعة أيضاً استخدام String قيمته null داخل switch (الحمد لله أنني قد قرأت عن هذه الحالة من قبل D:):
String s = null; switch(s) { case "null" : System.out.println("1"); break; case null : System.out.println("2"); break; default: System.out.println("3"); break; }
الجواب هو NullPointerException will be thrown at runtime.
سؤال مخادع آخر (جزء من الـ source code):
String[] array = {"Item1", "Item2", "Item3", "Item4", "Item5"}; int i = 0; while(i++ < array.length) { System.out.println(i); break; }
كم سطراً سيتم طباعته؟ مع الارتباك ربما لن تنتبه للـ break وتعتقد أن الـ while سيكمل جميع دوراته.
سؤال آخر:
do { int x = 0; x++; } while(x > 0);
لا أذكر السؤال جيداً، ولكن ما أذكره هو أن الجواب كان compilation error بسبب أن x لا يمكن استخدامها داخل while وذلك لأنها في scope آخر.
– ما هي الخطوة القادمة؟
بعد الانتهاء من الامتحان، ستظهر لك رسالة مفادها أنه سيصلك إيميل من أوراكل بالنتيجة خلال مدة أقصاها نصف ساعة. وصلتني الرسالة في أقل من 5 دقائق. بالنسبة للشهادة، سترسلها لك أوراكل للبريد المسجل في موقع pearsonvue.com خلال مدة أقصاها 8 أسابيع بحسب ما قرأت.
تحديث:
ستصلك الشهادة كنسخة إلكترونية عبر إيميل من أوراكل خلال 48 ساعة من إكمال متطلبات الشهادة، وسيخبروك بطريقة طلب النسخة الورقية والتي من المفترض أن تصلك خلال 4-8 أسابيع.
السلام عليكم اخ فؤاد المالكي …
أولا مبارك اجتياز الامتحان ووفقك الله بما فيه خير …
ثانيا … أرجوا افادتي بالتالي
حيث انني مبتدئ جدا بالجاف و ادرس من كتاب اسمه Deitel Java how to programe
و لكن عندي شغف كبير لتعلم الجافا و هل تنصحني بتعلم لغة اخرى مع الجاف و ما هي ؟
وهل هناك نصائح تريد ان تعطيني اياها كمبتدئ بالجافا
كل الشكر
سلام عليكم ورحمة الله وبركاته
بارك الله فيك مبارك عليك الامتحان وان شاء الله فى توفيق دائم
رجاء عايز اعرف مستوى الامتحان عن طريق شبكة عبدالله عيد 101 & 102 & 103
http://abdullaheid.net/
اى مستوى كان الامتحان
رجاء الرد (Hakim dardery). مصر
شكرا على التوضيح الجميل