انتهى الزمن الذي كانت فيه "الشهادة الجامعية" تضمن المستقبل؛ فنحن نعيش عصر "ماذا تستطيع أن تفعل؟" لا "ماذا درست؟". إنَّ التمسك باللقب الأكاديمي مع الجمود المهاراتي هو أقصر طريق للتقاعد المبكر عن التأثير. الميدان اليوم ينحاز لمن يملك "القدرة التطبيقية" والتعلم المستمر، لا لمن يملك بروازاً على الحائط.
د. عبد الكريم بكار
د. عبد الكريم بكار
👍1
نعيد ونكرر بعد التأسيس
هنا تجد خارطة الطريق لأي تخصص في البرمجة
خذ مجال معين واتخصص فيه وسوي مشاريع فيه
كل التوفيق والنجاح
https://roadmap.sh/dashboard
هنا تجد خارطة الطريق لأي تخصص في البرمجة
خذ مجال معين واتخصص فيه وسوي مشاريع فيه
كل التوفيق والنجاح
https://roadmap.sh/dashboard
roadmap.sh
Dashboard - roadmap.sh
Community driven roadmaps, articles and guides for developers to grow in their career.
👏3
هل لديك سيرة ذاتية؟ أم ما زلت تنتظر “الفرصة” لتبدأ؟
الكثير يعتقد أن السيرة الذاتية تُكتب بعد التخرج فقط او عند طلبها…
وهذا مفهوم خاطئ.
السيرة الذاتية ليست مجرد ورقة، بل هي:
انعكاس لمهاراتك الحالية
وسيلة لتوثيق تطورك الأكاديمي والعملي
أداة أساسية للحصول على التدريب و الفرص سوى للعمل او الدراسة
لماذا يجب أن تبدأ الآن؟
تساعدك على معرفة نقاط قوتك وضعفك وتحدد مسارك مثلا كمتخصص في مجال معين إذا كنت في تخصص علوم حاسوب او تخصص آخر لازم تتخصص في مجال محدد
هذا يجعلك أكثر استعدادًا لفرص العمل.
تبني لك هوية مهنية مبكرًا.
تميزك عن غيرك.
حتى لو لم تكن لديك خبرة، يمكنك كتابة:
مهاراتك الدراسية
مشاريعك الجامعية او مشاريعك الخاصة او مشاريع اشتغلت عليها
الدورات التي التحقت بها
أي نشاط تقني أو تطوعي
• شهادات حصلت عليها مثلاً
نصيحتي لكل طالب: ابدأ بسيرة ذاتية بسيطة اليوم، وطورها مع كل خطوة جديدة في رحلتك.
لا تنتظر التخرج… ابدأ الآن.
لمن يريد يتعلم كيف يسوي سيرة ذاتية بقوالب احترافية يترك تعليق وابشر بالطريقة.
طبعاً هذا فقط للنشر على مواقع التواصل الاجتماعي فقط
أما السيرة الذاتية الخاصة بالشركات مختلفة تماماً عن هذه
وبالتوفيق للجميع.
م. طارق العمري
#CV
#مسار_مهني #هندسة_برمحيات #تطوير_الذات
الكثير يعتقد أن السيرة الذاتية تُكتب بعد التخرج فقط او عند طلبها…
وهذا مفهوم خاطئ.
السيرة الذاتية ليست مجرد ورقة، بل هي:
انعكاس لمهاراتك الحالية
وسيلة لتوثيق تطورك الأكاديمي والعملي
أداة أساسية للحصول على التدريب و الفرص سوى للعمل او الدراسة
لماذا يجب أن تبدأ الآن؟
تساعدك على معرفة نقاط قوتك وضعفك وتحدد مسارك مثلا كمتخصص في مجال معين إذا كنت في تخصص علوم حاسوب او تخصص آخر لازم تتخصص في مجال محدد
هذا يجعلك أكثر استعدادًا لفرص العمل.
تبني لك هوية مهنية مبكرًا.
تميزك عن غيرك.
حتى لو لم تكن لديك خبرة، يمكنك كتابة:
مهاراتك الدراسية
مشاريعك الجامعية او مشاريعك الخاصة او مشاريع اشتغلت عليها
الدورات التي التحقت بها
أي نشاط تقني أو تطوعي
• شهادات حصلت عليها مثلاً
نصيحتي لكل طالب: ابدأ بسيرة ذاتية بسيطة اليوم، وطورها مع كل خطوة جديدة في رحلتك.
لا تنتظر التخرج… ابدأ الآن.
لمن يريد يتعلم كيف يسوي سيرة ذاتية بقوالب احترافية يترك تعليق وابشر بالطريقة.
طبعاً هذا فقط للنشر على مواقع التواصل الاجتماعي فقط
أما السيرة الذاتية الخاصة بالشركات مختلفة تماماً عن هذه
وبالتوفيق للجميع.
م. طارق العمري
#CV
#مسار_مهني #هندسة_برمحيات #تطوير_الذات
Alaa Alawdi CV-pages.pdf
306.1 KB
Alaa Alawdi CV-pages.pdf
نموذج لسيرة ذاتية احترافية
نموذج لسيرة ذاتية احترافية
https://www.cvpilot.io/cv-builder/?cvId=92
هذا الموقع تسوي من خلاله CV يناسب شروط نظام ATS للقبول والتوظيف
هذا الموقع تسوي من خلاله CV يناسب شروط نظام ATS للقبول والتوظيف
CVPilot
CVPilot – Build Your Perfect CV in Minutes
Create a professional, ATS-friendly CV in minutes. 15+ modern templates, AI writing assistance, instant PDF download.
نظام ATS هو اختصار لـ Applicant Tracking System، ويعني بالعربية:
نظام تتبّع المتقدمين للوظائف.
ببساطة، هو برنامج تستخدمه الشركات لتنظيم عملية التوظيف وفرز السير الذاتية.
خلونا من شروط السيرة الذاتية و وجع الرأس
نشتي نفهم النظام نفسه
كيف يشتغل ؟ 👍😏
كيف يعمل نظام ATS؟
عندما تتقدم لوظيفة عبر الإنترنت، يتم إدخال سيرتك الذاتية في النظام
يقوم النظام بقراءة السيرة وتحليلها (غالبًا باستخدام كلمات مفتاحية)
يفرز المتقدمين حسب مدى تطابقهم مع متطلبات الوظيفة
يرشّح أفضل المرشحين لمسؤولي التوظيف
لماذا هو مهم؟
لأن معظم الشركات اليوم تعتمد عليه، وهذا يعني:
قد يتم رفض سيرتك الذاتية قبل أن يراها أي شخص
يعتمد القبول بشكل كبير على الكلمات المفتاحية وطريقة كتابة السيرة
مثال بسيط
إذا كانت الوظيفة تطلب:
"خبرة في إدارة المشاريع باستخدام Agile"
والسيرة الذاتية لا تحتوي على هذه الكلمات أو مرادفاتها، قد لا يتم اختيارها حتى لو كانت لديك خبرة فعلية.
نصائح للتعامل مع ATS
استخدم كلمات مفتاحية من إعلان الوظيفة
تجنب التصاميم المعقدة (الجداول، الصور)
اكتب بشكل واضح وبسيط
استخدم عناوين تقليدية مثل: (خبرات، مهارات، تعليم).
نظام تتبّع المتقدمين للوظائف.
ببساطة، هو برنامج تستخدمه الشركات لتنظيم عملية التوظيف وفرز السير الذاتية.
خلونا من شروط السيرة الذاتية و وجع الرأس
نشتي نفهم النظام نفسه
كيف يشتغل ؟ 👍😏
كيف يعمل نظام ATS؟
عندما تتقدم لوظيفة عبر الإنترنت، يتم إدخال سيرتك الذاتية في النظام
يقوم النظام بقراءة السيرة وتحليلها (غالبًا باستخدام كلمات مفتاحية)
يفرز المتقدمين حسب مدى تطابقهم مع متطلبات الوظيفة
يرشّح أفضل المرشحين لمسؤولي التوظيف
لماذا هو مهم؟
لأن معظم الشركات اليوم تعتمد عليه، وهذا يعني:
قد يتم رفض سيرتك الذاتية قبل أن يراها أي شخص
يعتمد القبول بشكل كبير على الكلمات المفتاحية وطريقة كتابة السيرة
مثال بسيط
إذا كانت الوظيفة تطلب:
"خبرة في إدارة المشاريع باستخدام Agile"
والسيرة الذاتية لا تحتوي على هذه الكلمات أو مرادفاتها، قد لا يتم اختيارها حتى لو كانت لديك خبرة فعلية.
نصائح للتعامل مع ATS
استخدم كلمات مفتاحية من إعلان الوظيفة
تجنب التصاميم المعقدة (الجداول، الصور)
اكتب بشكل واضح وبسيط
استخدم عناوين تقليدية مثل: (خبرات، مهارات، تعليم).
📄 Software Requirements Specification (SRS)
📌 System: Applicant Tracking System (ATS)
1. 🧾 Introduction
1.1 Purpose
يهدف هذا المستند إلى تحديد المتطلبات الوظيفية وغير الوظيفية لنظام ATS المستخدم لإدارة عمليات التوظيف داخل الشركات.
1.2 Scope
النظام يسمح بـ:
نشر الوظائف
استقبال طلبات التوظيف
تحليل السير الذاتية
تصنيف وترتيب المتقدمين
إدارة عملية التوظيف بالكامل
1.3 Definitions
ATS: نظام تتبع المتقدمين
CV: السيرة الذاتية
HR: مسؤول الموارد البشرية
2. 🧠 Overall Description
2.1 Product Perspective
النظام عبارة عن Web Application متكامل يتكون من:
واجهة مستخدم (Frontend)
Backend API
قاعدة بيانات
خدمات تحليل CV و Matching
2.2 User Classes
1. Candidate (المتقدم)
إنشاء حساب
رفع CV
التقديم على الوظائف
2. HR / Recruiter
نشر الوظائف
مراجعة المتقدمين
إدارة مراحل التوظيف
3. Admin
إدارة النظام
التحكم في المستخدمين
2.3 Operating Environment
Web Browser (Chrome, Firefox)
Backend Server (Node.js / .NET / Java)
Database (SQL Server / PostgreSQL)
3. ⚙️ Functional Requirements
3.1 User Management
FR-001: يجب أن يتمكن المستخدم من إنشاء حساب
FR-002: يجب أن يتمكن المستخدم من تسجيل الدخول
FR-003: يجب دعم استعادة كلمة المرور
3.2 Job Management
FR-004: يجب أن يتمكن HR من إنشاء وظيفة
FR-005: يجب تعديل وحذف الوظائف
FR-006: يجب عرض الوظائف للمتقدمين
3.3 Application Management
FR-007: يجب أن يتمكن المستخدم من التقديم على وظيفة
FR-008: يجب تخزين بيانات الطلب
FR-009: يجب تتبع حالة الطلب
3.4 Resume Upload & Parsing
FR-010: يجب رفع CV بصيغة PDF أو DOCX
FR-011: يجب تحليل CV تلقائيًا
FR-012: يجب استخراج:
الاسم
المهارات
الخبرات
التعليم
3.5 Matching & Ranking
FR-013: يجب مقارنة CV مع متطلبات الوظيفة
FR-014: يجب إعطاء Score لكل متقدم
FR-015: يجب ترتيب المتقدمين حسب الأفضلية
3.6 Workflow Management
FR-016: يجب دعم مراحل التوظيف:
Applied
Screening
Interview
Offer
Rejected
3.7 Notification System
FR-017: إرسال إشعارات عند:
التقديم
تغيير الحالة
قبول / رفض
4. 🔒 Non-Functional Requirements
4.1 Performance
يجب أن يعالج النظام 1000 طلب/دقيقة
زمن تحليل CV لا يتجاوز 5 ثواني
4.2 Security
تشفير البيانات (HTTPS)
حماية كلمات المرور (Hashing)
Role-Based Access Control
4.3 Usability
واجهة سهلة الاستخدام
دعم اللغة العربية والإنجليزية
4.4 Scalability
النظام يجب أن يدعم التوسع (Microservices)
4.5 Availability
uptime لا يقل عن 99%
5. 🗄️ Data Requirements
Entities:
Users
Jobs
Candidates
Applications
CV_Data
6. 🔄 System Workflow
1. المستخدم ينشئ حساب
2. يرفع CV
3. النظام يحلل CV
4. المستخدم يقدم على وظيفة
5. النظام يقارن ويعطي Score
6. HR يراجع ويرتب المتقدمين
7. يتم الانتقال بين مراحل التوظيف
7. ⚠️ Constraints
دعم صيغ CV (PDF, DOCX فقط)
الاعتماد على مكتبات NLP
الاتصال بالإنترنت مطلوب
8. 🚀 Future Enhancements
استخدام AI متقدم (LLMs)
توصية وظائف للمتقدمين
تحليل فيديو المقابلات
Chatbot للتوظيف
📌 System: Applicant Tracking System (ATS)
1. 🧾 Introduction
1.1 Purpose
يهدف هذا المستند إلى تحديد المتطلبات الوظيفية وغير الوظيفية لنظام ATS المستخدم لإدارة عمليات التوظيف داخل الشركات.
1.2 Scope
النظام يسمح بـ:
نشر الوظائف
استقبال طلبات التوظيف
تحليل السير الذاتية
تصنيف وترتيب المتقدمين
إدارة عملية التوظيف بالكامل
1.3 Definitions
ATS: نظام تتبع المتقدمين
CV: السيرة الذاتية
HR: مسؤول الموارد البشرية
2. 🧠 Overall Description
2.1 Product Perspective
النظام عبارة عن Web Application متكامل يتكون من:
واجهة مستخدم (Frontend)
Backend API
قاعدة بيانات
خدمات تحليل CV و Matching
2.2 User Classes
1. Candidate (المتقدم)
إنشاء حساب
رفع CV
التقديم على الوظائف
2. HR / Recruiter
نشر الوظائف
مراجعة المتقدمين
إدارة مراحل التوظيف
3. Admin
إدارة النظام
التحكم في المستخدمين
2.3 Operating Environment
Web Browser (Chrome, Firefox)
Backend Server (Node.js / .NET / Java)
Database (SQL Server / PostgreSQL)
3. ⚙️ Functional Requirements
3.1 User Management
FR-001: يجب أن يتمكن المستخدم من إنشاء حساب
FR-002: يجب أن يتمكن المستخدم من تسجيل الدخول
FR-003: يجب دعم استعادة كلمة المرور
3.2 Job Management
FR-004: يجب أن يتمكن HR من إنشاء وظيفة
FR-005: يجب تعديل وحذف الوظائف
FR-006: يجب عرض الوظائف للمتقدمين
3.3 Application Management
FR-007: يجب أن يتمكن المستخدم من التقديم على وظيفة
FR-008: يجب تخزين بيانات الطلب
FR-009: يجب تتبع حالة الطلب
3.4 Resume Upload & Parsing
FR-010: يجب رفع CV بصيغة PDF أو DOCX
FR-011: يجب تحليل CV تلقائيًا
FR-012: يجب استخراج:
الاسم
المهارات
الخبرات
التعليم
3.5 Matching & Ranking
FR-013: يجب مقارنة CV مع متطلبات الوظيفة
FR-014: يجب إعطاء Score لكل متقدم
FR-015: يجب ترتيب المتقدمين حسب الأفضلية
3.6 Workflow Management
FR-016: يجب دعم مراحل التوظيف:
Applied
Screening
Interview
Offer
Rejected
3.7 Notification System
FR-017: إرسال إشعارات عند:
التقديم
تغيير الحالة
قبول / رفض
4. 🔒 Non-Functional Requirements
4.1 Performance
يجب أن يعالج النظام 1000 طلب/دقيقة
زمن تحليل CV لا يتجاوز 5 ثواني
4.2 Security
تشفير البيانات (HTTPS)
حماية كلمات المرور (Hashing)
Role-Based Access Control
4.3 Usability
واجهة سهلة الاستخدام
دعم اللغة العربية والإنجليزية
4.4 Scalability
النظام يجب أن يدعم التوسع (Microservices)
4.5 Availability
uptime لا يقل عن 99%
5. 🗄️ Data Requirements
Entities:
Users
Jobs
Candidates
Applications
CV_Data
6. 🔄 System Workflow
1. المستخدم ينشئ حساب
2. يرفع CV
3. النظام يحلل CV
4. المستخدم يقدم على وظيفة
5. النظام يقارن ويعطي Score
6. HR يراجع ويرتب المتقدمين
7. يتم الانتقال بين مراحل التوظيف
7. ⚠️ Constraints
دعم صيغ CV (PDF, DOCX فقط)
الاعتماد على مكتبات NLP
الاتصال بالإنترنت مطلوب
8. 🚀 Future Enhancements
استخدام AI متقدم (LLMs)
توصية وظائف للمتقدمين
تحليل فيديو المقابلات
Chatbot للتوظيف
❤1
طيب في مواضيع دسمه في تخصصنا
احنا الذي نعرفه ان المشروع يضل محلي فقط نبرمج ونختبره ونشغل سيرفر محلي يعني بيئة واحدة
وهنا اذا استمرت على هذا المستوى الذكاء الاصطناعي يعمل عملك بقوة و ومابش فائدة منك ؟
في مهندس برمجيات بيقول بمنشور له على منصات التواصل الاجتماعي ان البيئات تتكون من ثلاث مراحل ؟
بيئة التطوير المحلية (Local) احنا هنا
بيئة الاختبار (Staging).
بيئة الانتاج (production)
بيئة التطوير المحلية (Local) - > الذكاء الاصطناعي يكون هنا فقط
طيب ةالبقية كيف ما ينفعش معها الذكاء الاصطناعي خالص هذه يحتاج لها خبرة في المجال كهندسة برمجيات و حوسبة سحابية .
لازم نفهمها ولو مقدمة ؟
كونوا معنا
احنا الذي نعرفه ان المشروع يضل محلي فقط نبرمج ونختبره ونشغل سيرفر محلي يعني بيئة واحدة
وهنا اذا استمرت على هذا المستوى الذكاء الاصطناعي يعمل عملك بقوة و ومابش فائدة منك ؟
في مهندس برمجيات بيقول بمنشور له على منصات التواصل الاجتماعي ان البيئات تتكون من ثلاث مراحل ؟
بيئة التطوير المحلية (Local) احنا هنا
بيئة الاختبار (Staging).
بيئة الانتاج (production)
بيئة التطوير المحلية (Local) - > الذكاء الاصطناعي يكون هنا فقط
طيب ةالبقية كيف ما ينفعش معها الذكاء الاصطناعي خالص هذه يحتاج لها خبرة في المجال كهندسة برمجيات و حوسبة سحابية .
لازم نفهمها ولو مقدمة ؟
كونوا معنا
لماذا لا يكفي تشغيل المشروع على جهازك فقط؟
فهم البيئات الثلاث في هندسة البرمجيات الحديثة
Local vs Staging vs Production
كثير من المبتدئين في البرمجة يعتقدون أن المشروع بمجرد أن يعمل على أجهزتهم المحلية فهذا يعني أنه “جاهز”.
يقوم ببرمجة النظام، تشغيل قاعدة البيانات محليًا، فتح السيرفر المحلي، تجربة بعض الصفحات… ثم يعتبر أن التطبيق انتهى.
لكن في الشركات البرمجية الحقيقية الأمر مختلف تمامًا.
المشروع لا يعيش داخل بيئة واحدة فقط، بل يمر غالبًا عبر ثلاث بيئات رئيسية:
Local Environment
Staging Environment
Production Environment
وهذه ليست مجرد أسماء، بل فلسفة كاملة في هندسة البرمجيات الحديثة وإدارة دورة حياة الأنظمة.
أولًا: بيئة التطوير المحلية (Local Environment)
هي البيئة التي يعمل عليها المطور داخل جهازه الشخصي.
عادةً تشمل:
VS Code أو Visual Studio
قاعدة بيانات محلية
Localhost
Docker أحيانًا
ملفات تجريبية
بيانات غير حقيقية
مثال:
localhost:3000
localhost:8000
127.0.0.1
في هذه المرحلة يقوم المطور بـ:
كتابة الكود
تجربة الميزات
إصلاح الأخطاء
اختبار الأفكار الجديدة
بناء النظام مبدئيًا
المشكلة الكبيرة هنا
الكثير يظن أن:
“إذا اشتغل المشروع عندي إذن المشروع ناجح”
وهذا خطأ هندسي خطير.
لأن المشروع داخل Local Environment يعمل في ظروف مثالية جدًا:
نفس جهاز المطور
نفس نظام التشغيل
نفس المكتبات
نفس الشبكة
نفس الإعدادات
بينما المستخدم الحقيقي لن يعمل في هذه الظروف.
ثانيًا: بيئة الاختبار (Staging Environment)
وهنا يبدأ الانتقال من “مشروع طالب” إلى “نظام حقيقي”.
بيئة Staging هي نسخة شبه مطابقة للإنتاج الحقيقي (Production)، لكن مخصصة للاختبار النهائي.
بمعنى:
كأنك تبني نسخة تجريبية من العالم الحقيقي قبل إطلاق المشروع للناس.
لماذا نحتاج Staging؟
لأن كثيرًا من المشاكل لا تظهر في Local.
مثل:
مشاكل السيرفر
مشاكل الأداء
مشاكل الشبكة
أخطاء قواعد البيانات
مشاكل الصلاحيات
مشاكل رفع الملفات
مشاكل API
اختلاف أنظمة التشغيل
مشاكل الحماية
مشاكل التوافق
ماذا يحدث داخل Staging؟
يتم:
رفع المشروع على سيرفر حقيقي
استخدام قاعدة بيانات قريبة من الحقيقية
اختبار المستخدمين
اختبار الأمان
اختبار الأداء
تجربة التحديثات قبل النشر
مثال واقعي
تخيل أنك طورت منصة تجارة إلكترونية.
في جهازك:
الصور تفتح بسرعة
الدفع يعمل
النظام ممتاز
لكن بعد رفع المشروع:
السيرفر ينهار مع 100 مستخدم
API بطيء
الملفات لا تُرفع
الصلاحيات معطلة
قاعدة البيانات تتجمد
هنا تظهر أهمية Staging.
ثالثًا: بيئة الإنتاج (Production Environment)
هذه البيئة هي النسخة النهائية التي يستخدمها العملاء الحقيقيون.
أي خطأ هنا قد يعني:
خسارة مالية
توقف الخدمة
فقدان بيانات
مشاكل أمنية
انهيار ثقة المستخدمين
ولهذا فإن التعامل مع Production يختلف جذريًا عن Local.
في Production يصبح كل شيء حساسًا
حتى سطر كود واحد قد يسبب كارثة.
لهذا تستخدم الشركات:
CI/CD Pipelines
Monitoring Systems
Logging
Load Balancing
Auto Scaling
Backups
Security Layers
Observability
Rollback Systems
الفرق الحقيقي بين المبرمج والمُهندس البرمجي
المبرمج قد يكتب كود يعمل.
أما المهندس البرمجي فيفكر في:
أين سيعمل النظام؟
كيف سيتم نشره؟
كيف سيتحمل الضغط؟
ماذا لو تعطل السيرفر؟
كيف نمنع فقدان البيانات؟
كيف نراقب الأخطاء؟
كيف نحدث النظام بدون توقف الخدمة؟
دورة المشروع الحقيقية داخل الشركات
غالبًا تكون كالتالي:
Developer Machine (Local)
↓
Git Repository
↓
CI/CD Pipeline
↓
Staging Server
↓
QA Testing
↓
Production Deployment
↓
Monitoring & Maintenance
لماذا هذه الفكرة مهمة جدًا لطلاب البرمجة؟
لأن أغلب الطلاب جالس يتعلم لغات برمجة واطر عمل ولا خرج الى طريق
كتابة الكود فقط
لكن سوق العمل يحتاج:
فهم دورة حياة النظام بالكامل
وهنا الفرق بين:
شخص “يبني مشروع”
و
مهندس يستطيع إدارة نظام حقيقي قابل للتوسع.
التقنيات المرتبطة بهذه البيئات
كلما تعمقت ستتعلم أدوات مرتبطة بها مثل:
Local
Docker
XAMPP
WAMP
Local Databases
Staging
Jenkins
GitHub Actions
GitLab CI/CD
Kubernetes Testing Clusters
Production
AWS
Azure
Nginx
Kubernetes
Monitoring Systems
Prometheus
Grafana
الخلاصة
تشغيل المشروع على جهازك لا يعني أن المشروع جاهز.
الأنظمة الحقيقية تمر عبر مراحل متعددة لضمان:
الجودة
الاستقرار
الأمان
الأداء
قابلية التوسع
وفهم هذه البيئات هو أحد الفروقات الجوهرية بين البرمجة كهواية، وهندسة البرمجيات كمجال احترافي متكامل.
فهم البيئات الثلاث في هندسة البرمجيات الحديثة
Local vs Staging vs Production
كثير من المبتدئين في البرمجة يعتقدون أن المشروع بمجرد أن يعمل على أجهزتهم المحلية فهذا يعني أنه “جاهز”.
يقوم ببرمجة النظام، تشغيل قاعدة البيانات محليًا، فتح السيرفر المحلي، تجربة بعض الصفحات… ثم يعتبر أن التطبيق انتهى.
لكن في الشركات البرمجية الحقيقية الأمر مختلف تمامًا.
المشروع لا يعيش داخل بيئة واحدة فقط، بل يمر غالبًا عبر ثلاث بيئات رئيسية:
Local Environment
Staging Environment
Production Environment
وهذه ليست مجرد أسماء، بل فلسفة كاملة في هندسة البرمجيات الحديثة وإدارة دورة حياة الأنظمة.
أولًا: بيئة التطوير المحلية (Local Environment)
هي البيئة التي يعمل عليها المطور داخل جهازه الشخصي.
عادةً تشمل:
VS Code أو Visual Studio
قاعدة بيانات محلية
Localhost
Docker أحيانًا
ملفات تجريبية
بيانات غير حقيقية
مثال:
localhost:3000
localhost:8000
127.0.0.1
في هذه المرحلة يقوم المطور بـ:
كتابة الكود
تجربة الميزات
إصلاح الأخطاء
اختبار الأفكار الجديدة
بناء النظام مبدئيًا
المشكلة الكبيرة هنا
الكثير يظن أن:
“إذا اشتغل المشروع عندي إذن المشروع ناجح”
وهذا خطأ هندسي خطير.
لأن المشروع داخل Local Environment يعمل في ظروف مثالية جدًا:
نفس جهاز المطور
نفس نظام التشغيل
نفس المكتبات
نفس الشبكة
نفس الإعدادات
بينما المستخدم الحقيقي لن يعمل في هذه الظروف.
ثانيًا: بيئة الاختبار (Staging Environment)
وهنا يبدأ الانتقال من “مشروع طالب” إلى “نظام حقيقي”.
بيئة Staging هي نسخة شبه مطابقة للإنتاج الحقيقي (Production)، لكن مخصصة للاختبار النهائي.
بمعنى:
كأنك تبني نسخة تجريبية من العالم الحقيقي قبل إطلاق المشروع للناس.
لماذا نحتاج Staging؟
لأن كثيرًا من المشاكل لا تظهر في Local.
مثل:
مشاكل السيرفر
مشاكل الأداء
مشاكل الشبكة
أخطاء قواعد البيانات
مشاكل الصلاحيات
مشاكل رفع الملفات
مشاكل API
اختلاف أنظمة التشغيل
مشاكل الحماية
مشاكل التوافق
ماذا يحدث داخل Staging؟
يتم:
رفع المشروع على سيرفر حقيقي
استخدام قاعدة بيانات قريبة من الحقيقية
اختبار المستخدمين
اختبار الأمان
اختبار الأداء
تجربة التحديثات قبل النشر
مثال واقعي
تخيل أنك طورت منصة تجارة إلكترونية.
في جهازك:
الصور تفتح بسرعة
الدفع يعمل
النظام ممتاز
لكن بعد رفع المشروع:
السيرفر ينهار مع 100 مستخدم
API بطيء
الملفات لا تُرفع
الصلاحيات معطلة
قاعدة البيانات تتجمد
هنا تظهر أهمية Staging.
ثالثًا: بيئة الإنتاج (Production Environment)
هذه البيئة هي النسخة النهائية التي يستخدمها العملاء الحقيقيون.
أي خطأ هنا قد يعني:
خسارة مالية
توقف الخدمة
فقدان بيانات
مشاكل أمنية
انهيار ثقة المستخدمين
ولهذا فإن التعامل مع Production يختلف جذريًا عن Local.
في Production يصبح كل شيء حساسًا
حتى سطر كود واحد قد يسبب كارثة.
لهذا تستخدم الشركات:
CI/CD Pipelines
Monitoring Systems
Logging
Load Balancing
Auto Scaling
Backups
Security Layers
Observability
Rollback Systems
الفرق الحقيقي بين المبرمج والمُهندس البرمجي
المبرمج قد يكتب كود يعمل.
أما المهندس البرمجي فيفكر في:
أين سيعمل النظام؟
كيف سيتم نشره؟
كيف سيتحمل الضغط؟
ماذا لو تعطل السيرفر؟
كيف نمنع فقدان البيانات؟
كيف نراقب الأخطاء؟
كيف نحدث النظام بدون توقف الخدمة؟
دورة المشروع الحقيقية داخل الشركات
غالبًا تكون كالتالي:
Developer Machine (Local)
↓
Git Repository
↓
CI/CD Pipeline
↓
Staging Server
↓
QA Testing
↓
Production Deployment
↓
Monitoring & Maintenance
لماذا هذه الفكرة مهمة جدًا لطلاب البرمجة؟
لأن أغلب الطلاب جالس يتعلم لغات برمجة واطر عمل ولا خرج الى طريق
كتابة الكود فقط
لكن سوق العمل يحتاج:
فهم دورة حياة النظام بالكامل
وهنا الفرق بين:
شخص “يبني مشروع”
و
مهندس يستطيع إدارة نظام حقيقي قابل للتوسع.
التقنيات المرتبطة بهذه البيئات
كلما تعمقت ستتعلم أدوات مرتبطة بها مثل:
Local
Docker
XAMPP
WAMP
Local Databases
Staging
Jenkins
GitHub Actions
GitLab CI/CD
Kubernetes Testing Clusters
Production
AWS
Azure
Nginx
Kubernetes
Monitoring Systems
Prometheus
Grafana
الخلاصة
تشغيل المشروع على جهازك لا يعني أن المشروع جاهز.
الأنظمة الحقيقية تمر عبر مراحل متعددة لضمان:
الجودة
الاستقرار
الأمان
الأداء
قابلية التوسع
وفهم هذه البيئات هو أحد الفروقات الجوهرية بين البرمجة كهواية، وهندسة البرمجيات كمجال احترافي متكامل.
❤2
🎓#_دعوة_لحضور_الأسبوع_العلمي_الأول.
#بكلية_الحاسبات_والعلوم_التطبيقية_جامعة_إب.
برعاية الأستاذ الدكتور/ ا.د. نصر محمد الحجيلي (رئيس الجامعة)، وبإشراف الأستاذ الدكتور منير السروري (عميد الكلية)، واحتفاءً بتدشين أقسامنا الجديدة (الذكاء الاصطناعي والأمن السيبراني)، نتشرف بدعوتكم لحضور:
💥"الأسبوع العلمي للحوسبة والعلوم التطبيقية"
(نحو جيل مبدع يسهم في بناء المستقبل الرقمي)
📅 أجندة الفعاليات (11 - 14 مايو 2026م)
الاثنين (11 مايو): اليوم التقني الثاني
#الحدث: استعراض ومناقشة مشاريع تخرج طلاب (علوم الحاسوب وتقنية المعلومات).
الموقع: قاعة "منقذة" – كلية الطب والعلوم الصحية.
الثلاثاء (12 مايو): المؤتمر العلمي الداخلي الأول
#الحدث: مناقشة أحدث الأوراق البحثية والابتكارات في علوم الحوسبة.
#الموقع: قاعة "منقذة" – كلية الطب والعلوم الصحية.
الأربعاء والخميس (13 - 14 مايو): معرض الابتكار والندوات
#الحدث: عروض حية للمشاريع المتميزة + ندوات تخصصية لنخبة من خبراء الكلية.
#الموقع: رحاب كلية الحاسبات والعلوم التطبيقية.
💡 لماذا يجب أن تحضر؟
•استكشاف: التعرف على ابتكارات الطلاب ومشاريعهم التقنية الصاعدة.
•إثراء: الانخراط في بيئة بحثية تجمع الأكاديميين والمتخصصين.
•تواصل: بناء علاقات مع الخبراء لربط التعليم بمتطلبات سوق العمل.
📍 تنويهات هامة:
⏰ التوقيت: تبدأ جميع الفعاليات يومياً في تمام الساعة 9:00 صباحاً.
👥 الدعوة: مفتوحة لجميع الباحثين، الطلاب، والمهتمين بالمجال التقني.
حضوركم دعمٌ للإبداع.. ننتظركم بشغف!
صادر عن:
#عمادة_كلية_الحاسبات_والعلوم_التطبيقية_جامعة_إب.
شاركونا فرحتنا 🎓🤍
#بكلية_الحاسبات_والعلوم_التطبيقية_جامعة_إب.
برعاية الأستاذ الدكتور/ ا.د. نصر محمد الحجيلي (رئيس الجامعة)، وبإشراف الأستاذ الدكتور منير السروري (عميد الكلية)، واحتفاءً بتدشين أقسامنا الجديدة (الذكاء الاصطناعي والأمن السيبراني)، نتشرف بدعوتكم لحضور:
💥"الأسبوع العلمي للحوسبة والعلوم التطبيقية"
(نحو جيل مبدع يسهم في بناء المستقبل الرقمي)
📅 أجندة الفعاليات (11 - 14 مايو 2026م)
الاثنين (11 مايو): اليوم التقني الثاني
#الحدث: استعراض ومناقشة مشاريع تخرج طلاب (علوم الحاسوب وتقنية المعلومات).
الموقع: قاعة "منقذة" – كلية الطب والعلوم الصحية.
الثلاثاء (12 مايو): المؤتمر العلمي الداخلي الأول
#الحدث: مناقشة أحدث الأوراق البحثية والابتكارات في علوم الحوسبة.
#الموقع: قاعة "منقذة" – كلية الطب والعلوم الصحية.
الأربعاء والخميس (13 - 14 مايو): معرض الابتكار والندوات
#الحدث: عروض حية للمشاريع المتميزة + ندوات تخصصية لنخبة من خبراء الكلية.
#الموقع: رحاب كلية الحاسبات والعلوم التطبيقية.
💡 لماذا يجب أن تحضر؟
•استكشاف: التعرف على ابتكارات الطلاب ومشاريعهم التقنية الصاعدة.
•إثراء: الانخراط في بيئة بحثية تجمع الأكاديميين والمتخصصين.
•تواصل: بناء علاقات مع الخبراء لربط التعليم بمتطلبات سوق العمل.
📍 تنويهات هامة:
⏰ التوقيت: تبدأ جميع الفعاليات يومياً في تمام الساعة 9:00 صباحاً.
👥 الدعوة: مفتوحة لجميع الباحثين، الطلاب، والمهتمين بالمجال التقني.
حضوركم دعمٌ للإبداع.. ننتظركم بشغف!
صادر عن:
#عمادة_كلية_الحاسبات_والعلوم_التطبيقية_جامعة_إب.
شاركونا فرحتنا 🎓🤍
مكتبة Socket.IO
هي مكتبة تُستخدم لإنشاء اتصال لحظي
(Real-Time Communication)
بين العميل (Client) والخادم (Server) في تطبيقات الويب والتطبيقات الحديثة.
بمعنى: بدل ما المتصفح يرسل طلب كل مرة للسيرفر ليعرف هل يوجد تحديث أم لا، تقوم Socket.IO بفتح قناة اتصال مستمرة بين الطرفين
بحيث يتم إرسال البيانات مباشرة وفورياً.
ماذا تفعل Socket.IO ؟
تسمح لك ببناء أنظمة مثل:
الشات المباشر (Chat)
الإشعارات الفورية
الألعاب الجماعية أونلاين
التحديث المباشر للبيانات
تتبع المواقع الحي
أنظمة البث المباشر
لوحات التحكم اللحظية (Dashboards)
أنظمة المراسلة بين الخدمات
كيف تعمل ؟
تعتمد أساساً على تقنية:
WebSocket
وإذا لم يدعم المتصفح WebSocket تستخدم بدائل تلقائياً مثل:
Polling
وهذا يجعلها مستقرة وسهلة الاستخدام.
الفكرة المعمارية
بدل:
كل مرة
تصبح:
اتصال دائم.
مثال بسيط
السيرفر (Node.js)
العميل
ماذا يحدث هنا؟
العميل يتصل بالسيرفر
يرسل حدث اسمه message
السيرفر يستقبل الحدث
السيرفر يرسل رد مباشر
العميل يستقبل الرد فورياً
مفهوم الأحداث Event-Based
Socket.IO تعمل بنظام:
مثل:
و:
الفرق بينها وبين HTTP العادي
HTTPSocket.IOطلب ثم استجابةاتصال دائمليس لحظياًلحظيمناسب للـ APIsمناسب للتطبيقات التفاعليةPolling كثيرأسرع في الزمن الحقيقي
أهم الميزات
Rooms
تقسيم المستخدمين لغرف.
مثال:
غرفة مباراة
غرفة دردشة
غرفة فريق
Broadcasting
إرسال رسالة لكل المتصلين.
Private Messaging
إرسال لمستخدم محدد.
Auto Reconnection
إذا انقطع الاتصال يعيد الاتصال تلقائياً.
تستخدم غالباً مع
Node.js
Express.js
React
Vue
Flutter
React Native
هل هي Backend أم Frontend ؟
الاثنين.
يوجد:
Socket.IO Server
Socket.IO Client
متى تستخدمها؟
استخدمها عندما تحتاج:
تحديث فوري
تفاعل حي
تقليل التأخير
مزامنة مباشرة
ولا تستخدمها إذا:
مشروع CRUD عادي فقط
موقع ثابت
API تقليدي
مثال لمشاريع حقيقية
واتساب
تيليجرام ويب
Discord
ألعاب أونلاين
أنظمة تداول
لوحات مراقبة السيرفرات
أنظمة الدعم المباشر
في هندسة البرمجيات
Socket.IO تدخل ضمن:
Real-Time Systems
Event-Driven Architecture
Distributed Systems
Network Programming
هي مكتبة تُستخدم لإنشاء اتصال لحظي
(Real-Time Communication)
بين العميل (Client) والخادم (Server) في تطبيقات الويب والتطبيقات الحديثة.
بمعنى: بدل ما المتصفح يرسل طلب كل مرة للسيرفر ليعرف هل يوجد تحديث أم لا، تقوم Socket.IO بفتح قناة اتصال مستمرة بين الطرفين
بحيث يتم إرسال البيانات مباشرة وفورياً.
ماذا تفعل Socket.IO ؟
تسمح لك ببناء أنظمة مثل:
الشات المباشر (Chat)
الإشعارات الفورية
الألعاب الجماعية أونلاين
التحديث المباشر للبيانات
تتبع المواقع الحي
أنظمة البث المباشر
لوحات التحكم اللحظية (Dashboards)
أنظمة المراسلة بين الخدمات
كيف تعمل ؟
تعتمد أساساً على تقنية:
WebSocket
وإذا لم يدعم المتصفح WebSocket تستخدم بدائل تلقائياً مثل:
Polling
وهذا يجعلها مستقرة وسهلة الاستخدام.
الفكرة المعمارية
بدل:
Client ----HTTP Request----> Server كل مرة
تصبح:
Client <==== Persistent Connection ====> Server اتصال دائم.
مثال بسيط
السيرفر (Node.js)
const io = require("socket.io")(3000); io.on("connection", (socket) => { console.log("User Connected"); socket.on("message", (data) => { console.log(data); socket.emit("reply", "تم استلام الرسالة"); }); }); العميل
const socket = io("http://localhost:3000"); socket.emit("message", "مرحبا"); socket.on("reply", (msg) => { console.log(msg); });
ماذا يحدث هنا؟
العميل يتصل بالسيرفر
يرسل حدث اسمه message
السيرفر يستقبل الحدث
السيرفر يرسل رد مباشر
العميل يستقبل الرد فورياً
مفهوم الأحداث Event-Based
Socket.IO تعمل بنظام:
emit -> إرسال حدث on -> استقبال حدث مثل:
socket.emit("newMessage", data); و:
socket.on("newMessage", callback); الفرق بينها وبين HTTP العادي
HTTPSocket.IOطلب ثم استجابةاتصال دائمليس لحظياًلحظيمناسب للـ APIsمناسب للتطبيقات التفاعليةPolling كثيرأسرع في الزمن الحقيقي
أهم الميزات
Rooms
تقسيم المستخدمين لغرف.
مثال:
غرفة مباراة
غرفة دردشة
غرفة فريق
Broadcasting
إرسال رسالة لكل المتصلين.
io.emit("message", data); Private Messaging
إرسال لمستخدم محدد.
Auto Reconnection
إذا انقطع الاتصال يعيد الاتصال تلقائياً.
تستخدم غالباً مع
Node.js
Express.js
React
Vue
Flutter
React Native
هل هي Backend أم Frontend ؟
الاثنين.
يوجد:
Socket.IO Server
Socket.IO Client
متى تستخدمها؟
استخدمها عندما تحتاج:
تحديث فوري
تفاعل حي
تقليل التأخير
مزامنة مباشرة
ولا تستخدمها إذا:
مشروع CRUD عادي فقط
موقع ثابت
API تقليدي
مثال لمشاريع حقيقية
واتساب
تيليجرام ويب
Discord
ألعاب أونلاين
أنظمة تداول
لوحات مراقبة السيرفرات
أنظمة الدعم المباشر
في هندسة البرمجيات
Socket.IO تدخل ضمن:
Real-Time Systems
Event-Driven Architecture
Distributed Systems
Network Programming
طيب يا جماعة عندي قصة حابب اقولها من رحلتي الجامعية
" قولوا كان معي جهاز لابتوب جيل ثاني بمواصفات ضعيفة جداً والحمدلله
استغليته بالتعلم بالرغم انه ما يصلحش تماماً لشخص مثلي بهذا التخصص
لا أداء ولا سرعة ولا مساحة ولا شي
لكن لازم ترضى بالأمر الواقع، منين نخلق كمبيوتر ؟ الناس بتتعلم من الجوال ؟
طبعاً يوم فجأة ادربت الشمطة حقي من فوق الدولاب والجهاز وسط الشمطة خلاص أنا قلت جهازي دركل
المهندس انتهي لحد الآن
كأن العمود الفقري حقي اكتسر
أقوم أفتح الجهاز اشوف الشاشة حمراء
ضبحت الصدق لأنه قد هو لغجة من نفسه
وتزيد الشاشة توقع حمراء يعني عمياء تخضب مجنونة
وأيضا المصدر الوحيد لي للتعلم
والمكافح معي من يوم سجلت معهد قبل الجامعة
المهم صبرت عليه وكملت سنة والشاشة حمراء
سرحته عند المهندس قال يشتي شاشة جديد
وأنا منين لي حق شاشة بمبلغ وقدرة !
يالله حلها من عندك
أخذت الجهاز واتروحت راضي بالحاصل
بعدين يأست منه قلت مافيش أمل
و رجعت اتعلم بالجوال واطبق عاد كنا بنتعلم ++C
بعدين يوم من الايام فجأة والله ما أكذب عليكم بكلمة
فتحت الجهاز بأيام قرب اختبارات وإن الشاشة سليمة شغالة ولا كأنه ادرب من فوق الدولاب ولا شي 🤔
كيف الخبر ، أنا تفاجأت أقسم بالله
من الفرحة قمت سجدت لله سجدة شكر
الخبير قال يشتي شاشة جديد
واللابتوب اشتغل من نفسه ورجع مثل يوم كان
يا ربي لك الحمد والله ما تصدقوا كمية الفرحة
بعدها قلت لازم أعرف السبب
اكتشفت انه حصل للشاشة ضغط حين سقط من فوق الدولاب لما سبب احمرار باللون فقط ما أكتسرش ولا شي وأكتشفت أيضاً إن المهندس تنكه مش فاهم او يشتي يجزع بضاعته مع أحترامي لمهندسين الصيانة
المهم صبرنا عليه لما خلصنا دراسة
والحمدلله اشتريت جهاز شبه جديد
أقوى وأفضل وأسرع بعشر مرات
انتقلت من جيل ثاني الى جيل ثامن
من رام ٤ الى رام ٣٢
من HDD الى SSD
لكن بعد ما خلصت جامعة
بعد ما علمني الجهاز الأول الصبر والحكمة وقوة القلب
اتخيلوا كان حلمي والله
أفتح المتصفح و الفيجول بنفس الوقت والله ما يتحمل ولا يقدر لازم اغلق احد التطبيقات لما يشتغل الثاني 🙂 اسوي رن يجلس دقيقتين لما يظهر الناتج
ومع ذلك كافحنا الى أن فرجها الله من عنده
الرسالة الذي حابب اوصلها :
أعمل بالحاصل ، لا تمكنها اعذار ويأس
اتحرك على نفسك حتى لو مافيش أمل
اشتغل بالحاصل ولو بالجوال
لا يقتلك التفكير وأنا منين لي وأنا مابش معي
اتوكل على الله واعمل بالسبب
حاشا لله أن يتركك وأنت متوكل عليه"
وسلامتكم
المهندس : طارق العُمري
" قولوا كان معي جهاز لابتوب جيل ثاني بمواصفات ضعيفة جداً والحمدلله
استغليته بالتعلم بالرغم انه ما يصلحش تماماً لشخص مثلي بهذا التخصص
لا أداء ولا سرعة ولا مساحة ولا شي
لكن لازم ترضى بالأمر الواقع، منين نخلق كمبيوتر ؟ الناس بتتعلم من الجوال ؟
طبعاً يوم فجأة ادربت الشمطة حقي من فوق الدولاب والجهاز وسط الشمطة خلاص أنا قلت جهازي دركل
المهندس انتهي لحد الآن
كأن العمود الفقري حقي اكتسر
أقوم أفتح الجهاز اشوف الشاشة حمراء
ضبحت الصدق لأنه قد هو لغجة من نفسه
وتزيد الشاشة توقع حمراء يعني عمياء تخضب مجنونة
وأيضا المصدر الوحيد لي للتعلم
والمكافح معي من يوم سجلت معهد قبل الجامعة
المهم صبرت عليه وكملت سنة والشاشة حمراء
سرحته عند المهندس قال يشتي شاشة جديد
وأنا منين لي حق شاشة بمبلغ وقدرة !
يالله حلها من عندك
أخذت الجهاز واتروحت راضي بالحاصل
بعدين يأست منه قلت مافيش أمل
و رجعت اتعلم بالجوال واطبق عاد كنا بنتعلم ++C
بعدين يوم من الايام فجأة والله ما أكذب عليكم بكلمة
فتحت الجهاز بأيام قرب اختبارات وإن الشاشة سليمة شغالة ولا كأنه ادرب من فوق الدولاب ولا شي 🤔
كيف الخبر ، أنا تفاجأت أقسم بالله
من الفرحة قمت سجدت لله سجدة شكر
الخبير قال يشتي شاشة جديد
واللابتوب اشتغل من نفسه ورجع مثل يوم كان
يا ربي لك الحمد والله ما تصدقوا كمية الفرحة
بعدها قلت لازم أعرف السبب
اكتشفت انه حصل للشاشة ضغط حين سقط من فوق الدولاب لما سبب احمرار باللون فقط ما أكتسرش ولا شي وأكتشفت أيضاً إن المهندس تنكه مش فاهم او يشتي يجزع بضاعته مع أحترامي لمهندسين الصيانة
المهم صبرنا عليه لما خلصنا دراسة
والحمدلله اشتريت جهاز شبه جديد
أقوى وأفضل وأسرع بعشر مرات
انتقلت من جيل ثاني الى جيل ثامن
من رام ٤ الى رام ٣٢
من HDD الى SSD
لكن بعد ما خلصت جامعة
بعد ما علمني الجهاز الأول الصبر والحكمة وقوة القلب
اتخيلوا كان حلمي والله
أفتح المتصفح و الفيجول بنفس الوقت والله ما يتحمل ولا يقدر لازم اغلق احد التطبيقات لما يشتغل الثاني 🙂 اسوي رن يجلس دقيقتين لما يظهر الناتج
ومع ذلك كافحنا الى أن فرجها الله من عنده
الرسالة الذي حابب اوصلها :
أعمل بالحاصل ، لا تمكنها اعذار ويأس
اتحرك على نفسك حتى لو مافيش أمل
اشتغل بالحاصل ولو بالجوال
لا يقتلك التفكير وأنا منين لي وأنا مابش معي
اتوكل على الله واعمل بالسبب
حاشا لله أن يتركك وأنت متوكل عليه"
وسلامتكم
المهندس : طارق العُمري
💯4❤1