كيف اصير مبرمج

  • اجابة على أهم أسئلة المبرمجين الجدد

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

    كم من الوقت يلزم لتعلم البرمجة ؟


    الإجابة تعتمد على عدة عوامل من بينها :
    ◃ هل تعرف الأساسيات أم لا ؟
    ◃ ما هي اللغة التي تريد تعلمها ؟
    ◃ أيضاً ما هو نظامك التعليمي، فشخص يتعلم ساعتين في الاسبوع ليس كمن يتعلم ساعتين يومياً.

    هل البرمجة صعبة ؟


    هذا السؤال بالتحديد ليس له جواب محدد، الأمر يختلف من شخص لآخر؛ لكن ماذا لو كانت صعبة؟
    هل تريد تعلم الأسهل فقط أم تريد تعلم ما تحبه وما سيعطيك نتائج أفضل؟ إسأل نفسك هذا السؤال.

    ما هي أفضل لغة برمجة ؟


    لا توجد أفضل لغة برمجة؛ السؤال بالكامل خاطئ، يجب أن يكون سؤالك ماهي اللغة المناسبة للتخصص الفلاني، لأن كل لغة لها مميزات تجعلها أفضل من الأخرى في مجال معين.

    هل يُمكن تعلم البرمجة من الهاتف ؟


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

    الطريقة الصحيحة لتعلم البرمجة ؟


    لتدخل عالم البرمجة عليك اتباع الخطوات التالية :


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

    مِن أين أتعلم البرمجة مجاناً ؟


    توجد العديد من المصادر العربية والأجنبية، منها مواقع وقنوات
    YouTube، وهذه بعضها :

     مصادر عربية :


    موقع Harmash.
     موقع Teracourses.
     قناة Elzero Web School.
     قناة The NewBaghdad.

    مصادر أجنبية :


     موقع Freecodecamp.
    موقع W3schools.
     قناة Learncode.academy.
     قناة Thenewboston.

  • تعلم البرمجة من الصفر

    كيف أبدأ تعلم البرمجة من الصفر ؟

    في البداية قد يبدو تعلم البرمجة أمر في غاية الصعوبة للمبتدئين في تعلم البرمجة و أنا لا أنكر أنك ستواجه بعض المصاعب في البداية .

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

    أولاً تعرّف على علم الحاسوب :

    Man repairing computer

    في هذه الخطوة عليك أن تتعرف على مكونات الحاسوب وآلية عملها وحدود الحاسوب، ابحث عن مفهوم البرمجة وأين يتم استعمالها، مجالات علم الحاسوب المتوفرة حالياً… أي أن تأخد نظرة عامة.

     ثانياً تعلم الأساسيات :


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

     تطبيق ما تعلمته من أساسيات :

    في هذه المرحلة ستتعامل مع لغة برمجة؛ من الأفضل أن تبدأ بلغة C وإن واجهتك صعوبة معها انتقل إلى لغة Python.
    يمكنك أن تبدأ هذه المرحلة بعد الإنتهاء من الأساسيات أو في نفس الوقت.

     تعلم البرمجة كائنية التوجيه – OOP :

    أغلبية اللغات تعمل بهذا المبدأ من إنشاء ‘Classes’ والتعامل مع تعدد الأشكال، لذلك عليك إتقان هذا المبدأ باستعمال لغة البرمجة Java أو Python فالاثنين يعملان بمبدأ OOP.

     المرحلة الأخيرة وانتقالك للاحتراف :


    ابدأ بحل المشاكل في مواقع التحديات، مثل ‘hackerrank’، وإلى هنا أنت لم تعد بالمبتدأ

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

  • المهارات التقنية التي يجب على كل مبرمج معرفتها

    ما هي المهارات التي يجب علي كمبرمج امتلاكها ؟!

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

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

    في هذا المقال سأشرح ما هي المهارات التي يجب عليك امتلاكها لتصبح مبرمجا محترفا وناجحا :

    مهارات المبرمجين

    1- الخوارزميات وحل المشاكل برمجياً: بحيث يتمكن المبرمج من تحليل مشكلة معينة وتحويلها إلى أكواد باستخدام عناصر البرمجة الأساسية مثل الجمل الشرطية (مثل if) وجمل التكرار (مثل for و while) واستخدام المصفوفات (arrays) وغيرها.

    2- البرمجة الكائنية Object-Oriented: بحيث يتمكن المبرمج من تمثيل الأشياء في الحياة الواقعية على هيئة Classes و Objects، واستخدام المفاهيم المساعدة مثل Inheritance و Abstraction و Encapsulation و Polymorphism.

    3- تراكيب البيانات Data Structures: وهي حاويات لحفظ عناصر داخلها بترتيب معينة، بحيث يكون الوصول إلى عناصرها وإجراء بعض العمليات عليها (مثل search و sort) ذو كفاءة عالية. ومن أمثلتها: List, Queue, Set, Tree, Map.

    4- أنماط التصميم البرمجية Design Patterns: وهي عبارة عن حلول ونماذج جاهزة تستخدم لتصميم هيكلة الـ Objects وطرق إنشائها وكيفية التواصل بين بعضها البعض. من أمثلتها: Singleton, Builder, Factory method, Adapter, Composite, Decorator, Facade, Command, Iterator, Strategy, Visitor.

    5- البرمجة المتوازية Concurrent Programming: بحيث يتم تنفيذ البرنامج باستخدام أكثر من Thread. كل Thread يقوم بتنفيذ عدة أوامر متتالية، والـ Threads جميعها يتم تنفيذها بشكل متزامن أو في آن واحد. توجد مفاهيم ذات علاقة، مثل: synchronization, locks, mutex, semaphore, race condition.

    6- التعامل مع الملفات: يجب على المبرمج أن يفرق بين الملفات النصية والملفات الغير نصية (binary) (مثل ملفات الصور والفيديو وغيرها) وكيفية قراءتها وتخزينها على المساحة التخزينية، ويتعرف على مفهوم الـ Encoding (مثل UTF-8) وهي الطريقة المستخدمة لتمثيل النصوص على هيئة binary.

    7- الملفات النصية الشائعة: هناك عدة أشكال formats تستخدم لتخزين البيانات على هيئة نصوص. مثل: CSV, XML, JSON, YAML.

    8– التعابير المنطقية Regular Expressions أو اختصاراً Regex: وهي سلسلة من الحروف تستخدم للبحث عن تطابق داخل نص معين، ويمكن استخدامها أيضاً لتبديل كلمات بأخرى داخل النص أو للتحقق من مدخلات نصية Text Validation. أنصح باستخدام هذا الموقع أثناء بناء regex معين: https://regex101.com

    9- التعامل مع قواعد البيانات Databases: بحيث يتمكن المبرمج من كتابة برنامج يتصل بقاعدة بيانات ويستخدم لغة SQL للبحث داخل الجداول أو لإضافة أو تعديل سجلات. معظم لغات البرمجة بها أدوات تساعد في هذه العملية. فمثلاً في لغة جافا، يمكن استخدام JDBC.

     

    10- استخدام أدوات إدارة وحفظ الأكواد Version Control Systems: وهي أدوات تساعد في حفظ الأكواد مع جميع التغييرات التي طرأت عليها، مع إمكانية استرجاع نسخ سابقة من الكود. من أشهرها: git أيضاً GitHub.com يعتبر أشهر المواقع التي تستضيف برامج مفتوحة المصدر داخل مستودعات git.

    11- استخدام بيئات التطوير IDEs: وهي برامج ومحررات نصوص مع العديد من الأداوت التي تسهل من عملية كتابة الأكواد. أنصح باستخدام الاختصارات shortcuts والتعود عليها بشكل دائم للقيام بالمهام والعلميات داخل الـ IDE والتي تزيد من الإنتاجية. أنصح الجميع بالـ IDEs الرائعة من تطوير @JetBrains

    12- قراءة التوثيق الرسمي للغة البرمجة documentation: وهو مستند يحتوي على وصف لجميع الـ classes والدوال الموجودة في مكتبات اللغة الرسمية مع توضيح لطريقة عملها. مثلاً في لغة جافا، لا غنى عن JavaDoc.

    https://docs.oracle.com/en/java/javase/11/docs/api/index.html

    13- مهارة الـ debugging: بحيث يتمكن المبرمج من إيجاد الأخطاء البرمجية داخل الكود. ويمكن استخدام الـ debugger Tools التي تزودها اللغة أو تجدها داخل الـ IDE. ملاحظة: أحياناً طباعة جمل معينة على الـ console بداخلها قيم لمتغيرات داخل الكود تكون عملية كافية وسريعة لإيجاد الأخطاء.

    14- استخدام الـ Build Tools: وهي أداوت تسهل عملية الترجمة compiling وإدارة الـ dependencies وبناء الحزم النهائية للبرنامج مع الأخذ بالاعتبار اختلاف البيئات. في لغة جافا مثلاً، يوجد maven و gradle.

    15- اختبار البرمجيات: وهي القيام بكتابة أكواد جانبية تختبر جميع وظائف البرنامج الأساسية للتأكد من صحة عملها. بحيث لو تم تغيير جزء من البرنامج الأساسي، تكشف هذه الاختبارات عن أي خلل في التغيير. أشهر مثال على هذه الاختبارات: Unit Testing. وفي لغة جافا، أشهر مكتبة للقيام بذلك هي JUnit.

    16- التعامل مع HTTP: وهو بروتوكول الإنترنت الأشهر، ويستخدم للتواصل بين الـ Client والـ Server لإرسال بيانات. يجب معرفة الفروقات بين الـ HTTP Methods، وأشهرها GET و POST. أيضاً يجب معرفة مكونات الـ HTTP Request والـ HTTP Response ومعرفة أشهر الـ HTTP Headers و HTTP Status Codes.

    17- التعامل مع RESTful Web Services: الـ REST هو آلية لتنظيم الخدمات الموجودة على سيرفر على هيئة APIs، بحيث يمكن لأي Client استخدام هذه الخدمات بالاتصال عبر البروتوكول HTTP. أنصح أي مبرمج بالاطلاع على GitHub REST API كمثال وكتابة HTTP Client يستخدمها: https://developer.github.com/v3

  • نصائح في تعلم البرمجه

     

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

    How to Learn a Programming Language (with Pictures) - wikiHow

    مجرد التفكير في تعلم البرمجة يمكن أن يكون مخيفًا للغاية. رمز الكلمة غامض بالتعريف. إنها تعني شكلاً تقنيًا من أشكال الاتصال التي من المفترض أن تفهمها أجهزة الكمبيوتر ، وليس البشر.

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

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

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

     

    من أين ابدأ تعلم البرمجة – نصائح في تعلم البرمجه 🤔 ؟

    البرمجة عالم كبير جدا ومتطور دائما ، لكنه ملئ بالمتعه والتجربة وعند البدأ بتعلم البرمجة يجب أن تعلم أنك تضع قدمك علي أول طريق طويل وليس بالأمر السهل السير فيه

     

    ملاحظة ❗️

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

     

    1 – حدد أهدافك :

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

    الاهداف كثيره مثلا:

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

     

     

    2 – حدد المجال الذي تحب أن تبدأ بتعلمه :

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

     

    3 – تعرف علي أدوات التعلم :

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

    مثلا إذا إخترت مجال برمجة الويب فستحتاج إلي محرر لكتابة الاكواد وتعلم لغة الجافا إسكريبت و HTML و CSS هذا طبعا كمصمم ويب و PHP و Ruby و Python كمطور ويب .

    أو إخترت مجال تطيبقات الهواتف فهو ينقسم إلي منصتين Android وهذا يحتاج إلي تعلم لغة java ومنصة IOS هذا يحتاج إلي تعلم Objective-c وهكذا..

     

    4 – تعرف علي المواقع القنوات التي تساعدك في التعلم :

    عند البدأ في التعلم ستحتاج إلي التوجه إلي بعض المنصات التعليمه وهذا أصبح متوفراً بكثرة فهناك الكثير من المواقع التعليمية والتطبيقات ومنصات التعلم الحر –حتي إنك يكمنك الحصول علي شهادات من خلالها- وهناك قنوات تعليمية علي يوتيوب ،فقط عليك البحث عن ما يناسبك ويناسب مجالك وهذه بعض المواقع والقنوات التي يمكنها مساعدتك udemy ، udacity ، أكاديمية الزيرو و W3 SCHOOLS و الكثير منها

     

    5 – ابدأ في التعرف علي الاشخاص الذين يشاركوك نفس الفضول :

    عمرك قصير لتعيش كل التجارب لذلك يجب عليك التعرف علي أصدقاء يشاركوك نفس المجال حتي يتثني لك الحصول علي دعمهم والتعلم منهم ومن تجاربهم وأخطائهم حتي تتعلم أسرع ولا تتكرر هذه الأخطاء

     

    6 – ابدأ بتنفيذ بعض المشاريع :

     

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

     

    7 – لا تيأس :

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

     

    8 – اسعي دائما لمعرفة كل جديد :

    عالم البرمجة عالم متطور باستمرار لذلك اسعي دائما لمعرفة كل جديد لأن هذا سيساعدك في تطوير نفسك والوصول علي نتائج لم تكن تتصورها

     

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

     

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

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

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

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

    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 لأنها الأكثر شهرة و مجانية و أغلب المطورين يستخدموها.

     

  • أفضل 10 مواقع توفر تعلم البرمجة من الصفر

     

    إذا كنت مبتدئًا في مجال البرمجة ، فسيسعدك أن تسمع أن هناك الكثير من الموارد الرائعة على الويب لمساعدة المبرمجين الجدد على تعلم البرمجة من البداية. في الواقع ، فإن بعض أفضل المبرمجين في الصناعة هم من أصحاب المعرفة الذاتية الذين ليس لديهم درجة رسمية في علوم الكمبيوتر.

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

    ما هي أفضل مواقع توفر تعلم البرمجة من الصفر 🤔 ؟

    1- W3schools‌

    ملفات موقع w3schools | لتصفح الموقع بدون أنترنت - عالم التصميم والبرمجة

    يتيح هذا الموقع W3schools دروس تعليمية سهلة لمن يرغب في تعلم البرمجة من الصفر مع شروحات وأمثلة وإتاحة الفرصة لتطبيق هذه الأمثلة، الموقع يوفر دروسا في HTML وCSS وجافاسكريبت وبي إتش بي وjQuery وSQL ولغات اخري. 😊

    2 – منصة هرمش

    محمد هرموش (@MhamadHarmush) / Twitter

    منصة هرمش @harmashcom هي أضخم موقع في العالم العربي تم بناؤه من قبل @MhamadHarmush ليكون مرجعاً شاملاً لكل شخص يريد تعلّم البرمجة و علوم الحاسب مجاناً و بأسلوب إحترافي خالي من أي تعقيد. 🥰

    3 – Harvard University’s CS50 class

    What was the main motivation behind creating the CS50 business version? - Quora

    تقدم هذه الدورة المجانية مقدمة في علوم الكمبيوتر من جامعة هارفارد وتشمل التركيز على تعلم HTML ولغات البرمجة سي C وJavaScript وSQL وCSS كما توفر تعلم كيفية التفكير بطريقة منطقية وفهم الخوارزميات وكيفية حل المشاكل البرمجية بكفاءة ويمكن للطالب (المتدرب) بعد إتمام الدورة بنجاح دفع 90 دولار للحصول على شهادة موثقة.

     

    4 – Code.org

    Code.org Review for Teachers | Common Sense Education

    Code.org هو موقع غير هادف للربح يهدف إلى تشجيع الطلاب لتعلم الكمبيوتر وتعلم البرمجة من الصفر ويتضمن الموقع دروس مجانية في البرمجة من ضمنها درس لكيفية بناء لعبة مثل لعبة فلابي بيرد الشهيرة والعديد من الدروس الأخرى التي توفر تعلم البرمجة بسهولة.

    5 – Code School

    تعلم البرمجة على Code School لتعلم البرمجة 2021 | عالم زيدان

    يعتبر موقع Code School من أفضل المواقع التي توفر تعلم البرمجة من الصفر من خلال مسارات محددة مرتبة حسب المستوى وذلك من خلال دروس تفاعلية وشروحات بالفيديو ولقطات شاشة، وحسب الموقع فإن أكثر من 1 مليون شخص يستخدمون الموقع في تطوير مهاراتهم واكتساب مهارات جديدة وتشمل الدورات التعليمية مسار لتعلم HTML/CSS وآخر لتعلم JavaScript بالإضافة إلى مسار لتعلم لغة روبي ومسار لتعلم تطوير تطبيقات iOS بالإضافة لعدد كبير آخر من الدروس التعليمية، ويوفر Code School تطبيق لهواتف آيفون يتيح متابعة الدروس من خلاله، وتتوفر على الموقع العديد من الدورس التعليمية المجانية بالإضافة لدروس مدفوعة مقابل اشتراك شهري.

    6 – freecodecamp

    Responsive Web Design Certification Review | FreeCodeCamp Certification - YouTube

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

    7 – Codeconquest

    Featured Review - Code Conquest

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

    8 – Mozilla Developer Network

    The Mozilla Developer Network has a New Face - Mozilla Hacks - the Web developer blog

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

    9 – TheCodePlayer

    TheCodePlayer VS Kaizen ePortfolio - compare differences & reviews?

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

    10 – موقع Dash

    Responsive Admin Dashboard using Html CSS & Javascript | CSS Admin Template - YouTube

    يوفر موقع Dash تعلم البرمجة من خلال عدد من المشروعات التفاعلية مثل كيفية بناء موقع شخصي أو تصميم ثيم متجاوب لمدونة أو تطوير موقع لمؤسسة صغيرة وهو ما يجعل المتدرب يكتسب مهارات استخدام HTML وCSS وجافاسكريبت ومن أهم ما يميز الموقع الواجهة التفاعلية وتقدم جميع المشروعات مجانا.

     

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