الثلاثاء، 21 مارس 2006

ملخص مقالات في البرمجة - 1

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

بعض المقالات تحوي 10 نقاط أو 12 نقطة لكنني لخصتها في أقل من ذلك، فعلت ذلك لأنني أتجاوز النقاط التي تتعلق ببيئة العمل في الشركات الأمريكية، لأن بيئة العمل لدينا مختلفة، ومن الصعب أن تطبق ما يحدث لديهم في بيئة العمل لدينا.

نقطة أخيرة: يمكن لأي شخص أن يستخدم هذه النقاط كأساس لترجمة المقالات.

  1. التدرب على البرمجة
    1. أداء عملك كل يوم "كمبرمج" لا يعني أنك تتدرب وتكتسب خبرات جديدة.
    2. يجب أن تخصص وقتاً للتدريب لتكتسب فيه خبرات وأفكاراً جديدة.
    3. هناك مهندسون يتقنون عملهم بكفاءة عالية، مع ذلك يخصصون وقتاً للتدريب، التعليم لديهم عملية مستمرة.
    4. في الغالب، إذا التحقت بوظيفة فلن يكون لديك وقت كافي للتدريب، عليك أن تعمل على أن تخصص وقتاً للتدريب وتتدرب يومياً إن استطعت.
    5. إذا لم تتدرب ستفقد مهاراتك وسيتخطاك الآخرون ولن تجد وظيفة، لا يهم إن كان لديك 20 عاماً من الخبرة وأنت لا تعرف كيف تستغل التقنيات الحديثة المنتشرة.
    6. معظم الخبرات التقنية لها وقت محدود ثم تصبح غير نافعة ولذلك عليك أن تتعلم وتتدرب باستمرار.
    7. أقرأ عن نظريات الحاسوب والبرمجة وعلماء الحاسوب.
    8. إقرأ برامج الآخرين.
    9. أكتب قائمة بعشر أدوات للبرمجة تشعر بأنها ضرورية ولا يمكنك الاستغناء عنها، إقرأ أي وثائق أو مقالات حول الأدوات وتعلم خصائصها الجديدة.
  2. عشرة كتب رائعة
    1. The Pragmatic Programmer: From Journeyman to Master
    2. Refactoring: Improving the Design of Existing Code
    3. Design Patterns: Elements of Reusable Object-Oriented Software
    4. Mastering Regular Expressions
    5. The Algorithm Design Manual
    6. The C Programming Language
    7. The Little Schemer
    8. WikiWikiWeb
  3. عشرة تحديات، قائمة أخرى للكتب، لم ألخصها لأن كل الكتب التي تضمها القائمة موجهة لمحترفي البرمجة، وأعني بذلك المبرمجون الذين يتعمقون بشكل كبير في تخصصهم.
  4. حول معنى hacking
    1. من الصعب كتابة تعريف بسيط لمصطلح hacking، لكن هذا المصطلح يضم معاني مثل: اللعب، الاكتشاف والذكاء.
    2. الهاكر لا يحترم القواعد السخيفة.
    3. في الثمانينات عندما بدأت وسائل الإعلام في تغطية أخبار الهاكر، ركزت كثيراً على من يخترق الأنظمة ويتجاوز الحماية، متناسية كل أنشطة الهاكر الأخرى.
    4. يمكنك تصحيح هذا الخطأ باستخدام مصطلح "كراكر" لمن يخترق الحواسيب والشبكات وتنبيه وسائل الإعلام إلى خطأ استخدام مصطلح هاكر لوصف مخترقي الأنظمة.
  5. 12 خطوة لبرامج أفضل.
    1. استخدم نظاماً للتحكم بمصدر البرنامج وتبسيط عملية المشاركة بين أكثر من مبرمج.
    2. استخدم نظاماً يقوم في خطوة واحدة بتجهيز البرنامج في شكله النهائي.
    3. قم بإنشاء نظام يبني لك البرنامج بشكل صحيح يومياً، في حال حدوث خطأ ما يمكن تدارك الخطأ سريعاً.
    4. استخدم قاعدة بيانات لحفظ وتوثيق الأخطاء والثغرات.
    5. قم بتصحيح الأخطاء قبل كتابة أجزاء جديدة من البرنامج.
    6. قم بإنشاء جدول زمني يوضح كم سيحتاج البرنامج لإنجازه.
    7. أكتب قائمة المواصفات التي سيحويها البرنامج.
    8. وفر بيئة عمل مناسبة للمبرمجين.
    9. استخدم أفضل الأدوات التي يمكنك شراءها.
    10. وظف أناساً يختبرون البرنامج.
    11. ااختبر قابلية الاستخدام للبرنامج.