المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : الأسهل أم الأصعب أم الأنسب؟ منطق المبرمج في التفكير


khaledbelal
11-21-2010, 09:48 AM
السلام عليكم
يحزنني أن كثيراً من الطلاب والمبرمجين يمكن أن يتعصبوا لأي تقنية أو لغة برمجية أو غيرها بمجرد سماع أخبار أو شائعات عن جودتها دون أي تدقيق أو تحقيق أو توثيق، واعتمادهم في ذلك على آراء فردية وصفحات إنترنت مبعثرة هنا وهناك أو على أخبار دعائية لا تظهر الأمور من منظور صحيح.

وهذا أمر غير مقبول البتة!
فأولاً: من المستغرب أن يبني المبرمج رأيه -وهو صاحب التفكير المنطقي- بهذا الشكل السطحي ودون بحث أو تمحيص.
ثانياً: الطالب أو المبرمج هو الأقدر على تمييز الغث من السمين! فهو المؤهل لذلك علمياً وأكاديمياً.
ثالثاً: أول متضرر من هذه السطحية والسذاجة الفكرية هو نفسه!
رابعاً: أعجب أنه في معظم الأحيان يأخذ هذه القناعة الخاطئة ويعممها على غيره من المبرمجين على أنها حقائق غير قابلة للطعن! ويتكلم من دون علم، فيضيع ويضيّع غيره !

ما هو المقياس ؟
السؤال الذي سيخطر على بالك الآن هو: ما المقياس الذي أستطيع الحكم به على تقنية؟
هل أتبع التقنية الأكثر إنتشاراً؟ أم التقنية الأسهل؟ أم أن التقنية الأصعب هي الأقوى دائماً؟

الجواب هو الأنسب! نعم يجب أن تختار التقنية الأنسب لوضعك ومتطلباتك، فكل تقنية لها ميزات ومساوئ، ابحث فيها وانظر ماذا يناسب متطلباتك واختر بناءً على مقارنة فكرية حيادية ورأي سليم.


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


- نظم إدارة قواعد البيانات:
قد تجد البعض يسارع بتزكية أحد الأنظمة دون غيرها بناءً على شهرتها أو على سهولة ربطها ببيئة التطوير المتكاملة IDE التي يعمل عليها ... الجواب بالحقيقة يعتمد على كثير من العوامل، إن كنت تبرمج موقعاً بالـ PHP فعندها الخيار الأسهل والأنسب هو MySQL، إن كنت تعمل على برنامج صغير وتريد حفظ بعض البيانات والإعدادات أو أن برنامجك مخصص ليعمل على الجوال فأنت بحاجة إلى قاعدة بيانات مضمنة Embedded، فربما تختار SQLite أو SQL Server CE أو HSQLDB ... وعليك أيضاً أن تفكر جيداً، فإن لم تكن تحتاج إلا لبعض الاستعلامات البسيطة فلماذا تختار قاعدة بيانات كبيرة مثل SQL
Server أو Oracle 11g ؟! وإن كان احتمال انتقالك إلى قاعدة بيانات أخرى كبيراً فلماذا تعتمد على قاعدة بيانات لها توسعات SQL خاصة ؟ مثل PL/SQL أو T-SQL ؟!

- حتى لغة التجميع !:
أيهما تختار لكتابة برنامجك لغة التجميع Assembly أم لغات الـ .NET؟ سيسارع الكثير إلى التأكيد على استخدام الـ .NET فمن الغباء استخدام لغة التجميع في هذا العصر!
كلنا يعلم أن لغة التجميع أسرع بكثير جداً (أحياناً آلاف المرات!) من غيرها من اللغات وخاصة اللغات المدارة managed، لكن السؤال المنطقي هل أنا بحاجة إلى هذه السرعة ؟
إن كنت لا تحتاج إلى هذه السرعة فلست بحاجة إلى لغة التجميع!، ولكنها خيار جيد لو كنت ستكتب برنامج ضغط خاص بك!

ويمكنك الاعتماد عليها بشكل جزئي لو أنك تحتاج إلى بريمج صغير يعمل على المخدم لمعالجة ملايين العمليات الحسابية ...

بالحقيقة ليس المهم ما تختاره بقدر أهمية وجود سبب لخيارك هذا !

بالنهاية كل ما أرجوه من إخوتي الطلاب مبرمجي المستقبل هو التحلّي بالنظر العميق والاعتماد على المنطق في تفكيرهم والبعد عن السذاجة والسطحية، والأهم: الكلام عن علم، فلا تتكلم عن جهل فتضيّع غيرك! فليس العيب في أنك لا تعرف، لكن العيب أن لا تتعلم!

ملاحظة: هذا الموضوع ليس موجهاً لأحد بذاته، بل هو موجه لي ولجميع الطلاب الذين يسعون لأن يصبحوا مبرمجي المستقبل المبدعين.

منقول - جزى الله عنا صاحبه كل خير

الباشا الكبير
06-30-2011, 11:18 PM
جزاك الله كل خير

وبارك الله فى صاحب الموضوع وجزاه كل خير وزاده من فضله

استمر يا رائع و رزقك الله الفردوس الأعلى

أبو ربيع
09-03-2011, 08:21 AM
مقال جميل..

الله يعطيك ألف عافية يالغالي..