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

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

الدرس 1: ما هي البرمجة

التعريف 💻:

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

أهميتها في الحياة اليومية 🌍:

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

كيف تساعد البرمجة في حل المشكلات 🛠️:

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

الدرس 2: لغات البرمجة

ما هي لغة البرمجة 🗣️؟

لغة البرمجة هي مجموعة من القواعد والبناء (syntax) تُستخدم لكتابة التعليمات للحاسوب. تمامًا مثل اللغات البشرية، كل لغة برمجة لها قواعدها وأسلوبها الخاص.

الاختلافات بين لغات البرمجة:

  1. البناء (Syntax) ✏️: كيف تُكتب وتُهيكل الأكواد.
  2. الغرض 🎯: بعض اللغات أفضل للمواقع، وأخرى لتحليل البيانات، وأخرى لبرمجة الأنظمة.
  3. السرعة والكفاءة ⚡: بعض اللغات تعمل أسرع أو تستهلك موارد أقل.

أمثلة على لغات شهيرة واستخداماتها:

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

الدرس 3: محررات الأكواد

ما هو محرر الأكواد 📝؟

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

أنواع المحررات 📂:

  1. محررات النص 📄 – أدوات بسيطة لكتابة الأكواد (مثل: Notepad++، Sublime Text).
  2. بيئات التطوير المتكاملة (IDEs) 🖥️ – أكثر تقدمًا، تجمع محرر الأكواد مع أدوات التصحيح، وأتمتة البناء، وغيرها (مثل: Visual Studio Code، PyCharm، Eclipse).

المحررات الشهيرة وكيفية اختيار المناسب ⚙️:

  • فيجوال ستوديو كود – خفيف، سريع، ويدعم العديد من اللغات.
  • سابلينم تكست – بسيط وسريع للبدء.
  • بايتشارم – رائع لتطوير بايثون.
اختر المحرر بناءً على اللغات التي تستخدمها، أداء جهازك، والميزات التي تفضلها.

الدرس 4: المترجم vs المفسر

الفرق بين المترجم والمفسر:

  • المترجم (Compiler) 🏎️ – يترجم البرنامج بالكامل إلى لغة الآلة قبل تشغيله. هذا يجعل البرنامج أسرع بعد الترجمة.
  • المفسر (Interpreter) 🚶‍♂️ – يقرأ وينفذ الأكواد سطرًا بسطر دون إنشاء ملف منفصل بلغة الآلة.

كيف يعمل كل منهما 🔍:

  • المترجم: الكود المصدري → يُترجم إلى لغة الآلة → ثم يُنفذ بواسطة الحاسوب.
  • المفسر: يقرأ سطرًا واحدًا من الكود، يترجمه، وينفذه فورًا.

أمثلة على اللغات 📚:

  • لغات مترجمة: سي ، سي بلس بلس ، جافا
  • لغات مُفسرة: بايثون ، جافا سكريبت ، بي إتش بي

الدرس 5: مجالات البرمجة وخارطة التعلم

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

  1. تطوير المواقع
  2. تطوير تطبيقات الهاتف
  3. الذكاء الاصطناعي والتعلم الآلي
  4. هندسة البيانات
  5. الأمن السيبراني
  6. تطوير الألعاب

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

ما هو تطوير المواقع 🗣️؟

يشمل تطوير المواقع العملية الكاملة لإنشاء وبناء وصيانة المواقع وتطبيقات الويب التي تعمل عبر الإنترنت أو الشبكة الداخلية.

1. تطوير الواجهة الأمامية 🎨
تعلم كيفية بناء ما يراه المستخدم ويتفاعل معه.

🔹 الأساسيات الأساسية:

  • HTML ← هيكل الصفحة
  • CSS ← التنسيق والتخطيط (تعلم Flexbox و Grid)
  • جافا سكريبت (JS) ← إضافة التفاعلية

🔹 الأطر والمكتبات الرئيسية:

  • React.js ← الأكثر طلبًا (من فيسبوك)
  • Vue.js ← مناسب للمبتدئين وخفيف
  • Angular ← للمشاريع الكبيرة (المؤسسات)

الحصة السوقية

React (45%)
Vue (25%)
Angular (20%)
أخرى (10%)

🔹 الأدوات المساعدة:

  • SASS/SCSS ← كتابة CSS محسّنة
  • Tailwind CSS ← إطار CSS عملي (utility-first)
  • Webpack/Vite ← التجميع والتحسين

2. تطوير الخلفية ⚙️
تعلم برمجة جهة الخادم وإدارة البيانات.

🔹 اللغات/الأطر الرئيسية:

  • جافا سكريبت (Node.js) + Express.js ← سهل إذا كنت تعرف JS
  • بايثون + Django/Flask
  • بي إتش بي + Laravel
  • جافا + Spring Boot

🔹 قواعد البيانات (تعلم واحدة على الأقل):

  • SQL (MySQL, PostgreSQL) ← بيانات علائقية
  • NoSQL (MongoDB) ← تخزين مرن بالمستندات
  • SQLite ← قاعدة بيانات محلية خفيفة
  • Redis ← للتخزين المؤقت وتحسين الأداء

SQL مقابل NoSQL

مقارنة SQL vs NoSQL

🔹 الأدوات الأساسية:

  • RESTful APIs ← للتواصل بين الواجهة والخلفية
  • Postman ← اختبار واجهات API

🔹 مهارات إضافية مطلوبة (Full-Stack):

  • Git & GitHub ← التحكم في الإصدارات
  • المصادقة (JWT, OAuth) ← أنظمة تسجيل الدخول
  • أساسيات الأمان ← حماية التطبيقات (XSS, CSRF)
  • الاختبارات ← اختبار الوحدات والتكامل

3. مواضيع متقدمة 🚀

  • GraphQL ← البديل الحديث لـ REST
  • WebSockets ← تطبيقات الوقت الفعلي (دردشة، إشعارات فورية)
  • Microservices ← تقسيم التطبيقات إلى خدمات صغيرة
  • Serverless (AWS Lambda, Firebase Functions) ← النشر بدون خوادم

4. النشر والاستضافة 🌍

  • Netlify / Vercel ← استضافة الواجهة الأمامية
  • Heroku / Render / Railway ← استضافة الخلفية
  • VPS (DigitalOcean, AWS, GCP) ← خوادم سحابية
  • النطاق و DNS ← شراء النطاقات وربطها

5. بناء المحفظة 💼

  • بناء مشاريع حقيقية (متجر إلكتروني، مدونة، لوحة تحكم)
  • رفع المشاريع إلى GitHub
  • إنشاء موقع محفظة شخصي
  • مشاركة الأعمال على LinkedIn و GitHub

تطوير تطبيقات الهاتف 📱

0️⃣ الأساسيات (للمبتدئين)

🔹 أساسيات البرمجة

  • المتغيرات والدوال ← لبنات بناء منطق التطبيق والتحكم في البيانات
  • الجمل الشرطية والحلقات ← لاتخاذ القرارات والمهام المتكررة
  • هياكل البيانات ← تخزين منظم للبيانات (مصفوفات، قوائم)

🔹 مفاهيم تطوير الهاتف

  • Native مقابل Hybrid: Native = أداء أفضل، Hybrid = منصات متعددة
  • تصميم واجهة المستخدم ← إنشاء شاشات بديهية وجذابة
  • إدارة الحالة ← الحفاظ على بيانات التطبيق عبر الشاشات
Native vs Hybrid

1️⃣ التخصص (اختر مسارك)

🔹 تطوير Android الأصلي (Native)

  • Kotlin ← لغة Google الحديثة
  • Jetpack Compose ← مجموعة أدوات UI الحديثة
  • Android Studio ← بيئة التطوير الرسمية
  • Firebase ← الخدمات السحابية
  • Room Database ← استمرارية البيانات المحلية
معمارية Room Database

🔹 تطوير iOS الأصلي (Native)

  • Swift ← لغة Apple القوية
  • SwiftUI ← إطار UI تصريحي
  • Xcode ← بيئة التطوير الرسمية
  • CoreData ← تخزين بيانات محلي
  • CocoaPods ← مدير الحزم (تبعيات)

🔹 التطوير عبر المنصات (Cross-Platform)

  • Flutter (Dart) ← مجموعة أدوات Google لتطبيقات جميلة أصلية
  • React Native (JS /TS ) ← إطار فيسبوك

المكتبات الرئيسية:

  • إدارة الحالة: Redux/Provider
  • API: Axios/Dio
  • التنقل: React Navigation

2️⃣ الأدوات الأساسية

🔹 التصميم

  • Figma/Adobe XD ← نمذجة UI/UX

🔹 الاختبار

  • اختبارات الوحدات ← اختبار الدوال والمنطق بمعزل عن الآخر
  • اختبارات واجهة المستخدم ← محاكاة تفاعلات المستخدم الكاملة
  • TDD ← منهجية التطوير القائم على الاختبار
  • أدوات المحاكاة (Mocking) ← إنشاء كائنات وهمية للاختبار (Mockito)

🔹 إدارة المشاريع

  • Git/GitHub ← التحكم في الإصدارات
  • Jira/Trello ← تنظيم المهام

3️⃣ مهارات متقدمة

🔹 البيانات و APIs

  • REST/GraphQL ← التواصل مع الخادم
  • Firebase ← قاعدة بيانات لحظية
  • SQLite ← تخزين محلي على الجهاز
REST vs GraphQL

🔹 أمان التطبيق

  • تخزين آمن للبيانات ← استخدام KeyStore/Keychain للبيانات الحساسة
  • تشفير البيانات ← تطبيق التشفير (AES) للبيانات المخزنة
  • اتصال آمن ← استخدام Certificate Pinning لمنع الهجمات
  • مصادقة قوية ← دعم المصادقة البيومترية والتحقق بخطوتين

🔹 ميزات متقدمة

  • الإشعارات الفورية ← Firebase Cloud Messaging
  • المدفوعات ← دمج Stripe
  • الخرائط ← SDKs من Google Maps/Apple Maps

4️⃣ النشر والتحسين

🔹 متاجر التطبيقات

  • Google Play Console ← نشر Android
  • App Store Connect ← نشر iOS
  • الاختبار التجريبي ← TestFlight (iOS) Firebase (Android)

🔹 الأداء

  • Crashlytics ← مراقبة الأخطاء
  • تحسين البطارية/الحجم ← كفاءة الموارد

5️⃣ النمو المهني

🔹 التعلم المستمر

  • متابعة تحديثات Google /Apple
  • الانضمام لمجتمعات المطورين (Stack Overflow / GitHub)
  • دورات متقدمة (Udemy, Coursera)

🔹 بناء المحفظة

  • مشاريع شخصية تعرض المهارات
  • المساهمة في المصادر المفتوحة
  • وجود على LinkedIn

الذكاء الاصطناعي والتعلم الآلي 🤖

0️⃣ الأساسيات (للمبتدئين)

🔹 أساسيات البرمجة والرياضيات

  • بايثون و R ← اللغات الأساسية في المجال
  • أساسيات الرياضيات ← الجبر الخطي، الإحصاء والاحتمالات، التفاضل والتكامل
  • هياكل البيانات والخوارزميات ← معالجة فعالة للبيانات
  • المنطق والخوارزميات ← الأساس المنطقي لبناء أنظمة الذكاء الاصطناعي

🔹 مفاهيم الذكاء الاصطناعي الأساسية

  • ما هو الذكاء الاصطناعي؟ ← الفرق بين AI, ML, Deep Learning, Generative AI
  • أنواع التعلم الآلي ← تعلم خاضع للإشراف، غير خاضع، تعلم معزز
  • أخلاقيات الذكاء الاصطناعي ← التحيز الخوارزمي، الخصوصية، الشفافية
  • دورة حياة المشروع ← جمع البيانات، التنظيف، النمذجة، التقييم، النشر

1️⃣ التخصص (اختر مسارك)

🔹 علم البيانات والتحليلات

  • Pandas و NumPy ← التعامل مع البيانات الرقمية
  • Matplotlib , Seaborn و Plotly ← التصور البياني للبيانات
  • SQL و NoSQL ← الاستعلام عن قواعد البيانات
  • Jupyter Notebook ← بيئة تفاعلية
  • Tableau / Power BI ← أدوات تصوير بيانات احترافية

🔹 التعلم الآلي الكلاسيكي

  • Scikit-learn ← مكتبة ML الأساسية
  • الانحدار ← توقع قيم مستمرة
  • التصنيف ← تصنيف البيانات
  • التجميع ← إيجاد أنماط في البيانات (K-Means, DBSCAN)
  • تقليل الأبعاد ← تبسيط البيانات المعقدة (PCA, t-SNE)

🔹 التعلم العميق

  • TensorFlow / PyTorch ← أطر الشبكات العصبية الرئيسية
  • Keras ← واجهة عالية المستوى
  • الشبكات العصبية الاصطناعية (ANNs) ← الأساس لجميع النماذج المعقدة

معالجة اللغة الطبيعية (NLP)

  • NLTK, spaCy ← معالجة اللغة الأساسية
  • Transformers (Hugging Face) ← نماذج لغة متقدمة (BERT, GPT, T5)

رؤية الحاسوب

  • OpenCV ← معالجة الصور الأساسية
  • CNN ← الشبكات العصبية الالتفافية لتحليل الصور
  • YOLO, R-CNN ← كشف وتتبع الأجسام

النماذج التوليدية

  • GANs ← الشبكات التوليدية التنافسية
  • VAEs ← المشفرات التلقائية التباينية
  • Diffusion Models ← أحدث تقنيات توليد الصور

2️⃣ الأدوات الأساسية

🔹 البيئة والتطوير

  • Git & GitHub ← التحكم في الإصدارات
  • Docker & Kubernetes ← الحاويات
  • VS Code / PyCharm / Jupyter ← بيئات التطوير
  • سطر أوامر Linux ← ضروري للخوادم والأدوات

3️⃣ مهارات متقدمة

🔹 هندسة التعلم الآلي (MLOps)

  • إدارة دورة الحياة ← MLflow, Kubeflow, Weights & Biases
  • نشر النماذج ← FastAPI, Flask, Streamlit
  • الحوسبة السحابية ← AWS SageMaker, Google Vertex AI, Azure ML
  • متاجر الميزات (Feature Stores) ← Feast, Tecton لإدارة بيانات التدريب

🔹 مجالات متقدمة

  • التعلم المعزز ← تدريب الوكلاء لاتخاذ قرارات متسلسلة
  • الذكاء الاصطناعي التوليدي ← نماذج اللغة الكبيرة (LLMs)، توليد المحتوى
  • التعلم العميق المتقدم ← Transformers, آليات الانتباه
  • رؤية الحاسوب المتقدمة ← كشف الأجسام، تجزئة الصور

5️⃣ النمو المهني

🔹 بناء المحفظة

  • مشاريع شخصية ← تطبيق المعرفة على مشاكل حقيقية (منصة Kaggle)
  • المساهمة في المصادر المفتوحة ← المساهمة في مكتبات مفتوحة المصدر
  • التواجد على LinkedIn ← عرض المشاريع، التواصل مع المحترفين
  • كتابة تقنية ← مشاركة المعرفة وتوثيق المشاريع
  • شهادات متخصصة ← الحصول على شهادات من مقدمي الخدمات السحابية

هندسة البيانات

0️⃣ الأساسيات (للمبتدئين)

🔹 أساسيات البرمجة وأنظمة التشغيل

  • بايثون ← معالجة البيانات، السكريبتات، الأتمتة
  • SQL ← استعلامات أساسية، وصلات معقدة، تجميعات
  • Linux /Unix ← التنقل في الطرفية، إدارة نظام الملفات

🔹 المفاهيم الأساسية

  • ETL مقابل ELT ← عمليات الاستخراج والتحويل والتحميل
  • نمذجة البيانات ← مخطط النجمة، مخطط الثلج، جداول الحقائق والأبعاد
  • المعالجة الدفعية مقابل المعالجة التدفقية ← فهم متطلبات زمن الوصول

1️⃣ الأدوات والمهارات الأساسية

🔹 ETL وتنسيق خطوط الأنابيب

  • Apache Airflow ← تعريف وجدولة ومراقبة سير العمل كـ DAGs
  • dbt (data build tool) ← تحويل البيانات داخل المستودع باستخدام SQL
  • ETL التقليدي ← أدوات مثل Talend, Informatica

2️⃣ هندسة البيانات المتوسطة

🔹 تقنيات البيانات الضخمة

  • Apache Spark ← محرك موحد لمعالجة البيانات على نطاق واسع
  • Apache Kafka ← منصة تدفق الأحداث الموزعة
  • Hadoop Ecosystem ← HDFS (تخزين)، MapReduce (معالجة)

🔹 منصات البيانات السحابية

  • AWS ← Redshift (مستودع), Glue (ETL), Lambda (بدون خادم)
  • GCP ← BigQuery (مستودع بدون خادم), Dataflow
  • Azure ← Synapse Analytics, Data Factory

🔟 النمو المهني والإتقان

🔹 التعلم المستمر

  • الدورات والمنصات ← Coursera , Udacity, DataCamp, ACloudGuru
  • الكتب ← "Fundamentals of Data Engineering", "Designing Data-Intensive Applications"
  • المجتمعات ← مجموعات Slack/Discord (Data Engineering Podcast, dbt Slack)

الأمن السيبراني

0️⃣ الأساسيات (للمبتدئين)

🔹 أساسيات الحاسوب وأنظمة التشغيل

  • ويندوز ← المستخدمون، نظام الملفات، الصلاحيات
  • لينكس ← الطرفية، العمليات، الصلاحيات
  • المحاكاة الافتراضية ← VMware , VirtualBox

🔹 مفاهيم الأمن السيبراني

  • التهديدات، الثغرات، المخاطر ← المفاهيم الأساسية
  • ثالث CIA ← السرية، التكامل، التوفر
  • المصادقة والتفويض ← التحكم في الوصول

1️⃣ الأدوات والمهارات الأساسية

🔹 أدوات الشبكات

  • Wireshark ← تحليل حركة المرور
  • Nmap ← فحص المنافذ
  • Metasploit ← إطار عمل للاستغلال

3️⃣ التخصصات (اختر مسارك)

🔹 أمن التطبيقات (AppSec)

  • OWASP أهم 10 ثغرات
  • البرمجة الآمنة (منع SQLi, XSS, CSRF)
  • أدوات الاختبار ← Burp Suite , OWASP ZAP

🔹 أمن الأنظمة والسحابة

  • تأمين لينكس وويندوز
  • أمن السحابة ← AWS , Azure , GCP
  • أمن الحاويات ← Docker , Kubernetes

8️⃣ الشهادات والمؤهلات

🔹 مستوى مبتدئ

  • CompTIA Security+
  • Cisco CCNA Security

🔹 مستوى متوسط

  • CEH ← اختراق أخلاقي
  • OSCP ← اختبار الاختراق العملي

🔹 مستوى متقدم

  • CISSP ← إدارة الأمان
  • CCSP ← أمن السحابة
  • CISM ← حوكمة الأمان

7️⃣ المعامل، المشاريع و CTFs

  • HackTheBox , TryHackMe ← التطبيق العملي
  • مسابقات Capture The Flag
  • تقارير تقييم الثغرات

🔟 النمو المهني والإتقان

  • GitHub ، مدونة ← مشاركة المشاريع والشروحات
  • LinkedIn ، مؤتمرات ← DEF CON, Black Hat
  • دورات ← Udemy , Coursera , Cybrary

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

0️⃣ الأساسيات (للمبتدئين)

🔹 البرمجة والمنطق

  • C++ ← تطوير ألعاب AAA عالية الجودة
  • C# ← إنشاء ألعاب 2D و 3D بسرعة
  • بايثون ← تعلم الأساسيات والنماذج الأولية
  • جافا سكريبت ← ألعاب المتصفح (Phaser.js, Three.js)

1️⃣ محركات الألعاب (اختر مسارك)

  • Unity (C# ) ← 2D & 3D، هاتف، VR، AR
  • Unreal Engine (C++ ) ← رسومات AAA، Blueprints، VR/AR
  • Godot (C#/GDScript) ← خفيف، مفتوح المصدر، 2D قوي
  • Phaser.js ← ألعاب HTML5 للمتصفح
  • GameMaker / Roblox Studio ← تطوير سريع مناسب للمبتدئين

2️⃣ المهارات الأساسية

🔹 الرسومات والتصيير

  • السبريتات، النسيج، التظليل ← جاذبية بصرية
  • الإضاءة، الظلال، الجسيمات ← إضافة الواقعية

🔹 ذكاء اصطناعي للألعاب

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

🔟 النمو المهني

  • إنشاء مشاريع 2D، 3D، هاتف ← إظهار المهارات العملية
  • نشر الألعاب على itch.io و GitHub ← مشاركة العمل
  • Ludum Dare, Global Game Jam ← تطوير المهارات والتواصل
  • يوتيوب (Brackeys, The Cherno) ← دروس وشروحات

عن المطور

أنا عبد السلام 👨‍💻، مطور Full Stack Front-End Web Developer. من خلال مشاريعي، أشارك 🌐 مواقع مفيدة و 💡 أفكارًا تعليمية تساعد الآخرين على التعلم والنمو. هدفي هو بناء منصات بسيطة وعملية وملهمة ✨.
Instagram إنستغرام: حسابي  ·  Logo المحفظة: saloom.netlify.app