الاثنين، 30 أبريل، 2012

النوم من أفضل طرق التنقيح debugging ^_^

عن تجربةٍ شخصية يعتبر النوم من أفضل طرق التنقيح ^_^
و حقيقةً قد جربت هذا بنفسي، ففي بعض الأحيان أكون قد كتبت خوارزماً algorithm  معقداً و تاكدت نظرياً من صحته، و حينما أختبر الكود أجد انه لا يعمل كما ينبغي ! 
و حينها أشمر عن ساعدي الجد و أبدأ مرحلة تنقيحٍ debugging مكثفة، و لكن في كثيرٍ من الأحيان أفشل في البداية في العثور علي الخطأ. ثم أنام قليلاً (تاركاً الجهاز يعمل و الكود مفتوح)، و حينما أصحو أنظر إلي الكود مرةً واحدة فأري الغلط bug الذي وقعت فيه، و بإصلاح سطر أو سطرين يعمل الكود كما ينبغي.
و الأمر ليس صدفةً كما قد يبدو؛ فالراحة العقلية التي يوفرها النوم و كذلك الابتعاد عن التفكير في الكود نفسه بدقائقه و تعقيداته يجعل الذهن أكثر تجرداً و أدق نظراً. و ليس النوم فقط هو ما يؤدي إلي ذات النتيجة، فالتنزه أو مشاهدة التلفاز أو الدخول علي الفيسبوك و غيرها من صارفات الذهن الأُخر تؤدي نفس الوظيفة، علي ألا يكون صارف الذهن مسبباً للنكد أو مرهقاً ذهنياً بما يقتل فائدة الترويق الذهني له.
في النهاية: عزيزي المبرمج لو كَلَّ ذهنك و عجزت عن إيجاد علة الكود نم قليلاً ^_^

الخميس، 12 أبريل، 2012

أيها الفيجوال استوديو: تحيةٌ إلي أيامك الحلوة :)

رغم أني كففت عن استعمال أي شيءٍ يخص مايكروسوفت منذ فترةٍ طويلة (بدايةً من نظام التشغيل مروراً بالبرمجيات الأخري)، إلا أنه لا يمكنني أن أنسي الفيجوال استوديو Visual Studio أبداً؛ و سبب ذلك أنني بدأت تعليمي البرمجي مع لغة الفيجوال بازيك6 (VB6) التي تنتجها مايكروسوفت، ثم بعد ذلك مررت بفترةٍ كريهةٍ مع الفورتران90 (fortran90) سرعان ما نسيتها حينما ولجت إلي عالم الـ++C و الذي كالعادة كان تحت ظلال منتجات مايكروسوفت، و حينما أردت في باكالوريوس هندسة أن أستقر علي لغة برمجةٍ واحدةٍ أدرسها بتوسعٍ قدر الإمكان و أستخدمها في مختلف أنواع المشاريع البرمجية: استقر رأيي علي لغة الـ #C الحبيبة.
و حينما أنهيت الباكالوريوس كنت قد استخدمت الـ#C في أنواعٍ مختلفةٍ من المشاريع، أذكر منها: 
مشاريع مادة أنظمة التشغيل operating systems، 
مشروع التخرج (game development using c# and XNA)، 
و كذلك مشاريع مادة الاختبارات العملية (test)، و أتذكر منها مشروعاً عن برمجة الشبكات، و آخراً لمحاكاة برنامج الماتلاب (Matlab emulator) و هذا المشروع الأخير كان له تأثيرٌ كبيرٌ جداً علي فكري و مسار حياتي فيما بعد.
بعد ذلك كانت هناك أمورٌ أخري جعلتني أترك عالم مايكروسوفت للأبد، و لذات الأمور تقريباً تركت عالم الـ#C و الفيجوال استوديو كله. و لما أمعنت البحث عما يمكنه إغنائي من لغات البرمجة الأخري و يمكنني أن أجعله بديلاً قوياً للفيجوال استوديو كبيئة برمجةٍ متكاملةٍ و الـ#C كلغة تطويرٍ سريعٍ كفءٍ: وجدت لغة الجافا java و بيئة النتبينز NetBeans. 
الشاهد مما فات: أنني في رحلتي القصيرة مع عالم البرمجة تعلقت كثيراً بالفيجوال استوديو لدرجة أن شعاره فقط كان كافياً لجعلي أهتز طرباً (حقيقةً لا خيالاً)، و كان من الممكن أن أفتح الفيجوال استوديو علي حاسوبي حتي بدون أن أعمل علي مشروعٍ معين لكن للاستمتاع بمنظر الفيجوال استوديو و نوافذه !
لذلك أقول أنني رغم كوني لا أميل لمنتجات مايكروسوفت و أفضل عليها غيرها في كل اختياراتي، إلا أنني لا أنسي أبداً الأيام الجميلة التي قضيتها مع الفيجوال استوديو و التي تعلمت فيها بفضل قوته الكثير من الأمور التي أجني الآن ثمارها، و لا أبالغ إن قلت أن وجود الفيجوال استوديو في حياتي منذ بداية حياتي التعليمية كمهندس حاسبات كان من أكبر الأسباب التي جعلتني أحب البرمجة و أجد فيها نفسي.

فيا أيها الفيجوال استوديو: تحيةً إلي أيامك الحلوة :)