منذ بدايات تقديم دوراتي المتخصصة في تطوير تطبيقات لأجهزة الأيفون؛ تصلني طلبات للانضمام للدورة من أناس لم يسبق لهم البرمجة والتطوير أو كما يطلق عليهم دون خلفية برمجية، وكنت أرفض انضمامهم لأنهم لن يستفيدوا من الدورة؛ حيث إنّ المنهج يفترض أنّ من يلتحق بهذه الدورة لديه أساسيات البرمجة البسيطة والتي أفردت لها تدوينة متخصصة بذلك - كيف تصبح مبرمجا لغير المبرمجين -
ومنذ ذلك الوقت وأنا أقوم بتطوير منهاج متخصص لمن يودّ تعلّم البرمجة من غير المبرمجين وعندها عدت لكلّ ما درست في السابق وما يدرّس حاليا في الجامعات وخلصت إلى طريقة يمكن بها تعليم أساسيات البرمجة في وقت قصير عبر كورس تدريبي مكثف يأخذ المتدرب برحلة من أساسيات الحاسب ومرورا بأنظمة التشغيل والتطبيقات وحتى بيئات التطوير ولغات البرمجة المتنوعة.
قمت خلال هذا الكورس التدريبي بأخذ اعتبارات بأنّ المتدرب أمامي هو مستخدم عادي للحاسب ولا يعلم أيّ شيء عن التطوير والبرمجة للمنصات المختلفة، لذا قمت ببناء المنهج ليعلم المتدرب طرق البرمجة وما يحتاجه ليبدأ بالتطوير لكل من:
- الأجهزة المكتبية (تطبيقات سطح المكتب)
- تطبيقات الويب (جهة السيرفر / جهة العميل)
- تطبيقات الهواتف الذكية (أيفون / أندرويد / بلاك بيري / سيمبيان (نوكيا) / ويندوز فون)
- قواعد البيانات (أكسس / أكسل / مايكروسوفت سيكوال سيرفر / أوراكل / ساب / ماي سيكول)
حيث إنّ الكورس مكثف وعليه أن يصل بالمتدرب للمعرفة الكافية للبدء بأيّ لغة برمجة ولأيّ منصة، فكانت معادلة صعبة في كيفية إيصال المتدرب لكل ذلك خلال (15) ساعة موزعة على (3) أيام.
ماذا ستتعلم في ثلاثة أيام؟ في دورة البرمجة لغير المبرمجين – للتسجيل فيها انقر هنا -
اليوم الأول
قمت بإفراد اليوم الأول لأخذ رحلة بالمتدرب بتعريفه بمكونات الجهاز وكيف تتمّ معالجة البيانات وما هي نظم التشغيل المتنوعة والمنصات الخاصة بها، بالإضافة إلى التطبيقات وقواعد البيانات وما هي لغات البرمجة المستخدمة لكل منصة وكيف يمكن اختيار الأداة المناسبة لكل تطبيق، مع التعريف بالتطبيقات الخاصة بالمؤسسات مثل (إدارة علاقات الزبائن CRM ) و( تطبيقات إدارة موارد المؤسسات ERP ) و(تطبيقات إدارة المحتوى CMS)، مع التعريف ببعض مصطلحات هذا العالم مثل (لغات توصيف البيانات XML) و(المصادر المفتوحة Open Source) وغيرها.
اليوم الثاني
في اليوم الثاني قمت بالتركيز على كيف يفكّر المبرمج بطريقة منطقية لحلّ المشكلات وكيفية تسلسل تطبيق الأوامر وتعلّم طريقة الخوارزميات لحلّ المشكلات (flowchart)، بالاضافة إلى تركيب بيئة التطوير الخاصة بالبرمجة لتعلم أساسيات لغة (C++) ومن ثمّ التعريف بمكونات التطبيق من شاشات وعناصر تحكّم وكيفية استخدامها.
اليوم الثالث
في اليوم الثالث قمت بالتركيز على أساسيات البرمجة والتعريف بمكوناتها المنطقية وأوامرها، مثل البرمجة الكائنية التوجّه (OOP) وتعريف المتغيرات والجمل الشرطية والدورات والبرامج الجزئية وتعابير الاختيار وغيرها من الأوامر التي يتمّ تطبيقها بشكل عملي في لغة برمجة (C++) ليتعلم المتدرب بطريقة عملية.
لماذا اخترت (C++)؟
في البداية كنت أودّ أن أختار لغة (JAVA) ولكني قررت أن يكون التدريب على لغة (C++) أولا كونها الأساس لكل لغات البرمجة في أصل التعلّم، فتراكيب اللغة شبيهة جدا بباقي اللغات؛ كما يمكن عن طريقها التطوير لمنصات كثيرة بالإضافة إلى أنّ الانتقال منها إلى (JAVA) أو (PHP) أشدّ قربا إلى (Objective- C) سهل مقارنة بلغات برمجية أخرى.