برمجةوتقنية المعلومات C. P. W
620 subscribers
810 photos
94 videos
303 files
644 links
عالم الحاسوب برمجه وتقنيه وتطوير شرح كل ما يتطلب في مجال علوم الحاسوب والبرمجة
https://t.me/programming_C_w
قنات الجرافيكس @l_d_gh
#Digitalmarketing
#programming
#AI #CPA
#learn
التواصل معي @Eng_sharaf1
Download Telegram
Forwarded from Codefajr_كود فجر
البعض سوف يضهر له خطا SqlConnection في المكتبات وذالك بسبب نقص المكتبات اتبع الخطوات التاليه
إضافة مكتبة SQL Server: تأكد من إضافة System.Data.SqlClient إلى المشروع. يمكنك إضافتها عبر NuGet Package Manager.
54 مفهوم مهم في البرمجة 🗺🎨


🔹 1. Algorithm – الخوارزمية

مجموعة من الخطوات المحددة لحل مشكلة معينة أو تنفيذ مهمة.

🔹 2. Data Structure – هيكل البيانات
طريقة لتنظيم البيانات داخل الذاكرة لتسهيل الوصول والتعديل.

🔹 3. Variable Scope – نطاق المتغيرات
المكان الذي يمكن فيه الوصول إلى المتغير (داخل دالة، كلاس، إلخ).

🔹 4. Encapsulation – التغليف
إخفاء تفاصيل تنفيذ الكود وإظهار واجهة استخدام فقط.

🔹 5. Abstraction – التجريد
التركيز على المهم وإخفاء التفاصيل المعقدة.

🔹 6. Polymorphism – تعدد الأشكال
استخدام دوال أو كائنات بنفس الاسم ولكن بسلوك مختلف.

🔹 7. Inheritance – الوراثة
كلاس يرث خصائص ودوال من كلاس آخر.

🔹 8. Recursion – الاستدعاء الذاتي
دالة تستدعي نفسها لحل أجزاء أصغر من المشكلة.

🔹 9. DRY – Don’t Repeat Yourself
مبدأ يمنع تكرار الكود ويسعى لإعادة الاستخدام.

🔹 10. KISS – Keep It Simple, Stupid
اجعل الكود بسيطًا وواضحًا دون تعقيد غير ضروري.

🔹 11. YAGNI – You Ain’t Gonna Need It
لا تكتب كودًا أو تضف ميزات غير مطلوبة بعد.

🔹 12. SOLID Principles
خمسة مبادئ تصميم تجعل الكود قابلًا للصيانة والتوسعة.

🔹 13. Design Patterns – أنماط التصميم
حلول عامة لمشاكل متكررة في تصميم البرمجيات.

🔹 14. Coupling – الترابط
مدى اعتماد كائنات أو وحدات الكود على بعضها البعض.

🔹 15. Cohesion – التماسك
مدى تركيز الوحدة على وظيفة واحدة واضحة.

🔹 16. Singleton Pattern
نمط تصميم يضمن وجود نسخة واحدة فقط من الكائن.

🔹 17. Factory Pattern
نمط لإنشاء الكائنات دون تحديد الكلاس مباشرة.

🔹 18. Observer Pattern
نمط لإبلاغ كائنات متعددة عند تغيير حالة كائن معين.

🔹 19. MVC – Model View Controller
تقسيم المشروع لثلاثة أجزاء: البيانات، العرض، التحكم.

🔹 20. API – واجهة برمجية
وسيلة للتواصل بين البرمجيات باستخدام طلبات واستجابات.

🔹 21. RESTful API
تصميم API يعتمد على بروتوكول HTTP بطريقة بسيطة.

🔹 22. GraphQL
لغة استعلام بديلة لـ REST تتيح الحصول على البيانات بشكل مرن.

🔹 23. Callback Function
دالة تُمرَّر كوسيط ليتم استدعاؤها لاحقًا بعد انتهاء مهمة.

🔹 24. Asynchronous Programming
تنفيذ الأوامر دون الانتظار، لتحسين الأداء.

🔹 25. Multithreading
تشغيل أكثر من سلسلة أوامر (Thread) في الوقت نفسه.

🔹 26. Deadlock
حالة توقف يحدث فيها تعارض بين عمليتين تنتظران بعضهما.

🔹 27. Race Condition
مشكلة تحدث عند الوصول المتزامن لنفس البيانات بطريقة غير آمنة.

🔹 28. Garbage Collection
عملية حذف الكائنات غير المستخدمة من الذاكرة تلقائيًا.

🔹 29. Memory Leak
فشل في تحرير الذاكرة مما يؤدي لاستهلاكها تدريجيًا.

🔹 30. Immutable Object
كائن لا يمكن تغيير حالته بعد إنشائه.

🔹 31. Unit Testing
اختبار وحدة واحدة من الكود (مثل دالة) بشكل مستقل.

🔹 32. Mocking
محاكاة كائنات حقيقية أثناء الاختبار لتسهيل العزل.

🔹 33. TDD – Test Driven Development
أسلوب تطوير يعتمد على كتابة الاختبارات قبل الكود.

🔹 34. Code Smells
مؤشرات على وجود مشاكل في تصميم الكود يجب تحسينها.

🔹 35. Refactoring
تحسين هيكل الكود بدون تغيير سلوكه الخارجي.

🔹 36. Version Control
إدارة تغييرات الكود بمرور الوقت (مثل Git).

🔹 37. Branching
إنشاء نسخ مستقلة من الكود للعمل على ميزات أو إصلاحات.

🔹 38. Merge Conflict
تعارض يحدث عند دمج فروع تحتوي على تعديلات متضاربة.

🔹 39. CI/CD
أتمتة بناء واختبار ونشر التطبيقات بشكل مستمر.

🔹 40. Docker
أداة لحزم وتشغيل التطبيقات في بيئة معزولة (Containers).

🔹 41. Containerization
تشغيل البرامج في بيئات خفيفة ومعزولة عن النظام الأساسي.

🔹 42. Kubernetes
نظام لإدارة وتشغيل مجموعات من الحاويات (Containers) تلقائيًا.

🔹 43. Load Balancer
توزيع الحمل على عدة خوادم لتحسين الأداء والموثوقية.

🔹 44. Caching
تخزين مؤقت للبيانات لتسريع الوصول إليها.

🔹 45. SQL Injection
هجوم يتم عبر إدخال أوامر SQL ضارة في استعلامات قاعدة البيانات.

🔹 46. XSS – Cross Site Scripting
هجوم يتم عن طريق إدخال سكريبتات خبيثة في صفحات الويب.

🔹 47. JWT – JSON Web Token
رمز يستخدم للتحقق من هوية المستخدم بطريقة آمنة.

🔹 48. OAuth
بروتوكول يسمح بالتفويض الآمن بين التطبيقات.

🔹 49. Normalization
تنظيم بيانات قواعد البيانات لتقليل التكرار.

🔹 50. Denormalization
إدخال بعض التكرار في البيانات لتحسين الأداء.

🔹 51. Big O Notation
طريقة لقياس تعقيد الخوارزميات من حيث الأداء والسرعة.

🔹 52. Time Complexity
قياس الزمن الذي تستغرقه الخوارزمية حسب حجم البيانات.

🔹 53. Space Complexity
كمية الذاكرة التي تحتاجها الخوارزمية أثناء تنفيذها.
🔹 54. Functional Programming
نمط برمجي يعتمد على الدوال كعناصر أساسية بدون تغيير الحالة.
كيف عززت ميتا نفوذها في الذكاء الاصطناعي خلال 2025؟

t.ly/6C8m4
توليد الصور والفيديو يصل إلى التلفاز مع تحديث Gemini الجديد

t.ly/ut54P
This media is not supported in the widget
VIEW IN TELEGRAM
Forwarded from Codefajr_كود فجر
⏹️ من اهم النصائح لتحسين جودة الكود بإذن الله 📚

اتباع المبادئ الصلبة
(SOLID Principles)

⬅️ لكتابة كود قابل للتوسع والصيانة بسهولة.

كتابة كود نظيف ومنظم
(Clean Code)

⬅️ حافظ على بساطة الكود واجعل أجزائه مفهومة و واضحة قدر الإمكان.

التوثيق الجيد
(Documentation)

⬅️ قم بكتابة تعليقات توضيحية وتوثيق الأكواد لتسهيل فهمها من قبل الآخرين.

إعادة استخدام الكود
(Code Reusability)

⬅️ اجعل الكود قابل لإعادة الاستخدام من خلال استخدام الدوال والوحدات او الفصول البرمجية.

التنسيق الصحيح للكود
(Code Formatting)

⬅️ اتبع معايير التنسيق الموحدة للكود واستخدم أدوات مثل Prettier وESLint لتحسين تنسيق الكود.

التسمية الواضحة والمتناسقة
(Clear Naming Conventions)

⬅️ استخدم أسماء متناسقة ومعبرة للمتغيرات، والدوال، والوحدات او الفصول البرمجية.

إجراء الاختبارات الدائمة
(Continuous Testing)

⬅️ تأكد من اختبار الكود بانتظام باستخدام وحدات او فصول الاختبار بشكل مستمر لتجنب الأخطاء.

المراجعة الدورية للكود
(Code Reviews)

⬅️ اطلب من زملائك مراجعة كودك بانتظام لتحسين جودته واكتشاف الأخطاء المحتملة.

تقليل التكرار
(Avoid Code Duplication)

⬅️ تجنب تكرار الكود عن طريق استخدام الدوال والوحدات او الفصول البرمجية المشتركة.

تحسين الأداء
(Performance Optimization)

⬅️ حلل أداء الكود وابحث عن طرق لتحسينه مثل تقليل استخدام الذاكرة وتحسين سرعة التنفيذ.

استخدام أنماط التصميم
(Design Patterns)

⬅️ استعن بأنماط التصميم المعروفة مثل Singleton وFactory وObserver لحل المشاكل المتكررة بطرق منظمة وفعالة.

التعلم المستمر
(Continuous Learning)

⬅️ استمر في تعلم أفضل الممارسات والأدوات الجديدة من خلال قراءة الكتب والمستندات والمقالات وحضور الدورات التدريبية سواء كانت حضورية في الواقع او على مواقع تعليمية.

⏺️ تحسين جودة الكود يتطلب الالتزام بالممارسات الجيدة والاستمرار في التعلم والتطوير. باتباع هذه النصائح، ستتمكن من كتابة كود أكثر احترافية وفعالية بإذن الرحمن.
Forwarded from Codefajr_كود فجر
مقارنة قائمتين في WPS Office: مع حلول بديلة إذا لم تكن بعض الدوال مثل VSTACK / UNIQUE مدعومة.
---------------------------------------------------
سنعالج الأنواع الثلاثة المطلوبة:
البيانات الفريدة بين القائمتين (تظهر في قائمة واحدة فقط)
جميع البيانات الموجودة في القائمتين (اتحاد القائمتين)
البيانات المشتركة والمتكررة في القائمتين (التقاطع)
لنفرض:
القائمة 1 في A4:A50
القائمة 2 في B4:B50

✅ أولاً: إذا كان WPS عندك يدعم VSTACK و UNIQUE
1) استخراج البيانات الفريدة بين القائمتين (exclusive)
أي القيم الموجودة في قائمة واحدة فقط:
=UNIQUE(FILTER(VSTACK(A4:A50; B4:B50); COUNTIF(A4:A50; VSTACK(A4:A50; B4:B50))=0 + COUNTIF(B4:B50; VSTACK(A4:A50; B4:B50))=0))
✔ هذه تعطي القيم التي لا تتكرر في القائمتين
✔ أي قيمة تظهر مرة واحدة فقط في أحدهما
2) جميع البيانات الموجودة في القائمتين (Union)
اتحاد القائمتين بدون تكرار:
=UNIQUE(VSTACK(A4:A50; B4:B50))
3) استخراج البيانات المتكررة والمشتركة (Intersection)
أي القيم الموجودة في القائمتين معًا:
=UNIQUE(FILTER(A4:A50; COUNTIF(B4:B50; A4:A50)>0))
✔ هذه تعطي القيم المتكررة في القائمتين
✔ إذا أردتها مع التكرار بدون إزالة (أخبرني)
❗ إذا كان WPS عندك لا يدعم VSTACK / UNIQUE
لا تقلق… إليك البديل العملي:
1) اتحاد القائمتين (بدون UNIQUE)
ضع في C4:
=A4
واسحب حتى نهاية قائمة 1
ثم في C.. (بعد آخر صف) ضع:
=B4
واسحب حتى نهاية قائمة 2.
ثم لإزالة التكرار ➜ Data → Remove Duplicates
2) البيانات المشتركة بين القائمتين
في D4:
=IF(COUNTIF($B$4:$B$50; A4)>0; A4; "")
اسحب للأسفل.
ثم احذف الفراغات بالفلترة.
3) استخراج البيانات الفريدة بين القائمتين
في E4:
=IF(AND(COUNTIF($A$4:$A$50; B4)=0; COUNTIF($B$4:$B$50; B4)=1); B4; "")
ثم اسحب للأسفل.
Forwarded from Codefajr_كود فجر
مثالًا عمليًا جاهزًا وواضحًا
لتوزيع أسماء بشكل عشوائي على 4 مجموعات دون تكرار باستخدام RAND + SORTBY.
------------------------------------------------------------
✅ الهدف

لدينا قائمة أسماء،
ونريد توزيعها عشوائيًا إلى 4 مجموعات،
بدون تكرار،
وبطريقة قابلة للتحديث عند كل ضغط Delete.
------------------------------------------------------
📌 الخطوات العملية مع مثال

1) إعداد جدول البيانات:
- الأسم ( A ) ضع 20 اسم من الخلية A4:A23
- المجموعة ( B )
- عشوائي ( C ) "العمود المساعد"
-----------------------------------------------------
2) إنشاء العمود المساعد (C) (عشوائي)
وفي الخلية C4 ضع المعادلة التالية: =RAND()
ثم اسحب للأسفل حتى C23.
-----------------------------------------------------

3) لترتيب الأسماء عشوائيًا إستخدام الدالة SORTBY في الخلية F4 وضع المعادلة التالية:
=SORTBY(A4:A23; C4:C23)
وسيظهر لديك عمود مرتّب عشوائيًا دون تكرار.
-----------------------------------------------------
4) تقسيم القائمة إلى 4 مجموعات
بعد أن أصبحت القائمة عشوائية في العمود F، نقوم بتوزيعها على 4 مجموعات كالتالي:
-----------------------------------------------------
* المجموعة الاولى 1: ضع المعادلة التالية في الخلية G4:
=INDEX($F$4:$F$23; ROWS(G$4:G4))
-----------------------------------------------------
* المجموعة الثانية 2 : ضع في الخلية H4 المعادلة التالية:
=INDEX($F$4:$F$23; ROWS(H$4:H4)+5)
------------------------------------------------------
*المجموعة الثالثة 3: ضع في الخلية I4 المعادلة التالية:
=INDEX($F$4:$F$23; ROWS(I$4:I4)+10)
-----------------------------------------------------
* المجموعة الرابعة 4 : ضع في الخلية J4 المعادلة التالية :
=INDEX($F$4:$F$23; ROWS(J$4:J4)+15)
----------------------------------------------------
النتيجة : ستحصل على أربع مجموعات كل مجموعة تحصل فيها 5 أسماء. من الاسماء ال20 الذي لديك في عمود الاسم A ،
-----------------------------------------------------
🔁 لإعادة التوزيع العشوائي :لإعادة خلط الأسماء تلقائيًا.قم بأحدى العمليات التالية:
١- إضغط على Delete في أي خلية فارغة
٢- نفّذ عملية بسيطة (كتابة/مسح)
-----------------------------------------------------
💡 ملاحظة مهمة

ميزة هذه الطريقة:
لا يوجد تكرار إطلاقًا
التوزيع عادل
يمكن زيادة عدد المجموعات أو الأسماء بسهولة

يمكن استخدام SORTBY بمدى متعدد الأعمدة مثل A4:B23 إذا كانت لديك بيانات إضافية مع الأسماء
-----------------------------------------------------
📦 نسخة جاهزة مختصرة للدالة الرئيسية

=SORTBY(A4:A23; RANDARRAY(20;1))

(بدل العمود المساعد)-إن كان إصدار Excel يدعم RANDARRAY.
Forwarded from Codefajr_كود فجر
⚫⚪ لكتابة الحركات والهمزات في الكيبورد.
Forwarded from Codefajr_كود فجر
✅المرحلة الثانية💻
ربط قاعدة البيانات بالفيجوال استوديو

نفتح برنامج الفيجوال ونقوم بانشاء مشروع جديد باي اسم تريده سوف تظهر لك نافذة البرنامج

بعد انشاء مشروع جديد وكذلك انشاء قاعدة بيانات اكسس access  نقوم بنقل قاعدة بيانات اكسس الى مسار المشروع الذي قمنا بنشائه ونضع قاعدة البيانات في ملف مشروع جديد كما يلي
bin/Debug

نرجع الى المشروع ونقوم بادراج الادوات
التاليه الى الفروم  :

🔸اداة مجمع الادوات GroupBox عدد 3 وهي تلك الاطار الابيض الضاهر في الفروم التي تحيط بكل مجموعة

🔸اداة مربع النص TextBox عدد 5
🔸 اداة Button عدد 10
🔸اداة الداتا غريند فيو DataGridView عدد 1 وهي التي تظهر عليها البيانات
🔸اداة Label عدد 5



1️⃣نقوم بتسمية عدد 6 Button كما يلي

ـ➖New. تفريغ محتوى Textbox
ـ➖Add   اضافة طالب جديد
ـDelete➖  حذف طالب من جدول
ـ ➖Edit.  تعديل بيانات طلاب
ـ➖Find  بحث عن معلومات طلاب
ـ➖Exit  الخروج من البرنامج

نضع هذه الازرار في مجموعة GroupBox ونسميها Update

2️⃣ نقوم بتسمية عدد 4 Button البقية كما يلي
| |>>
>>>
<<<
>>| |

هذه الرموز التي قمنا بتسمية الازرار موجودة في الكيبورد ثم نضع هذه الازرار في مجموعة GroupBox ونسميها Navigation



3️⃣نقوم باعادة تسمية Label كما يلي
ld_student
first_name
last_name
Age
Adress

3️⃣ نقوم بتكبير اداة textbox كما في الصورة ثم نضغط على اول textbox ومن الخصائص لها نختار (Name) ونكتب TxtID

ثم نضغط على ثاني textbox ومن نفس الخصائص (Name) نكتب TxtFname

وكذلك نضغط على ثالث textbox ومن خاصية (Name) نكتب TxtLname

ونضغط على رابع textbox ومن خاصية (Name) نكتب TextAge

ونضغط على خامس textbox ومن خاصية (Name) نكتب TextAdress

#ملاحظه هذا تسميات لـtextbox تفيدنا عند كتابه الاكواد

بعد ادراج الادوات وتسميتها يصبح المشروع كما في الصورة رقم 1


📍مرحلة برمجة الازرار (الكود)

اول شي نعمله هو تعريف فضاء الأسماء كما قلنا سابقا نضغط على فروم لتفتح لنا صفحه الكود نكتب فوق public class Forml
الكود التالي : كما في الصوره رقم 2

Imports System.Data
Imports System.Data. OleDb

بعد ذلك نقوم بانشاء الاتصال مع قاعدة البيانات ، ولفعل ذلك نعلن على متغير اسمه con من نوع OleDbConnection

Dim Con As New OleDbConnection

ثم نكتب المسار التي توجد عليه قاعدة البيانات اكسس ويصبح الكود كاالاتي :
كما في الصورة رقم 3

Dim Con As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=StudentBase.accdb")


#شرح_الكود
كما ترى فنص الاتصال
Connectionstring
له مجموعة من البارامترات وهي كما يلي :

ـ➖Provider هو مزود البيانات الذي نشتغل عليه وفي حالتنا هذه هو ميكروسوفت اكسس ذو النسخة 12.0

ـ ➖Data Source وهو المسار الذي توجد عليه قاعدة البيانات .

قمنا بانشاء سلسلة الربط بين البرنامج وقاعدة البيانات ، سنجلب الان بيانات جدول الطلاب ونظهرها في الداتا غريند فيو ، وللقيام بذلك نحتاج الى كائنين اثنين :

ـ ➖OledbDataAdapter ودورة هو تنفيذ استعلامات SQL

ـ➖DataTable  وهي بمثابة جدول لتخزين ما سيقوم OledbDataAdapter بحلبه ،

سوف تكون شفرة الاعلان كما يلي :
كما في الصورة رقم 4
Dim Da As OleDbDataAdapter
Dim Dt As New DataTable


📍⚙ الان سنذهب الى الحدث
Form1_Load
ونجلب بيانات جدول الطلاب باستعمال
OledbDataAdapter
ثم نخزن ذلك في DataTable ونكتب الكود التالي : كما في الصورة رقم 5

Da = New OleDbDataAdapter
("Select * From Student", Con)
Da.Fill(Dt)
DGV.DataSource = Dt


#شرح_الكود : في السطر الاول قمنا بارسال استعلام جلب البيانات من القاعدة بالاعتماد على
OledbDataAdapter
وحددنا له سلسلة Con التي ينبغي ان يمر عبرها ، ثم بعد ذلك افرغنا ما قام بجلبة في
ـDataTable عن طريق الدالة Fill ، وفي الاخير قمنا بملء  DataGridview من هذه
ـDataTable … .

✅اذا قمنا بتنفيذ البرنامج سوف تعرض لنا بيانات الجدول كما في الصورة رقم 6

الى هنا انهينا اتصال وربط قاعدة بيانات اكسس بالفيجوال 👍
Forwarded from Codefajr_كود فجر
🔍 أنواع أوامر SQL
Types of SQL Statements 🔎

🔹 في عالم قواعد البيانات، أوامر SQL تنقسم إلى عدة أنواع رئيسية، كل منها يؤدي وظيفة محددة:

1️⃣ DDL – Data Definition Language

🔹 لإنشاء وتعديل هيكل الجداول وقواعد البيانات.

🛠 من أهم الأوامر:

CREATE
لإنشاء جداول أو قواعد بيانات جديدة.

ALTER
لتعديل هيكل جدول موجود (إضافة أو حذف أعمدة مثلاً).

DROP
لحذف جداول أو قواعد بيانات بالكامل.

TRUNCATE
لحذف جميع البيانات من الجدول بدون حذف الهيكل.

2️⃣ DML – Data Manipulation Language

🔹 لإدارة البيانات داخل الجداول (إضافة، تعديل، حذف).

📝 من أهم الأوامر:

INSERT
لإضافة سجلات جديدة.

UPDATE
لتعديل بيانات موجودة.

DELETE
لحذف بيانات من الجدول.

3️⃣ DQL – Data Query Language

🔹 لاستخراج البيانات من الجداول.

🔍 من أهم الأوامر:

SELECT
لجلب البيانات وفق شروط محددة.

4️⃣ DCL – Data Control Language

🔹 للتحكم في الصلاحيات والوصول للبيانات.

🔐 من أهم الأوامر:

GRANT
لمنح صلاحيات لمستخدم.

REVOKE
لسحب الصلاحيات.

5️⃣ TCL – Transaction Control Language

🔹 للتحكم في العمليات والمعاملات داخل قواعد البيانات.

📦 من أهم الأوامر:

COMMIT
لحفظ التعديلات بشكل دائم.

ROLLBACK
للتراجع عن التعديلات قبل الحفظ.

SAVEPOINT
لإنشاء نقطة استعادة داخل المعاملة.

SET TRANSACTION
لتحديد خصائص المعاملة.
Forwarded from Codefajr_كود فجر
‏عندنا اليوم فضيحة جديدة. من ستارتب Thinking Machines Lab (حق ميرا موراتي) طرد المؤسسين بارِت زوف ولوك متز.

بارِت كان الـ CTO. رسميًا يقولون إنه طلع “بمحض إرادته”، لكن بعض المصادر تتكلم إن الموضوع له علاقة بـ سلوك غير أخلاقي.

وبالتحديد، مصدر قريب من Thinking Machines قال لـ Wired إن بارِت كان يشارك معلومات سرّية عن الشركة مع منافسين.

والاثنين زوف ومتز الحين راجعين لـ OpenAI (نفس المكان اللي ميرا كانت ساحبتهم منه قبل). ومن جهة ثانية، منصب الـCTO في Thinking Machines صار عند سوميث تشينتالا واحد من أهم ناس PyTorch.

يعني خلال أقل من سنة على عمر الستارتب، طلعوا منه 3 من 6 مؤسسين (وقبل كم شهر Meta خطفت أندرو تالوك). نشوف نهايتها 😐
Forwarded from تخاريف مبرمج
البوست ده كان المفروض ينزل من اسبوع بس خليني اقوله دلوقتي ، احنا كده عدي علينا سنتين من بداية المنتورشيب
بدانا في ديسمبر 2023 ولسه مكملين بفضل الله

من اول يوم كان هدفنا واضح مش عايزين ناس حافظه شوية فريموركس
احنا كنا عايزين نطلع شباب اشتغلوا علي مشاريع حقيقية زي الشركات بالظبط وده اللي حصل

فيه ناس اشتغلت وهم لسه في المنتورشيب
وفيه ناس اشتغلت بعد ما خلصت
وده مش صدفة
طريقة شغلنا من البداية كانت مختلفة

قبل ما نكتب سطر كود واحد كنا بنقعد شهر كامل في التخطيط
كنا بنبدأ بالاتي
* فهم البيزنس كويس من خلال ال analysis وال design
* وبعدها database design
* وبعدين api design first
* وبعدين uml
* وبعدين wbs وتقسيم التاسكات
* وبعدين estimation
* وبعدين نتخيل شكل الشاشات وال flow كله

كل ده كان بيحصل قبل اي كود وده كان ال plan الحقيقي للمشروع وده اللي بيتعمل مع ال AI Tools وبيسمي ال implementation plan

طيب ليه بقولك الكلام ده دلوقتي لان الشباب اللي اتخرجوا من المنتورشيب مش هيغرقوا في زمن ال AI
ولا هيبقوا تابعين ليه؟

ليه لان عندهم الاساس الصح دلوقتي لما اي حد عايز يعمل مشروع اول حاجه بيحتاجها هو الاساس وده اللي هما خدوه كمان بقوا قادرين يعملوا validation للي ال AI بيطلعه مش بياخدوا اي output ويسلموا بيه
هما فاهمين هو صح ولا غلط وليه بقوا يعرفوا المشكلة فين
هل في الكود ، ولا في التصميم ، ولا في فهم البيزنس

بقوا يعرفوا يعملوا testing صح سواء database
او load او logic

والاهم بقوا فاهمين ال flow ، فاهمين المشروع ك بيزنس ، ويقدروا يطلعوا يشرحوا شغلهم كأنه مشروع شركة مش انترنشيب

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

دمتم بخير
Forwarded from تخاريف مبرمج
اللى انت شايفه ده مشروع ecommerce بسيط جدا ؛ معمول بال tech stack
- Node JS
- React Vite
- Flutter
- Docker
-لما تحب تقول الطبيعى ده ياخد وقت قد ايه من غير ال AI ك Backend and Frontend بنتكلم بس فى 20 يوم من غير تيست
ومحتاج Flutter هياخد 10 ايام يبقى دخلنا فى شهر بالظبط
ومحتاج تعمل تيست 3 ايام موبايل ومعاهم 7 ايام ل back + front
يبقى دخلت فى 40 يوم بالظبط

اللى انت شايفه ده بالظبط خد من ال AI antigravity IDE وخلصت كل ال free credit خد ساعتين ونص مع ال test يتاعه بال seeders كمان

تخيل بقى تبيع مشروع زى ده يتكلف كم مع ال AI