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

كل الأنشطة

تحدث تلقائيًا

  1. الساعة الماضية
  2. اليوم
  3. كنت اتحدث أنا واخي عن اكاديمية حاسوب لاحظنا أنا واخي ان المدرب لا يلتقط أنفاسه وأيضا يشرح المدرب نفسه في أكثر من دورة ولاكن بنفس نبره الصوت ونفس المستوى أيضا وبطء حديثه وأن في بعض الأحيان يكون سكوته الطويل نسبياً وغير متناسق بعض الأحيان مع الأحداث التي يفعلها المدرب مجرد ملاحظة لاكن قد نكون مخطأين
  4. البارحة
  5. فى هذه الحالة يمكنك إكمال مسار أساسيات الجافاسكربت ولن تواجهك مشاكل أو تعامل مع ال html أو الcss بعدها يمكنك الإنتقال إلى المسار الأول من دورة واجهة المستخدم لتعلم ال html والcss أو يمكنك معرفة أساسياتهم من خلال المقالات المشار إليها سابقا أو المقالات الموجودة فى القسم الخاص بهم الموجود بالأكاديمية. أو يمكنك تعلمهم مع المدرب عند شرح أطر العمل الخاص بالجافاسكربت حيث يتم كتابة شيفرة للhtml والcss وتوفير الأكواد الخاصة بهم. ولكن الأفضل بالتأكيد أن يكون لديك ولو معرفة بسيطة بhtml وcss قبل أطر العمل هذا سيوفر عليك وقت وتلافى الأخطاء الناتجة عن عدم علمك بهم. ولسبب أن الجزء الخاص بال html والcss غير موجود في دورة تطوير التطبيقات باستخدام الجافاسكربت تم توفيره فى المسار الأول من واجهة المستخدم بشكل مجانى لتعلمهم.
  6. جميل, ولكن سبق وقد بدأت في تعلم الجافا سكربت, ولا افضل ان ابدأ في تعلم ال HTML,CSS في المنتصف لكي لا تختلط الافكار,هل يوجد مشكله في اكمال دورة الجافا سكربت, بمعنى اخر هل من الضروره بشده تعلم ال HTML,CSS قبل البدأ بالجافا سكربت, واذا كانت الاجابه نعم فمن المفترض ان يكون في بداية دورة الجافا سكربت دروس تأسيس لل HTML,CSS بما ان الافكار جميعها مترابطه وكل فكره تلزم الاخرى. شكرا.
  7. ابي برنمج يساوي مشركه بين النطمه التشغيل ابي نطم اندرويد يشتغل كبرنمج ونطم وندز كبرنمج مفيه البرمج اي عيوب على لينكس منت linux mint
  8. حاليًا لا يوجد دورة خاصة بالأمن السيبراني بالأكاديمية، وكبداية ستحتاج إلى دراسة علوم الحاسوب، ويوجد بالأكاديمية دورة خاصة بذلك ستتعلم بها ما يلي: أساسيات الحاسوب وعلومه والتفكير المنطقي وما هي الخوارزميات وكيف تفيد في البرمجة تطبيقات عملية على أساسيات التفكير المنطقي باستخدام بيئة سكراتش Scratch التفاعلية أساسيات لغة البرمجة JavaScript وتطبيق المفاهيم التي تم شرحها باستخدامها، والتوسع في شرح التطبيقات العملية للغات البرمجة أساسيات أنظمة التشغيل المختلفة وكيفية تثبيت البرمجيات اللازمة للبرمجة عليها أساسيات سطر الأوامر في نظام لينكس، وشرح الأسس التي بني عليها النظام مع تطبيقها عمليًا أنظمة قواعد البيانات المختلفة، مع شرح تفصيلي للغة SQL للتعامل معها مبادئ أساسية في أنظمة قواعد البيانات NoSQL المفاهيم الأساسية التي تبنى فيها صفحات الويب مفاهيم أساسية في الشبكات والخوادم، وكيف يتم استقبال الطلبيات إلى الخادم والرد عليها مبادئ الحماية والأمان في الويب أما بخصوص المصادر والمهارات التي تحتاجها كخريطة طريق لدخول مجال الأمن السيبراني ستجد تفصيل هنا: أما عن نظام لينكس ستجد دروس ومقالات هنا: مقالات لينكس
  9. تسلسل الخطوات مضبوط، أحييك على تفكيرك المنطقي، ولكن يوجد خطأ بسيط وهو في الجملة الشرطية حيث يجب إزالة علامة = وذلك لأننا لا نريد استبعاد الصفر حيث أن مضروب الصفر يساوي 1 ليصير الأمر if (n < 0) وكذلك نقل أمر الطباعة خارج الحلقة التكرارية، لأننا نريد طباعة الناتج النهائي وليس الناتج بعد كل عملية ضرب، بالإضافة إلى أنه لن يتم الطباعة في حال n = 0 for (int i = 1; i <= n; i++) { sum = sum * i; } Console.WriteLine(sum);
  10. كيف اتعلم تطوير الادوات في كالي الامن السبراني،والاختراق الاخلاقي ماهي الدورات المناسبه ماهي افضل المصادر
  11. شرحنا في المقال السابق طريقة استخدام واجهات برمجة التطبيقات التي تعيد الوعود promises، وسنتحدث في هذا المقال عن تعريف الواجهات البرمجية التي تعيد وعودًا في لغة البرمجة جافا سكريبت، ونلقي نظرة على كيفية إنجاز هذه الواجهات البرمجية بأنفسنا، وعلى الرغم من أن مهمة كهذه ليست شائعة الاستخدام كثيرًا لكن من المفيد لك معرفتها. ملاحظة: عند تنفيذ واجهة برمجة تطبيقات معتمدة على الوعود promise-based API ستحتاج لأن نغلّف عملية غير متزامنة (مثل اﻷحداث events، أو دوال رد النداء callbacks، أو نموذج يعمل على تمرير الرسائل message-passing model) وسيكون عليك هيكلة كائن Promise للتعامل مع حالات نجاح تنفيذ هذه العملية resolve أو إخفاقها reject. تنفيذ الواجهة البرمجية ()alarm ما سنفعله في هذا المثال هو إنجاز واجهة برمجية لمنبّه تُدعى ()alarm. تقبل هذه الواجهة وسيطًا هو اسم الشخص الذي ستوقظه كما تأخذ وسيطًا آخر هي الفترة الزمنية التي ينتظرها المنبه بالميلي ثانية قبل إيقاظ الشخص. بعد ذلك تُرسل الدالة الرسالة "Wake up" (أي استيقظ) يليها اسم الشخص. تغليف الدالة ()setTimeout نستخدم الواجهة ()setTimeout في إنجاز واجهتنا ()alarm، وتأخذ هذه الواجهة وسيطين: دالة تستدعيها عند بلوغ زمن التنبيه، واﻵخر زمن التنبيه بالميلي ثانية. وعندما تُستدعى الواجهة ()setTimeout، تبدأ بالعد وصولًا إلى زمن التنبيه وتستدعي عندها الدالة التي مررناها إليها. نستدعي في مثالنا التالي الدالة ()setTimeout مع وسيطيها دالة رد النداء وزمن التنبيه الذي سيكون 1000 ميلي ثانية. إليك شيفرة HTML: <button id="set-alarm">Set alarm</button> <div id="output"></div> ثم شيفرة جافا سكريبت: const output = document.querySelector("#output"); const button = document.querySelector("#set-alarm"); function setAlarm() { setTimeout(() => { output.textContent = "Wake up!"; }, 1000); } button.addEventListener("click", setAlarm); إليك نتيجة التنفيذ: See the Pen promise-based API1 by Hsoub Academy (@HsoubAcademy) on CodePen. الدالة البانية ()Promise تُعيد الدالة وعدًا Promise يُنجز عندما ينقضي الوقت المخصص للمنبّه، ويمرر الرسالة إلى معالج ()then بينما يُرفض الوعد إن كان زمن التنبيه سالبًا. إن المفتاح الرئيسي للعمل هنا هي الدالة البانية ()Promise التي تأخذ دالة استدعاء كوسيط لها وندعوها دالة منفّذة executer وعليك كتابة شيفرة هذه الدالة عند إنشاء وعد جديد. وتأخذ الدالة المنفذة دالتين كوسيط لها تُدعيان تقليديًا الدالة resolve والدالة reject. تستدعي الدالة المنفذة الدالة غير المتزامنة فإن أنجز الوعد ستُستدعى الدالة resolve وإن أخفق تُستدعى الدالة reject. إما إذا رمت الدالة المنفذة خطأً، ستُستدعى reject تلقائيًا. باﻹمكان تمرير أية قيم إلى الدالتين resolve و reject. لذا بإمكانك كتابة شيفرة الواجهة ()alarm كالتالي: function alarm(person, delay) { return new Promise((resolve, reject) => { if (delay < 0) { throw new Error("Alarm delay must not be negative"); } setTimeout(() => { resolve(`Wake up, ${person}!`); }, delay); }); } تُنشئ الدالة السابقة وعدًا Promise وتعيده، وضمن الدالة المنفذة: نتحقق من قيمة زمن التنبيه delay حتى لا تكون سالبة. نستدعي الدالة ()setTimeout ونمرر لها القيمة delay، ومن ثم تُستدعى دالة رد النداء الموجودة ضمن الدالة السابقة عند انقضاء الوقت المحدد ومن ثم تٌستدعى الدالة resolve بعد أن نمرر لها الرسالة "!Wake up". استخدام الواجهة البرمجية ()alarm من المفترض أن تكون الشيفرة التالية مألوفة من المقال السابق. إذ نستطيع استدعاء الواجهة ()alarm ومن ثم نستدعي ()then و ()catch لكائن الوعد الذي تعيده للتعامل مع حالتي إنجاز الوعد أو رفضه: const name = document.querySelector("#name"); const delay = document.querySelector("#delay"); const button = document.querySelector("#set-alarm"); const output = document.querySelector("#output"); function alarm(person, delay) { return new Promise((resolve, reject) => { if (delay < 0) { throw new Error("Alarm delay must not be negative"); } setTimeout(() => { resolve(`Wake up, ${person}!`); }, delay); }); } button.addEventListener("click", () => { alarm(name.value, delay.value) .then((message) => (output.textContent = message)) .catch((error) => (output.textContent = `Couldn't set alarm: ${error}`)); }); إليك نتيجة التنفيذ: See the Pen promise-based API2 by Hsoub Academy (@HsoubAcademy) on CodePen. جرب تحديد قيم مختلفة لكل من person و delay وحاول تمرير قيم delay سالبة وراقب الخرج الناتج. استخدام التعليمين async و await مع الواجهة البرمجية alarm()‎ طالما أن الواجهة ()alarmتعيد وعدًا، نستطيع أن نطبق عليه ما يُطبق على أي وعد آخر، مثل ربطه ضمن سلسلة وعود promise-chain أو استخدام ()all. وكذلك wait/async. const name = document.querySelector("#name"); const delay = document.querySelector("#delay"); const button = document.querySelector("#set-alarm"); const output = document.querySelector("#output"); function alarm(person, delay) { return new Promise((resolve, reject) => { if (delay < 0) { throw new Error("Alarm delay must not be negative"); } setTimeout(() => { resolve(`Wake up, ${person}!`); }, delay); }); } button.addEventListener("click", async () => { try { const message = await alarm(name.value, delay.value); output.textContent = message; } catch (error) { output.textContent = `Couldn't set alarm: ${error}`; } }); إليك نتيجة التنفيذ: See the Pen promise-based API3 by Hsoub Academy (@HsoubAcademy) on CodePen. الخلاصة تعرفنا في هذا المقال على كيفية استخدام الواجهات البرمجية التي تعيد وعودًا promises، وألقينا نظرة على كيفية إنجاز الواجهات البرمجية التي تعيد الوعود من خلال مثال تطبيقي ينجز واجهة منبه للمستخدم بعد انقضاء وقت معين. ترجمة -وبتصرف- للمقال: How to implement a promise-based API اقرأ أيضًا: المقال السابق: استخدام الوعود Promises في جافا سكريبت اللاتزامن والانتظار async/await في جافاسكربت مدخل إلى جافا سكريبت غير المتزامنة البرمجة غير المتزامنة في جافاسكريبت الوعود Promise في جافاسكربت
  12. تلك العملية تتم من جهة قاعدة البيانات، فالأمر عبارة عن تخزين بيانات ثم مقارنتها والتحقق منها والسماح أو المنع بعد ذلك حسب النتيجة. فأولاً، تحتاج إلى إنشاء جداول قاعدة البيانات لتخزين المستخدمين والسيريالات. CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(255) NOT NULL, password VARCHAR(255) NOT NULL, email VARCHAR(255) NOT NULL ); CREATE TABLE serials ( id INT AUTO_INCREMENT PRIMARY KEY, user_id INT NOT NULL, serial_key VARCHAR(50) NOT NULL, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, used TINYINT(1) DEFAULT 0 ); ثم عند شراء المستخدم للسكربت، يتم توليد السيريال وتخزينه في قاعدة البيانات. function generateSerial($userId) { $randomPart = bin2hex(random_bytes(15)); $datePart = date('Ymd'); $serial = $userId . '-' . $randomPart . '-' . $datePart; return $serial; } function storeSerial($userId, $serial) { $pdo = new PDO('mysql:host=localhost;dbname=your_database', 'username', 'password'); $stmt = $pdo->prepare("INSERT INTO serials (user_id, serial_key) VALUES (:user_id, :serial_key)"); $stmt->execute(['user_id' => $userId, 'serial_key' => $serial]); } // افتراض أن المستخدم قد اشترى السكربت وتم تمرير معرف المستخدم $userId = 1; $serial = generateSerial($userId); storeSerial($userId, $serial); وفي صفحة التحقق من السيريال، تقوم بالبحث عن المستخدم ثم التحقق من السريال ثم تحديث حالة السيريال على أنه أصبح مستخدم ثم متابعة التثبيت، وإن لم يحدث ذلك يعني أنّ التحقق فشل ولا يتم المتابعة. function verifySerial($username, $serial) { $pdo = new PDO('mysql:host=localhost;dbname=your_database', 'username', 'password'); $stmt = $pdo->prepare("SELECT id FROM users WHERE username = :username"); $stmt->execute(['username' => $username]); $user = $stmt->fetch(PDO::FETCH_ASSOC); if ($user) { $userId = $user['id']; $stmt = $pdo->prepare("SELECT * FROM serials WHERE user_id = :user_id AND serial_key = :serial_key AND used = 0"); $stmt->execute(['user_id' => $userId, 'serial_key' => $serial]); $serialData = $stmt->fetch(PDO::FETCH_ASSOC); if ($serialData) { $stmt = $pdo->prepare("UPDATE serials SET used = 1 WHERE id = :id"); $stmt->execute(['id' => $serialData['id']]); return true; } } return false; } if ($_SERVER['REQUEST_METHOD'] === 'POST') { $username = $_POST['username']; $serial = $_POST['serial']; if (verifySerial($username, $serial)) { } else { unlink('install.php'); echo "بيانات خاطئة أو السيريال مستخدم سابقاً."; } } وبخصوص التحقق من أن كود الحماية لم يُزال، يمكنك استخدام تقنيات مثل Obfuscation (إخفاء الكود) أو تضمين كود التحقق في أماكن متعددة في السكربت. function checkIntegrity() { if (!file_exists('install.php')) { header('Location: رابط موقعك'); exit(); } } checkIntegrity(); حيث تقوم بتضمين الدالة السابقة في جميع الملفات المهمة للتأكد من أن ملف install.php لم يُحذف.
  13. الفرق ليس في نوع البيانات المستعمل و إنما في نوع المهمة حيث أن التصنيف مهمة مختلفة عن ال clustering. قد تبدو لك عملية التصنيف هي نفسها عملية تقسيم البيانات إلى أصناف و لكن الأمر ليس نفسه. في مهمة التصنيف يكون لديك علم مسبق بالأصناف التي تريد للنموذج التعرف عليها، بينما في مهمة ال clustering لا تكون لديك هذه المعلومة. بالتالي في حال كان المقصود بقولك "نوع البيانات" هو المسميات labels الخاصة بالبيانات فهذا صحيح. كما النماذج المستعملة لكل مهمة ستختلف قليلًا حيث أن النماذج التي تقوم بعملية ال clustering لا تقوم بتوقع أصناف و إنما بتعلم ميزات من البيانات بحيث يتم استعمال هذه الميزات لاحقًا لفصل البيانات إلى أصناف، بينما في مهمة التصنيف يتم توقع الأصناف بشكل مباشر. اختلاف النماذج أيضًا يؤدي إلى اختلاف طريقة التدريب، مهام التصنيف بشكل عام تتبع التعلم الموجه Supervised learning بينما مهام ال clustering فهناك الكثير من أنماط التدريب الخاص بها منها التعليم غير موجه Unsupervised learning أو التعليم ذاتي التوجيه Self-supervised learning و غيرها الكثير من الأنماط الأخرى.
  14. خوارزمية k-means تعد الأشهر لسهولة استعمالها و فهمها، حيث يمكنك فهم آلية عملها حتى لو لم تكن لديك معلومات جيدة في الرياضيات. بالطبع هي ليست الأفضل، و حاليًا يتم التوجه إلى استعمال نماذج الذكاء الاصطناعي في عملية ال clustering بدلًا من الاعتماد على خوارزميات غير قابلة للتعلم، حيث أن خوارزمية مثل خوارزمية ال k-means لا تتعلم بناء على البيانات، كما أن استعمال هذه الخوارزمية يتطلب وجود طريقة معينة يمكن من خلالها إسناد كل غرض إلى نقطة في فضاء الإحداثيات. لذلك قد تجد بعض الطرق تستعمل نماذج الذكاء الاصطناعي لإسناد كل غرض (مثلاً صورة) إلى نقطة في فضاء الإحداثيات و من ثم يتم استعمال ال k-means. أو هناك بعض الطرق التي تعتمد بشكل كلي على نماذج الذكاء الاصطناعي للقيام بذلك عن طريق تدريب النموذج بشكل ذاتي التوجيه self-supervised بحيث يقوم بتعلم الأصناف لوحده. نصيحتي لك هي أن تقوم بتطبيق أبسط تقنية في البداية و أن تنتقل لتقنية معقدة أكثر فقط في حال كان هناك مشاكل معينة تواجهك في الطريقة البسيطة. هذا سيوفر عليك الوقت و الجهد.
  15. ليس هناك إستفادة مرتبطة بمجال تطوير البرمجيات من تطبيق Excel ولكن بالتأكيد في وقت ما ستحتاج لاستخدامه في بعض المهام المختلفه وفي بعض المشاريع المختلفه مثل استخدام Excel لتحليل البيانات واستخلاص الأنماط والاتجاهات منها. و يمكن استخدامه لإدارة البيانات الخاصة بمشاريع البرمجة. حيث يمكنك إنشاء قوائم لتتبع المهام والمواعيد النهائية وتوزيع الموارد. إنشاء تقارير ومخططات بيانية لعرض البيانات البرمجية بشكل بصري.يمكنك استخدام الرسوم البيانية والمخططات لتوضيح النتائج وتقديمها بشكل مرئي وسهل الفهم. إدارة مشاريع البرمجة وتتبع التقدم والمهام المفتوحة والموارد المستخدمة. لذلك يعتبر تعلم إكسل هو استثمار قيم لكل من يتعامل مع الحاسوب بشكل مستمر.
  16. شكرا لك لكن هل Mediavine توفر فلترة للاعلانات و هل Adsterra توفر ذلك ايضا و هل يوجد طرق بدل ذلك مثل بيع مساحة اعلانية في موقع لكن لا اعلم الكثير عنها فقط سمعت عنها
  17. بالطبع هناك العديد من البدائل التي يمكن استخدامها بدلاً من Firebase، وبالإضافة للإقتراحات في التعليق السابق يمكنك الإطلاع على AWS Amplify تقدم مجموعة متكاملة من الأدوات والخدمات ، بما في ذلك قواعد البيانات، المصادقة، التخزين، والوظائف بدون خادم. وأعتقد أنها متاحه في معظم الدول، بما في ذلك الدول العربية. ويوجد أيضاً Back4App وهي توفر واجهة سهلة الاستخدام وتبسيط تطوير الجزء الخلفي للتطبيقات، مما يجعلها مناسبة للمطورين الذين يفضلون حلول low-code أو no-code .
  18. بالطبع أنت ستعتمد على محرك البحث لتحصل على زيارات، إذن عليك أولاً ضبط الـ SEO لموقعك، من خلال تحسين جودة الموقع وتصمميه وسرعة تحميله أي تحسين تجربة المستخدم فهي العامل الأهم حاليًا. ومن ضمن تلك الأمور هو شراء دومين ولا يشترط .com تستطيع شراء دومين بأي لاحقة مختلفة وبسعر زهيد. وإذا لا تريد شراء دومين فحاول التقدم لمنصة Adsterra فهي تقبل ذلك. بعد ذلك ستحتاج إلى كتابة مقالات في موقعك لتسويقه من خلال المحتوى ويظهر على كلمات محددة في جوجل. أيضًا إنشاء روابط باك لينكس backlinks لتحسين ظهور الموقع في جوجل ومدى موثوقيته. وستحتاج 10 آلاف زائر كحد أدنى لتتمكن من التقدم لأحد مقدمي الإعلانات، مثل ezoic. لديك أيضًا Mediavine لكن يتطلب 25,000 زائر شهريًا على الأقل. ألقي نظرة على popads أيضًا.
  19. اريد موقع بديل ادسنس يقبل المواقع ذات النطاق المجاني و تكون اعلانات (حلال)
  20. لم يتم ذكر ما نوع المشروع والبيانات الخاصة به؟ عامًة لا مشكلة في استخدام أكثر من قاعدة بيانات مع Django، تفقد التالي: https://docs.djangoproject.com/en/5.0/topics/db/multi-db/ وهو يقصد الجداول الداخلية التالية: django_content_type (content types for models) django_migrations (migration history) django_session (session data) auth_permission (permissions) auth_group (groups) بسبب ذلك، عليك تخصيص قاعدة بيانات مركزية تحتوي على الجداول التي يستخدمها Django داخليًا. ثم استخدم موجهات قواعد البيانات Database Routers لتحديد الجداول التي يجب أن تكون في قاعدة البيانات المركزية والجداول التي يمكن أن تكون في قواعد البيانات الأخرى.
  21. تحتاج أيضاً للعمل على محرك Roblox Studioتعلم البرمجة حيث يكون مفيدًا إذا كنت ترغب في العمل على محرك Roblox Studio بفعالية أكبر. و إليك بعض الأسباب الرئيسية التي تجعل تعلم البرمجة ضروريًا: البرمجة تسمح لك بتخصيص تجربة اللعبة والتحكم في جميع جوانبها. يمكنك إنشاء ميزات معقدة وسلوكيات ديناميكية تتجاوز الإمكانيات الأساسية التي يوفرها المحرك. باستخدام البرمجة، يمكنك تنفيذ أفكار جديدة ومبتكرة. فيجب تعلم أساسيات البرمجة وذلك إذا كنت تريد تطوير ألعاب بشكل أكثر احترافية وكفاءة. وبالنسبة للمصادر إذا كنت تستطيع التعلم من المصادر الأجنبية فيمكنك إختيار دورة مناسبة لك من اليوتيوب أو الوثائق الموجودة بموقع Roblox Studio من خلال هذا الرابط
  22. شكرا لك اخي على الافادة والتوضيح
  23. بالطبع يجب أن تواجهك هذه المشكلة حيث أنك تحتاج لفهم الدرس والمفاهيم التي يشرحها المدرب بشكل جيد ثم يكون الجزء الآخر من التعلم هو الحفظ ولكن يمكنك الحفظ بشكل مباشر أو الدراسة بدون التطبيق العملي بشكل كاف الحفظ عن طريق التطبيق العملي بشكل مستمر بالنسبة للطريقة الأولى ستجعلك تواجه الكثير من المشكلات ولكن الطريقة الثانية تجعلك تحفظ الأجزاء المهمة بشكل عملي وهي الطريقة الصحيحة حيث يجب عليك فهم الدرس جيداً ثم التطبيق وراء المدرب ومحاولة التطبيق أيضاً مع نفسك وبالتأكيد يوجد تطبيقات عملية في نهاية كل مسار أو قسم من المسار ولكن حاول التطبيق بشكل جيد على كل درس أو عدة دروس إذا كانت بسيطة ويمكنك الإطلاع على المصدار في التعليق السابق للفهم بشكل أكبر
  24. أكاديمية حسوب لا تقدم برنامج ماجستير عن طريق الدورات الأونلاين وحدها بينما الشهادة التي تقدمها أكاديمية حسوب هي عبارة عن اعتراف من قبل المنصة بخبرتك في مجال محدد وذلك يساعدك في زيادة فرص توظيفك ولكن الأهم من الشهادة التي تحصل عليها هي المهارات التي تتعلمها من خلال الأكاديمية حيث في مجال علوم الحاسوب تعتبر الخبرة والمهارات التي لديك هي العامل الأول لحصولك على الوظيفة ولكن في بعض الأحيان تكون الشهادة مطلوبة ويفضل الإطلاع على الإجابات التالية لتفهم ما الفرق بين الشهادة في أكاديمية حسوب والشهادة الجامعية
  25. نعم، يُفضَّل أن تكون لديك معرفة أساسية بـ HTML و CSS قبل تعلم JavaScript، خاصة إذا كنت تخطط لاستخدام JavaScript لتطوير واجهات المستخدم على الويب.وذلك هو ما تقوم الدورة المشترك بها بشرحه بجانب ال backend بالطبع وكما أخبرك مصطفى في التعليق السابق فإنه يمكنك الوصول للمسار الأول من كل دورة موجودة في الأكاديمية بدون الإشتراك بها ولكن في دورة تطوير التطبيقات باستخدام لغة JavaScript لن تحتاج إلى تعلم html أو css لأنه سيتم توفير أكواد html و css لك مما يعني أنه يمكنك تعلم HTML و CSS بالتزامن مع الدورة ويجب عليك أن تعرف أنه لتطوير الوجهات الأمامية تحتاج لإتقان HTML و CSS ويفضل الإطلاع على المقالة التالية للتوضيح بشكل أكثر تفصيلاً
  26. لم تذكر ما الداعي لفعل ذلك، حيث أنّ IIS يعمل على نظام ويندوز فقط لكونه من تطوير مايكروسوفت. عامًة، لا مشكلة في استخدام IIS بدلاً من XAMPP لتشغيل تطبيقات PHP، فكل من IIS و XAMPP خادمان ويب يمكنهما تشغيل تطبيقات PHP. لكن XAMPP هو حزمة خادم ويب مجانية ومفتوحة المصدر تحتوي على Apache و MySQL و PHP و Perl و متاحة لأنظمة Windows و macOS و Linux. والعمل على IIS ليس بالسهل وستحتاج إلى خبرة ودراية به على عكس XAMPP. وربما تحتاج إلى إجراء بعض التعديلات على كود PHP لديك في حال كنت تستخدم ميزات أو امتدادات خاصة بالخادم والتي قد لا تكون متوفرة على كلا الخادمين، بمعنى لو تستخدم وحدات أو دوال خاصة بـ Apache، فستحتاج إلى تعديل كودك لاستخدام بدائل متوافقة مع IIS. أيضًا ملفات .htaccess في Apache، ستحتاج إلى تحويلها إلى قواعد URL Rewrite في IIS.
  27. الحل صحيح، تستطيع تحسينه بتجنب طباعة فاصلة زائدة في النهاية، الفكرة هي التأكد من أن الفاصلة تُطبع فقط بين الأرقام وليس بعد آخر رقم في السلسلة. for (int i = 1; i <= 100; i++) { if (i % 5 != 0) { if (i > 1 && (i - 1) % 5 != 0) { Console.Write(","); } Console.Write(i); } } استخدمت شرطًا إضافيًا داخل الحلقة للتحقق في حال كان الرقم الحالي ليس الأول في السلسلة (i > 1) وأن الرقم السابق لم يكن مضاعفًا للـ 5 ((i - 1) % 5 != 0). بالتالي طباعة الفاصلة فقط بين الأرقام التي ليست مضاعفات للـ 5، وتجنب الفاصلة الزائدة في النهاية. وللعلم يوجد حل آخر باستخدام قائمة لتخزين النتائج، فبدلاً من التحقق داخل الحلقة، باستطاعتك استخدام قائمة لتخزين الأرقام ومن ثم طباعة الأرقام مرة واحدة بفاصلة بين كل رقم: using System; using System.Collections.Generic; class Program { static void Main() { List<int> numbers = new List<int>(); for (int i = 1; i <= 100; i++) { if (i % 5 != 0) { numbers.Add(i); } } Console.WriteLine(string.Join(",", numbers)); } }
  1. عرض المزيد
×
×
  • أضف...