الاثنين، 20 يوليو 2009

شيفرة مصدرية للقراءة !!

تكلمت في تدوينة “كيف تستمر بالتعلم وتطور نفسك”  أن قراءة الشيفرة المصدرية (Source code) من الامور التي تساعدنا على تعلم البرمجة أكثرو ساقتبس هنا قولا لإيريك س. ريموند منظر البرمجيات مفتوحة المصدر الشهير في مقالتة المشهورة How to become a hacker عن اهمية قراءة  الشيفيرة المصدرية.
Learning to program is like learning to write good natural language. The best way to do it is to read some stuff written by masters of the form, write some things yourself, read a lot more, write a little more, read a lot more, write some more ... and repeat until your writing begins to develop the kind of strength and economy you see in your models.
وهذه ترجمة الفقرة من النسخة العربية للمقال بتصرفي.
تعلم البرمجة يكاد يكون مثل تعلم أي لغه بشريه حيث أفضل طريقة لتعلم اللغات البشريه هي قراءة بعض ما هو مكتوب من قبل أساتذة تلك اللغات و كتابة بعض الأشياء بنفسك و قراءة الكثير و كتابة القليل ثم قراءة الكثير و كتابة القليل حتى تبدأ كتاباتك في التطور لتصل إلى المستوى الذي تريده.
و هذه حقيقة فنحن حتى الأن في صناعة البرمجيات نتعلم من بعضنا الاخر فما ان تخرج التقنية او اللغة إلى العلن حتى يتبعها موجة من التفاعل حول انسب الطرق لإستخدامها وافضل اساليب التطبيق فيما يعرف بال(Patterns and Practices )  و بدون هاذا التبادل المعرفي لما كان لنا إلا أن نتعلم من اخطانا و هو ما يكلفنا كثيرا.
سأضع هنا مجموعة من المشاريع التي تعلمت منها و تعلم من طريقة كتابتها.
  • DasBlog: برنامج التدوين الاول في عالم دوت نت فكرته ان يوفر بنية لمدونة تعتمد على الملفات البسيطة لتخزين محتوياتها فيه الكثير من الافكار الجميلة على الرغم انه اصبح قديما فبعض المشاكل التي يحلها مثل القوالب (Themes)اصبحت موجودة بشكل طبيعي و بشكل افضل من قبل المكتبة الاساسية في الدوت نت و هي خاصية تدعى بال (Master Page).
  • SubText: برنامج تدوين اخر و لكنه على نطاق اوسع يدعم قواعد بيانات مختلفةو يصلح لإنشاء مجتمع تدويني.
  • DotNetNuke: لم يتوقف هذا البرنامج عن إضافة الجديد و الجميل من الأفكار ليدفع به ليكون أفضل برنامج إدارة محتوى مفتوح المصدر في عالم الدوت نت.
  • Storefront: قام الرائع روب كونري ببناء هذا البرنامج مع مجموعة من الشروح المسجلة علية لتعليم المكتبة الجديدة لبناء تطبيقات الويب في دوت نت ASP.NET MVC و التي تقدم إطار عمل Framwork شبية في بعض نواحيها ب Ruby On Rails و PHP Cake و Django و غيرها من المكتبات الجديدة حيث كان احد أفراد الفريق الذي قام ببنائها و على فكرة المكتبة ذاتها مفتوحة المصدر بالكامل و تم بنائها بالاعتماد على مراجعات مجتمع المطورين حول مايكروسوفت.
  • C4F dev kit:في هذا ستجد مجموعة من البرامج الجميلة التي نشرت في دروس في مدونة Codeing 4 Fun تستطيع أن تتعلم فيها اشياء مختلفة مثل برامج تشارك الصور او التعامل مع البلوتوث من برنامجك.
  • Witty: هذا برنامج للتراسل على تويتر Twitter  مبني بإستخدام WPF لعمل واجه المستخدم.
هذه برامج تعلمت منها الكثير و ارجو لكم أن تستفيدو منها ,  وحتى تكون الإستفادة اكثر أمرر و اجب تدويني او ما يطلق علية Tag لكل من
و الواجب هو:
كيف تصقل مهاراتك كمبرمج؟
ما رأيك بفكرة قراءة الشيفرة المصدرية للتعلم ؟
و هل هناك برامج مفتوحة المصدر تعلمت منها ؟ إذكرها إن وجد
وصلات:

هناك 8 تعليقات:

  1. ما أجمل ما كتبت. والذي يظهر اطلاعك الواسع ومعرفتك الكبيرة...

    شكرا لكم صديقي..حقا قد استفدت من مقالتك

    ردحذف
  2. حياك الله أخي احمد و اعتقد ان عندك ايضا الكثير لنستفيد منه

    ردحذف
  3. أهلا بك عزيزي عمر
    موضوع شيق و ها أنا قمت بحل ما علي من واجب
    http://www.badwi.com/default.asp?ID=168

    ردحذف
  4. موضوع شيق , ورائع لنشر الفائدة

    سوف أحاول حل الواجب في القريب العاجل

    ردحذف
  5. أتأسف على التأخير

    http://shamekh.ws/?p=682

    ردحذف
  6. عذراً على التأخير وهاهو الواجب:
    http://dev.holooli.com/2009/08/24/%D8%B7%D8%B1%D9%8A%D9%82-%D8%A7%D9%84%D8%A8%D8%B1%D9%85%D8%AC%D8%A9/

    شكراً لك أخي الكريم

    ردحذف
  7. برنامج البوابة العربية، لإدارة المحتوى CMS بلغة PHP.
    كان هو مصدري للتعلم الوحيد في بدايتي مع اللغة عام 2006.

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

    ردحذف