السلام عليكم .. و كل عام و أنتم و بخير
:: مقدمة ::
لماذا كان هذا الموضوع ؟ .. نبتت معي هذه الفكرة ( بعد تفكير طويل ) عندما فهمت معنى أن يكون الإنسان جزءاً من هذا المجتمع .. و أن يشاركه معرفته و يقدم له ما يستطيع لكي ينتشر هذا العلم .. فيخرج أناس قد يفعلون و ينتجون بكفاءة أكبر ممن تلقوا العلم منه و لكي ينشغل المجتمع بما فيه خير له .. و تحوله من مجتمع انتشرت فيه سطحية التفكير و فشل في إدارة المشاريع و سوء التخطيط إلى مجتمع مثقف يملك جميع أسباب النجاح و التطور و صناعة الحياة .
و تعقيباً على هذا الكلام فما فائدة أن تعرف و غيرك لا يعرف ؟ و أن تكون في وسط مجتمع لا يراعي أهمية هذا العلم أو أهمية ما تقوم به من أعمال .. فأشدد هنا على موضوع المشاركة .. فصدقوني لن يشعر المرء بأي متعة و هو وحيد في هذا العالم دون أن يشارك الآخرين .. و أضرب لكم مثلاً على كلامي حول أن يكون هناك من يبادلك العلم الذي تعرفه :
لقد سجلت في أحد المعاهد التي تعلم هذه اللغة فوجدت نفسي ضمن شباب ( في الصف ) لا يقدرون معنى البرمجة و أهمية هذه اللغة و أنها الأفضل .. فشعرت بحرقة في نفسي و لكني تفاجأت بشخص واحد كان على دراية بذلك و له خلفية واسعة حول موضوع البرمجة .. فنشأ بيني و بينه روح تنافس قوية من أجل إثبات من الأفضل .. فشعرت بمتعة حقيقية لم أشعر بها من قبل حتى في الصفوف الدراسية و في الجامعة ..
فالأمر الثاني الذي أشدد عليه هو روح التنافس التي افتقدناها بسبب أن كل شخص يحتكر العلم الذي يعرفه لنفسه إلا من رحم ربي .. فاشعروا بأهمية الانتماء إلى هذا المجتمع و أن تكونوا عناصر فعالة فيه . وكما قال أحدهم ( نسيت القائل ) : إذا لم تزد في هذه الحياة كنت زائداً عليها .
و في موضوع التخلف العربي .. فإن تطور المجتمع قائم على أفراده و ليس على فرد واحد أو مجموعة صغيرة و هذا ما أدى إلا تخلفنا .. و أيضاً أدى إلى صنع فجوة كبيرة في التكنلوجيا بيننا و بين الغرب .. كل هذا بسبب اتهام بعضنا بعضاً بأن المتخصصين عندنا لم يفعلوا شيئاً .. فلماذا لا ينظر هذا الشخص ( الذي يقول ذلك ) إلى نفسه ، ماذا صنع هو من أجل مجتمعه و من أجل تطوره ؟ لا شيء .. و ما زلنا ندور في هذه المتاهة و كل سنة تمر تزيد هذه الفجوة أضعافاً مضاعفة .. و إلى الأن لم يلفت هذا الأمر انتباه أحد فالكل مشغول بنفسه و يضع المسؤولية على غيره و في النهاية نلوم بعضنا .. و لكننا قادرون على تغيير الواقع و لو قليلاً في الفترة الحالية .. فمن الخطأ أن نعترف بالمشكلة و أن نيأس بعد ذلك دون عمل أي شيء .. فلا تجعلوا الأجيال التي تأتي بعدنا تسبنا و تلعننا لأننا كنا السبب في رجوعهم مئات السنين إلى الوراء .
فالأمر الثالث الذي أشدد عليه هو روح الفريق و الجماعة .. كالمثل القائل ( يد واحدة لا تصفق ) .. فمع جمع الخبرات و المسؤوليات ينتج لدينا مجموعة قادرة على صنع ما لا يستطيع فرد واحد عمله .. و ذلك نظراً لعدم إلمامه بجميع التقنيات و الخبرات و نظراً لإختصاص كل منهم بشيء محدد .
و لكن ما الحل ( في موضوع الضعف العربي ) ؟ الموضوع يحتاج إلى تفكير و دراسة مطولة و لكن برأيي إن مفتاح التكنلوجيا و التطور هو العلم .. نعم العلم بمختلف جوانبه و أنواعه .. في الطب و في علم الإلكترونيات و في الإقتصاد و في الحاسوب ( و أشدد على البرمجة للأسباب السابقة ) و في العلوم الإجتماعية و الإدارية و في كل شيء .. و السبيل الوحيد للحصول على هذا المفتاح هو نشره بين الناس من قبل العارفين و أصحاب الخبرات .. لينشأ مجتمع قاعدته قوية ، درس كيف يتأقلم مع هذه الحياة و كيف يحسن قدرته على العيش فيها و كيف يواجه الأخطار التي تحدق به من الغير و بأن لا يكون خاضعاً لهم و لرغباتهم .
فلو بذل كل شخص مجهوده ( على حسب قدراته و استطاعته ) و لو بالقليل ( انتبهوا القليل فقط ) لتغيرت الأمور كثيراً .. فالجبل يتكون من مجموعة من الحصا الصغير و لكن عند اجتماع تلك الحصا مرة تلو مرة لتكون لدينا هذا الجبل . فالأمر الرابع هنا هو تقديم جميع الخبرات التي يملكها الفرد لمجتمعه مهمى كان حجم هذه الخبرات .
و أريد أن أختم هذه الفقرة بقول إن لم نحصد نتيجة أعمالنا في هذا الجيل فسوف تحصده الأجيال القادمة .. فلا تيأسوا فالخير قادم و هذه الجهود لن تضيع بإذن الله ..
لقد خرجت قليلاً عن الموضوع و لكني أرى أنه في صلبه .. و آمل أن يكون كلامي قد أثار ( و لو القليل ) احساسكم بأهمية الأفكار الذي طرحتها.
:: أهمية لغات البرمجة و خصوصاً ++C ::
أريد أن أوضح نقطة هنا و هي أن لا شيء يأتي عبثاً و بدون تعب .. فإذا كنت تريد أن تتعلم أي شيء في هذه الحياة يجب أن تضحي بوقتك و تفكريك ( أثناء التعلم ) لكي تتقن تلك المهنة أو ذاك العلم و لغات البرمجة إحدى هذه العلوم .. و صدقوني أنها لا تحتاج إلى الوقت أو التفكير الكثير من أجل تعلمها ( انتبهوا في التعلم ) و لكنها تحتاج إلى صبر و عدم اليأس من أول فشل .. فاكسروا حاجز الخوف الذي يحول بينكم و بين تعلمها.. بالإضافة إلى أن البرمجة سوف تفتح لك آفاق واسعة للتفكير المنطقي و السليم و ستشعر بأنك أصبحت تفكر بالأمور بطريقة أخرى .
إن أهمية لغات البرمجة تكمن في إمكانية الإبداع و الإبتكار و حرية التفكير ( في إدارة و صنع البرامج ) و تحويل كل ما في مخيلتك إلى واقع ضمن برنامج ( هذا ما جعلني أتوجه إلى البرمجة ) .. هذا غير فائدتها المادية و الإقتصادية لو استغلت أفضل استغلال .. حيث يكفي أن تعرف أن إيرادات الهند من البرمجيات فقط وصلت العام الماضي إلى 12 مليار دولار .. و هذا الرقم أكبر من موازنة سوريا كلها في الأعوام السابقة !!! حيث تقدر هذه السنة بـ 9 مليار دولار .. و الموازنة ( بالمختصر ) تعني الإيرادات و النفقات المتوقعة خلال العام .
لماذا ++C ؟؟؟ لقد تعلمت بفضل الله تعالى 3 لغات و هي Visual Basic ثم Turbo Pascal و أخيراً ++C و صدقوني لم أجد متعة البرمجة إلا في الأخيرة فهي بالفعل الأداة المناسبة للبرمجة الحقيقية .. و ما لها من جمهور كبير من المبرمجين الذين قالوا ذلك بالإضافة إلى أنها اللغة المستخدمة في تطوير أغلب البرامج في العالم .. و لكن لها مسموعية بأنها صعبة و سأقول لكم أن ذلك صحيح في نواحيها المتقدمة جداً فقط و ليس في الأمور العادية .. يعني كل ما تحتاج تطبيقه من مشاريع سيكون سهلاً و لن تحتاج إلى الحدود ( من احتراف اللغة ) التي وصل إليها هؤلاء حتى تقول عنها أنها صعبة .. و هذا معروف أصلاً في جميع جوانب الحياة و في جميع العلوم فكلما تقدمت في الحياة الدراسية تتعلم أمور أصعب و هكذا ..
و أريد أن أوضح نقطة أن البرمجة هي وسيلة و ليست غاية .. بمعنى أنها وجدت لكي تستفيد منها و تطبقها في جميع جوانب الحياة ( الرياضيات ، الإقتصاد ، التعليم ، الألعاب ... ) لا أن تتعلمها و ينتهي الأمر بذلك ..
:: فكرة الموضوع ::
هذا الموضوع وجد لأجلكم و بإذن الله سيكتمل هذه المرة إلى النهاية ( إن أحيانا الله ) و سوف أداوم على إتمامه حتى آخر موضوع في فهرس الدروس الذي سوف أكتبه في نهاية هذا الموضوع ..
سأقوم بعمل دورة كاملة تحتوي على أساسيات هذه اللغة ابتداءً من تعريف بنيتها و انتهاءً بالكائنات .. و سأقوم بوضع درس كل فترة زمنية نحددها فيما بعد ( أسبوع مثلاً ) و يكون هناك مجموعة من الأعضاء الذين سيداومون على قراءة هذه الدروس و هم الذين سيسجلون في هذه الدورة .. بالمختصر أريد أن أنشئ دورة كالتي تقام في المعاهد التي يقصدها الناس لكي يتعلموا شيئاً محدداً ( نريد هنا البرمجة ) و ذلك خلال شهرين أو ثلاثة مثلاً عن طريق 3 دروس أسبوعياً ( سنغير الفترة ) .. آمل أن تكون الفكرة قد وضحت .
و لكن بالنسبة لموضوع الحضور .. سأطالب المسجلين بعد كل درس بحل بعض التمارين و بذلك أضرب عصفورين بحجر .. أولاً أتأكد من أنهم فهموا الدرس و أنهم قرأوه .. ثانياً لأني لا أريد أن أكتب الدروس و ينتهي بذلك الأمر فأين الروح التي قلت عنها في بداية هذا الموضوع و هي روح المشاركة و التنافس و لكي أشعر و لو قليلاً بأن هناك فعلاً من يهتم و يستفيد .
:: البرنامج المستخدم ::
يجب توضيح نقطة مهمة هنا هي أن هناك فرق بين لغة برمجة و بيئة العمل ( البرنامج ) المستخدمة .. فلغة C++ لها برنامجين الأول لشركة Microsoft و الثاني لشركة Borland .. و نحن سنستخدم الأول و عموماً ليس هناك فرق كبير بين البرنامجين .. و سيكون الإصدار هو السادس و ليس .Net لماذا؟ :
لأن برمجة الدوت نيت تحتاج لمعرفة موسعة بالكائنات و لأمور أخرى لا أريد الدخول بها الأن .. يعني الزبدة الإصدار السادس أفضل شيء ( مبدئياً للتعليم ) ثم الإنتقال للبقية يصبح أسهل .. و على فكرة كل من يدرس ++C يفعل ذلك .
ويجب أن تفرقوا أيضاً بين موضوع ++C و ++Visual C .. حيث أن الأول تطبيقاته ضمن نظام الدوس Dos و الآخر تطبيقاته من أجل تطبيقات الويندوز .
و من أجل التنويه ستكون جميع تطبيقاتنا في بيئة Dos .. لماذا الدوس ؟؟؟ أنت تتعلم الأساسيات لذلك لا أريدك أن تنشغل بما هو غير هذه الأساسيات ( أقصد بتطبيقات ويندوز ) لأن برمجة تطبيقات ويندوز تتطلب منك فهماً لهذه الأساسيات بشكل مسبق .. و من ناحية أخرى فالبرمجة على الدوس أفضل لذلك ( برأيي ) و انتقالك بعدها إلى تطبيقات ويندوز سيصبح سهلاً جداً صدقوني .
:: أسلوب كتابة الدروس ::
سأحاول بقدر الإمكان تبسيط جميع مواضيع ++C .. و إذا كنتم تريدون معرفة أسلوبي في الشرح فاقرأوا موضوعي السابق الموجود في التوقيع .. و بإذن الله سيتحسن الشرح أكثر لكي تصل المعلومة بسهولة .
:: فهرس المواضيع ::
( وضعت هذا الفهرس في أحد المواضيع السابقة ) :
1_ بنية اللغة ( مكونات اللغة ) :
- المتحولات .
- الأنواع .
- العمليات .
إلخ ...
2_ تعليمات التحكم :
- الشرط .
- التكرار .
3_ البرامج الجزئية ( التوابع ) .
4_ المصفوفات ( Arrays ) .
5_ البنى ( Struct ) .
6_ المؤشرات ( Pointers ) .
7_ البرمجة غرضية التوجه :
- مقدمة .
- الصفوف ( Classes ) .
- توابع الهدم و البناء .
- الوراثة ( Inheritance ) .
- التحميل الزائد .
- التوابع الصديقة .
:: ختاماً ::
أرحب بكل عضو يريد تعلم هذه اللغة و أرحب بأي شخص يريد الاستفسار أكثر حول الموضوع و أرحب أيضاً بأية اقتراحات من أجل المشروع ( لأنه مشروع تعليمي في نظري ) .. و أريد أن أرى مدى استجابتكم له و هل لقي صدى عندكم ( آمل ذلك ) .. هذا ما لدي أسمعوني آراءكم ..
ملاحظة / قد لا أستطيع الرد على الموضوع إلا بعد يوم أو يومين بسبب تعطل الإنترنت عندي .