البرمجة و لغات البرمجة

البرمجة :
هي قدرتك على التفكير و التحليل المنطقي لإيجاد حل لمشكلة معينة..وهذا الحل يسمى خوارزميات .. فالبرمجة هي منطق .. فإذا كان المنطق لديك قوي فأنت مبرمج ناجح.. لذلك يجب عليك في مرحلة تعلم البرمجة أن تركز على كيفية تطوير المنطق لديك .. لتكون لديك القدرة على حل أصعب المشاكل.
لغة البرمجة:
هي مجرد أداة لتطبيق الحل و هي لا تشكل أكثر من 5% من تعلم البرمجة !
لغة البرمجة يمكنك تعلمها بشهر واحد أو شهرين .. هي وسيلة لكتابة حل المشكلة "البرنامج" فقط.. و إذا كنت قادرا على حل مشكلة معينة فيمكنك أن تحلها على أكثر من لغة برمج و الاختلاف يكون فقط في كيفية استخدام الأدوات في كل لغة برمجة "كيفية كتابة السطر البرمجي" وهو فرق سطحي طالما تمتلك المنطق القوي لحل مشكلة ما .
الآن عليك معرفة أن تعلّم لغة برمجة و الخوارزميات في وقت واحد أمر سيتعبك جداً و سيؤخرك في التعلم لأن أي كود جديد يمر معك ستتعب كثيراً حتى تتمكن من فهمه بنفسك, و أي مشكلة تواجهها في الكود ستتعب كثيراً في حلها و قد لا تتمكن أصلاً من حلها لأنك قد لا تعرف سببها.
الخوارزميات بحر كبير جداً من المعرفة و لكنك لا تحتاج معرفتها كلها كمبتدئ.
لذا.. يلزمنا لغة برمجة بسيطة و تمتلك كل الأدوات لنتعلم من خلالها الخوارزميات "أساسيات البرمجة" ومن ثم يمكننا تطبيقها على أي لغة أخرى ..
و هذه اللغة هي لغة ++C
هي لغة برمجة تجميعية ( Compiled ) و كائنية ( Object Oriented ) تضم العديد من مميزات لغات البرمجة عالية المستوى ( High Level ) و منخفضة المستوى ( Low Level ) و هذا يعني أنك قادر على فعل ما تشاء بها.
هذه اللغة الرائعة مصممة لتعمل على جميع أنظمة التشغيل المعروفة مثل ويندوز, ماك, لينكس, إندرويد إلخ.. و هي تعتبر من أقوى و أشهر لغات البرمجة على الإطلاق و يطلق عليها "أم اللغات" نظراً لأنها لغة قوية و موجودة منذ زمن طويل.
مميزات لغة C عن باقي لغات البرمجة
مفتوحة المصدر
لن تدفع أي مبلغ لتعمل على لغة ++C, فهي مصدر مفتوح و مجانية و ستبقى مجانية مدى الحياة.
خفيفة
تستطيع البرمجة بها حتى و لو كان حاسوبك ضعيفاً أو قديماً.
البساطة
تعلمها سهل جداً بعد أن تفهم برمجة الكائنات.
سرعة الترجمة
تتم ترجمة لغة ++C إلى أوامر يفهمها الجهاز بشكل سريع جداً.
لغة كائنية ( Object Oriented )
مع أن لغة ++C صممت لتكون قريبة من عتاد الجهاز و قريبة للغات منخفضة المستوى إلا أنها تتيح لمستخدمها بناء الكلاسات و التعامل معها بطرق منهجيات البرمجة الكائنية ( OOP ) مثل الوراثة و تعدد الأشكال و غيرها من المبادئ التي ستتعلمها لاحقاً في الدورة.
متعددة النماذج
تسمح لغة ++C لمستخدمها باختيار الطريقة المناسبة له لكتابة الكود البرمجي من بين عدة نماذج مختلفة مثل النموذج الهيكلي ( Structural ) الشبيهة بلغة C و النموذج الكائني ( Object Oriented ) الشبيه بلغة C++.
الدعم الكبير
لغة ++C من اللغات القديمة نسبيا و المنتشرة بشكل كبير مما جعل منها لغة ذات شعبية كبيرة و مصادر تعلم مختلفة و متعددة و دعم كبير من قبل مجتمع المطورين.
ماذا يجب على أن أتعلم بلغة ++C ؟
- التعرف على أساسيات اللغة ( الجمل - المتغيرات- الثوابت -الدوال- المؤشرات)
- Object oriented programming
البرمجة كائنية التوجه ( ازاي أخلي البرنامج بتاعي يقدر يصنف الناس .. ويتعامل مع كل فئة معاملة مختلفة.. مثلا: هعمل برنامج للجامعة زي Banner كده إزاي أخلي البرنامج يتعامل مع الطلاب بطريقة معينة و يتعامل مع الدكاترة و المعيدين بطريقة مختلفة بحيث إن الطالب مثلا يظهرله شاشات و بيانات معينة .. و ليه صفات معينة زي إنه مسجل في مواد و ليه درجات في المواد دي و نوع القسم اللي هو فيه و التقدير بتاعه .. ولكن الدكتور لي فقط المواد اللي هو بيدرسها و حالة الطلاب اللي مسجلين معاه و بعض بياناتهم.. )
- Data structures
وهي ببساطة ترتيب و هيكلة البيانات الخاصة بالبرنامج
تخيل معي أنك صاحب جامعة كبيرة وعندك آلاف الطلاب الذين يسجلون كل سنة وفي سنة واحدة حصلت على 5000 طالب جديد ومعك السجلات الخاصة بهم, الآن هناك الكثير من العمليات التي سوف تقوم بها سنويا وهي حذف طالب تم تخرجه وإضافة طالب جديد وتعديل بيانات طالب موجود بالفعل وهكذا تخيل معي لو لم يكن هناك طريقة لترتيب البيانات وأنواع البيانات فلن تستطيع القيام بهذه العملية بسهولة لكن ماذا لو قمنا بعمل Sort للبيانات أبجديا على سبيل المثال ؟ سوف تستيطع الآن الوصول بسهولة لمن تريد وتعديل بياناته ويمكنك أيضا تطبيق هذا المثال على شخص عنده آلاف الكتب كلها غير منظمة وكل مكان فيه مجموعة كتب ليس لها علاقة ببعضها وحاولت ان تبحث عن كتاب معين في هذه الكتب يجب عليك المرور عليها جميعا أو على الاقل بالمعدل نصفها حتى تصل للكتاب الخاص بك مع العلم أنك متأكد انه موجود لكن تخيل معي أن هذا الشخص يملك مكتبة منظمة بالأقسام وفيها قسم الروايات الخاصة بالجيب وداخل الروايات كل رواية مرتبة بالرقم الخاص بها وهنا كل ما عليك هو البحث عن الروايات وداخلها رواية رقم 50 فسوف تصل سريعا جدا وهكذا.
- Algorithm
الخوارزميات ليست لغة برمجة, إنما هي طرق التحليل و التفكير التي عليك اتباعها حتى تتمكن من كتابة الكود بشكل صحيح.
- Design patterns
هو مجموعة من الحلول البرمجية المكتسبة من أعمال، تجارب، أخطاء وخبرات العديد من المطورين للحصول على كود برمجي أمثل وقابل لإعادة الاستخدام من طرف مبرمجين اخرين. الـ design pattern ليس محتكر على لغة معينة فبالإمكان استخدامه في جميع اللغات البرمجية، لكن في الغالب يتم العمل به في الـلغات كائنية التوجه (Oriented Object).
(بدل ما نعيد اختراع العجلة بنستخدم حاجات جاهزة توفر لينا الوقت)
- Problem solving
إستراتيجية حل المشكلات Problem Solving هي نشاط ذهني منظم للطالب . وهو منهج علمي يبدأ باستثارة التفكير ، بوجود مشكلة ما تستحق التفكير ، والبحث عن حلها وفق خطوات علمية ، ومن خلال ممارسة عدد من النشاطات التعليمية .
( نماذج من المشكلات اللي بتحتاج تفكر ليها في حلول .. بتبقا قريبة جدا من المشاكل اللي ممكن تواجهها و أنت بتفكر في برمجة أي برنامج بعد كده)
تعليقات
إرسال تعليق