١٠٠ يوم برمجة بلغة الجافاسكربت
في ٨ فبراير من العام الماضي، قرأت عن التحدي وقررت المشاركة فيه. كنت متأكدة بأن التحدي لن يكون سهل ويتطلب الكثير من الالتزام، خصوصاً بعدما تنتصف في التحدي وتفقد حماس البدايات، لكن التجربة ككل ستضفي لك الكثير من المهارات البرمجية بالتأكيد، وهذه هي الفكرة الأساسية، وقد وعدت بالكتابة عن التحدي بعد الانتهاء منه، وهذه هي المقالة بين أيديكم.
ما هو تحدي ١٠٠ يوم برمجة
التحدي قائم على أنك تبرمج ساعة على الأقل لمدة ١٠٠ يوم متتالية، وتشارك تقدمك كل يوم في هاشتاق #100DaysOfCode.
وهناك قواعد أخرى خاصة، مثل عدم احتساب ساعات عملك كمبرمج ضمن هذه الساعة، وإمكانية تفويت يوم كل أسبوعين.
خطوات المشاركة بالتحدي
- أعلن التزامك بالتحدي.
- أنشئ فرع (fork) من صفحة المشروع في Github. هذه الخطوة اختيارية لكنها خطوة ينصح بها.
رحلتي في التحدي
لم استطع الالتزام بأن تكون الأيام متتالية، ولم أشارك تقدمي في الهاشتاق، لكني كنت أشارك تقدمي بتحديث السجل (log) في Github.
اخترت أن أركز على لغة الجافاسكربت وتقنيات واتسون خلال هذه المئة يوم، لكني خرجت عن السياق في بعض الأيام.
ممارسات عامة في البرمجة
- طبقت ودونت طريقة رفع المشاريع عبر واجهة الأوامر النصية لنظام Git. استفدت من الاختصارات. مثل استخدام:
git cm "commit message"
git commit -m "commit message"
- تعلمت استخدام ملف متغيرات البيئة (environment variables) واللي يكون بصيغة .env لحفظ كلمات السر. والأهم عدم رفع هذا الملف عند مشاركة الكود البرمجي في Github، وذلك عبر كتابة .env في ملف .gitignore
دورة الجافاسكربت في يودمي
بدأت بهذه الدورة المخصصة لمن لديهم أساسيات البرمجة. بدأت بتعليم أساسيات اللغة وأطر عملها مثل AJAX و ES6+. وأول مشروع كان تصميم موقع لعرض ألبوم صور نأخذها من الواجهة البرمجية لناسا.
ومن الجميل أثناء الدورة، عرض أسئلة مقابلة محتملة، تختبر فهمك لآلية عمل اللغة وما يميزها عن غيرها.
ثم تعرفنا على مكتبة React، وكيفية استخدامها، وهذه بعض التطبيقات عليها:
وفي الختام، تم تزويدنا بمصادر أفادتنا لإكمال المشوار واستخدام ذات اللغة لتطوير تطبيقات الجوال عبر React Native.
جافاسكربت وواتسون
استخدمت الجافاسكربت لاختبار ١٠ واجهات برمجية لخدمات واتسون، وكتابة مختصر عن كيفية استخدامها في سلسلة مقالات واتسون. أيضاً استخدمت الجافاسكربت لبناء مساعد افتراضي لحساب السعرات الحرارية للكافين، حسب نوع قهوتك وكميتها، وسأنشره في حسابي بإذن الله بعد ربطه بتيليقرام.
وفي إطار خدمات آي بي إم في السحابة، استخدمت الجافاسكربت كذلك في وقت فراغي لبرمجة السكربت للبلوكشين أكثر من مرة.
تحدي ٣٠ يوم جافاسكربت
من أفضل التحديات وأمتعها، وتمنيت لو أني وجدته من البداية، علمني بعض الاختصارات وما يميز الجافاسكربت في مشاريع ممتعة، وغير معتمدة على مكتبات إضافية.
بعضها كانت برمجية بحتة ومرتبطة بالمصفوفات بشكل أساسي، مثل البحث داخل المصفوفة، وحذف التكرار، ومقارنة العناصر.
وبعضها كانت مرتبطة باستخدام الجافاسكربت للتحكم في تصميم الصفحة (CSS)، مثل تحريك عقارب الساعة، وتعديل متغيرات CSS، والتحكم في عرض الصور والقوائم.
والأخير وكان الأمتع، هو برمجة الأحداث (events) والتي تكون مرتبطة بفعل المستخدم. ومن ضمنها، تحويل التسجيل الصوتي إلى نص، وتسريع الفيديو وتبطيئه، وعمل مؤقت حساب تنازلي، ولعبة Whack a mole.
غير ذلك
خلال فترة التحدي، أردت العودة إلى البرمجة التنافسية (Competitive programming)، والتي غالباً ما تتيح الحل بلغة C أو C++ أو Java. فاستخدمت الجافا قرابة الخمس أيام لحل مشاكل منطقية، استمتعت بالتفكير فيها.
أيضاً، كنت أود بمعرفة أساسيات تعلم الآلة، فقضيت وقت لا بأس به على لغة البايثون، ثم استخدمت TensorFlow لتصنيف صور الزهور.
وأخيراً، قضيت أيام متتالية مع صديقتي ديما، للبرمجة بلغة الجافاسكربت لموقع مبادرتنا Code for Girls.
ختاماً
أنصح كل مبرمج بأن يقبل التحدي، ولو لأيام أقل، لأن معرفتك للغة برمجية لا يكفي بدون تطبيقها وممارستها. شكراً لمن اقترح التحدي وشكراً لكل من حفزني لإكماله.
شاركنا رابط التغريدة هنا إن بدأت التحدي 💪🏼
التعليقات (4)
ماشاء الله ، الله يوفقك
سويت التحدي بنفسي قبل كم شهر ، ونفس الشي كان عن جافاسكربت لكن كملت ٢٠ يوم تقريبا وكلها مقطعه، وتركته بالاخير
مثل ما قلتي الالتزام هو اصعب شي
انا مبتدئ
هل هذا التحدي صالح لي او خاص فقط بالمحترفين او دوي خبرة في البرمجة
مبتدئ اي بدأت من بضع ايام بمادا تنصحني
و شكرا لك
انا مبتدئة اريد ان اتعلم
لايوجد لديك حساب في عالم البرمجة؟
تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !