-
المساهمات
2064 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
13
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Chihab Hedidi
-
المسألة تطلب منك أن تبحث عن سلسلة نصية حيث في بعض الحالات الخاصة، يمكن أن يكون طول السلسلة المحولة أكبر من السلسلة الأصلية بعد تطبيق عمليات تحويل الحالة الأبجدية (uppercase/lowercase)، أي تحويل الحروف الكبيرة إلى حروف صغيرة أو العكس. بمعنى آخر نحتاج إلى إيجاد سلسلة نصية يكون طولها بعد تحويلها للحالة الكبيرة ومن ثم الحالة الصغيرة أكبر من طول السلسلة الأصلية.
- 18 اجابة
-
- 1
-
نعم يمكن عرض البيانات بتنسيق شجري في HTML باستخدام عدة وسائل، أحد الطرق الشائعة هي إنشاء قائمة متدرجة، يمكن تدوين هذه القوائم بشكل متداخل لتمثيل الهيكل الشجري بالطريقة التالية: <ul> <li>عنصر رئيسي <ul> <li>عنصر فرعي 1 <ul> <li>عنصر فرعي 1.1</li> <li>عنصر فرعي 1.2</li> </ul> </li> <li>عنصر فرعي 2</li> </ul> </li> </ul> هذا التعبير الخطي للبيانات يمكن أن يمثل هيكل شجري، يمكنك أيضا استخدام CSS لتخصيص المظهر الخاص بك، و يمكنك أن تجد هذا في دورة تطوير واجهات المستخدم، فيها جزء يتحدث حول أساسيات تطوير الواب، و تم التفصيل في أغلب النقاط هناك.
- 1 جواب
-
- 1
-
الأمر clear لا يتم فهمه في نافذة موجه الأوامر في نظام Windows، الأمر عادة ما يستخدم في نظام التشغيل Unix وأنظمة Linux لمسح الشاشة، أما في نظام Windows، يجب استخدام الأمر cls بدلا من ذلك لمسح الشاشة.
- 6 اجابة
-
- 1
-
بعد اتمامك للدورة، سيكون عليك التواصل مع مركز مساعدة حسوب لتحديد موعد امتحان وسيكون على الشكل التالي: اجراء محادثة صوتيّة لمدة 30 دقيقة يطرح المدرّب عليك أسئلة متعلّقة بالدورة والأمور التي نفّذتها خلالها. يحدد لك المدرّب مشروعًا مرتبطًا بما قمت به أثناء الدورة لتنفيذه خلال فترة محددة تتراوح بين أسبوع الى أسبوعين. اجراء محادثة صوتيّة أخرى لمدّة 30 دقيقة يناقش بها مشروعك وما نفذته وتطرح أسئلة خلالها. ان سارت على جميع الخطوات السابقة بشكل صحيح، تحصل على الشهادة أو يرشدك المدرب لأماكن القصور ويطلب منك تداركها ثم التواصل من جديد. بالنسبة لسؤالك حوال إتمام أربع مسارات فقط، نعم يمكنك ذلك و إن إجتزت الإمتحان بشكل ناجح ستحصل على الشهادة، و يمكنك أن تطلع على شروط المشاركة و المعلومات الأخرى الخاصة بالإختبار من هنا.
-
أنت تقوم بكتابة الأوامر البرمجية لنظام التشغيل بشكل عام، و نظام التشغيل هو الوسيط بين البرمجيات والهاردوير في الحاسوب، يتعامل مع إدارة الموارد مثل المعالج والذاكرة والتخزين، ويوفر واجهة لتشغيل التطبيقات وتنفيذ البرامج، فعندما تقوم بكتابة برنامج، فإنك تكتبه بطريقة تفاعلية مع نظام التشغيل، و عندما تقوم بتشغيل التطبيق، يتم إرسال أوامر من قبل نظام التشغيل إلى الهاردوير لتنفيذها. عندما تقوم بعمل event معين في التطبيق، فإن البرنامج يرسل إشارة (signal) إلى نظام التشغيل ليتعامل معها، بعدها يمكن لنظام التشغيل أن يتفاعل مع هذا الحدث على النحو المناسب، مثل تحديث واجهة المستخدم أو التفاعل مع الأجهزة الخارجية، إذا لم يكن هناك نظام تشغيل، فإن البرامج والتطبيقات لن تتمكن من العمل. يعتبر نظام التشغيل جزءا أساسيا من عملية تشغيل البرامج على الحاسوب. و في السنوات الأولى لتطوير أنظمة التشغيل، كانت تعتمد على واجهات نصية وتشتغل بالأوامر، حيث يتم التفاعل مع النظام عبر إدخال الأوامر مباشرة في سطر الأوامر، في ذلك الوقت كانت التطبيقات محدودة وغير متطورة مقارنة بما نراه اليوم. وكانت غالبا ما تكون تطبيقات مخصصة لأغراض محددة مثل معالجة النصوص أو إدارة البيانات و فقط. و يمكنك أن تطلع أكثر على مهام أنظمة التشغيل من خلال المقالة التالية:
-
المشكلة مع مرور الوقت ستنسى كيفية كتابة الكود لوحدك و في حالة حدث خلل في أدوات الذكاء الإصطناعي ستجد صعوبة في العودة لما كنت عليه، يمكنك إستخدامه بين الحين و الآخر بشرط أن تكون قادرا على فهم كل سطر تقوم بكتابته، و أيضا فليس دائما تكون النتيجة من الذكاء الإصطناعي صحيحة، فهو يستخدم إصدارات قديمة لذا يجب عليك تحديثها لما يتناسب مع مشروعك.
- 3 اجابة
-
- 1
-
أنت شغال على الكونسول الخاص بالبيثون لتحصل على زر run، قم بإنشاء ملف من هنا : قم بكتابة الكود الخاص بك بداخله و ستجد زر run في الأعلى :
-
على حسب ما فهمت فأنت تستخدم تيليجرام لاستقبال الرسائل وتعالجها، يمكنك استخدام Telegram Bot API التي توفرها تيليجرام لتحقيق هذا الغرض، يجب عليك تطوير بوت في تيليجرام واستخدام API التي توفرها تيليجرام للتفاعل مع الرسائل التي يتلقاها البوت، من ثم يمكنك استخدام هذا البوت لاستقبال الرسائل من العملاء والتعامل معها بالشكل المطلوب. لإرسال الموقع، يمكنك استخدام الأمر sendLocation المتاح في بروتوكول البوت الخاص بتيليجرام، عندما يرسل العميل موقعه، يمكنك استخدام هذا الأمر لتلقي الموقع وتعديله أو استخدامه كما تشاء. بخصوص سؤالك حول وجود طريقة أخرى لإرسال الموقع دون استخدام مفتاح Google Cloud، يمكنك استخدام خدمات مشابهة مثل Mapbox أو OpenStreetMap للحصول على خدمات خرائط وتحديد الموقع، ولكن سيكون لديك عادة متطلبات لاستخدام الخدمة، وقد تتطلب بعض الخدمات استخدام مفاتيح API كما في حالة Google Cloud.
-
الأمر هنا يختلف على حسب لغة البرمجة التي تستخدمها و لكن خوازرمية المشكلة تكون مشابهة و يمكنك ترجمتها إلى لغة البرمجة التي تستعملها، و تتضمن العملية إنشاء جدول في قاعدة البيانات لتخزين بيانات المستخدمين أثناء الاستبيان، وإنشاء نموذج يجمع هذه البيانات ويخزنها في قاعدة البيانات، ثم يجب ربط صفحة الاستبيان بالنموذج المناسب لجمع البيانات وتخزينها، و عند اكتمال المستخدم للاستبيان، يمكن استخدام البرمجة النصية للتحقق من الإجابات وتخزينها في قاعدة البيانات لاستخدامها فيما بعد، مثل إنشاء كوبون خصم مخصص للمستخدم. و لإعطاء المستخدم كوبون خصم مخصص له فقط، يمكنك اتباع الخطوات التالية: قم بإنشاء كوبون خصم جديد في قاعدة البيانات وربطه بمعرف المستخدم الذي أكمل الاستبيان. قم بإظهار صفحة أخرى للمستخدم بعد اكتمال الاستبيان تحتوي على كوبون الخصم، و عند إدخاله للكوبون تأكد من معرف المستخدم و تطابقه مع الكود. تنفيذ هذه الخطوات يتطلب المهارات اللازمة في تطوير الويب وقواعد البيانات، ويمكنك استخدام لغة البرمجة التي تتقنها.
- 2 اجابة
-
- 1
-
إذا كنت تريد أن تعرف معلومات على الكمبيوتر يمكنك أن تبحث على dxdiag و ستجد كل المعلومات الخاصة بالكمبيوتر هناك، أو يمكنك تحميل برنامج CPU-z فهو مختص بعرض كل تفاصيل الجهاز الخاص بك.
- 5 اجابة
-
- 1
-
هذه الخوارزميات أساسية جدا في علم الحوسبة وتطبيقاتها العملية، و بالفعل تُستخدم في العديد من مشاريع البرمجة الحقيقية بشكل شائع. فهي توفر طرقا فعّالة لحل مجموعة واسعة من المشاكل التقنية. عندما تبدأ في تعلم علم الحاسوب أو تطبيقاته العملية، فإن فهم الخوارزميات والهياكل البيانية الأساسية يُعتبر أمرا ضروريا، فعلى سبيل المثال، البحث الثنائي مثال جيد على كيفية تطبيق مفهوم الـ "تقسيم وتغلب" أو Divide and Conquer في حل مشكلة بطريقة فعّالة، ويظهر لنا البحث الخطي كيف يمكننا حل مشاكل بطريقة بسيطة ولكنها غير فعالة بالنسبة لبعض الحالات، و بالتأكيد من تسميتها يمكنك أن تستنتج أننا نستخدمها كثيرا في خوارزميات البحث فهي تكون سريعة و الفرق كبير جدا بينها و الطرق التقليدية. و هناك العديد من الخوارزميات الأخرى التي يمكن أن تكون مفيدة في مشاريع الحوسبة الحقيقية، مثل خوارزميات الفرز مثل Quick Sort وMerge Sort، وخوارزميات البحث مثل Depth-First Search وBreadth-First Search، والعديد من الخوارزميات الأخرى التي تستخدم لحل مشاكل معينة في مجالات مختلفة مثل التشفير والتحليل البياني وغيرها. و أنصح بالإطلاع عليها لأنك بالتأكيد ستحتاجها في أحد مشاريعك المستقبلية، و يمكنك فهمها أكثر من خلال هذه المقالات:
- 4 اجابة
-
- 1
-
يمكنك ببساطة تغيير مكان إيقاف تشغيل التطبيق بشكل فوري ليتم بعد اختيار النظام المناسب. from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QRadioButton, QPushButton, QMessageBox, QLineEdit import sys class MyWidget(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): layout = QVBoxLayout() self.radioButton_analog = QRadioButton("Analog") self.radioButton_digital = QRadioButton("Digital") self.lineEdit = QLineEdit() self.lineEdit_2 = QLineEdit() button = QPushButton("Submit") button.clicked.connect(self.user_data) layout.addWidget(self.radioButton_analog) layout.addWidget(self.radioButton_digital) layout.addWidget(self.lineEdit) layout.addWidget(self.lineEdit_2) layout.addWidget(button) self.setLayout(layout) def user_data(self): if self.radioButton_analog.isChecked() or self.radioButton_digital.isChecked(): # هنا يتم استمرار العمليات الأخرى بعد اختيار النظام المناسب print("Continue processing...") else: msg = QMessageBox() msg.setIcon(QMessageBox.Warning) msg.setText("Please choose a system (Analog or Digital).") msg.setWindowTitle("Warning") msg.setStandardButtons(QMessageBox.Ok) msg.exec_() if __name__ == '__main__': app = QApplication(sys.argv) widget = MyWidget() widget.show() sys.exit(app.exec_()) بهذا التغيير، عندما يقوم المستخدم بالنقر على الزر Submit، سيتم التحقق مما إذا كان قد قام بتحديد أحد الخيارات (Analog أو Digital)، وفي حالة عدم اختيار أي منهما، سيتم عرض رسالة تحذير ولكن التطبيق لن يتوقف، بل سيستمر في الانتظار حتى يتم اختيار أحد الخيارات.
- 5 اجابة
-
- 1
-
مثل ما أخبرتك لإيقاف تشغيل البرنامج بشكل فوري بعد عرض رسالة الخطأ، يمكنك استخدام sys.exit() بالشكل التالي: import sys from PyQt5.QtWidgets import QMessageBox # بعد عرض رسالة الخطأ if not self.radioButton.isChecked() or not self.radioButton_2.isChecked(): msg = QMessageBox() msg.setIcon(QMessageBox.Warning) msg.setText("Please choose a system (Analog or Digital).") msg.setWindowTitle("Warning") msg.setStandardButtons(QMessageBox.Ok) msg.exec_() # إيقاف تشغيل التطبيق بشكل فوري sys.exit() بهذه الطريقة عندما يتم عرض رسالة الخطأ، سيتم إيقاف تشغيل التطبيق بشكل فوري.
-
لحل هذه المشكلة يمكنك استخدام QMessageBox لعرض رسالة تحذير في حالة إدخال بيانات خاطئة ومن ثم توقف تشغيل البرنامج بشكل لحظي، و الأفضل أن تضع جزء من الكود الخاص بك حتى يمكنني الإطلاع عليه بشكل أفضل، سأحاول كتابة كود بسيط يمثل المشكلة مع إستخدام sys.exit(app.exec_()) لتوقيف البرنامج: import sys from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout, QLineEdit, QMessageBox class LoginWidget(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): layout = QVBoxLayout() self.username_input = QLineEdit() self.password_input = QLineEdit() self.password_input.setEchoMode(QLineEdit.Password) login_button = QPushButton('Login') login_button.clicked.connect(self.check_login) layout.addWidget(self.username_input) layout.addWidget(self.password_input) layout.addWidget(login_button) self.setLayout(layout) self.setWindowTitle('Login') def check_login(self): username = self.username_input.text() password = self.password_input.text() # Replace this with your login logic if username == 'admin' and password == 'password': print('Login successful!') else: QMessageBox.warning(self, 'Login Failed', 'Invalid username or password. Please try again.') sys.exit(app.exec_()) # توقف البرنامج في حالة فشل تسجيل الدخول if __name__ == '__main__': app = QApplication(sys.argv) login_widget = LoginWidget() login_widget.show() sys.exit(app.exec_()) لتوقيف البرنامج بشكل فوري بعد عرض رسالة الخطأ، استخدمت الأمر sys.exit(app.exec_()) لإيقاف تشغيل التطبيق داخل دالة check_login بعد عرض الرسالة.
-
هذه المشكلة قد تحدث عندما لا يتم تكييف الصورة الخلفية بشكل صحيح مع أبعاد الشاشة على الجوال. الحل هو إعادة تصميم الموقع بما يتناسب مع كافة قياسات الشاشات المختلفة وهو ما يعرف بالتصميم المتجاوب responsive design. يمكنك تجربة حله باستخدام css: body { background-size: cover; } هذه الخاصية تجعل الصورة تمتد لتغطي خلفية ال body بالكامل بحيث تحافظ على نسبة الارتفاع إلى العرض وتكون مركبة بشكل صحيح على أي حجم شاشة. يمكنك أيضا تجربة contain بدلا من cover إذا كنت ترغب في ضمان ظهور الصورة بالكامل دون قطع، ولكن قد يتسبب ذلك في ظهور بعض الفراغات الفارغة في بعض الأحيان. body { background-size: contain; } باستخدام إحدى هذه الخيارات، ستتمكن من حل مشكلة عرض الصورة الخلفية بشكل صحيح على الأجهزة المحمولة. ولكى تقوم بالتعديل على موقعك حتى يصبح متجاوب استخدم هذا الكود: @media screen and (max-width:992px){ /* ضع هنا أكواد css */ } @media screen and (max-width:768px){ } @media screen and (max-width:640px){ } @media screen and (max-width:320px){ } و يمكنك أن تطلع أكثر على الموضوع من خلال هذه المقالات:
-
(\D+.*) يتحقق لأنو القيمة تحتوي على حروف وليس شرط أن تكون الحروف في البداية، لكن إذا كنت تريد أن تضمن أنه لا يجب أن تكون الأرقام في البداية يمكنك تغييره هكذا: /^[^0-9].*@(\D+.*)\.(\w{2,})/i أو تضيف ^ في النمط الخاص بك لأن هذا الرمز يشير إلى البداية، أي بهذه الطريقة نضمن أن البداية تكون حرف: /^(\D+.*).*@(\D+.*)\.(\w{2,})/i
-
السبب في الاختلاف في النتائج بين النمطين هو الاختلاف في النمط الذي يتم تحديد البريد الإلكتروني به. النمط الأول يحتوي على هذا الجزء (^[0-9].*) و يعني أن النص يجب أن يبدأ برقم، لذلك يتطابق مع الأرقام فقط، و هذا ما يحتويه الإيمايل الذي وضعته لذلك يرجع لك true. بينما النمط الثاني يبدأ ب (\D+.*) و يعني أنه يتوقع أي حرف غير رقمي متبوعا بأي شيء (أي حرف غير رقمي متكرر)، لهذا يتم إرجاع قيمة false. يعني الفرق الرئيسي بين النمطين هو استخدام [0-9] في النمط الأول للتطابق مع الأرقام فقط، بينما يستخدم \D في النمط الثاني للتطابق مع أي حرف غير رقمي. و لفهم التعابير النمطية أكثر يمكنك الإطلاع على هذه المقالة التي ستساعدك بشكل أفضل:
-
قم بدراسة النماذج والخوارزميات المستخدمة في تعلم الآلة، مثل الشبكات العصبية الاصطناعية والتعلم العميق وغيرها، و أيضا ركز على لغة بايثون فهي لغة البرمجة الأكثر استخداما في تطبيقات تعلم الآلة بسبب مجموعة واسعة من المكتبات المتاحة مثل TensorFlow وPyTorch و غيرهت، لذا تأكد من أنك تتقن بايثون جيدا. بالنسبة لسؤالك عن الاختلاف بين مجال تعلم الآلة ومجال تطوير الويب (React، Angular، Vue)، فهما مجالان مختلفان تماما، مجال تعلم الآلة يركز على تطوير نماذج وخوارزميات لفهم البيانات وتحليلها واستخدامها للتنبؤ والتصنيف والتكيف مع المعطيات، بينما مجال تطوير الويب يركز على بناء وتطوير تطبيقات الويب والمواقع باستخدام تقنيات مثل React، Angular، وVue. بمجرد أن تكتسب المهارات اللازمة في تعلم الآلة، يمكنك العثور على وظيفة في مجال تطوير البرمجيات مع تركيزك على تطبيقات تعلم الآلة، و أنصحك بقراءة هذا المقال، ففيه معلومات ممتازة تسهل لك طريقك في هذا المجال:
-
في Python 2، كتابة class Node(object): يُشير إلى أن فئة Node ترث من فئة object، هذه الصيغة تعني أن الفئة Node تعتمد على فئة object كمفترضة لها، وهذا يعني أنها ترث جميع السمات والسلوكيات الأساسية من الفئة object. أما حاليا في Python 3، يمكنك كتابة class Node: دون ذكر object، لأنه حاليا تفترض تلقائياً الوراثة من object، لذا class Node: هي نفسها class Node(object):.
- 6 اجابة
-
- 1
-
تقريبا في بيثون يشير مصطلح Object إلى مفهوم الكائنات في البرمجة الشيئية و تتيح لك OOP تنظيم البرنامج وتقسيمه إلى كائنات تفاعلية تتفاعل مع بعضها البعض. الكائن (Object) في البرمجة الشيئية هو مثيل محدد لنوع معين من البيانات، يجمع بين البيانات والسلوكيات، مثلا يمكن أن تكون السيارة كائنا، ولكن لكل سيارة خصائص محددة مثل اللون والسرعة والنموذج وما إلى ذلك. في بايثون، كل شيء هو كائن، بما في ذلك الأنواع الأساسية مثل الأعداد والسلاسل والقوائم وغيرها، بالإضافة إلى الكائنات التي تم إنشاؤها بواسطة المستخدم مثل الكائنات التي تنشئها عن طريق تعريف فئات جديدة، و عند العمل مع الكائنات في بايثون، يمكنك استخدام الخصائص والأساليب التي يوفرها الكائن للقيام بالعديد من العمليات المختلفة. و هذا تطبيق بسيط للمثال الذي ذكرته: class Car: def __init__(self, model, color): self.model = model self.color = color self.speed = 0 self.engine_status = False # استخدام الكائن my_car = Car("Toyota", "Red") print("Model:", my_car.model) print("Color:", my_car.color) يمكنك إن تطلع أكثر على الكائنات و البرمجة الكائنية في بيثون من خلال هذه المقالات:
- 6 اجابة
-
- 1
-
هي خوارزمية وليست بنية بيانات. يتم استخدام البنيات البيانية لتخزين البيانات وتمثيل العلاقات بينها، في حين يتم استخدام الخوارزميات لتنفيذ العمليات أو الحسابات على هذه البيانات. في هذا السياق، DFS هي خوارزمية تستخدم للتنقل والبحث في الرسوم البيانية. بالنسبة لهياكل البيانات يمكنك الإطلاع عليها من هنا:
- 4 اجابة
-
- 1
-
نعم يمكنك تطبيق خوارزمية البحث في العمق في لغة Python بسهولة، سـأحاول كتابة مثال بسيط لتطبيق DFS : # تعريف الرسم البياني على شكل قائمة مجاورة graph = { 'A': ['B', 'C'], 'B': ['D', 'E'], 'C': ['F'], 'D': [], 'E': ['F'], 'F': [] } # تطبيق البحث في العمق def dfs(graph, start, visited=None): if visited is None: visited = set() visited.add(start) print(start) for neighbor in graph[start]: if neighbor not in visited: dfs(graph, neighbor, visited) # بدء البحث من النقطة A dfs(graph, 'A') تذكر أن البحث في العمق قد يؤدي إلى تحديد مسارات طويلة بشكل لا نهائي في الرسم البياني إذا كان هناك دورة، لذا يجب استخدام مجموعة visited لتتبع النقاط التي تم زيارتها بالفعل وتجنب الحلقات. يمكنك أن تطلع أيضا على شرح هذه الخوازرميات لتأخذ فكرة عليها بشكل أفضل من خلال هذه المقالات:
- 4 اجابة
-
- 1
-
من الناحية البرمجية بالطبع يمكنك استخدام خصائص Django و Laravel معا في موقع واحد أو تطبيق واحد، ولكن يجب أن تكون هناك بعض الاعتبارات التي يجب مراعاتها، حيث يجب أن يكون لديك خادم واحد يتعامل مع كلا التقنيتين، و يكون التواصل عن طريف أن تستخدم Django لإنشاء API و Laravel لاستهلاك هذه الAPI، أو العكس. لكن يجب أن تعرف أنهما مبنيان باستخدام لغات برمجة مختلفة، فكل إطار عمل له هيكله وتقاليده وطريقته الخاصة في القيام بالأمور، خلط هذين الإطارين سيؤدي إلى قاعدة بيانات معقدة للغاية وصعبة الصيانة. إذا أحترت بين إختيار أحدهما يمكنك أن تطلع على هذه المقالات لتأخذ فكرة أفضل على كليهما:
- 3 اجابة
-
- 1
-
بالتأكيد هناك اختلافات بين أنواع البيانات VARCHAR وTEXT، سأحاول أن أعطيك شرح لكل نوع لتفهم أكثر و أيضا الفرق بينهما: VARCHAR: يستخدم لتخزين النصوص التي يمكن أن تتغير أطوالها، ويتم تحديد الحجم الأقصى للحقل عادة بعدد الأحرف أو البايتات، و يُعرف بحجم الحقل الذي يحتوي على عدد محدد من الأحرف، وعند تعريف حقل VARCHAR يجب تحديد الحجم الأقصى لهذا الحقل. TEXT: يستخدم لتخزين النصوص الطويلة التي لا يمكن تحديد طولها بشكل دقيق مسبقا، يستخدم هذا النوع عندما تحتاج إلى تخزين نصوص كبيرة مثل المقالات أو التعليقات أو المدخلات غير المحددة الطول، فلا يتم تحديد الحجم الأقصى مسبقا لحقل TEXT، مما يعني أنه قادر على التعامل مع كميات كبيرة جدا من البيانات النصية. الفرق الرئيسي هو في الحجم والأداء، VARCHAR يستهلك مساحة محددة في قاعدة البيانات بناء على الحجم الذي تحدده، بينما يمكن أن تكون الحقول TEXT أكبر بكثير ولكنها تأخذ وقتا أطول للبحث فيها وقد تؤثر على الأداء. بالنسبة للإستخدام يمكنك استخدام VARCHAR عندما يكون لديك حد أقصى لطول النص وتريد الاستفادة من أداء أفضل، أما استخدام TEXT فيكون في حالة لديك نص متغير الطول وغير معروف الحجم مسبقا أو عندما يكون النص كبيرا جدا. و يمكنك أن تقرأ أكثر على أنواع البيانات من خلال الرابط التالي: أنواع البيانات في SQL
- 3 اجابة
-
- 1
-
لقد اكتسبت مهارات مهمة في مجالات متعددة و هذه الأساسيات تعتبر مدخل للعديد من المجالات، و بما أنك أصبحت قادر على حل المشاكل البرمجية يمكنك الدخول في عالم العمل الحر عبر مستقل حيث ستجد هناك العديد من أصحاب المشاريع الذين يبحثون على مستقلين، و لكن لا تتوقف عند هذا الحد، فيجب عليك إختيار أحد المجالات التي تلهمك و ترى نفسك أنك ستبدع فيها و إستمر و طور نفسك فيها أكثر ، فقد تحتاج إلى تعميق معرفتك في مجالات محددة حسب نوع الخدمات التي ترغب في تقديمها، مثلا إذا كنت ترغب في تقديم خدمات تطوير الويب، فقد تحتاج إلى تعلم تقنيات مثل HTML، CSS، JavaScript، وإطارات العمل ك React أو Angular و غيرها، ولا تنسى بناء مشاريع عملية تستخدم مهاراتك البرمجية والتقنية لتوضيح قدرتك على تقديم الخدمات وحل مشاكل محددة. بالنسبة لإختبار الشهادة إذا لم تنجح سيرشدك المدرب لأماكن القصور ويطلب منك تداركها ثم تأدية الإختبار من جديد، و لمعلومات أكثر يمكنك الإطلاع على كيفية الحصول على الشهادة من هنا.