هجائيات الانتقال من المبرمج العارف الى المبرمج الفاهم

بسم الله الرحمن الرحيم
الحمد لله صاحب الفضل..الحمد لله رب العالمين..
إخواني ..بعد حديثنا عن المبرمج العارف والمبرمج الفاهم ..تواردت الى العديد من الأسئلة حول آلية التطبيق ..أو كيف يمكنني التطبيق ..أو كيف يمكنني الانتقال من مبرمج عارف الى مبرمج فاهم .. فإني أقدم لكم أصدقائي مقال جديد بعنوان هجائيات الانتقال من المبرمج العارف الى المبرمج الفاهم..
حقيقة قبل البدء ..فإن أكثر تعليقين دفعاني  لكتابة الموضوع هو "طيب اذا حاب تفيدنا اكثر انا بصراحة بتعلم بس بحاول اطبق ما بتزبط معي شو المشكلة" والثاني " أنا مبرمج عارف ..لكنني لم أعرف كيف أنتقل الى المبرمج الفاهم؟!" ...
اخواني أولا أريدكم أن تعلموا أن لكل شخص منا أسلوبه الذي يفضله في التعلم واكتساب المهارات والخبرات الجديدة في كل وقت .. قد نشترك في كثير من الأمور ..وقد نختلف في بعض الأمور.. وكل هذا يعود لطبيعة الشخص..ولذلك إن ما سأذكره الآن من منهجية للإنتقال أو التعلم هي منهجية إما اكتسبتها بواقع خبرتي الصغيرة ..أو بواقع التعامل مع المبرمجين الآخرين والتعلم منهم, أو بواقع ما هو متعارف عليه ...
 
والآن لنبدء معا بذكر مجموعة من الخطوات التي قد تساعدنا على الانتقال من مرحلة المبرمج العارف (أو من المرحلة النظرية) الى مرحلة أخرى مختلفة هي مرحلة المبرمج الفاهم (المرحلة العملية):
1) أولا عليك أن تتوكل على الله تعالى, وأن تكون نيتك للتعلم هي نية خير, وأذكركم بقول الإمام الشافعي رحمه الله تعالى
شَكَوْتُ إلَى وَكِيعٍ سُوءَ حِفْظِي   فَأرْشَدَنِي إلَى تَرْكِ المعَاصي
وَأخْبَرَنِي بأَنَّ العِلْمَ نُورٌ   ونورُ الله لا يهدى لعاصي
2) تحديد لغة البرمجة: وأقصد بذلك أنه عليك تحديد لغة البرمجة التي تريد أن تتعلمها, والتي تريد أن تنتقل بها من المرحلة النظرية الى المرحلة العملية..فإذا كانت اللغة التي تريد أن تعتمد عليها تعتمد على لغات أو متطلبات سابقة ..فيجب أن تعود لهذه المتطلبات فإذا كانت معرفتي بها معرفة نظرية..فكل ما بني على خطأ ..فهو خطأ.. فأعود اليها لأدرسها من جديد .. أما إن كانت غير مرتبطة بلغة أخرى ..أو هي أول متطلب ..فيجب أن أدرسها أيضا ^_* ..والسؤال الآن ..ما هي الآلية الدارسة ..للنتقل الى النقطة 3
3) آلية الدراسة: تنقسم الدراسة في أي لغة برمجة الى عدة أجزاء وهي
       أ) معرفة اللغة : ما هي اللغة, مميزاتها , عيوبها ..وما هو أفضل استخدام لها
       ب) الاطلاع على قواعد اللغة: لكل لغة في العالم مجموعة من القواعد
       syntax خاص بها, هذه القواعد مهمة جدا في تحديد طريقة تفكيرك لهذه
       اللغة ..أو النهج الذي ستسير به في فهم اللغة.
       ج) الكتاب: دائما اجعل مرجعك الأول والأخير ..الكتاب.. وهذا أمر مهم. بكل      تأكيد ..لا بأس بالفيديو والمنتديات ..الخ .. لكن هذا لوحده لا يكفي.. مفيد جدا    في المراحل الأولى من التعلم ..لكن في الأمام ..وفي المستويات المتقدمة          تحتاج للكتاب بكل تأكيد ^_*.
       د) تجهيز ما تحتاجه اللغة من برامج ومعدات.
4) القرائة والتطبيق: في هذه المرحلة تكون قد عرفت اللغة, وجمعت بعض المعلومات والمراجع لها ..فتبدء بهذه المرحلة المهمة ..بحيث تقوم بالقرائة حول موضوع معين ..ولنأخذ كمثال أننا سنتحدث عن طريقة انشاء جمل دوران loop..
فتقرأ أولا ..ما هي الكلمات المحجوزة في اللغة والمستخدمة لهذا الأمر ..فوجدنا أنه يوجد مثلا ال for وال while ..ومن ثم أرى الصيغة العامة لكل من هذه الكلمات المحجوزة.. بعد ذلك ..أنظر الى مثال بسيط ..يوضح الصيغة العامة ..ثم أقوم مباشرة بتطبيق هذا المثال البسيط ..وأحاول التعديل عليه ..من ثم أذهب الى مثال آخر .. أشاهد الفكرة الخاصة به ..ثم أقوم بتنفيذها  ..ومن ثم التعديل عليها ..وهكذا
*) ملاحظة مهمة: التطبيق لا يكون عن طريق النسخ واللصق.. والهدف من ذلك هو أن تعتاد على كتابة الأوامر البرمجية بتلك اللغة ..أو أن تعتاد على البنية التركيبة للغة .. وهذا أمر مهم جدا جدا جدا ..وهذا من أهم الأمور في التطبيق من وجهة نظري الشخصية .. بالإضافة الى ذلك ..فاحتمالية أن تقع بالأخطاء وأنت تكتب وتطبق بيدك أكبر بكثير من النسخ واللصق ..وهذه لوحدها تكفي.. كلما أخطأت كلما اكتشفت طريقا جديدة تبتعد فيها عن الأخطاء ..وتعطيك خبرة عملية خرافية.
5) الكلمات السيئة والشعور السيء: قم بحذف جميع الكلمات السيئة التي تدور بذهنك حول الفشل, والصعوبة, لا استطيع ..الخ,  من يريد أن يتعلم ..يجب أن يمحي من قاموس حياته هذه الكلمات ..وقم بحذف كل شعور سيء يصيبك مثل الملل والكسل ..الخ, عن طريق النظر الى انجازاتك ..والى أين وصلت في تعلمك ... وانظر الى نفسك كمبرمج كبير - رائع ...^_^..شعور خرافي ^_^
6)  الآن بعد انتهائك من كل موضوع برمجي ..استرح ..خذ نفسا عميقا ..وفكر في سؤال ..تظن أنك لن تستطيع حله, أو أنك ستواجه صعوبة في حله, أو فكرته غريبه.. ثم ادخل مع نفسك في تحدي وقم بحل هذا السؤال برمجيا ..دون مساعدة أحد..هنا ستكتشف نقاط كثيرة..وتقع بأخطاء كثيرة ..وهنا تكون فعلا تعلمت ..ومن هنا أنت أصبحت مبرمج فاهم ^_*.. هذه النقطة مهمة جدا جدا ..
7) الآن بعد انهائك لأكثر من موضوع ..يتواجد بينهم ترابط ..عليك أن تقوم بوضع فكرة لمشروع بسيط.. مثلا أنا تعلمت انشاء المتغيرات والجمل الشرطية والدوران ..أقوم مباشرة ..بعمل مشروع بسيط ..أحاول أن أجمع به كل الأفكار التي درستها ..هذا الأمر ..يعطيك خبرة رائعة ..ولا يمكنك أن تستبعد هذه النقطة لأهميتها في ربط المواضيع والأفكار ..
 
الآن بالنسبة للمشاكل والأخطاء التي تظهر أثناء البرمجة وأثناء التطبيق ..هذا أمر روتيني ..ويجب أن تعتاد عليه ^_*...إنني أذكر في بداية تعلمي للبرمجة كانت البرامج التي أكتبها تتراوح نسبة الأخطاء التي أقع بها من 6 الى 300 ..وكنت أجلس أكثر من 7 ساعات لأكتشف أن الأمر لم يكن أكثر من فاصلة أو قوس أو علامة تنصيص..., صديقي, أنت مبرمج رائع..ثق بذلك ..عليك أن تعلم أن الأخطاء هي مصدر سعادة كبيرة في كثير من الأحيان ..لإنها خبرة جديدة مكتسبة لك .. أو طرف خيط  سيقودك لمعرفة موقع المشكلة ..لذلك كن سعيدا ..وانطلق ^_^
 
أخيرا ...أسأل الله العلي العظيم ..أن يوفقنا وإياكم الى خير العمل.. وأن يرزقنا وإياكم العلم النافع والعمل النافع ..
اللهم آمين
 
أخوكم أنيس أبوحميد