هل اعجبتك وفرة الدروس التي تشرح كيفية تعلم لغات البرمجة واغرتك بتعلمها ؟؟
قبل ان تخطو خطواتك الاولى ضع في حساباتك الاتي
- البرمجة مجال عميق والقليل فيه لا يكفي ، يعني يجب ان تمضي بالمشوار الى نهايته لكي تحصل على ثمراته والوقت الذي ستحتاجه لا يقاس بالساعات والايام بل شهور طويلة بايامه ولياليها ، الامر ليس بنزهه حتى وان كان مسليا. فإذا كنت مشغول بأمر اخر اكثر جدوى ويستهلك وقتك فألتفت اليه ودع عنك البرمجة ولا تغريك الدروس ..
- اذا كنت خريج علوم او هندسة الحاسبات وتقول هذا هو مجال عملي فلا بأس انت شخص مهيأ لهذا المجال ، واذا كنت غير متخصص ولكن تملك الوقت والرغبة الشديد فلا بأس ايضا ولكن كن صبورا.
حسنا ، اذن تريد ان تقتحم هذا المجال ، هذه مقدمة للدخول الى الموضوع
البرمجة باختصار شديد هي كتابة اوامر بشكل سطور باللغة الانكليزية غالبا وباستخدام كلمات محددة بحسب اللغة التي تعمل عليها
هذه السطور ستكون في شكل القالب التالي حتما لا محالة
ادخال – معالجة – اخراج
انت ك مبرمج تهيئ لمن سيستخدم برنامجك تهيئ له واجهة لادخال البيانات قد تكون لوح المفاتيح الكيبورد ، او الماوس ، او المايك ، السكنر او الكام ، لكي تقوم بادخال الكتابة ، الصوت ، الصور ..
لان الحاسبة لا تتعامل مع الخضار واللحم كالثرامة ! الحاسبة جهاز يتعامل مع المعلومات المدونة وهي غالبا لا تخرج عن هذه الانماط ( كتابة 0 صورة – صوت ، صوت وصورة متحركة(فلم)...
انت تهيئ واجهة ادخال للمستخدم لكي يقوم بادخال البيانات لكن قبل ذلك يجب ان تكون حددت نوع البيانات التي سيقوم برنامجك بمعالجتها صحيح؟
فتضع الكود اللازم لمعالجة تلك المدخلات ، واكواد المعالجة هذه تختلف باختلاف نوع المدخلات ، فاذا كانت ارقام فقط فالمعالجات رياضية واذا كان صوت فالمعالجة اذن هي تحويل وما الى ذلك ، فتعالج البيانات حسب نوعها ، تماما كما في الطبيعة فأنت تشرب الماء وتفتح الباب ولا تفعل العكس اي لا تفتح الماء ولا تشرب الباب !! وهكذا.
بعد هذه المقدمة البسيطة ، لنرى موقعنا من الاعراب نحن العرب.
هل نستطيع صنع برامج لمعالجة الصور؟ او ملفات الصوت او الفيديو أو التعامل مع عتاد الحاسوب؟؟
غالبا لا ، واذا وجد اشخاص وهم قليلون جدا من العرب لديهم تفوق وبراعة وسرعة في التعلم واستطاعوا الوصول الى مستوى المقدرة على التعامل مع معالجة الصور وملفات الصوت وغيرها فهم سيلتحقون غالبا بالشركات الاجنبية
لهذا السبب تحديدا تجد ان معظم الشركات البرمجية العربية (في الحقيقة هي شراكات لبعض المبرمجين وليس شركات فعلا ) تجدهم غالبا يتجهون الى قواعد البيانات
( قاعدة البيانات لمن لا يعرف هي مجموعة جداول تحوي بيانات منظمة في صورة اعمدة وصفوف كجدول الدروس الاسبوعي )
على إعتبار ان قواعد البيانات لها - كما يزعمون سوق رائجة - نعم لها سوق رائجة لكن ليس هذا هو السبب الوحيد ، فهناك سوق ضخم للالعاب والانيميشن والتطبيقات وغيرها كثير ، لكن مجال قواعد البيانات هو الاسهل .لذلك تجد ان معظم انتاج العرب البرامجي هو من قبيل القواميس – خذ مثلا الوافي الكافي المورد صخر الخ ، وبرامج المصحف الالكتروني واخيرا مواقع الويب وهذه كلها ترتكز اساسا على قواعد البيانات وخذا ايضا المكتبات ( الشاملة وموسوعات الكتب الادبية والدينية الخ) كل هذه قواعد بيانات .
لهذا السبب وجد الكثير من المبرمجين العرب انفسهم امام خيار تقديم دروس بدلا من صناعة برامج ، لانه حيث لم يستطع صناعة برامج تنافس الوورد والفوتوشوب والثري دي ماكس وغيرها التخصصية في مجالاتها فماذا بوسعه ان يفعل بتلك المعلومات التي اكتسبها حول لغات البرمجة سوى تقديمها في صورة دروس ومجانية !!
وهنا يستحسن ان تسأل نفسك هل سأتعلم كل هذه الدروس منه لكي اقوم بدوري بعمل دروس بعد ذلك؟؟
اذن عزيزي المبرمج الجديد ستجد نفسك بعد مدة شئت ام ابيت تتعامل مع قواعد البيانات في مواقع الويب او على برامج سطح المكتب .
وحتى لو كنت ستتخطى هذه العتبة فأنت بحاجة لتعلم قواعد البيانات بدءا وانتهاءا !
لماذا؟؟
قلنا ان البرمجة هي ادخال ومعالجة واخراج
وعند متابعتك للدروس ترى ان الادخال غالبا عن طريق الكيبورد على سبيل اختبار الكود
لكن بعد ذلك ، بعد ان تصنع برامج حقيقية فهل تتوقع ان يجلس المستخدم ويستخدم الكيبورد طيلة الوقت؟؟
ستكون هنالك حالات يأخذ البرنامج مدخلاته من قاعدة بيانات ، خذ مثلا هذا الموقع ، فأنت حين طلبت هذا الموضوع عبر المتصفح فأنت في الحقيقة قمت بأدخال رقم الموضوع الى برنامج الموقع من خلال الرابط ، فأخذ برنامج الموقع المبادرة وقام بأحضار الموضوع وكافة تفاصيله من قاعدة بيانات الموقع
اي في الخطوة الاولى الادخال منك في صورة كلك على الرابط فوصل رقم الموضوع الى البرنامج فكان الاخراج هو تنفيذ سطور اخرى جعلت من قاعدة البيانات مدخلات جديدة للبرنامج الذي عالجها لتظهر في صورة صفحة ويب وبالتالي اخرجها على الشاشة
ولكن لو اخترت ان تكتب موضوعا جديدا ، فهنا سيكون الادخال عبر الكيبورد والمعالجة ستتضمن تهيئة مدخلاتك وحفظها في قاعدة البيانات لإخراجها لاحقا عند الطلب.
كان هذا المثال حول صفحة الويب هذه ، وحتى مع برامج سطح المكتب فلا محالة من وجود قاعدة بيانات ولو في صورة ملف صغير يحفظ مجموعة الاعدادات والتفضيلات للبرنامج .
هل اصابك الاحباط ؟ نعم ذلك خير من تضييع وقت طويل بلا جدوى ، اذن انظر في داخلك ملياً وفكر في مقدار طاقاتك واستعدادك ، فأنت كنت جاهز كفاية فأمضى متوكلا على الله تعالى.
او اختر الجانب الاسهل الذي لا يقل اهمية وابداع ، وهو استخدام برامج جاهزة بدلا من برمجة شيء من الصفر كما في لغات البرمجة ، اختر شيئا تتخصص فيه وتتقنه مثل الاكسس ، اوراكل ، الفوتوشوب ، الانيميشن ، الاوتوكاد وغيرها كثير ، لان لغة البرمجة تبدأ من الصفر فعلا . فهل انت بحاجة الى اعادة اختراع الصفر؟