اذهب إلى المحتوى

بلال زيادة

الأعضاء
  • المساهمات

    4657
  • تاريخ الانضمام

  • تاريخ آخر زيارة

  • عدد الأيام التي تصدر بها

    30

كل منشورات العضو بلال زيادة

  1. GitHub هو موقع رائع للعثور على مشاريع مفتوحة المصدر والمشاركة فيها. يمكنك البحث عن مشاريع تناسب مستوى مهاراتك والمشاركة في تطويرها أو إنشاء مشاريع خاصة بك. Codecademy تقدم مجموعة من الدروس التفاعلية والمشاريع العملية في مجموعة متنوعة من لغات البرمجة والتقنيات. freeCodeCamp هو مورد تعليمي مجاني يقدم مسارات تعلم متكاملة تشمل مشاريع عملية. يشمل تدريبًا في تطوير الويب وتطوير الجوال والعديد من المجالات الأخرى. Coursera يقدم دورات عبر الإنترنت من جامعات معترف بها حول العالم. بعض هذه الدورات تشمل مشاريع عملية تساعدك على تطبيق المفاهيم التي تعلمتها. edX هو موقع آخر يقدم دورات عبر الإنترنت من جامعات ومؤسسات تعليمية. يمكن العثور على دورات تشمل مشاريع عملية هنا أيضًا. Hackerrank يقدم تحديات برمجية ومشاريع تساعدك في تحسين مهارات البرمجة وحل المشاكل. LeetCode مخصص بشكل رئيسي لتنمية مهارات البرمجة وحل الألغاز البرمجية وتحسين الأداء في المقابلات الوظيفية. Exercism.io يقدم تحديات برمجية يمكنك حلها بلغة البرمجة المفضلة لديك والحصول على ملاحظات من مدربين مجتمعيين. Kaggle إذا كنت مهتمًا بعلوم البيانات والذكاء الاصطناعي، فقد تجد Kaggle مكانًا رائعًا للمشاركة في مسابقات بيانات وإنشاء مشاريع تحليل البيانات.
  2. إذا كنت تواجه مشكلة عدم العثور على مكتبة Pygame في مشروع Python، تأكد أولاً من أنك قمت بتثبيت مكتبة Pygame على نظامك. يمكنك استخدام مدير الحزم pip للقيام بذلك. يمكنك تنفيذ الأمر التالي في سطر الأوامر: pip install pygame إذا كنت تستخدم بيئة افتراضية (virtual environment) لمشروعك، تأكد من أنك قمت بتفعيل البيئة الافتراضية قبل تثبيت Pygame وتشغيل مشروعك أو في بعض الأحيان، يمكن أن يتسبب محرر النصوص الذي تستخدمه في عرض رسائل خطأ خاطئة أو عدم التعرف بشكل صحيح على المكتبات. جرب إعادة تشغيل محرر النصوس أو استخدم محرر نصوس آخر وتأكد من تحديثه.
  3. Symfony و Laravel هما اثنان من أشهر أطُر العمل (Frameworks) في عالم تطوير تطبيقات الويب باستخدام لغة PHP. على الرغم من أنهما يؤديان نفس الغرض العام وهو تسهيل تطوير تطبيقات الويب، إلا أن لديهما بعض الاختلافات البارزة. Symfony مصمم ليكون أكثر تعددية ومرونة، ويسمح للمطورين بتحديد تفاصيل العمليات بشكل أكبر. إنه يعزز مبدأ التكوين عبر الترميز ويسعى لتقديم مكتبة قوية ومكونات معيارية لبناء تطبيقات مختلفة. Laravel يستند إلى مبدأ التسجيل النشط ويوفر تجربة تطوير أكثر سهولة وسرعة. إنه يوفر عددًا كبيرًا من الميزات المدمجة والأدوات لتبسيط مهام تطوير تطبيقات الويب ويعتمد على مفاهيم تطوير سريعة وأساليب تبسيط القواعد البيانات. Symfony يقدم مجموعة كبيرة من المكتبات المستقلة والأدوات الجاهزة للعمل معها. من الممكن استخدام مكتبات Symfony بشكل منفصل عن الإطار نفسه. Laravel يأتي مع العديد من المكتبات والأدوات المدمجة مثل Eloquent ORM و Blade Templating و Laravel Mix لإدارة الموارد الأمامية. إنه يوفر تكاملًا عميقًا مع هذه الأدوات ويجعل من السهل البدء بسرعة في تطوير التطبيقات. Symfony لديه مجتمع نشط وكبير من المطورين والمساهمين. يتمتع بدعم جيد وتوثيق شامل. Laravel أيضًا لديه مجتمع قوي ونشط. يمكنك العثور على الكثير من المصادر التعليمية والوثائق لدعم تعلمه واستخدامه. Symfony غالبًا ما يكون أداءه أفضل في الحالات التي تتطلب مرونة وتخصيصًا كبيرًا. Laravel يقدم أداء جيد ومعقول لمعظم التطبيقات، وهو مناسب بشكل خاص للتطبيقات الصغيرة والمتوسطة الحجم.
  4. لا توجد مشكلة خاصة بنظام Windows 11 يمنع البرمجة أو تطوير واجهات المستخدم. Windows 11 هو نظام تشغيل حديث من مايكروسوفت ويمكن استخدامه بشكل جيد لتطوير البرمجيات بما في ذلك تطبيقات واجهات المستخدم. أي مشكلة تواجهها قد تكون مرتبطة بأمور أخرى مثل إعدادات البيئة أو إصدارات الأدوات واللغات البرمجية التي تستخدمها. في الواقع، الكثير من المطورين يستخدمون Windows 11 بنجاح لتطوير البرمجيات وتصميم واجهات المستخدم.
  5. لمنع حدوث حذف تلقائي للعناصر في الجدول المرتبط عند حذف عنصر في الجدول الأول، يجب تعيين العمليات المتعلقة بالمفتاح الأجنبي (Foreign Key) بشكل صحيح في قاعدة البيانات MySQL. هذا يتطلب استخدام الخاصية ON DELETE وتعيينها إلى RESTRICT أو NO ACTION بدلاً من السلوك الافتراضي الذي هو CASCADE. RESTRICT CREATE TABLE table1 ( id INT PRIMARY KEY AUTO_INCREMENT, -- other columns ); CREATE TABLE table2 ( id INT PRIMARY KEY AUTO_INCREMENT, table1_id INT, FOREIGN KEY (table1_id) REFERENCES table1(id) ON DELETE RESTRICT, -- other columns ); NO ACTION CREATE TABLE table1 ( id INT PRIMARY KEY AUTO_INCREMENT, -- other columns ); CREATE TABLE table2 ( id INT PRIMARY KEY AUTO_INCREMENT, table1_id INT, FOREIGN KEY (table1_id) REFERENCES table1(id) ON DELETE NO ACTION, -- other columns );
  6. عندما يظهر لك صفحة بيضاء بدلاً من رسالة الخطأ المتوقعة عند حدوث خطأ في الاستدعاء API لذلك يمكن أن يتم التعامل مع الخطأ بشكل غير صحيح. لذلك تأكد من أن الخطأ يتم التعامل معه بشكل صحيح وأنك تعيد قيمة فارغة [] كما هو موجود في كود catch الحالي ثم تحتاج إلى التحقق من الرمز الذي يتم إرجاعه من الخادم عند حدوث خطأ مثل رمز 422 ، 200 ، 500 ربما يتوجب عليك التحقق من محتوى الاستجابة لفهم كيف يتم تنسيق الخطأ من الخادم أيضا لا تنسى إذا كان هناك تأخر في استجابة الخادم، قد تظهر الصفحة البيضاء أثناء انتظار البيانات و يمكنك تجنب ذلك بعرض رسالة انتظار مؤقتة أثناء استرجاع البيانات.
  7. هناك فرق بين pseudo-class وpseudo-element في CSS، وهذا الفرق بدأ يظهر بشكل أوضح ابتداءً من CSS3. دعني أشرح الفرق الجوهري بينهما: Pseudo-Class (الصفة الزائفة) تستخدم لاستهداف عناصر HTML استنادًا إلى حالتها أو تفاعل المستخدم معها. تسمح لك بتطبيق تنسيقات مخصصة على العناصر النمطية مثل الارتباطات الغير مزارة (unvisited links) أو العناصر التي يتم تحديدها عند تمرير المؤشر (hover) عليها أو تنسيق العناصر عندما تكون في حالة تحديد (active). تمثلها بوضع اسم الصفة الزائفة بعد علامة ":" في تعريف CSS. a:link { color: blue; /* تغيير لون الروابط غير المزارة */ } button:hover { background-color: yellow; /* تغيير لون الزر عند تمرير المؤشر عليه */ } Pseudo-Element (العنصر الزائف) تستخدم لإنشاء عناصر افتراضية إضافية داخل العناصر الفعلية في HTML وتنسيقها بشكل منفصل. تمثلها باستخدام "::" بدلاً من ":" في تعريف CSS. يتيح لك إضافة محتوى إضافي أو تنسيق إضافي داخل العناصر الفعلية. مثل إضافة علامات تعقيب إضافية (::before و ::after) لإضافة محتوى إضافي إلى عناصر HTML. p::first-line { font-weight: bold; /* تغيير نمط النص في السطر الأول من فقرة */ } div::before { content: "ملاحظة: "; /* إضافة نص إلى بداية العنصر div */ } الفرق الجوهري هو أن pseudo-class تستهدف وتنسق العناصر الفعلية في الصفحة استنادًا إلى حالتها أو تفاعل المستخدم معها، بينما pseudo-element يسمح لك بإنشاء وتنسيق عناصر افتراضية داخل العناصر الفعلية. هذا يمنحك مزيدًا من المرونة في تنسيق وتصميم صفحات الويب الخاصة بك.
  8. يجب أن تستورد مكتبات الإدخال والإخراج من C++ (مثل iostream) لاستخدام cin و cout. يمكنك تصحيح ذلك بإضافة التعليمات التالية في بداية البرنامج: #include <iostream> using namespace std; في التعبيرات cout، يجب وضع فاصلة منقوطة (;) بعد القوس النهائي في كل تعبير cout. على سبيل المثال: cout << (a + b); يجب التحقق من قيمة s قبل أداء عملية القسمة (/) للتأكد من عدم قسمة على صفر (division by zero). يمكنك فعل ذلك بإضافة شرط إضافي، مثل: if (s == '/') { if (b == 0) { cout << "لا يمكن قسمة على الصفر" << endl; } else { cout << (a / b) << endl; } }
  9. لا يؤثر أبدا فقط كل ما عليك هو الانتهاء من الدورة بأي وقت و من ثم تقديم طلب إجراء الامتحان من خلال مركز المساعدة من هنا .
  10. العلامة "+" في السطر الذي قدمته لي تُستخدم للإشارة إلى عملية الجمع في لغة البرمجة. في هذا السياق، إنها تُستخدم لجمع قيمة متغير مع قيمة أخرى. monsterHealthBar.value = +monsterHealthBar.value - dealtDamage;
  11. افتح PyCharm. انتقل إلى File (الملف) ثم Settings (الإعدادات) (أو Preferences على نظام macOS). في القائمة الجانبية اليسرى، انتقل إلى Project (اسم مشروعك]) ثم Python Interpreter (مترجم Python). تحقق من أن Python Interpreter المستخدم هو الإصدار الصحيح وأنه يشمل المكتبات التي قمت بتثبيتها بواسطة pip. أو إذا كنت قد قمت بتثبيت المكتبات بنجاح باستخدام pip في البيئة الافتراضية لنظامك، يجب أن يكون من السهل استدعاء تلك المكتبات في ملفاتك في PyCharm. لذلك، تأكد من أنك تستخدم الاستيرادات الصحيحة في ملفات البرنامج الخاصة بك. على سبيل المثال: import my_library # حيث أن my_library هو اسم المكتبة التي قمت بتثبيتها باستخدام pip
  12. صحيح يمكنك إعادة الامتحان مرة أخرى ، لا مشكلة في ذلك ، يمكنك مراجعة مركز المساعدة من هنا يوجد العديد من المقالات المفيدة
  13. برنامج Expo قد يؤثر على أداء جهاز الكمبيوتر إذا كان الحاسوب ضعيفًا من الناحية الأجهزة، Expo هو أداة تطوير تُستخدم لتطوير تطبيقات الجوال باستخدام React Native، وهو يقوم بتوفير بيئة تطوير محلية تمكنك من إنشاء واختبار تطبيقاتك بسهولة. مع زيادة تعقيد التطبيقات واستخدام ميزات متقدمة، قد تحتاج Expo إلى موارد أكثر من الحاسوب. الحاسوب الضعيف من الناحية الأجهزة قد يكون لديه صعوبة في تشغيل تطبيقات Expo الكبيرة والمعقدة بسلاسة، مما قد يؤدي إلى بطء في الأداء واستهلاك موارد النظام مثل الذاكرة والمعالج.
  14. البرمجة العادية تركز على إنشاء تطبيقات وبرامج تقوم بتنفيذ مهام محددة باستخدام تعليمات برمجية وخوارزميات و يتم تحديد السلوك والخطوات التي يجب على البرنامج اتباعها بوضوح و أيضا يعتمد على تحليل المشكلة وتصميم الخوارزميات المناسبة لحلها و يتطلب فهمًا جيدًا للبرمجة والتصميم البرمجي أيضا يستخدم لبناء تطبيقات ومواقع وأنظمة تتفاعل مع المستخدمين. برمجة الذكاء الاصطناعي تركز على إنشاء نظم تكنولوجية قادرة على محاكاة بعض قدرات العقل البشري، مثل التعلم والتفكير واتخاذ القرارات و يعتمد على تقنيات تتضمن تعلم الآلة والتعلم العميق ومعالجة اللغة الطبيعية والروبوتات وغيرها و أيضا يشمل إنشاء نماذج وخوارزميات تسمح للنظام بالتعلم من البيانات وتحسين أدائه مع مرور الوقت و قد يحتاج إلى مفاهيم متقدمة في الرياضيات والإحصاء والبرمجة و يستخدم لبناء أنظمة ذكية تستطيع التفاعل مع البيئة واتخاذ قرارات تلقائية دون تدخل بشري، مثل تطبيقات التوصيات والتحليلات المعقدة والروبوتات الذكية.
  15. قم بإعادة تشغيل جهازك وحاول فتح القرص مرة أخرى باستخدام الرمز السري الخاص بك و في بعض الأحيان إعادة التشغيل تساعد في حل مشكلات مؤقتة أيضا تأكد من أن لوحة المفاتيح الخاصة بجهازك تعمل بشكل جيد و قد يكون التهنيج الذي تشهده ناتجًا عن مشكلة في الأجهزة و تأكد من أن نظام التشغيل الخاص بك وبرامج التشغيل الخاصة بالأجهزة محدثة إلى أحدث إصداراتها لأنه قد يحتوي التحديث على إصلاحات لمشكلات معينة.
  16. هذا مثال بسيطًا في لغة JavaScript على كيفية طباعة قيمة متغير أو ثابت في وحدة التحكم (console): // تعريف متغير var myVariable = 42; // طباعة قيمة المتغير في وحدة التحكم console.log(myVariable); في هذا المثال، سيتم طباعة القيمة 42 في وحدة التحكم. يُستخدم الأمر console.log() لطباعة قيمة المتغير. يجب أن تتأكد من وضع اسم المتغير داخل قوسين الأمر لضمان طباعة قيمته بدلاً من اسمه.
  17. يجب أن تجعل id في جدول prod تلقائي Auto increment اخبرني بنتيجة تحويل id لتلقائي
  18. NPM (Node Package Manager) و Yarn هما كليهما أدوات لإدارة وتنزيل حزم البرامج والمكتبات في مشاريع Node.js وJavaScript. NPM (Node Package Manager) NPM هو مدير الحزم الأصلي لبيئة Node.js وهو مدمج مع تثبيت Node.js , يوفر واجهة سطر أوامر سهلة الاستخدام لتثبيت وتحديث الحزم , وتطورت أدوات إصدارات NPM مع الزمن لدعم أمور مثل إدارة الإصدارات وحلول تباين الإصدارات. Yarn Yarn هو منافس لـ NPM تم تطويره بواسطة Facebook وشركاءها. يهدف إلى تحسين أداء عملية التنزيل وإدارة الحزم و يقدم أداء أسرع من NPM بشكل عام بفضل تخزين الحزم المحلي وتوزيع موازي للتنزيل و يتيح للمطورين تثبيت الحزم بشكل متزامن، مما يزيد من كفاءة التثبيت والتحديث و يوفر واجهة أمر سطر أوامر مشابهة لـ NPM ولكن مع بعض الإضافات والخيارات.
  19. الكود الذي قدمته يحتوي على بعض الأخطاء البسيطة في استخدام العلامات والعوامل الرياضية. هنا هو الكود المصحح مع شرح للأخطاء وكيفية تصحيحها: #include <iostream> using namespace std; int main() { int Age; cout << "Please enter the Age: "; cin >> Age; bool drivingLicense; cout << "Please enter whether you have a driving license (1 for true, 0 for false): "; cin >> drivingLicense; if (Age >= 23 && drivingLicense == true) { cout << "Hire" << endl; } else { cout << "Reject" << endl; } return 0; } تم استخدم #include <iostream> لتضمين مكتبة الإدخال والإخراج ثم استخدم using namespace std; لتجنب استخدام std:: قبل أوامر الإدخال والإخراج.ثم قم بتصحيح العلامات: استخدم << بدلاً من >> في أوامر الإخراج، واستخدم >> بدلاً من << في أوامر الإدخال، ثم استخدم && بدلاً من & & لتمثيل العامل اللوجي "و" (AND). باستخدام هذا الكود، إذا كان العمر أكبر من أو يساوي 23 وكان لديك رخصة قيادة (تم إدخال 1)، سيعرض "Hire"، وإلا سيعرض "Reject". تأكد من إدخال 1 أو 0 بالفعل للرخصة، حيث أن cin يقبل القيم المنطقية (true أو false) بشكل عددي.
  20. يجب أولاً إنشاء قاعدة البيانات الخاصة بالمشروع في هذا المثال، سنستخدم جدولين: جدول للمستخدمين وجدول للبيانات الخاصة بكل مستخدم. CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL, password VARCHAR(255) NOT NULL, role ENUM('owner', 'employee') NOT NULL ); CREATE TABLE sales_data ( id INT AUTO_INCREMENT PRIMARY KEY, user_id INT, data VARCHAR(255) NOT NULL, FOREIGN KEY (user_id) REFERENCES users(id) ); ثم قم بإنشاء نموذج HTML لصفحة تسجيل الدخول واكتب الكود الخاص بالتحقق من معلومات تسجيل الدخول وإعداد الجلسة. <?php session_start(); if ($_SERVER["REQUEST_METHOD"] == "POST") { $username = $_POST["username"]; $password = $_POST["password"]; // قم بالتحقق من معلومات تسجيل الدخول واستعلام قاعدة البيانات // ... if ($user_exists && password_verify($password, $hashed_password)) { $_SESSION["user_id"] = $user_id; $_SESSION["role"] = $user_role; header("Location: dashboard.php"); exit(); } else { $error_message = "Invalid login credentials."; } } ?> <!DOCTYPE html> <html> <head> <title>Login</title> </head> <body> <form method="post"> <input type="text" name="username" placeholder="Username" required><br> <input type="password" name="password" placeholder="Password" required><br> <input type="submit" value="Login"> </form> <?php if(isset($error_message)) echo $error_message; ?> </body> </html> ثم إنشاء صفحة لوحة التحكم التي يمكن للمالك من خلالها إضافة وإدارة مستخدمين وبيانات المبيعات. <?php session_start(); if (!isset($_SESSION["user_id"]) || $_SESSION["role"] !== "owner") { header("Location: login.php"); exit(); } // استعلامات لإدارة المستخدمين والبيانات هنا // ... ?> <!DOCTYPE html> <html> <head> <title>Owner Dashboard</title> </head> <body> <h1>Welcome, Owner!</h1> <!-- تضمين نماذج لإدارة المستخدمين والبيانات --> </body> </html>
  21. يجب عليك فهم كيفية التحكم في تنقل المستخدم بين المراحل المختلفة في تطبيقك على Android Studio باستخدام Java. في هذا المثال، سأفترض أن لديك مجموعة من النقاط التي يجب على المستخدم جمعها قبل التحول إلى المرحلة التالية. لنفترض أن لديك مشهدًا (Activity) لكل مرحلة وأنك تريد الانتقال من مرحلة إلى أخرى بناءً على إكمال المرحلة الحالية. الأكواد التالية توضح كيفية تحقيق ذلك: إضافة زر للانتقال من مرحلة إلى أخرى: <Button android:id="@+id/nextStageButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Next Stage" android:onClick="goToNextStage"/> تنفيذ الوظيفة التي تنقل المستخدم إلى المرحلة التالية: في النشاط الخاص بالمرحلة الأولى (Stage1Activity.java)، يجب عليك تنفيذ وظيفة للانتقال إلى المرحلة التالية. تحتاج إلى التأكد من تحقق شرط معين، مثل جمع نقاط معينة. سنفترض أنه إذا قام المستخدم بجمع 20 نقطة، فإنه يمكنه الانتقال إلى المرحلة التالية. public class Stage1Activity extends AppCompatActivity { private int userPoints = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_stage1); } public void collectPoints(View view) { // يتم استدعاء هذه الوظيفة عندما يقوم المستخدم بجمع نقاط userPoints += 1; // زيادة عدد النقاط if (userPoints >= 20) { // إذا تم جمع 20 نقطة أو أكثر، قم بالانتقال إلى المرحلة التالية Intent intent = new Intent(this, Stage2Activity.class); startActivity(intent); } } } تأكد من أنك قمت بإنشاء المشهد الثاني (Stage2Activity.java) وقمت بتكوينه بشكل صحيح في الملفات XML المناسبة.
  22. التأكد من البيئة الافتراضية (Virtual Environment) أي يجب أن تتأكد من أنك تعمل داخل بيئة افتراضية إذا كنت تستخدمها. تحقق من أنك قمت بتنشيط البيئة الصحيحة قبل تنفيذ الأمر، ثم قم بتحديث pip إلى أحدث إصدار باستخدام الأمر: pip install --upgrade pip قد يكون هناك خلل في التثبيت السابق. قم بإلغاء تثبيت pyPDF2 ومن ثم إعادة تثبيته بواسطة الأوامر التالية: pip uninstall pyPDF2 pip install pyPDF2 ثم تحقق من أنك تستخدم نسخة من Python التي قمت بتثبيت pyPDF2 عليها. قد يكون هناك تعارض بين إصدار Python وإصدار pyPDF2، ثم تحقق من أنك تستدعي الوحدة باسمها الصحيح. افحص ملف البرنامج النصي الذي تستخدمه وتأكد من أنك تستدعي pyPDF2 بالاسم الصحيح.
  23. يمكنك استخدام وحدة VideoView المتاحة في إطار العمل (Framework) لتشغيل مقاطع الفيديو. إليك خطوات عامة لإضافة VideoView إلى تطبيق الأندرويد وتشغيل الفيديو تلقائيًا:. أضف ملف الفيديو: قم بنسخ ملف الفيديو إلى مجلد الملفات الخاص بالمشروع في Android Studio (على سبيل المثال، في مجلد res/raw). قم بتعريف VideoView في ملف XML: قم بفتح ملف XML الذي تريد عرض الفيديو فيه وأضف عنصر VideoView مع تحديد معرف له. على سبيل المثال: <VideoView android:id="@+id/videoView" android:layout_width="match_parent" android:layout_height="wrap_content"/> تحديد المسار المرجعي للفيديو في الكود: في نشاط (Activity) الذي تريد تشغيل الفيديو فيه، قم بتحديد المسار المرجعي لملف الفيديو المُضاف في الخطوة الأولى: VideoView videoView = findViewById(R.id.videoView); String videoPath = "android.resource://" + getPackageName() + "/" + R.raw.video_file_name; videoView.setVideoPath(videoPath); تشغيل الفيديو تلقائيًا: بعد تحديد المسار المرجعي للفيديو، يمكنك تشغيل الفيديو تلقائيًا باستخدام الأمر التالي: videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { @Override public void onPrepared(MediaPlayer mediaPlayer) { videoView.start(); } });
  24. هناك العديد من المواقع الممتازة التي تقدم دورات وتدريبات لتعلم وتطوير مهارات حل المشكلات LeetCode موقع معروف يقدم مجموعة كبيرة من المسائل البرمجية والألغاز التي تساعدك على تحسين مهارات حل المشكلات واستعراض مفاهيم الخوارزميات. HackerRank يوفر تحديات ومسائل متنوعة في مجموعة متنوعة من المجالات مثل البرمجة، وعلوم البيانات، وقواعد البيانات، والاختبارات الفنية. Codeforces موقع يركز بشكل أساسي على مسابقات البرمجة ويحتوي على مجموعة من المشكلات الصعبة التي تحتاج إلى تفكير إبداعي. Codewars يقدم تحديات برمجية مصنفة بمستويات مختلفة تتيح لك تطوير مهاراتك بشكل تدريجي. Project Euler يتضمن تحديات في مجال الرياضيات والبرمجة التي تساعدك على تطوير مهاراتك في الحساب والتفكير اللوجي. Exercism يوفر تمارين تمكنك من تطوير مهاراتك البرمجية في لغات متعددة. TopCoder يوفر تحديات ومسابقات برمجية بالإضافة إلى دورات تدريبية للمبتدئين والمحترفين. Sphere Online Judge (SPOJ) يقدم تحديات برمجية ومسائل متنوعة تغطي مجموعة واسعة من المفاهيم.
  25. من الطبيعي أن يحدث خطأ في تقدير الاحتياجات والمستوى عند اختيار الدورات التعليمية. إذا كنت قد اشتريت دورة تطوير واجهات المستخدم دون أن تكون لديك أساسيات في البرمجة، يمكنك اتخاذ الخطوات التالية: ابدأ بمراجعة محتوى الدورة التي اشتريتها. قد يكون هناك بعض المفاهيم البرمجية الأساسية التي يمكن أن تساعدك في فهم المواد بشكل أفضل. للبدء في مجال تطوير الواجهات والبرمجة بشكل عام، يجب أن تتعلم أساسيات البرمجة. اختر كورسًا تعليميًا يُعلمك مفاهيم البرمجة مثل متغيرات، الهياكل التحكمية، الدوال، وما إلى ذلك.
×
×
  • أضف...