Saturday 30 November 2013

تعلم منهج لغات البرمجة قبل البدء فى التعلم



خلال السنتين الاخيرتين انفتح العالم وخصوصا الشباب على علم المعلوماتية والتقنية بشكل كبير جدا واصبح تعلم لغة برمجة هواية لكل شخص وميزة يفتخر بها امام اصدقائه
وانا كمبرمج اود ان اوضح الى اي مدى تصل عندما تتعلم لغة برمجة وتصحيح بعض المفاهيم المغلوطة حول هذا العلم وسوف اعطيكم المفتاح للبدا بهذا المشوار وكل المقالة موضحة بشكل مبسط تصلح لكل الفئات والاعمار
ماهي البرمجة ؟؟
هي سلسلة من الاوامر او الشفرات التنفيذية نقوم بادخالها للحاسب ليقوم بعمل معين (هذا الكلام مفروغ منه ومعروف لدى الجميع )
من هم المبرمجون ؟
اردت هنا توضيح ماذا يفعل المبرمج لان الكثير من الاشخاص يتعدون على هذا العلم ويدعون بانهم مبرمجين احترافيين …المبرمج هو الشخص الذي يقوم بالتفكير في خوارزميات وحلول من اجل تنفيذ شيء معين مثلا : المبرمج يحتاج الى خوارزمية معينة لكي يستطيع المستخدم حفظ الملف النصي
من المبرمج الحقيقي والذي يدعي بانه مبرمج ؟؟؟
كل شخص يقوم بتطوير مواقع الانترنت لا يعتبر مبرمجا حقيقيا مادام لم يتعرف على لغة برمجة للتطبيقات والملفات المكتبية DLL* لان لغات البرمجة الخاصة بالويب لا تحتاج لخوارزميات فهي تقوم باظهار الكائنات والرسوميات كلغة HTML فهي تكون سهلة ولاتحتاج لتفكير طويل كما سنذكر لاحقا فيستطيع اي مصمم تعلم لغة HTML وبذلك يفترض انه اصبح مبرمجا
الهاكرز :  الهاك Hack او القرصنة هي القيام بكسر الحماية والدخول الى ملفات البرنامج او الموقع او قواعد البيانات لاغراض مخصصة ,,ليس كل من تعلم الباك تراك مبرمج وكما ذكرنا ليس كل من تعلم لغة برمجة ويب بقصد الهاك هو مبرمج حقيقي لانه لايقوم بالتفكير في تلك الخوارزميات الصعبة وانما يتعلم بدورات خاصة اين يجد كلمة السر وكيف يخترق الحمايات ويتعلم انواعها فعمله محدد يزيد بالمعرفة
اختصاصو التقنيات IT : ان كل من يستطيع تصليح جهازك او تنصيب نظام جديد او تركيب قطع في الجهاز ان يكون مبرمجا لان مجال التقنية IT هو من يختص بهذه المهام وليس البرمجة
المبرمج الحقيقي  : هو من يفكر في الخوارزميات والحلول ويستغرق وقته في التفكير اكثر من كتابة الاكواد البرمجية
غالبا ما يكون المبرمجون الهواة فئة مستضعفة نوعا ما لانه لايوجد منظمات تستطيع استيعابهم وتوظيفهم بمهن معينة ونسبة جيدة منهم تتحول لمصمم مواقع انترنت فقط من اجل كسب المال
————————————- لقد وضحنا ماذا يعني مبرمج
لغات البرمجة ليست ختم المعلوماتية
ليس كل من تعلم لغات البرمجة فهو قد انهى علم المعلوماتية او اصبح محترفا فيه فله اختصاصات اخرى لابد ومن الضروري ان تحتاجها لكي تمم عملية برمجة لعبة او برنامج كمثال : انت لاتستطيع ان تبرمج لعبة دون ان تعلم بالذكاء الصناعي لان الرسومات التي امام المستخدم ( اشخاص ,,,سيارات ,,, طلقات نارية) توكل مهامها للحاسوب من خلال علم الذكاء الصناعي وايضا عليك تعلم اختصاص الشبكات لكي تستطيع ان تجعل لعبتك يمكن ان تلعب من قبل اشخاص على الانترنت او الشبكة المنزلية
لاتتعلم العديد من اللغات البرمجية
ليس من الضرورة انه عندما تتعلم اكبر عدد من لغات البرمجة كلما وصلت للاحتراف فلغات البرمجة البعض منها متخصص في الويب او قواعد البيانات او التطبيقات او تطوير انظمة تشغيل فتعلم بحسب اختصاصك الامر الاخر انه هناك لغات برمجة قديمة وهناك الجديدة التي احتوت على القديمة فليس من الضرورة تعلم لغة الباسكال او الكوبول لان هناك ماهو متطور اكثر واقوى وايضا ليس من الضرورة تعلم لغات برمجة عديدة في نفس الاختصاص تعلم الاقوى اولا كمثال : تمثل لغة السي عائلة كاملة حيث انها اقوى لغة برمجة وتعد الاولى بالتصنيف من حيث الاستخدام والقوة في البرمجة وتم تطوير منها لغة سي ++ ولكن من يعلم السي ببساطة سوف يستخدم سي ++ الا بالتعرف عالتطورات الجديدة وبعد سي جائت جافا مشابهة لها لكن متقدمة في طرق البرمجة الجديدة(الكائنية التوجه OOP) ثم جائت C# ك لغة سي ++ ولكن تخلصت من كل المصاعب التي كانت سببا لقوة سي ++ فمن يتعلم الاقوى يتعلم الابسط كما ذكرنا وايضا كل لغات البرمجة جميعها تحتوي على صيغ اساسية موحدة فلدينا IF للشرط و While و For للتكرار وما يختلف فقط هو التنسيق ففي عائلة السي ينتهي السطر البرمجي ب ; بينما في فيجوال بيسك .نت لا تحتاج
تعلم المنهجيات البرمجية
البرمجة بشكل عام تقسم لانواع بحسب نوع الخوارزميات وطرق التفكير المستخدمة فهناك اللغة الكائنية التوجه (C# ,,, Java,,,VB.net) والهيكلية (C,,,C++) والامرية فكمثال لدينا اللغة الكائنية التوجه مبدا التفكير العام فيها ان كل المعطيات والبيانات الرئيسية تكون على شكل صفوف وتستطيع اخذ خصائصها عن طريق كائنات كالصفوف والطلاب بينما الامرية تعتمد على الاوامر بشكل رئيسي فكل ما تعلمت هذه المنهجيات كلما كان تعلم لغة البرمجة بسيط جدا جدا
لا تقصر تعلمك على لغات البرمجة فقط
كما ذكرنا لغات البرمجة لوحدها لن تنفعك كثيرا بل تحتاج ولو لالقاء نظرة عامة على الاختصاصات الاخرى كالذكاء الصناعي او الشبكات ومن الضروري تعلم ال IT كي تعلم كيف تستطيع اصلاح جهازك في حال عطله لانه كيف لصانع برامج الجهاز لايعلم كيف يصلحه
قبل البدا
قبل البدا بتعلم لغة برمجة او اثناء الاختيار في لغة برمجة مناسبة قم بقراءة مقالات عنها كيف نشات وتطورها الى الان وهل هي ما زالت في تطور وابحث عن برامج كتبت فيها او تطبيقات او مدى علاقتها بالاجهزة الذكية
قم بتقوية لغتك الانكليزية
لانه طبعا الشفرات البرمجية باللغة الانكليزية وقد تشكل كلمات مفهومة بهذه اللغة
الامر الاخر لانه يفضل ان تتعلم من المراجع الانكليزية
ما هي المراجع الاقوى ؟؟
طبعا وللاسف المراجع الاجنبية تعطي مراجع اقوى وذلك لاسباب متعددة منها : بعض السلاسل تطرح امثلة واقعية كتشبيه للكود حتى تضح الصورة ,, كل السلاسل الاجنبية تعطي مع كل درس مثال وهو عبارة عن كود وفي نهاية كل فصل او درس يطلب منك واجبا حتى تستطيع ان تفهم الكود
لا مانع من ان تقرا كتاب عربيا او تاخد دروس عربية لكن قم بمراجعة الكتب الاجنبية وذلك لكي توضح بعض المفاهيم ان لم تفهمها باللغة الاجنبية
انصحك اولا بمشاهدة دروس صوت وصورة فتتخزن المعلومات في ذهنك بشكل اقوى على النسيان وبعدها ابدا بالكتب لان الكتب سوف تمر بمرحلة تحس بان الكتاب صعب وممل ولايمكن فهمه بينما الدروس سوف تكون ممتعة اكثر
الجميع يقول : قم بتطبيق جميع الامثلة التي تعطى لك
حسنا انا لا ارى ماهو جيد في التطبيق لان الامثلة المطروحة هي امثلة بسيطة جدا لتوضيح الفكر وليس للتطبيق ولكن لا مانع من تطبيق الكود
لانه : اثناء عملك الجاد سوف تشعر بانك قد نسيت كل المعلومات والتطبيقات فتبحث عن مراجع وفيديو مخصص لمشكلة تريد حلها 
ولذلك احرص على وجود مراجع لديك حتى تعود عليها ان صعب عليك الامر لانه في البرمجة لا يمكنك حفظ شفرات او كودات فذلك صعب وان استطعت فسوف تنساه في ايام
اخيرا  : لاتفكر يوما بانك ان اتممت لغة برمجة فانت قادر على برمجة كل ما تريد سوف تحتاج الى فريق عمل على الاقل مكون من اربعة اشخاص وسوف تجد نفسك غير قادر على فعل شيء لوحدك رغم تعلمك كل شيء …البرمجة شيء صعب فلا تتذمر عندما تتطلب من المبرمج لعبة برسوميات خارقة لانه سوف يبذل لك جهدا حتى يصل الى XO او الاربعة تربح او طاولة الزهر
نتمنى لكم رحلة موفقة في عالم البرمجة

0 comments:

Post a Comment