تجربتي في دراسة الـ Android Developer Nanodegree

تجربتي في دراسة الـ Android Developer Nanodegree

Mohammad Laifمنذ 6 سنوات

السلام عليكم ورحمة الله وبركاتة.
اللهم صلى على محمد وعلى اله وصحبه وسلم, والحمد لله رب العالمين.
هذه مراجعة لي وسرد تجربتي لدراسة درجة النانو ديجري في تطوير الاندرويد مع يوداستي, حتى يستفيد ممن يريد الخوض في هذه التجربه.

 

تحديث

تم تحديث المنهج واضافة قسم الـ Android Architecture Components وهي خاصة للـ Room و LiveData و ViewModel و Lifecycle. تعتبر بديل ممتاز جداً في حالة التعامل مع قواعد البيانات لما كان متوفر سابقاً, كالـ Database Contract and Helper, Adater, Loaders, Cursor.

 

ملاحظة: هذه الدورة تعتبر متقدمة وليست للمبتدئين, اذا اردت الدورة المبتدئة تفضل بقرائة المقال السابق لي: تجربتي مع الدورة المبتدئة (Android Basics Nanodegree) اساسيات برمجة الاندريد في الرابط:
الدورة الاساسية لتطوير التطبيقات على الاندرويد.

 

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

رابط الدورة وسعرها
الرابط.
السعر: ٤٥٠٠ ريال سعودي حالياً, او باشتراك شهري بمقدار ٧٥٠ ريال شهرياً لمدة ٨ شهور (اكثر من ضعف الدورة الاساسية بقليل).

 

متطلبات الدورة
- خبرة في لغة الجافا او اي لغة شبيهه بها لمدة ١-٢ سنه.
- خبرة في استخدام ال GitHub و Git وهو عبارة عن version control systems.
- الاصرار والمثابرة في ايجاد الحلول, والايمان ان المشكلة لها حل, فبعض الاحيان تحتاج ان تقرئ وتبحث وتجرب لمدة طويله جداً قد تتراوح بين ساعات الى ايام لإيجاد حل لمشكلة ما.

 

تحذيرات قبل اخد هذه الدورة
التحذيرات مشابهه للدورة السابقة تستطيع الاطلاع عليها من خلال الرابط الموجود باعلى المقال للدورة الاساسية.

 

طريقة عمل هذه الدورة
مشابهه للدورة السابقه ولكن! بالنسبة لي كان اشتراكي هو الدفع الشهري ٧٥٠ ريال. ولا يوجد مرشد و لا سلاك ولا كونكت اسبوعي (لا علم لدي عن الوضع في الدفع الكلي) واذا اردت مرشد او كونكت سيكون من خلال حجز موعد! بمعنى اخر انك لوحدك! فاذا واجهة مشكلة عليك البحث بنفسك في المنتدى الخاص بهذا الدورة "يوجد به الكثير من الحلول والاسئلة لما سوف تواجهه" ومواقع الويب كالستاك اوفر فلو و اليوتيوب وغيرهم وايجاد الحلول بنفسك في اغلب الاحيان.

 

ماذا سوف تتعلم في هذه الدورة
الكثير من الاشياء الخاصة في تطوير الاندرويد, ولكن اهمها هو الاعتماد على النفس في ايجاد الحلول. اما في اقسامها:

ففي القسم الاول:

 سوف تقوم بمراجعة جميع ما تم اخذه في الدورة السابقة لأساسيات تطوير الاندرويد وانشاء مشروع يجلب معلومات الافلام ويعرضهم.
 

 

 

اما في القسم (Advanced Android App Development):

فسوف تتعامل مع الفراجمنت و المكاتب و بعض من جزئيات الفايربيس و وخدمة الاماكن من جوجل و تشغيل الوسائط في تطبيقك كالفيديو وانشاء الـ Widgets وكتابة الاختبارات باستخدام Espresso واخيراً كيفية رفع تطبيقك على الجوجل بلاي.
ارى ان هذا القسم هو اطول قسم في الدوره ومشروعه مثله. فحتى تسهل عليك وطئته اذا كنت تريد ان تعد لهذه الدوره, انصحك بتعلم واجراء التجارب مع هذه الاشياء قليلاً: 

  • التعامل مع الـ Lifecycle لكل من الـ Activity و Fragment. وطريقة نقل البيانات بينهم.
  • استخدام المكتبات امثال: ExoPlayer لتشغيل الوسائط, Butterknife للتخلص من الطريقه التقليديه findViewById, مكتبة الـ parceler حتى تغلف الاوبجكتات وتنقلهم بين الاكتفتي والفراجمنت بسهوله ويسر, مكتبة الـ google-gson حتى تسهل استقبال الداتا من api وتحويلها الى اوبجكتات بشكل الي, وكل مكتبة تعتقد انها سوف تسهل عليك الامر فانت حر باستخدامها في هذا المشروع (وفق المتطلبات).

 

 

 

 

القسم (Gradle for Android and Java):

اراه امتع الاقسام بالنسبه لي. سوف تتعلم اساسيات الجريدل وكيفية استخدامه مع لغة الجافا من خلال سطر الاوامر و الاندرويد, وكيفيه انشاء مكتبة جافا ومكتبة اندرويد وانشاء نسخ لتطبيقك مدفوعه ومجانيه. المشروع لهذا القسم ممتع ايضاً. فالمطلوب هو تصميم مكتبة جافا تقوم بتزويد السيرفر (Google Cloud Endpoints) بفكاهات. ثم يأتي دور تصميم تطبيق يستقبل هذه الفكاهات ويعرضها باستخدام مكتبة اندرويد لعرض الفكاهات. ويكون لهذا التطبيق نسختين, الاولى تحتوي على اعلانات والاخرى لا, باستخدام الـ Android Flavor. سوف تقوم انت باجراء التعديل والتصميم لكل من السيرفر و مكتبة الجافا ومكتبة الاندرويد وتطبيق الاندرويد ذو النسخة المجانية والمدفوعة.

 

القسم (Material Design for Android Developers):
اسهل الاقسام يختص فقط بالديزاين (تحتاج لإخد الملاحظات حتى لاتضيع لاحقاً وانت تنجز المشروع المطلوب), الصعوبه الوحيده فيه ربما تكون تطبيق التحركات بين الاكتفتي والاخرى. المشروع سهل, عباره عن تطبيق قديم جداً يطلبون منك تعديله حسب الديزاين ماتريال من تكبير الخط ونوعه والالوان الخ... واضافة بعض من الحركات حين التنقل بين الاكتفتي والاخرى. وايضاً جعله يناسب التابلت والجوال معاً.

 

القسم (Capstone Project) مشروع التخرج:

تاخد اغلب ماتعلمته في الاقسام السابقه وتضعهم في مشروع واحد بحيث يتناسب مع المتطلبات. فالاغلبيه يصممون تطبيقات اخباريه او تطبيق مشابه لتطبيق الافلام كما في القسم الاول.
لكن لك الحرية, ففي حالتي قمت بتصميم تطبيق offline اي لايتصل بالانترنت او سيرفر, وللإسف كان احد المتطلبات الاتصال بـ api! لتخطي هذه المشكله قمت بعمل جزء بسيط منه يتصل الى سيرفر يوفر الاقتباسات المجانيه من خلال api ياتي باشهر اقتباس ويعرضه للمستخدم باستخدام مكتبة Volley. هذه بعض الصور لمشروع التخرج, عباره عن تطبيق يتيح للمستخدم تسجيل افكارة وتنظيمها من خلال اخد الصور وكتابة الملاحظات لكل فكره و قوائم المهام واسئله تساعده على شحذ فكرته اكثر واكثر. (حالياً تم رفعه على الجوجل بلاي ولكن لايظهر الا للـ testers قريباً ساضع له رابط عام ان شاء الله).

 

 

التخرج
كسابقتها التخرج سلس جداً, ففي حال انتهائك من جميع المشاريع, كل ماعليك هو اثبات هويتك. وذلك يأتي من خلال الاثبات الالكتروني للهوية ولا يأخد اكثر من ١٠ دقائق.
باستخدام تقنية الطماطم + اخد الملاحظات استطعت انهائها في اقل من شهرين (شهر و ٢٠ يوم تقريباً) والحمد لله.

 

الطرق التي استخدمتها لدراستها والتخرج في اقل من شهرين (شهر و ٢٠ يوم) لمشاركة الاستفادة:
* تقنية الطماطم (تقنية ممتازة للدراسة والعمل على المشاريع لقرائة المزيد عنها اطلع على المقالة السابقه لي للدورة الاساسية فقد تطرقت لها هناك). عدد الطماطم التي عملتها لإنهاء هذة الدورة هو ٣٩٨, والوقت الكلي المستغرق ١٦٥ ساعه دراسة (اغلبها في حل المشاريع المطلوبه, بما اني سلفاً قد حضرت للمواد الدراسيه بعض الشئ).
* اخد الملاحظات باستخدام تطبيق الايفرنوت, حتى يسهل لي الرجوع للمعلومات في حالة حل المشاريع والواجبات او انشاء مشاريع خاصه مستقبلاً.

 

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

 

فوائد استخدام Evernote وتدوين الملاحظات
* تستطيع مراجعة ملاحظاتك من اي مكان فالايفرنوت يوفرها على الجوال,الكمبيوتر, وعلى الويب.
* ميزة البحث القوية جداً فيه.
* في حالة احببت كتابة شئ ما, فالرجوع الى ملاحظاتك سوف يكون لها دور فعال في كتاباتك.
* انشاء مصدر خاص بك من العلم عندما تحتاج له.

وكما قال الشاعر الالبيري في القصيدة الفصحى "اشفاق والد" حاثاً ولده ابا بكر على العلم:

وَكَنزاً لا تَخافُ عَلَيهِ لِصّاً    خَفيفَ الحَملِ يوجَدُ حَيثُ كُنتا
يَزيدُ بِكَثرَةِ الإِنفاقِ مِنهُ    وَينقُصُ أَن بِهِ كَفّاً شَدَدتا

 

انواع الملاحظات التي يجب عليك اخدها

 

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

انشاء دفتر خاص لكل شئ تريد ان تدرسه, مثال: دراسة النانو ديجري لتطوير الاندرويد قد انشئة لها دفتر خاص بها.

انشاء دفتر خاص لكل شئ تريد ان تدرسه, مثال: دراسة النانو ديجري لتطوير الاندرويد قد انشئة لها دفتر خاص بها.

 

انشاء ملاحظات بحسب اسماء الدروس مع الترتيب العددي لها, مثال: عند الدخول للدفتر الخاص بدراسة الـ Nano Degree Android Developer لدي قمت بإنشاء ملاحظة لكل درس مع تسميتها باسمه و تعداد رقمي مناسب, و لفصل اجزاء الدرس داخل الملاحظة اقوم باستخدام فاصل الاسطر ـــــ.

 

في وضع الدراسة يكون هذا الدفتر جنباً الى جنب, حتى يسهل لك امكانية اخد الملاحظات.

 

وفي حالة التطبيق يكون ايضاً جنباً الى جنب, حتى يسهل لك التذكر وايجاد الحلول بسرعة (كما توضح الصورة وانا اعمل على مشروع التخرج).

 

اليس اخد الملاحظات يبطئ عملية التعليم؟
ربما تسأل نفسك, وقد تجد هذا السؤال يتردد الى ذهنك دائماً عند استخدام هذه الطريقه اثناء المذاكره:
أليست اخذ الملاحظات بهذه الكثافه او بهذا العمق يبطئ من عملية التعلم ويتطلب وقت اكثر واكثر؟ 
وأجيب لك من خلال تجربتي:
في البداية ستجدها صعبه وسوف تقوم بأخد بعض الملاحظات بشكل عشوائي وتقوم بايقاف الفيديو او ارجاعه الى الوراء قليلاً, ولكن مع الممارسة وجعلها عادة سوف تتقن كيفية اخد الملاحظات المهمه او التي تراها مناسبه لك في المستقبل. وايضاً في البداية ستجدها  تأخد وقت اطول بعض الشئ, ولكن اعلم ان في النهاية عندما تأتي لتطبيق ماتعلمته فسوف يكون الوضع لديك مثمر و سريع جداً. مثال: بالنسبه لي عندما قمت باخد الملاحظات بشكل ممتاز للدروس التي تتعلق بمفاهيم جديدة علي فمشاريعها لم تتطلب حتى ٣ ايام لإتمامها وقبولها كمشاريع الدروس الاخيره امثال BuildItBiggerApp او XYZReaderApp.

 

هل اشترك في هذة الدورة؟
بالرجوع الى صلب الموضوع, وهوه هذه الدورة, والسؤال الحاسم هو: هل اشترك؟ وكم سوف تأخد مني من وقت؟
اذا كنت قد انهيت الدورة الاساسية فنصيحتي لك هي اجمع امورك وتوكل على الله في اخذ هذه الدورة.

 

كم سوف تأخد مني من وقت وكم سوف تكلفني؟
حتى تكون في مأمن قم بمقارنة نفسك مع نفسك!
الدورة "Android Basics by Google" مدة اكمالها هي ٣ شهور بمعدل ١٠ ساعات كل اسبوع كما هو معلن في صفحتها.
الدورة "Android Developer" مدة اكمالها هي ٨ اشهر بمعدل ١٠ ساعات كل اسبوع "السعر الكلي ٤٥٠٠ ريال او ٧٥٠ ريال شهري" كما هو معلن في صفحتها. 
الملاحظ هنا ان لإتمام الدورة الثانية تحتاج لاكثر من لمضاعفة وقت انتهائك للدورة السابقة "البيسك". بمعنى اخر اذا قمت بانهاء الدورة السابقه في وقت كـ ٢٠ يوم فسوف تحتاج تقريباً الى ٤٥ يوم. او قمت بانهائها في شهر ونصف فستحتاج ٤ شهور. اما اذا انهيت الدورة السابقة في ٣ اشهر (او اقل بقليل) فمن المرجح انك ستنهي هذه الدورة في ٦ شهور, وهنا يكون اختيار الاشتراك الكلي ٤٥٠٠ ريال اكثر فائدة وتوفير وراحة بال لك من الدفع الشهري. هذا تخمين وارى ان المثابر ومن قام بالاستعداد لها جيداً يستطيع انهائها في شهر واحد واقل ايضاً.

 

في النهاية اتمنى لك التوفيق وارجو ان يكون الموضوع افادك, ومرحب بك في تتبعي لتتلقى جديد ما اكتب.

كلمات دليلية: android
16
إعجاب
10122
مشاهدات
1
مشاركة
7
متابع
متميز
محتوى رهيب

التعليقات (4)

zainab Aljutail:

المراجعه مفيدة وشرح موفق . اذا ممكن تفصل كيف حضرت للدوره قبل تاخذها 

Mohammad Laif:

بالنسبة للتحضير:

اولاً: اوجد فكره لمشروع التخرج.

ثانياً: اطلع على الـ Syllabus للدورة حاول ايجاد اي شئ صعب عليك او مفهوم جديد تعتقد انه يحتاج لجهد:

https://s3-us-west-1.amazonaws.com/udacity-content/PDFs/Syllabus-AndroidDeveloperNanodegree.pdf

ثالثاً: بعد تحديد نقاط الضعف لديك قم بتصفح كورسات الدورة المجانية ومذاكرتهم:

How to Use Git and GitHub

https://sa.udacity.com/course/how-to-use-git-and-github--ud775

Developing Android Apps
https://sa.udacity.com/course/new-android-fundamentals--ud851

Advanced Android App Development
https://sa.udacity.com/course/advanced-android-app-development--ud855

Gradle for Android and Java
https://sa.udacity.com/course/gradle-for-android-and-java--ud867

Material Design for Android Developers
https://sa.udacity.com/course/material-design-for-android-developers--ud862

صالح الدعيلج:

يعطيك العافية , تدوينة رائعة وثرية 

Mohammad Laif:

تم تحديث المنهج واضافة قسم الـ Android Architecture Components وهي خاصة للـ Room و LiveData و ViewModel و Lifecycle. تعتبر بديل ممتاز جداً في حالة التعامل مع قواعد البيانات لما كان متوفر سابقاً, كالـ Database Contract and Helper, Adater, Loaders, Cursor.

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !