تكلمت في تدوينة “كيف تستمر بالتعلم وتطور نفسك” أن قراءة الشيفرة المصدرية (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 لكل من
- عماد العشي تحديث عماد كتب عن الموضوع هنا.
- محمد بدوي تحديث محمد كتب هنا عن الموضوع.
- زاهر غيبة تحديث زاهر كتب عن الموضوع هنا.
- شامخ تحديث وسيم كتب عن تجربته هنا.
- و محمد حجازي( أبارك لك فوزك بجائزة شبايك).
و الواجب هو:
كيف تصقل مهاراتك كمبرمج؟
ما رأيك بفكرة قراءة الشيفرة المصدرية للتعلم ؟
و هل هناك برامج مفتوحة المصدر تعلمت منها ؟ إذكرها إن وجد
وصلات:
- المقالة العربية “ كيف تصبح هاكرا” – على فكرة اذا كنت تعتقد ان الهاكر هو المخترق و المخرب فعليك ان تقرأ المقال لأنه سيغير وجهة نظرك كليا.
ما أجمل ما كتبت. والذي يظهر اطلاعك الواسع ومعرفتك الكبيرة...
ردحذفشكرا لكم صديقي..حقا قد استفدت من مقالتك
حياك الله أخي احمد و اعتقد ان عندك ايضا الكثير لنستفيد منه
ردحذفأهلا بك عزيزي عمر
ردحذفموضوع شيق و ها أنا قمت بحل ما علي من واجب
http://www.badwi.com/default.asp?ID=168
موضوع شيق , ورائع لنشر الفائدة
ردحذفسوف أحاول حل الواجب في القريب العاجل
أتأسف على التأخير
ردحذفhttp://shamekh.ws/?p=682
عذراً على التأخير وهاهو الواجب:
ردحذف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/
شكراً لك أخي الكريم
برنامج البوابة العربية، لإدارة المحتوى CMS بلغة PHP.
ردحذفكان هو مصدري للتعلم الوحيد في بدايتي مع اللغة عام 2006.
شكراً لك أخي الكريم على فتحك لباب التعليق في هذا الموضوع.
ردحذفلكن لي ملاحظة صغيرة، وهي أن (أصل) معنى هاك، سلبي. ولكن المبرمجين أرادوا أن يلووا معناه ليطوعوه لخدمتهم.
وإلا لو رجعت إلى أمهات معاجم اللغة، لما وجدت المعنى الإيجابي الذي يتحدث عنه المبرمجين. بل إن مصطلحات الحاسب الآلي لم تنشأ إلا بعد نشوء الحاسب الآلي. أما اللغة الاتينية والتي تفرعت عنها اللغة الانكليزية فهي قديمة، والمعنى الأصلي لكلمة هاك القديم فيها هو معنى سلبي.
وللتأكد راجع معاجم اللغة بنفسك.