كيفية تحصيل العلوم البرمجية للمبتدئين ؟
سألني أخٌ كريمٌ عن (كيفية تحصيل العلوم البرمجية من البداية) و ذلك بعد قراءته لأحد مقالاتي علي موقع وادي التقنية، فكان لي ردٌ مختصرٌ أنقله هنا بتصرفٍ للاستفادة:
- تعلَّم لغة برمجةٍ لها كثيرٌ من الكتب و المراجع و الدورات، و كذلك غير معقدة جداً.
و أنا أنصح بتعلم الجافا أو البايثون، و إن كنتُ أميل أكثر إلي الجافا لأسبابٍٍ كثيرةٍ ليس هنا محل ذكرها (رغم أنها أكثر تعقيداً من البايثون).
- كتابة برامج خاصة باستخدام تلك اللغة لخدمتك بشكلٍ خاص. و يمكن قراءة مقال (اكتب برامجك الخاصة) لإدراك أهمية هذه الجزئية جيداً.
- تعلم الخوارزمات algorithms المختلفة. مع الاهتمام بالتطبيق العملي لها قدر الاستطاعة في البرامج التي تكتبها لنفسك حتي تكتسب الخبرة العملية في العمل بتلك الخوارزمات.
- التعمق قدر الإمكان في هندسة البرمجيات software engineering، و لا أعني هنا الأجزاء النظرية الباردة التي تُعجب الأكاديميين، بل أعني الأجزاء التي تُهمك كمبرمجٍ في أرض الواقع، مثل نماذج التطوير للمشاريع البرمجية development models و غيرها مما له أثرٌ في الواقع العملي.
هذا بالطبع مع عدم إهمال تلك الأجزاء الباردة الطابع، بل يعني فقط تأخيرها بعض الشيء حتي يتم التمكن من الاجزاء الأكثر أهميةً عملياً، ثم بعد ذلك يمكنك مطالعتها أو التعمق فيها (حسبما تريد و يُتاح لك).
و أؤكد علي ضرورة أن تكتب برامجاً خاصةً لنفسك لتقتنع بأن البرمجة "متعة" و ليست مجرد "مهنة".
ممكن تفدين بكتب لل software engineering اللى بتهتم بارض الواقع :)
ردحذفصعيب يا جارحي ^_^
ردحذفللأسف كل كتب هندسة البرمجيات التي قرأتُها كانت من النوع الأكاديمي الذي يهتم بالأشياء العملية و كذلك الأمور غير العملية، و لم أجد النوع الآخر إلا في الويكيبيديا و كتب مبرمجي البرمجيات الحرة و الرسائل العلمية للفطاحلة (ترجمتُ بعضها هنا في المدونة). و حتي هذه أيضاً كان بعضها (و خصوصاً الويكيبيديا) يتضمن بعض الأسلوب الأكاديمي !
سيحتاج الأمر منك بعض البحث حتي تجدي ما تريدين، لكن إليكِ مجموعة من المقالات الجيدة (و لكنها قليلة و غير شاملة للأسف)
مقال: Programming paradigm
http://en.wikipedia.org/wiki/Programming_paradigm
مقال: من الحصاة إلي لغات البرمجة (هو فصلٌ من كتابٍ ضخم عن الفيجوال بازيك دوت نت)
http://www.rewayatnet.net/forum/showthread.php?t=40944
نقد البرمجة الكائنية oop
http://www.geocities.com/SiliconValley/Lab/6888/oopbad.htm
و هذه مجموعة من المقالات علي موقع أعجوبة لينوكس
http://ojuba.org/wiki/tag/%D9%85%D9%82%D8%A7%D9%84%D8%A7%D8%AA?do=showtag&tag=%D9%85%D9%82%D8%A7%D9%84%D8%A7%D8%AA
كما أن هناك مجموعة من المدونات التقنية التي أتابعها و ستفيدك خبرة أصحابها، و منها:
http://abueyas.wordpress.com/
http://zaherdirkey.wordpress.com/
http://www.nabeel.ws/index.php
http://abgoor.blogspot.com/
http://www.monzerosama.com/
http://atisstaif.wordpress.com/
و بالمناسبة: الفيديوهات التي تقدم ندواتٍ أو مؤتمراتٍ و يتحدث فيها مبرمجون مخضرمون لها فائدة كبيرة جداً و تعطيكي من الأسرار الكثير جداً.