مسارات البرمجة

  • ما هي البرمجة؟

     

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

    يمكن وصف برامج الكمبيوتر بأنها تفاعلية أو دفعية من حيث ما يحركها ومدى استمرار تشغيلها.

    What is Computer Programming? Defining Software Development.

    البرمجة هي أقوى مجالات الحاسب الآلي و هي لغة التخاطب بين الإنسان ” أنت ” و الآلة مثلها مثل اللغة العربية أو أي لغة أجنبية أخري.

    هي عبارة عن مجموعة من الأوامر التي توجه للحاسب لغرض ما سواء للتعامل مع البيانات أو كيفية تنفيد سلسلة من الأعمال المطلوبة و التي تسمى الخوارزميات.

    و تتم هذه العملية باللغة البرمجية التي يختارها المبرمج ( الشخص الذي يكتب الأوامر ) فلكل لغة برمجية خصائص تميزها عن الأخرى .

    يجب أن نأخد بعين الإعتبار المهمة المطلوبة لكي نستخدم اللغة البرمجية الصحيحة لبناء أو تنفيذ هذه المهمة.

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

     

    مجال الويب: وينقسم إلي: تصميم الويب وبرمجة الويب.
    مجال تطبيقات الهاتف.
    مجال أنظمة التشغيل.
    مجال برامج وتطبيقات الحاسب الآلي: “سطح المكتب”.
    مجال الألعاب.
    مجال إدارة وبرمجة قواعد البيانات.
    مجال برمجة الروبوتات.
    مجال برمجة الآلات الإلكترونية ( داخل في مجال الروبوتات ).
    والآن سنتعرف علي أهم لغات البرمجة المستخدمة في هذه المجالات قبل أن نشرح كل مجال منها وكيفية العمل به والوظائف التي يوفرها.

    لغات البرمجة وخصائصها
    لغة البرمجة في الأساس هي الوسيلة التي تمكن المبرمج من كتابة برنامجه في هيئة تعليمات وأوامر يفهمها الحاسب بغرض تنفيذ العمل المطلوب.

    من المعروف ان الحاسب يحول اللغة المكتوب بها البرنامج إلى سلسلة من رقمين هما: 0 و 1، ويبدأ على أساسها عمله. ولكتابة الأوامر، توفر لغة البرمجة المختارة مجموعة من الأمور الأساسية للاستناد إليها أثناء عملية تكوين البرنامج ومجموعة من القواعد التي تمكن من التعامل مع معلومات وتنظيمها بغرض أداء العمل المطلوب.

    تتمثل هذه الأسس والقواعد بصفة عامة في:

    المعلومات وتخزينها
    الأوامر وتنظيم سيرها
    التصميم الخاص
    تنقسم لغات البرمجة بناء على قربها من اللغات الإنسانية إلى:

    لغات عالية المستوى (قريبة من اللغة التي يفهمها البشر) مثل سي وجافا.
    لغات منخفضة المستوى (كلغة التجميع؛ وهي قريبة من لغة الآلة).
    وتقسم أحياناً بناء على الأغراض المرغوبة من اللغة المستخدمة.

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

    كما أن للغات البرمجة أيضاً خصائص مشتركة وحدود مشتركة بحكم أن كل هذه اللغات صممت للتعامل مع الحاسب.

    أمثلة لبعض اللغات البرمجية ومجالات العمل بها

    أولا: برمجة تطبيقات سطح المكتب

    لا يوجد مستخدم للحاسب الآلي لم يتعامل يوميا مع تطبيقات سطح المكتب مثل مجموعة برامج مايكروسوفت أوفيس Microsoft Office أو برامج الأنتي فيروس أو برامج تشغيل الصوت والفيديو.

    ولكن لحظة .. في السوق العربى التركيز يكون علي برامج أخري وهي برامج الشركات.

    مثال .. محل يريد برنامج لحساب أرباحه وخسائره.

    مستشفي تريد برنامج لترتيب وتنظيم مواعيد الأطباء والمرضي.

    معرض سيارات يريد برنامج يحسب المبيعات ويحفظ وينظم بيانات العملاء والموردين.

    كل ما سبق وغيره الكثير برامج مشهورة ومنتشرة في الوطن العربي تعتمد علي إحدي لغات البرمجة بالإضافة إلي قاعدة بيانات ولعل أشهر اللغات المستخدمة في هذا المجال هي:

    1- لغة سي C: هي أقدم اللغات البرمجية وكل اللغات الأخري تم بنائها بالإعتماد عليها وينصح بشدة من يريد دخول مجال البرمجة البدأ بها, حيث تعتبر أسهل لغة في التعامل, ويتم إستخدامها في كافة المجالات.

    2- لغة سي بلس بلس ++C: الجميع يعتبر هذه اللغة الأفضل في بناء التطبيقات , ظهرت لأول مرة عام 1983 قام بتصميمها بيارن ستروستروب , ميزاتها أنها سريعة , نقطة الضعف بها أنها أصبحت قديمة بعض الشئ.

    الاستخدامات : برمجة الالعاب , كما أنها تعتبر جزء لا يتجزأ في بناء البرامج.

    مستخدمة في :Mozilla Firefox , Adobe, Google Chrome , Internet Explorer

    3- لغة سي شارب #C: لغة غرضية التوجه ظهرت لأول مرة عام 2000 قام بتصميمها شركة مايكروسوفت , شبيه بلغة java تمتاز بسرعة الأداء , لكن نقطة الضعف أنها تعمل فقط على بيئة windows.

    4- لغة جافا JAVA: لغة غرضية التوجه ظهرت لأول مرة عام 1995 حيث قام بتصميمها جيمس جوسلينغ , كما أنها تعد الأكثر شعبية من بين جميع لغات البرمجة.

    الاستخدامات : برمجة الشبكات , تطوير تطبيقات الويب , تطوير البرامج , تطوير واجهات المستخدم الرسومية GUI

    مستخدمة من قبل أندرويد (نظام التشغيل , التطبيقات).

     

    هذه اللغات الأربع السابقة هي الطريق الرئيس والأساس الذي يجب البدء من خلاله في تعلم وفهم وإتقان مجال البرمجة بشكل عام.

    إن لم تكن تتقن هذه اللغات فأنت ما زلت مبتدأ حتى ولو كنت تعرف جميع اللغات الأخرى.

    عندما تتقن هذه اللغات الأربع فقد أصبحت تستوعب مفهوم البرمجة وأسلوب التفكير المنطقي الذي يتطلبه العمل كمبرمج وعندها فأنت الان قادر على الاختيار الصحيح حسب التخصص الذي ترغب في تعلمه وما يستهويك.

    بتعلمك وإتقانك لهذه اللغات, تبدأ مشوارك الوظيفي ك Junior software engineer ثم Senior ثم تصبح Team Leader حتي تصل إلي وظيفة Project Manager.

    ثانيا – برمجة تطبيقات الويب

    مجال الويب: هو مجال من مجالات البرمجة و هو عبارة عن تصميم أو برمجة مواقع الانترنت أو صفحات الويب ( سواء كانت صفحة واحدة أو صفحات متعددة) مثل الفيسبوك, تويتر, يوتيوب و غيرها و به ثلاثة أقسام أساسية تختلف تماما عن بعضها هي:

    تصميم الويب Web Design.
    برمجة وتطوير الويب Web Development.
    قواعد البيانات Data Base.
    التصميم يهتم بالشكل الذي يراه المستخدم أو ما يطلق عليه واجهة المستخدم (front end) من تصميم و ألوان و تأثيرات مثل شكل الموقع الذي تراه حاليا.

    لكي أكون مصمم ويب ينبغي أن أتعلم جيدا اللغات التالية:

    1- لغة HTML: هي اللغة الأساسية المستخدمة في إنشاء صفحات الإنترنت وهي ليست لغة برمجة بالمعنى والشكل المتعارف عليه للغات الأخرى ولكنها لغة هيكلة (Hyper Text Markup Language).

    فهي مثلاً لا تحتوي على جمل التحكم والدوران، وعند الحاجة لاستخدام هذه الجمل يجب تضمين شيفرات من لغات أخرى كـ Java, JavaScript, CSS .

    كذلك فهي لا تحتاج إلى مترجم خاص بها Compiler . وهي غير مرتبطة بنظام تشغيل معين، لأنه يتم تفسيرها وتنفيذ تعليماتها مباشرة من قبل متصفح الإنترنت بغض النظر عن نظام التشغيل المستخدم.

    2- لغة سي اس اس CSS : اختصار لـ (Cascading Style Sheets) وهي لغة تصميم تحدد شكل ملف الـ HTML، فهي تهتم بالخطوط، الألوان، الهامش، والعرض والارتفاع، صورة خلفية الموقع، وكيفية توزيع المساحات وأشياء أخرى كثيرة.

    يمكن إستخدام لغة HTML لإضافة تصميم للمواقع، لكن CSS توفر المزيد من الخيارات وهي أكثر دقة وعملية، وهي مدعومة من قبل جميع المتصفحات الرئيسية.

    3- لغة جافا سكربت JavaScript: هي لغة برمجة تختلف كل الإختلاف عن لغة جافا Java مع أنها تحمل نفس الإسم, وهي تستخدم لإعطاء حيوية و حياة للموقع بمجموعة من السكريبتات الخاصة على الموقع من إدراج و دخول و خروج بين الصفحات حيث أنها تستخدم في برمجة التطبيقات المتحركة مما يعطي رونقا وجمالا للتصميم.

    ليس هذا فحسب بل أيضا تستخدم في برمجة تطبيقات الألعاب وفي برمجة تطبيقات سطح المكتب وهي مستمدة من لغة C وقامت بتطويرها شركة Netscape.

    4- مكتبة الـ jQuery: من أشهر المكتبات المبنية على لغة الجافا سكريبت تساعدك في إضافة اللمسات السحرية في موقعك والتحكم بالأحداث الموجودة في الصفحة. وهي لا غنى عنها اليوم في تصميم صفحات الويب بدونها سوف تكون صفحة الويب صامتة لا يوجد فيها أي حركات سحرية تلهم اي شخص يراها ولا غنى عنها في التعليم وهي مكتبة سهلة جدا و بسيطة و يمكنك تعلمها في وقت سريع جدا حسب حبك لها ومعرفتك بإمكانياتها هذه المكتبة سوف تضيف لك الكثير في صفحة الويب وسوف تنقل الصفحة نقلة كبيرة جدا.

    5- إطار العمل Framework: من أشر إطارات العمل في الويب هو Bootstrap و هو إطار عمل تمت برمجته من طرف طاقم تويتر لتسهيل عملية إدارة التصاميم و الأكواد وهو إطار عمل جميل يفيدك في إختصار الوقت والجهد في كتابة الكثير من الأكواد, وتستخدمه الكثير من الشركات, و كذلك سوف يساعدك جدا في عمل مواقع متجاوبة Responsive.

    بالإضافة لبعض البرامج مثل الفوتوشوب Photoshop و الإليسترايتور Illustrator والتي ليس من الضروري تعلمها ولكن إن تعلمتها فهذا سيجعل منك مصمم محترف ويضفي علي موقعك تأثيرات وتصاميم متناسقة وجميلة.

    أما برمجة وتطوير الويب أو ما يطلق عليها الـ Back end فهي مجموعة لغات البرمجة التي تتحكم في إدارة وتنسيق وتنظيم جميع الوظائف التي تحدث داخل مواقع الانترنت وقواعد البيانات وغيرها من الأمور التي لا يراها المستخدم.

    هناك العديد من لغات البرمجة التي يمكنك أن تعتمد عليها في برمجة موقعك و من أشهرها وأكثرها إستعمالا هي php و هي مجانية و مفتوحة المصدر.

    من اللغات المستخدمة في برمجة وتطوير الويب:

    1- لغة بي اتش بي PHP: ظهرت لأول مرة عام 1995 قام بتصميمها راسموس ليردور , وهي اللغة الأكثر شعبية في بناء المواقع وتطبيقات الويب التفاعلية , كما انها مفتوحة المصدر ويمكن أن تكون جزءا لا يتجزأ من ملف HTML،

    مستخدمة في : Facebook , Wikipedia , WordPress , Joomla.

    2- لغة بايثون Python: لغة برمحة غرضية التوجه , تتميز بسهولة تعليمها , وببساطة كتابتها و قرائتها , ظهرت لأول مرة عام 1991 قام بتصميمها جايدو فان روسم. إنتشارا واسعا في السنوات الأخيرة بحيث يتم إستخدامها في تطبيقات الويب , تطوير البرامج , امن المعلومات وتعتبر أيضا أحد افضل اللغات البرمجية التي يمكن للمبتدأ ان يشق طريق البرمجة عليها فهي سهلة التعامل ويتم إستخدامها من قبل instagram على موقعها وPinterest وتُستخدم أيضاً من قبل Google , Yahoo

    3- لغة روبي Ruby: ظهرت هذه اللغة لأول مرة عام 1993, قام بتصميمها الياباني يوكيهيرو ماتسوموتو , وهي غرضية بشكل كامل, مثل سابقتها تستخدم في بناء وبرمجة تطبيقات الويب والهواتف الذكية وتُستخدم من قبل GitHub , Twitter وغيره من المواقع المشهورة في مواقعها الرسمية ,وتعتبر روبي سهلة التعامل إلى حد ما في التعلم بالنسبة للمبتدئين.

    4- لغة Asp.net: و هي لغة ليست مجانية و هذا ما جعل أغلبية المبرمجين يتعاملون أكثر مع لغة php ولكنني فوجئت بوجود العديد من عشاق لغة asp.net لذلك جمعت لهم أحسن الدورات في العالم العربي و أيضا الدورات الشاملة في الدورات الأجنبية.

    قواعد البيانات

    بما أن هناك العديد من لغات البرمجة أيضا هناك عدة لغات لإنشاء قاعدة بيانات لكن أول نصيحة سأقدمها لك قبل أن تبدأ في أي لغة أن تتعلم لغة Sql

    لغة إس كيو إل SQL: وهي لغة برمجة تستخدم في إدارة البيانات داخل قواعد البيانات وهي الأكثر إسخداما لهذا الغرض .

    وبتعلمك وإتقانك لها ستتمكن من تعلم أي لغة أخري من لغات قواعد البيانات مثل Mysql أو Oracle أو Sql Server و هذه اللغات يتم العمل بها لكي تبرمج موقع كامل به برمجة بنائية و به قاعدة بيانات لتخزين معلومات و بيانات كل مستخدم مثلا: تسجيل في موقع الفيس بوك و يتم إستخراجها أو أظهارها له عندما يحتاجها مثلا أو يتم التعرف عليها بكلمة و رقم سري مثلا و عندما تختار لغة برمجة يجب أن تختار معها لغة برمجة قواعد البيانات و الأكثر إستعمالا في المواقع مع php هي Mysql.

    يبقي أن نعرف أن مجال الويب متشعب وبه العديد من الوظائف نظرا لكثرة اللغات المستخدمة فمن الممكن ان تتخصص في لغة الجافا سكربت وتصبح JavaScript Developer او تتخصص في لغة الphp وتكونphp developer.

    أيا كانت وجهتك ف لابد لك أن تتقن لغة HTML , CSS ,JavaScript كبداية لك (لا يوجد مطور ويب لا يجيد هذه الاساسيات)

    نصيحة علي الهامش

    اهتم بالجافاسكربت ومكتباتها فهي تحولك من مطور عادى الي مطور متميز لا تنسي تخصصات هامة مثل الوردبريس او جوملا وهي برامج ادارة محتوي جاهزة كل عملك هو تطويرها وانشاء تطبيقات خاصة بها لتحسين الاداء او اضافة مميزات بهذه البرامج وايضا لا تنسي اهمية التقنيات والمسميات الاتية Ajax – Web Services – xml – Bootsrap – Json

    بتعلمك وإتقانك لهذه اللغات, تبدأ مشوارك الوظيفي ك Junior web Developer ثم Senior ثم تصبح Team Leader حتي تصل إلي وظيفة Project Manager.

    ثالثا – برمجة تطبيقات الموبايل

    بداية من عام 2012 والعالم يتجه بشكل جنونى إلي تطبيقات الهواتف الذكية ويعد سوق الأندرويد هو السوق الأكثر انتشارا ورواجا ويليه سوق الأيفون (Apple) ثم تأتي مايكروسوفت في المؤخرة ومعها البلاكبيري.

    مجال تطبيقات الموبايل من المجالات المربحة جدا إذا أتقنتها, والفضل يعود للتنافس الشديد بين الشركات والأسواق الخاصة بالبرامج فيمكنك عمل تطبيق معين ثم رفعه في سوق جوجل بلاي Google Play مثلا وتحديد سعر له والربح من خلال التحميلات أو وضعه مجانا والربح من خلال الاعلانات.

    تخيل إذا قام مليون شخص مثلا بتحميل تطبيقك.. هل تتخيل الارباح ؟

    للخوض في مجال تطبيقات الأندرويد يلزمك إتقان إحدي لغات البرمجة مثل: XML- Java SE – OOP – MVC وبالطبع ستحتاج إلي دراسة إحدي قواعد البيانات.

    ويمكنك العمل علي إحدي المنصات الشهيرة في التعامل مع تطبيقات الأندرويد مثل: ANDROID STUDIO أو ANDROID ECLIPSE.

    إلي عشاق مجال تطبيقات الهاتف موقع جميل جدا جدا به أكواد مفتوحة المصدر لأكثر من 7 ملايين تطبيق أندرويد http://www.codota.com/

    في حالة أبل ستحتاج لأتقان لغة Objective-C والعمل علي منصة Mac المقدمة من أبل

    لغة Objective-C: هي لغة برمجة مستخدمة بشكل رئيسي من قبل شركة ابل لبرمجة أنظمة التشغيل الخاصة بها سواء كانت OS X أو IOS ظهرت لأول مرة عام 1983 قام بتصميمها براد كوكس وتوم لوف إنتشرت هذه اللغة بعد الإنتشار الواسع لبرمجة تطبيقات الأيفون, وقد أصبحت هذه اللغة أيضا مطلب الشركات البرمجية.

    وفي حالة مايكروسوفت فبالطبع ستحتاج لأتقان لغة سي شارب #C.

    رابعا: برمجة أنظمة التشغيل Computer Operating Systems

     

    معظم أنظمة التشغيل الحديثة يتم كتابتها وبرمجتها بلغة الـ C بالإضافة إلي القليل من لغة الأسمبلى Assembly, مثل: Windows NT و Linux و MAC OS X,

    بعض أنظمة التشغيل كتبت بالباسكال مثل MAC OS القديم (ما قبل MAC OS X) كان معظمه بلغة Pascal و بعض الأسمبلى Assembly.

    بعض الانظمة القديمة كتبت بلغة Assembly مثل الMS-DOS, و لكن لاحقا تمت اعادة كتابة بعض أجزاءه بلغة السى.

    نظام CP/M كتب بلغة PL/M و هى لغة تم تصميمها حصريا ليتم كتابة CP/M بها, تماما مثلما تم تصميم لغة سى فى الأصل لكتابة نظام Unix بها.

    بقي أن نعرف أن أي نظام تشغيل مثل: نظام تشغيل الويندوز من أجزاء عديدة، أهمها: نواة النظام Kernel ومكتبات دوالAPI.

    ** نواة النظام Kernel: هو قلب نظام التشغيل، الذي يتعامل مع مكونات الجهاز المادية، مثل الذاكرة والقرص الصلب وكارت الشاشة وكارت الصوت…. إلخ.

    وهذا الجزء مكتوب بلغة ++C على نظام تشغيل DOS.. ومن المؤكد أن أجزاء من الكود الخاص بهذا الجزء مكتوبة بلغة التجميع Assembly لأنها لغة منخفضة المستوى تتعامل مع مكونات الجهاز مباشرة.. وتتيح ++C للمبرمج كتابة مقاطع من لغة التجميع.

    ** أما API فهي اختصار للتعبير: “واجهة برمجة التطبيقات” Application Programming Interface، وهي مجموعة ملفات لها الامتداد .dll تحتوي على دوال برمجية تؤدي كل وظائف الويندوز الأساسية، مثل إنشاء النوافذ وعرضها وإخفائها، ورسم الأدوات عليها وكتابة النصوص فيها… إلخ.

    وهذه الدوال أيضا مكتوبة بلغة ++C. وقد أدخلت ميكروسوفت تطويرا هاما مع ظهور ويندوز فيستا وويندوز سيرفر 2008، حيث جعلت .Net Framework 3 جزءا أساسيا من نظام التشغيل، يمنحه بعض دوال API في صورة كود مدار Managed Code.

    لا يوجد في الانترنت العربي دورة كاملة لتعليم الأسمبلي فهي لغة قديمة و غير موجودة بكثرة أيضا في الويب العالمي, ولذلك أحضرت أفضل دورتين في اليوتيوب باللغة الإنجليزية

    الدورة الأولى : Assembly Language Programming Video Course بها 70 فيديو.
    الدورة الثانية : Assembly Language Programming بها 55 فيديو وهي دورة جميلة أيضا.

    والآن: كيف يمكن تعلم ودراسة هذه اللغات؟

    مصادر تعلم ودراسة لغات البرمجة

    هناك مجموعة من القنوات علي موقع اليوتيوب التي تتوفر على مجموعة من الدورات التعليمية التي تأخذ بيدك من البداية حتى الإحتراف في مجال البرمجة والتصميم وقواعد البيانات ونظم التشغيل وغيرها الكثير من مجالات الحاسب الآلي والبرامج والشبكات منها:

    قناة المهندس أسامة محمد (Elzero Web School): أضخم قناة عربية تضم دورات تعليمية في جميع لغات البرمجة وقواعد البيانات التي تستخدم في تصميم وبرمجة الويب وبناء الووردبريس ومواقع التجارة الالكترونية.
    قناة Free4arab | Information Technology وهي قناة تعليمية باللغة العربية لشرح الشبكات ونظم التشغيل بالإضافة للعديد من لغات البرمجة مثل جافا و روبي وبايثون و ASP.net وقواعد البيانات أوراكل وMySQl بالإضافة لبعض الدورات حول التسويق الالكتروني والربح من الانترنت.
    قناة وقف أون لاين: قناة عربية تضم مجموعة كبيرة من الدورات الكاملة حول Visual Basic و Oracle developer و SQL server 2008 و asp.net , كما تضم دورة ضخمة لتعلم لغة برمجة سي شارب #C بها أكثر من 170 فيديو وكذلك أكبر دورة عربية لتعليم الفيجوال بيسك 2012 للمدرب أحمد الزيني تضم 330 فيديو, بالإضافة لدورات كثيرة لتعليم الفوتوشوب والدريم ويفر و الـ Actionscript 3 والـ 3D Max والـ Autoplay Media Studio.
    قناة عادل صبور: وهي قناة تعليمية باللغة العربية لشرح أهم لغات البرمجة وخاصة asp.net والجافا والجافا سكربت و السي شارب وتطبيقات الويب والموبايل بالإضافة لدورات في لغات تطوير المواقع وقواعد البيانات مثل: PHP, VB.NET, HTML5, CSS, Oracle
    قناة عبدالله عيد وهي قناة تعليمية باللغة العربية لشرح ما يخص علوم الكمبيوتر والرياضيات من برمجة وتطبيقات وتفاصيل حول لغات كثيرة مثل جافا و سي++ ولغات تطوير المواقع وقواعد البيانات وتطبيقات الجوال مثل الأندرويد.
    قناة ملتقى الدارين: قناة عامة بها العديد من الفيديوهات الطويلة في شتي المجالات ومنها بعض الدورات القيمة في مجالات البرمجة المختلفة.
    قناة محمد عيسى : واحدة من أكبر القنوات العربية التي تهدف لتعليم جميع لغات البرمجة حيث تحتوي علي مجموعة من الدورات الضخمة في لغات Kotlin, Laravel, Angular 4 وكذلك PHP & MySQL CMS و MYSQL server والـ ++C بالإضافة لأكبر ثلاث دورات عربية في الجافا والبايثون والأندرويد ستوديو.
    دورة تعلم لغة ++c تقديم: محمد شيمي بها 64 فيديو.
    قناة خالد السعداني: التي تضم : دورة السي شارب كاملة 110 درس, بالإضافة لعدد من الدورات الأخري مثل: تصميم قوالب الووردبريس وبرمجة وإدارة قواعد البيانات والفيجوال بيسك وغيرها.
    قناة البرمجة: التي تضم عدد من الدورات مثل: دورة لغة C ودورة HTML و دورة CSS و
    قناة Appsstuff Middleware: وهي قناة عربية تهتم بتعليم مبادئ البرمجة وقواعد البيانات وخاصة الجافا والأوراكل.
    قناة الاسطورة للبرمجيات وعالم الكمبيوتر: وبها دورتين أساسيتين وهما: دورة تعليم لغة برمجة جافا المتكامله ودورة االفيجوال بيسك 2010.
    قناة محمد البحراوي: التي تضم دورة تعليم الفيجوال بيسك | من البداية الى الاحتراف.
    قناة شريف فتحي: تضم مجموعة من الدورات السهلة والبسيطة لتعليم معظم لغات البرمجة وقواعد البيانات.
    قناة ابراهيم قديح: تضم مجموعة من الدورات الممتعة لتعليم لغات الإتش تي ام ال والسي اس اس والبي اتش بي والجافا سكربت والجيكويري وغيرها.
    قناة علي حمدي: تضم 6 دورات في تصميم مواقع الإنترنت بالإضافة لدورات أخري تشرح البايثون وتطوير البرامج والبي اتش بي والووردبريس وغيرها.
    قناة بغداد الجديدة: قناة متخصصة في تعليم كل مايخص عالم التقنية من لغات برمجة وامن معلومات
    قناة محمد الدسوقي: المتخصصة في شرح قواعد البيانات وخاصة أوراكل ودراسة مقررات قواعد البيانات الجامعية .
    دورة للمبتدئين في الأندرويد بإستخدام برنامج Android studio لباسم بدر.
    قنوات ودورات أجنبية

    قناة The New Boston: تضم حوالي 2 مليون مشترك وما يزيد عن 350 مليون مشاهدة وبها العديد من الدورات في معظم لغات البرمجة وقواعد البيانات وبرامج التصميم والمونتاج وغيرها.
    قناة kudvenkat: تشرح بعض لغات البرمجة وخاصة السي والاس كيو ال.

    قناة Caleb The Video Maker2: بها العديد من الدورات في معظم لغات البرمجة وقواعد البيانات.
    و أخير لا يخفى علينا موقع ويب سكول

     

  • مسارات البرمجة

     

    برمجة الكمبيوتر هي العملية التي يستخدمها المحترفون لكتابة التعليمات البرمجية التي ترشد كيفية أداء الكمبيوتر أو التطبيق أو البرنامج. في أبسط صورها ، برمجة الكمبيوتر عبارة عن مجموعة من التعليمات لتسهيل إجراءات محددة. إذا كنت تتساءل عن ماهية مبرمج الكمبيوتر ، فهو محترف يقوم بإنشاء تعليمات لجهاز الكمبيوتر عن طريق كتابة واختبار التعليمات البرمجية التي تمكن التطبيقات والبرامج من العمل بنجاح.

    وأول ما يجب عليك فعله حين تقرر تعلم البرمجة, هو تحديد المجال الذي تحب أن تتعلمه. فمثلاً تريد أن تصبح مطور تطبيقات ديسكتوب, مطور مواقع, مطور تطبيقات للهاتف أو مطور ألعاب.
    إذا كنت تحب أكثر من مجال و هذا شيء طبيعي جداً, فعليك اختيار مجال واحد فقط للبدئ فيه. بعد دراسة هذا المجال و بناء بعض المشاريع فيه و تحقيق ربح منها, عندها يمكنك البدء بمجال جديد.
    من فضلك لا تقم أبداً بتعلم مجاليَن في وقت واحد لأنك ستفشل بسبب الضغط الذي سببته أنت لنفسك.

    أول خطوة بالنسبة لأي شخص مبتدئ يريد تعلم البرمجة من الصفر هي تعلم المنطق البرمجي, أي تعلم الخوارزميات. بعد أن تتعلم الخوارزميات, الشيء الذي تنوي فعله هو ما يحدد ما الذي عليك تعلمه تباعاً حتى تصل لهدفك.

    مسار تطوير المواقع

    CSS & XHTML for Web Development

    في حال أردت تعلم تطوير المواقع الإلكترونية ( Web Development ),
    فهنا عندك قسمين أساسيين:
    Front End:
    يقصد بها تعلم كيف تبني التصميم الذي سيراه المستخدم.
    Back End:
    يقصد بها تعلم كيف يتم معالجة و حفظ بيانات الموقع.

    إذا أردت أن تعمل كمطور مواقع فلا يوجد أي مشكلة أن تتعلم تصميم المواقع و من ثم تتعلم كيف يتم معالجة البيانات و حفظها في الموقع.
    ما الذي يجب أن أتعلمه لأصبح مصمم مواقع؟

    لتصبح مصمم مواقع عليك تعلم الأشياء التالية تباعاً:
    HTML:
    لغة نستخدمها لتحديد الأشياء التي سنضيفها في صفحات الويب مثل الصور, العناوين و الفقرات.
    CSS:
    لغة نستخدمها لتحسين تصميم الأشياء التي أضفناها في صفحات الويب مثل تلوينها و تحديد أحجامها, مكان ظهورها, و تحديد أنواع الخطوط إلخ..
    Javascript:
    لغة نستخدمها لإضافة مؤثرات في صفحات الويب و لمعالجة البيانات التي يتم إدخالها و عرضها في الصفحات.
    JQuery:
    مكتبة مبنية بلغة Javascript تستخدمها في حال أردت كتابة كود الـ Javascript بشكل مختصر و أكثر فعالية.
    Bootstrap:
    مكتبة توفر لك كود CSS جاهز يمكنك استخدامه بكل سهولة لتصميم صفحات ويب تظهر بشكل جميل جداً عند المستخدم سواء كان يستخدم حاسوبه أو هاتفه.
    ملاحظة: ليس من الضروري أن تتعلم JQuery و Bootstrap و لكننا ننصحك بتعلمها لأن تعلمها سهل جداً و هما يستخدمان بشكل كبير جداً في تصميم المواقع.

     

    ما الذي يجب أن أعرفه لتخزين و معالجة بيانات المستخدمين؟
    يجب أن تتعلم كيف تتعامل مع قواعد البيانات ( Databases ) و ننصحك باستخدام قواعد بيانات MySQL لأنها الأكثر شهرة, مجانية 100% و التعامل معها سهل جداً.
    يتبقى عليك تعلم شيء واحد فقط لتصبح قادراً على ربط تصميم الموقع بقاعدة البيانات.
    الشيء الذي نضعه كوسيط بين قاعدة البيانات و تصميم الموقع يسمى API, و هذه الكلمة إختصار لجملة Application Programming Interface.
    الـ API بشكل عام هو مجرد كود عادي تضعه في الموقع و يمكنك كتابته بأي لغة تريد و لست محصوراً بطريقة واحدة لبنائه. و الجميل هنا أيضاً أنه أصبح يوجد إطارات تطوير ( Frameworks ) كثيرة و مجانية يمكنك إستخدامها لبناء الـ API بكل سهولة حتى لا تضطر إلى كتابة كل الكود بنفسك.

    من أشهر الإطارات المستخدمة لبناء الـ API نذكر:

    – الإطار Nodejs المبني بلغة Javascript و التي يفترض أن تكون درستها سابقاً.
    – الإطار Laravel و الذي يتطلب منك في البداية تعلم لغة PHP لأنه مبني بها.
    – الإطار Symphony و الذي يتطلب منك في البداية تعلم لغة PHP لأنه مبني بها.
    – الإطار Codelgniter و الذي يتطلب منك في البداية تعلم لغة PHP لأنه مبني بها.
    – الإطار CackePHP و الذي يتطلب منك في البداية تعلم لغة PHP لأنه مبني بها.
    – الإطار ASP Net Core و الذي يتطلب منك في البداية تعلم لغة #C لأنه مبني بها.
    – الإطار Spring و الذي يتطلب منك في البداية تعلم لغة Java لأنه مبني بها.
    يوجد إطارات و لغات أخرى لكن هذه الإطارات هي الأشهر حالياً. و يجب أن تعرف أنك لست مضطراً لإستخدام أي إطار حتى تبني API و لكن إستخدام إطار يعتبر أفضل بكثير بالنسبة للمبرمج و يوفر عليه الكثير من الوقت و الجهد.
    مسار تطوير تطبيقات ديسكتوب
    في حال أردت تعلم بناء تطبيقات سطح المكتب ( Desktop Applications ) فهناك خيارات عديدة يمكنك إختيار أحدها لبناء التطبيق و نذكر أهمها:
    يمكنك أن تتعلم لغة Java و من ثم تستخدم إطار JavaFX لبناء واجهة المستخدم الخاصة بالبرنامج.
    يمكنك أن تتعلم لغة #C أو ++C من ثم تستخدم إطار WPF لبناء واجهة المستخدم الخاصة بالبرنامج.
    يمكنك أن تتعلم لغة Javascript و من ثم تستخدم إطار Electronjs لبناء واجهة المستخدم الخاصة بالبرنامج.
    يمكنك أن تتعلم لغة Python و من ثم تستخدم إطار PyQT لبناء واجهة المستخدم الخاصة بالبرنامج.
    طبعاً, سيكون عليك لاحقاً أن تتعلم كيف تتعامل مع قواعد البيانات من أجل أن تخزن بيانات المستخدمين و هنا يمكنك استخدام أي نوع تريده و يمكنك استخدام قواعد بيانات Access إذا كان التطبيق صغير و معد ليعمل على نفس جهاز المستخدم و يمكنك استخدام قواعد بيانات MySQL إذا كان التطبيق ضخم و معد ليعمل على أكثر من جهاز و تريد الوصول لنفس البيانات من أكثر من جهاز.

    مسار تطوير تطبيقات للهاتف

    Do We Have a Better Alternative to Mobile Phone App Development? Let's Find Out. - Lung Transplant

    في حال أردت تعلم بناء تطبيقات لنظام Android يمكنك إستخدام أي لغة من اللغات التالية:
    لغة Kotlin و التي تم إعتبارها كلغة أساسية لبناء تطبيقات إندرويد.
    لغة Java و التي كانت سابقاً اللغة المعتمدة لبناء تطبيقات إندرويد قبل لغة Kotlin و التي لا يزال بإمكانك إستخدامها.
    في حال أردت تعلم بناء تطبيقات لنظام IOS يمكنك إستخدام أي لغة من اللغات التالية:
    لغة Swift و التي تم إعتبارها كلغة أساسية لبناء تطبيقات لنظام IOS.
    لغة Objective C و التي كانت سابقاً اللغة المعتمدة لبناء تطبيقات لنظام IOS قبل لغة Swift و التي لا يزال بإمكانك إستخدامها و لكن ننصحك بتعلم Swift بدل تعلمها.
    في حال أردت تعلم بناء تطبيقات تعمل بنفس الوقت على نظامي Android و IOS يمكنك ذلك أيضاً بطرق كثيرة, فمثلاً يمكنك إستخدام أي إطار ( Framework ) من الإطارات التالية:
    ReactNative
    Fluter
    Framework 7
    Xamarin
    PhoneGap
    Ionic
    أي إطار تنوي تعلمه منهم, سيكون عليك معرفة لغة برمجة واحدة أو عدة لغات قبل تعلمه و لكن عندما تتابع أي دورة ستجد المحاضر يخبرك بما يجب أن تعرفه مسبقاً.
    إنتبه لنقطة مهمة, لا يوجد إطار أفضل من إطار من كل النواحي, كل إطار له مميزات و له عيوب و أي إطار تتعلمه منهم يمكنك أن تبني تطبيقات بواستطه و أن تبيعها و تربح منها.

    مسار تطوير الألعاب

    Game Development Program | Niagara College
    في حال أردت تعلم تطوير ألعاب فهنا يجب أن يكون لديك خلفية جيدة في البرمجة. أي لا تفكر أن تبرمج لعبة و أنت لا تعرف أصلاً ما معنى برمجة. و طبعاً يجب أن يكون لديك خلفية في التعامل مع قواعد البيانات.
    أي لعبة تطورها بنفسك ستكون عبارة عن مزيج من:
    الشخصيات و الأشكال الثلاثية الأبعاد مثل السيارات, المنازل, الأشجار, الأسلحة.
    الأصوات مثل أصوات اللاعبين, إنفجارات, نغمات حماسية إلخ..
    المؤثرات البصرية.
    قد تضمن فيديوهات قصيرة أيضاً.
    الكود الذي تكتبه لتحديد كيف ستتحرك الأشياء في اللعبة و كيف يتم التنقل بين المراحل إلخ..
    إنتبه لنقطة مهمة, لست مضطراً لأن تتعلم كيف تفعل كل شيء بنفسك. فمثلاً تستطيع شراء شخصيات و مؤثرات و أصوات جاهزة و من ثم تقوم بتجميعها في لعبة خاصة بك.
    الآن عند تطوير الألعاب ستستخدم برامج جاهزة لفعل ذلك تسمى محركات الألعاب ( Game Engines ).
    أشهر البرامج المستخدمة لتطوير ألعاب تعمل على كل أنظمة التشغيل هي Unity3D و Unreal Engine و الإثنين يمكنك البدء باستخدامهما مجاناً.
    في حال كنت ستستخدم Unreal Engine فعند كتابة كود اللعبة ستستخدم لغة ++C.
    في حال كنت ستستخدم Unity3D فعند كتابة كود اللعبة ستستخدم لغة #C.
    أي محرك ألعاب تقرر أن تستخدمه منهما ستجد في موقعه الرسمي كل ما تحتاج من دروس و مقالات و أشياء مجانية تساعك في البدء. و لا تضيع وقتك في المقارنة بينهما لأنه يمكنك أن تفعل ما شئت بكلاهما و الإثنين يتم تطويرهما باستمرار.
    أول نوع قواعد بيانات ننصح بتعلمه
    سواء كنت تنوي أن تكون مطور مواقع, تطبيقات ديسكتوب, تطبيقات للهاتف أو حتى ألعاب فلا بد لك من أن تتعلم كيف تقوم بتخزين و معالجة بيانات المستخدمين في قواعد البيانات ( Databases ) بطريقة منظمة و مرتبة.
    من ناحية معالجة البيانات و حفظها في قاعدة بيانات فهنا بشكل أساسي يجب أن تتعلم أوامر SQL و أن تفهم كيف تربط جداول قاعدة البيانات مع بعضها بشكل صحيح.
    الشيء الذي قد يسبب لك إرباكاً عندما تحاول أن تتعلم قواعد البيانات هو أنك ستجد عدة أنواع لقواعد البيانات و التي من أشهرها:
    MySQL
    SQL Server
    Oracle
    MongoDB
    PostgreSQL
    SQLite
    Access

    الآن عليك أن تصدق أنك بمجرد أن تتعامل مع أي قاعدة بيانات منهم فلن تواجه أي مشكلة في التعامل مع أي قاعدة بيانات من نوع آخر و السبب في ذلك أن أوامر SQL التي تستخدمها فيها هي نفسها و منطق ربط قواعد البيانات مع بعضها هو نفسه أيضاً. أي لا تستمع لأي شخص يقول لك تعلم هذا و لا تتعلم ذاك.
    الفرق ببساطة بين قواعد البيانات هو أنه إجمالاً في كل قواعد بيانات هناك دوال إضافية يمكنك الإستفادة منها عند كتابة أوامر SQL و منها ما هو مجاني 100% و منها ما يجب أن تدفع مبلغ معين حتى يسمح لك باستخدامه.
    كبداية ننصحك أن تستخدم قواعد بيانات MySQL لأنها الأكثر شهرة و مجانية و أغلب المطورين يستخدموها.

     

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر