بسم الله الرحمن الرحيم
أولاً أحيكم بتحية الإسلام السلام عليكم ورحمة الله وبركاته وبعد ...
ثانياً مرحباً بأعضاء وزوار سوالف وأتمنى أن يكونوا في صحة وعافية بإذن الله .
لقد سئلت كثيراً هذا السؤال من بعض الأشخاص بقولهم (لماذا أنا ضعيف في البرمجة؟).
ونحن نقصد هنا البرمجة عموماً أي لغة C,Java,PHP,C++,C#, Python ولكن وبما أننا في منتدى PHP فسأركز على هذه اللغة في حديثي .
عزيزي القارئ سأحاول أن أعطيك الطريقة التي ستجيب لك على هذا السؤال وذلك بعرض المشكلة .
لاحظ معي الآن : (الحديث عن عالمنا العربي)
أراد شخص من الأشخاص أن يتعلم لغة PHP وسمع أنها جيدة في بناء المواقع وهذا الشخص لديه الرغبة في بناء المواقع بشكل جدي, ثم بدأ في الإبحار في مواقع الإنترنت ليبحث عن أجوبة شافية لجميع الأسئلة التي تطرأ عليه.
بعد ذلك وجد مواقع لتعليم الـ PHP وباللغة العربية (ممتاز جداً!) وبدأ بتقليب وقراءة صفحات الموقع بمثال مثلاً كيف تطبع اسمك وماشابه, بعد ذلك قام بأخذ أساسيات اللغةمثل if, while, switch, function إلخ .. من طرق كتابة اللغة أو الـ Syntax .
الآن وبعد معرفته بكيفية كتابة شفرة PHP وإنتهى منها ذهب للدروس التالية في مواقعنا العربية وهي بدون أدنى شك (قواعد بيانات mysql ) ثم بعد ذلك تعلم كيف يربط قاعدة البيانات مع واجهة PHP وتعلم insert,delete,update,select وغيرها.
الآن هو مبرمج PHP ! والآن وبعد أن أنهى رحلة التعلم(كما يعتقد هو) سيحاول كتابة برامجه الخاصة وسيأتي في ذهنه ما يلي :
سكربت دليل مواقع
سكربت سجل زوار
سكربت منتدى
سكربت رفع ملفات
سكربت دروس
سكربت أخبار
سكربت مقالات
ويقول في نفسه:court: بعد ذلك أربطها وأخليها مجلة :eek2: (ربي يحفظك).
والبقية تعدل عن قصة بناء السكربتات ويقوم بعمل جبار وهو (إفتتاح موقع لتعليم PHP):app: .
------------------------------------------
الآن السؤال : أليس هذا الشخص مبرمج PHP ؟
دعنا الآن نقول : نعم .
الآن وبما أنه مبرمج دعنا نطلب منه الطلب التالي : يابشمبرمج نريد منك أن تقوم بعمل برنامج شات بلغة PHP مدمج معه تقنية الفلاش ؟:eek2: (أفا ما أتفقنا على كذا) :1power:.
عندها ما الذي سيحدث معه :shy: , بإختصار سينظر إلى نفسه في المرآة ويقول (هل أنا فعلاً مبرمج PHP ؟).
حسناً دعنا نطلب منه طلب أخر : نريد منك أن تعمل لنا برنامج بلغة PHP يقوم بعمل تزامن بين قاعدة بيانات من نوع mysql (التي تعلمتها) وقاعدة بيانات Oracle حيث ينقل البيانات خلال القاعدتين عن طريق XML بشرط أن لا تستخدم مكتبات XML التي تدعمها PHP وتقوم بكتابة محرك XML بنفسك على PHP ؟ (أقولك : عساني ما برمجت في PHP :anger2.
---------------------------------------
الأمثلة كثيرة ولكن الآن وبعد أن رأينا هذه المثالين التي تثبت ضعف هذا الشخص سنحاول إيجاد الحل . ولكن كيف ذلك ؟
الحل جداً بسيط وهو كالتالي :
لقد عملت بفضل الله منذ فترة طويلة على لغة PHP وحصلت على شهادة Zend أيضاً بفضل الله مع أني أساساً مبرمج C,C++,Java أساساً وأعمل على Python حالياً وسأعطيك الطريقة الصحيحة لكي تقوم بعمل أي برنامج تريده .
هناك طريقة مستخدمة عند الأجانب وهي طريقة (التعلم عن طريق البناء).
ماهي هذه الطريقة ؟
في البداية قبل أن أشرحها لاحظ معي لغات البرمجة التالية :
PHP
Java
C#
C++
C
Python
Perl
Aldor or A#
Ada
Pascal
Cobol
J#
ASP
هذا من غير التي لم نذكرها ! :eek2:
الآن من المعروف أن كل لغة برمجة تأتي وهي محملة بكم هائل من المكتبات التي تساعدك في كتابة برامجك حيث تحتوي كل لغة على مكتبات مثل :
Network and Socket للتعامل مع الشبكات
Database للتعامل مع قواعد البيانات
GUI Library للتعامل مع الواجهات الرسومية وكيفية عمل برامج بنوافذ وأزرار وغيرها .
IO Stream للتعامل مع الـ input and output
File System للتعامل مع ملفات النظام .
Multimedia للتعامل مع الوسائط المتعددة مثل الصوت
3D للتعامل مع الرسومات ثلاثية الأبعاد
Mail للتعامل البريد
Protocols للتعامل مع البرتوكولات مثل FTP,HTTP,SMTP,POP3 وغيرها ..
Images للتعامل مع الصور
Encryption للتعامل مع عمليات التشفير
Date and Time للتعامل مع الوقت والتاريخ .
هذا من غير المكتبات التي لم نذكرها :eek2: حيث أن كل مكتبة تحتوي على عدد هائل من الدوال والكلاسات .
عندها سيقول قائل كيف أستطيع تعلم هذا كله ؟ فهذه لغات كثيرة جداً ومكتبات ضخمة جداً وأنا بالكاد أجد الوقت الكافي للقراءة .
الآن إليك الطريقة الصحيحة لتصبح مبرمجاً بكل ما تحمل الكلمة من معنى .
استخدم طريقة التعلم عن طريق البناء التي يفعلها الأجانب وسنعيد السؤال الآن :
ماهي طريقة التعلم عن طريق البناء ؟
الطريقة هي أن تتعلم أساسيات اللغة التي تريدها وذلك بأن تعرف كيف تكتب اللغة نفسها أي من ناحية الـ Syntax وفي مثالنا هنا تتعلم كيف تكتب PHP .
بعد ذلك لا تتعلم أي شئ أخر وإنما تقوم بتحديد مشروع معين بإسم معين ولنوضح الصورة فإننا سنعطي مثال هنا ونقول أني سأقوم ببناء برنامج يقوم بالتالي :
برنامج يقوم من خلاله الزائر بكتابة نص معين مثل إسمه أو أي نص يريده ويقوم البرنامج أو السكربت بتوليد ملف flash يحتوي على نفس النص الذي أدخله المستخدم بتأثيرات فلاشية.
ستقول لي يا عبدالله عيد الشخص لا يعرف شيئاً وهو جديد في البرمجة وكل مايعرفه هو كيف تكتب لغة php ولكن لن يستطيع أن يبرمج مثل هذا الشئ لأنه صعب جداً عليه , عندها سيكون الجواب كالتالي :
يبدأ هذا المبتدئ بالتعلم في مجال البرنامج فقط أي يقول التالي:
إذا أردت أن أبني البرنامج فسأحتاج إلى مايلي :
1- أن اتعلم طريقة إستلام البيانات من الـ form والذي سأستقبل من خلاله النص الذي سيدخله المستخدم .
2- أن أتعلم المكتبة التي تتيح لي التعامل مع ملفات الفلاش من خلال PHP .
3- أن أتعلم كيف أظهر المخرجات للمستخدم .
الآن لاحظ فأنا قلت في بداية كل نقطة (أن أتعلم ولم أقل أن أبرمج).
الآن سينشغل هذا الشخص في البحث في نقطة معينة ولن يشتت نفسه لأنه سيتعلم ليبني ! وبهذه الطريقة ستجده يعرف ماذا سيتعلم والآن وبعد أن أنجز هذه الثلاثة النقاط فإنه سيكتب البرنامج بدون أي مشكلة.
والآن إذا جاءه شخص وقال له اكتب لي برنامج منتدى فعندها سيتعامل مع أمور تخص قواعد البيانات ويتعلمها مثل ماهية قاعدة البيانات mysql,msql,oracle,postgreSQL وينجزها .
الآن لو جاءه شخص قال له أريدك أن تخزن لي ملفات فلاش في قواعد بيانات mysql مثلاً فعندها لن يتعلم شئ لأن لديه خبرة سابقه بالمجالين وكل ما يحتاجه هو أن يوظف ما تعلمه في كل مشروع لينجز هذا المشروع .
في النهاية هذه الطريقة تسمى (التعلم عن طريق البناء) وهذا ما يجعلك تجد أن الأجانب يستطيع الكتابة بعشرة لغات .
وكمثال أخير إذا جاءك شخص الأن وأنت مبرمج PHP وقال لك أريدك أن تعمل لي آله حاسبة على Java عندها أتبع هذه الطريقة حيث أنك تعلم أن برنامج الآلة الحاسبة يحتاج هنا إلى طريقة (التعلم عن طريق البناء) وسأقوم بالتالي :
1- تعلم لغة جافا من حيث الكتابة .
2- تعلم الواجهات الرسومية وكيفية إنشائها في جافا.
3- تعلم العمليات الحسابية (وهي متشابهه في الغالب بين لغات البرمجة).
4- إنجاز المشروع.
وبعد أن تنتهي من هذه الآله الحاسبة البسيطة فلا تنسى أنك أصبحت مبرمج PHP و Java .
وأخيراً PHP ليست للتعامل مع MySQL أصلاً و إنما MySQL هي مكتبة واحدة من بين العديد من المكتبات الموجودة في PHP وللإطلاع يمكنك مراجعة PECL :: The PHP Extension Community Library لتطلع على المكتبات التي تتيحها PHP لك لتعمل ماتريده بهذه اللغة .
وهذا مالدي الآن فإن أخطأت فمن نفسي والشيطان وإن أصبت فمن الله عز وجل .
تحياتي :nice:
أخوكم عبدالله عيد