بسم الله الرحمن الرحيم
أود في هذه المشاركة أن أطرح على حضراتكم سؤالاً أرقني في الشهرين الماضيين ...
وخلاصة القول تتلخص في كلمة واحدة : الحرية ....
أما بالتفصيل.... فسأبث إليكم أوجاعي وشجوني :
ما هي البرمجة!!!
أو بتعبير أصح ما هي حقيقة البرمجة ...؟
هل هي أن تحترف مفاهيم البرمجة الكائنية والبنى والتعامل مع الذاكرة بمراجعها ومؤشراتها ؟؟
هل هي أن تتقن كتابة برنامج نظيف خالي من الأخطاء...ومعقد بشكل كافٍ ليُقال أنك محترف؟؟!
هل البرمجة هي معرفة الدوال السحرية :S وأعني بها دوال ال API التي تعمل كل شيء في ويندوز ...أو ما يقابها في اليونكس
وتعلم برمجة الواجهات والopenGL وال DirectX وما يتعلق بالرسوميات...
هل البرمجة هي أن أبقى مستعبداً(برمجياً) من قبل شركة ما .. أومن قبل فريق برمجي ما أو حتى مبرمج عظيم ...ما :mad:
إذا كانت اللغة توفر كذا ولا توفر كذا ... وإذا كانت الدالة الفلانية موجودة أو غير موجودة ...وإذا وجدناها سنحاول معرفة
وسطائها والتي لن تكون إلا الكثيير من البنى structures والعديد من الأنواع .. ثم سأحاول استعمالها ...
هل أكون عاقلاً .. إذا أمضيت الأشهر والسنوات وأنا أتعلم الدوال التي كتبها مبرمجوا مايكروسوفت
في ال kernel32.dll وال user32.dll وغيرها من (( مكاتب الربط الديناميكية )) لاحظوا حتى التسمية يجب أن نخضع لها ... :dry:
أنا لا أقول بأننا يجب أن نستغني عن كل الإنجازات العظيمة التي أبدعها المبرمجون حول العالم .... ونبدأ من الصفر ...
ولكن إذا كانت البرمجة هي أن أتبع خطوات حددها أحدهم ... فلا أرغب في أن أكون مبرمجاً .... :excl:
الفكرة التي أطرحها هي أن البرمجة مجرد خدمة يقدمها الحاسوب لتنفيذ فكرة ما... العنصر الأساس فيها هو كونها مستقلة
تماماً عن البرمجة بحد ذاتها وتابعة فقط لنا نحن المفكرين وليس المبرمجين .... بل وإن الحاسوب مجرد خادم لتنفيذ عمل ... العنصر الأساس فيه هو كونه
مستقل تماماً عن الحاسوب وتابع فقط للهدف الذي نريد الوصول له ...
العنصر الأساس في كل ذلك هو الفكرة الصحيحة ...الخطوات الصحيحة ... الخوارزمية الصحيحة ... والتي تحددها أنت ...
لماذا برأيكم نعتبر ان الوصول للقمر عن طريق الحاسوب وحده مستحيل ؟؟؟ :blink:
ببساطة لأننا اعتبرنا أننا مقيدون بالحاسوب وإمكانياته ...
ولماذا وصل الغرب لأبعد من القمر!! لأنهم موقنون تماماً أن الحاسوب خادم مطيع صنعوه بأيديهم لأهداف محددة ليس من ضمنها الطيران ... أما الطيران فقد
اخترعوا من أجله الصواريخ ومكوك الفضاء ... فهم أسياد الآلات ... وليس العكس ....
ما يحدث معنا كعرب عموماً وكمبرمجين خصوصاً ( وإن كانت كلمة مبرمج أكبر من أن نطلقها على معظمنا وأنا أولهم )
ما يحدث معنا هو أننا نأخذ الاختراعات ثم نستخدمها دون فهم بداياتها وخطوات الوصول إليها ...
مما يجعل هذا الشعور بالغموض يسود تعاملنا معها ... ومع الوقت يستحيل أن نخرج من الصندوق الضيق الذي وضعنا أنفسنا فيه ... لأننا بدأنا نتعلم كيف
نعتبره كل شيء ....بل وفرضنا على أنفسنا إتقان التعامل معه على أننا لن نخرج منه أبداً....
إلا أننا نخرج منه عادة .... ولكن إلى صندوق ضيق آخر ... لشركة أخرى أو فريق برمجي أو مبرمج عظيم ...
لا أريد أن يفهمني أحدهم بأنني أناقش فكرة الاحتكار .. وأحيي المصادر المفتوحة ...
أناقش تحديداً كون المبرمج العربي بعيد كل البعد عن هدف المصدر المفتوح وهو فهم واستيعاب الفكرة كفكرة لا ككود مصدري...
أي أننا يجب أن نصل لمرحلة أننا يمكننا القيام بأفضل مما قاموا به .. وفي نفس الوقت نفهم تماماً الخطوات التي اتبعوها ...
ويمكننا أن نضيف لها ما يحسنها أو نحذف منها مساوئها ... حسب رؤيتنا نحن لا رؤيتهم هم ....... ( ليس بالضرورة أن نقو بذلك ولكن يجب أن نكون على مستوى القيام بذلك)
أطلت كثيراً فاعذروني ...فالأمر يتعلق بالطريق الذي يجب عليّ شخصيّا متابعته وعلى الكثيرين ممن لا يجب أن يضيع عمره وهو يتعلم طريقة استعمال أحد الاختراعات ....
وأنتظر الإجابة على السؤال : هل البرمجة هي اتباع التعليمات والتقليد أم هي التفكير المجرد والمطلق ...ثم التطبيق أياً كان شكله.. وأياً كانت وسائله ؟
//جوابي على هذا السؤال هو أن البرمجة يجب أن تكون كلمة مكافئة لكتابة الخوارزمية ...
//وعلى هذا الأساس فالبرمجة لا تتبع لغة معينة أو طريقة معينة لكل منا طريقة تفكيره وبالتالي أسلوبه في البرمجة ...
//نحن العرب في هذا العصر أصبحنا في أحسن حالاتنا نتعلم كيف ندرس جزء من اختراع لأحد العلماء الغرب...
//فأين نحن منهم...
إليكم هذا المثال ..
في لغة الأسمبلي ... نحن ندرس لغة الآلة ... ونعتبر جازمين ... أن هذه هي اللغة الأم لأننا لا نفكر أبداً في أن الحاسوب مجرد اختراع
بل ... نرى أنه الأصل وهو الثابت ونحن المتبدل ... هذا أحد الصناديق المغلقة والتي نحن بداخلها ...
في كتاب للفريق العربي للهندسة العكسية والذي يعتبر أفضل كتاب عربي في هذا المجال ...
نرى الاعتماد الكامل ... على برامج التنقيح مثل olly وpeid ثم نرى الفصل الثالث والمخصص فقط لشرح طريقة فك الضغط وكسر الحماية لبعض البرامج ....
وهنا نعود إلى الابتعاد عن جوهر البرمجة وهو فهم الخوارزميات بدلاً من فهم البرامج ...
إليكم بعض الأمثلةعن الابتعاد عن الجوهر :
نحن في غنى عن ذكر الكتب والدورات والدروس التي تشرح خفايا وأسرار الويندوز وتعتبره الثابت المقدس والذي منتهى علمنا أن نكتشف خفاياه وأسراره ....
أحمد الله أن المعجزة الكبرى كانت كتاباً نقرؤه .... وليست نظام تشغيل نكتشف أسراره ... :lol:
لا أظن أننا بحاجة لذكر كتب البرمجة والدروس فقط لمعرفة التعامل مع كومبايلر الC++ أو java او أو ... بدلا من أن نجد الدروس عن الخوارزميات البرمجية ...
برأيي الشخصي .. عندما تعلم احدهم البرمجة فعلمه الخوارزميات كطريقة تفكير .. وعندما يريد كتابة البرنامج ما عليه سوى البحث عن التعليمة التي تنفذ كل
جزء من الخوارزمية
أعتذر على الإطالة ... ولكني أردت أن أوضح الموضوع تماماً ... والسلام عليكم
شكراً لقراءتكم والسلام عليكم ....
