-
المساهمات
19827 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
473
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Mustafa Suleiman
-
بالطبع ذلك ما قصدته، أي سؤال لا تجديه متعلق بالدورة، يتم طرحه في قسم الأسئلة الخاصة بالبرمجة هنا وسيتم الإجابة عليه من قبل الجميع.
- 8 اجابة
-
- 1
-
-
أهلاً بك في أي وقت، وتستطيعي استكمال الدورة بالأكاديمية كما هي وستحققي استفادة كبيرة من خلال التطبيق العملي على المشاريع، وبخصوص أي أمر تريدي تعلمه أو أي أمر غير واضح، أرجو منك طرح السؤال المتعلق بالدورة أسفل الفيديو الخاص به بالدورة لكي يتم مساعدتك بشكل أفضل. أما الأسئلة العامة الغير متعلقة بالدورة يتم طرحها هنا في قسم أسئلة البرمجة كما فعلتي. وبخصوص Grid تستطيعي رفع مجلد المشروع الخاص بك بعد ضغطه، أو وضع الكود هنا أو توضيح المشكلة بصورة وسيتم تفقد المشروع أو حل المشكلة التي تواجهك ولا تترددي في السؤال لكن بعد البحث والقراءة لكي تحققي استفادة لك.
-
هل سؤالك خاص بأحد الدورات؟ إذا كان السؤال خاص بدورة تصميم واجهات المستخدم، فيتم استخدام Flexbox لسهولة فهمه واستخدامه في البداية وأيضًا Grid يستخدم في التصميمات المعقدة نسبيًا، وتنفيذ التصميمات في الدورة تتم من خلال Bootstrap وهو يستخدم Flexbox بشكل أساسي. وقد تم توضيح ذلك هنا بالتفصيل: أما إذا كان سؤالك عن مصادر لتعلم Grid فإليك المصادر التالية: وتستطيعي البحث على يوتيوب أيضًا وستجدي الكثير من الشروحات، عليك بالبحث عن "شرح css grid".
-
عليك بتصفح الرابط الصحيح للمشروع، فلو كنت تستخدم Laragon تستطيع الضغط بزر الفأرة الأيمن على واجهة برنامج لاراجون ثم إختيار www ومنها اختر المشروع الخاص بك من خلال اسمه كالتالي: وسيتم فتح رابط المشروع الصحيح. وبشكل يدوي عليك بكتابة اسم مجلد المشروع ثم public أي كالتالي: http://localhost/instagram-laravel/public مع استبدال instagram-laravel باسم مجلد المشروع لديك.
- 4 اجابة
-
- 1
-
-
أولاً أرجو منك توضيح ما الذي تريد فعله بالضبط وما المشكلة التي تواجهك عند محاولة تنفيذ ذلك. وعلي أي حال في الجزء الثاني من الكود (الحلقة while) عليك بإزالة الشرط if لكونك قمت بتحديد شرط في while وهو طالما أن x أصغر من طول المصفوفة mm. if(x === mm[x]){ console. log(x); } وأيضًا عليك بزيادة قيمة x وليس خفضها أي تصبح x++، وأيضًا إزالة break حيث أن الحلقة ستتوقف عند تحقق الشرط في المرة الأولى ولن تكتمل للنهاية. وأيضًا لا حاجة لكتابة mm.length - 1 حيث أنك حددت أن x أصغر من طول المصفوفة لذلك الأمر مماثل. وبعد التعديل سيصبح الكود بالشكل التالي: const mm = ['ahmed', 'mete', 'sahlab']; for (let i = mm.length - 1; i >= 0; i--) { console.log(i, mm[i]); } let x = 0; while (x < mm.length) { console.log(x); x++; } ولمساعدتك بشكل أفضل اذكر ما الذي تريده بالضبط.
-
عليك أولاً بإنشاء استمارة HTML تحتوي على صندوق اختيار (checkbox) لتحديد وجود حساسية، وحقل إدخال (input field) لإدخال معلومات الحساسية (في حالة التحديد). مثال: <form method="POST" action="add_data.php"> <label> <input type="checkbox" name="has_allergy" value="1"> لدي حساسية </label> <br> <label>معلومات الحساسية:</label> <input type="text" name="allergy_info"> <br> <input type="submit" value="إرسال"> </form> وفي ملف PHP المسمى "add_data.php" (أي القيمة المحددة في الخاصية action في الاستمارة السابقة)، تستطعيي استلام البيانات المرسلة من الاستمارة وإدخالها في قاعدة البيانات، باستخدام استعلام SQL INSERT لذلك. مثال: <?php // تأكد من أن هذا الملف يتصل بقاعدة البيانات الخاصة بك if ($_SERVER['REQUEST_METHOD'] === 'POST') { // استلام البيانات من الاستمارة $hasAllergy = isset($_POST['has_allergy']) ? 1 : 0; // تحويل القيمة المرسلة إلى صيغة بولية (0 أو 1) $allergyInfo = isset($_POST['allergy_info']) ? $_POST['allergy_info'] : ''; // إجراء استعلام SQL لإدخال البيانات في قاعدة البيانات $query = "INSERT INTO table_name (has_allergy, allergy_info) VALUES ('$hasAllergy', '$allergyInfo')"; // قم بتنفيذ الاستعلام // يفضل استخدام مكتبة PDO أو MySQLi للتعامل مع قاعدة البيانات بشكل آمن هنا // قم بإجراء أي معالجة أخرى بعد إضافة البيانات حسب الحاجة // إعادة توجيه المستخدم إلى صفحة أخرى أو عرض رسالة تأكيد إذا تمت العملية بنجاح } ?> وعليك تعديل تكوينات قاعدة البيانات الخاصة بك، بما في ذلك اسم الجدول والأعمدة المناسبة، وعندما يقوم المستخدم بإرسال الاستمارة، ستتلقى البيانات في ملف PHP المحدد في الخاصية action في الاستمارة، ومن ثم يتم إدخالها في قاعدة البيانات باستخدام استعلام SQL INSERT.
-
لغة البرمجة الأفضل للمبتدئين بغض النظر عن المجال الذي تريد التخصص به في البرمجة، فأمامك خياران لكي يتم تأسيسك بشكل قوي في البرمجة، الأول يعتمد على ما إذا كان لديك الوقت الكافي ولست ملتزم بوقت محدد للتعلم ومحاولة الحصول على وظيفة. حيث ستتعلم أساسيات البرمجة من خلال C++ لكن الأمر يعتمد على خبراتك السابقة ومدى تخصصك، فقد يصاب البعض بالإحباط عند تعلم C++، لذلك هي ليست للجميع في البداية. وإذا كان ليس لك أي دراية بعالم البرمجة وعلوم الحاسب، فعليك بتعلم بايثون، فهي اللغة الأفضل لتقديمك لعالم البرمجة وتعلم الأساسيات من خلالها ومستخدمة بشكل واسع جدًا. ولا مشكلة في تعلم الأساسيات من خلالها وعدم التعمق بها بشكل كبير، ثم الإنتقال لتعلم جافاسكريبت إذا التخصص في مجال الويب، وهو المجال الذي أنصح به لتعلمه في البداية إذا كنت غير قادر على تحديد ما المجال الذي تريده بالضبط، حيث سيفتح آفاقك للتعرف على المجالات الأخرى وأيضًا ستستخدم المهارات التي تعلمتها في المجالات الأخرى، غير أنه سهل التعلم نسبيًا في بداية تعلمك مجال البرمجة مقارنًة بالمجالات الأخرى. الاستفادة بشكل صحيح من الدورة أي دروة ستحقق استفادة منها إذا قمت بدراستها بشكل صحيح، ووضعت وقت منطقي محدد للإنتهاء منها والتزمت بذلك الوقت، لا أن تنقطع عن الدورة بشكل متكرر ثم العودة من جديد لنقطة الصفر، ففي البداية يجب أن تحاول جاهدًا أن تنهي الدورة في الوقت المحدد وليكن شهرين مثلاً حسب الوقت المتاح لك. ولكن لا تقع في الفخ وتحاول إنهاء الدورة بأسرع وقت ولا تحقق أي استفادة، فالغرض فقط هو الإلتزام بالوقت وقياس مدى تقدمك وبذل الجهد وعدم التكاسل. ولا مشكلة في زيادة المدة طالما أنك تقوم بمشاهدة الفيديوهات ثم البحث عما تريد فهمه لتتعلم المزيد ويتضح لك بعض الأمور ثم التطبيق بمفردك ومحاولة البحث عن مشروع للمبتدئين للتطبيق عليه غير الموجود في الدورة، والتأني في تعلم الأساسيات، ومحاولة البحث عن حلول للمشكلة التي تواجهك لكن عليك التفكير في حل بمفردك أولاً وليس البحث مباشرًة. ولا تتردد أبدًا في السؤال بعد المحاولة، عليك بالبحث عن مساعدة إذا واجهت مشكلة وقد بذلت جهدك في حلها ثم بحثت وجربت بعض الحلول المتاحة. وأيضًا لا تعتمد على أي دورة مهما كانت في تعلم كل شيء فلا توجد تلك الدورة، عليك دائمًا بالبحث والقراءة من جوجل ويوتيوب سواء في المحتوى العربي أو الأجنبي. وقد تحدثت بشكل مفصل عن كيفية دراسة دورات البرمجة بشكل صحيح، في النقاش التالي والنقاشات المرفقة به:
-
ما المقصود بالسطور غير مرتبة؟ فالكود لديك يظهر بالشكل التالي: وكلها تنسيقات إفتراضية لعناصر HTML التي استخدمتها، فمثلاً التنسيق الإفتراضي لعنصر blockquote في المتصفح هو: blockquote { display: block; margin-block-start: 1em; margin-block-end: 1em; margin-inline-start: 40px; margin-inline-end: 40px; } وسبب الإزاحة لليمين قليلاً هي بسبب وجود margin بقيمة 40 بكسل في البداية، والتنسيقات الإفتراضية تعرف باسم user agent stylesheet وهي مجموعة من القواعد والأنماط التي يستخدمها مستعرض الويب لتنسيق وتصميم عناصر صفحات الويب، وتُستخدم أوراق الأنماط هذه لتحديد كيفية عرض العناصر الافتراضية مثل العناوين والفقرات والروابط والجداول وغيرها من العناصر في صفحة الويب إذا لم يتم تطبيق أي أوراق أنماط مخصصة من قبلك على الصفحة. فمثلاً نستطيع التعديل على blockquote بكتابة تنسيق داخل عنصر style ووضعه داخل عنصر head كالتالي: <head> <title>وسم النصوص</title> <style> blockquote { margin: 0 } </style> </head> وستجد أن الإزاحة اختفت وأصبح يظهر في أول السطر مثل باقي النصوص.
-
هناك عدة طرق وسأذكر منها طريقتين، الأولى عليك بالإعتماد على مصفوفة (Array) لتخزين مجموعة من كلمات السر.، أي تعديل السكريبت كالتالي: <?php session_start(); $passwords = array('123456', 'xxxx', '7777', '8888', '9999'); session_start(); if (!isset($_SESSION['loggedIn'])) { $_SESSION['loggedIn'] = false; } if (isset($_POST['password'])) { if (in_array($_POST['password'], $passwords)) { $_SESSION['loggedIn'] = true; } else { die('Incorrect password'); } } if (!$_SESSION['loggedIn']): ?> <html> <head> <title>Login</title> </head> <body> <p>You need to login</p> <form method="post"> Password: <input type="password" name="password"> <br/> <input type="submit" name="submit" value="Login"> </form> </body> </html> <?php exit(); endif; echo '<h1> hello world ... Logged in successfully..'; ?> والتعديلات هي إنشاء متغير $passwords كمصفوفة تحتوي على مجموعة من كلمات السر، ثم استخدام دالة in_array() للتحقق مما إذا كانت كلمة المرور التي تم إدخالها موجودة في المصفوفة، وإذا تم العثور على تطابق، يتم تعيين الجلسة $_SESSION['loggedIn'] إلى true، وإلا يتم عرض رسالة خطأ. الطريقة الثانية وهناك طريقة أخرى ألا وهي استخدام قاعدة بيانات لتخزين كلمات السر بدلاً من استخدام مصفوفة في السكريبت PHP الخاص بك، وفيما يلي مثال على كيفية تنفيذ ذلك باستخدام قاعدة بيانات MySQL: أولاً، يجب إعداد قاعدة البيانات وجدول لتخزين كلمات السر، باستخدام أداة إدارة قاعدة البيانات مثل phpMyAdmin لإنشاء قاعدة بيانات جديدة وجدول بها. ويجب أن يحتوي الجدول على حقلين على الأقل: id (المعرّف الرئيسي) و password (حقل لتخزين كلمات السر)، تستطيع أيضًا إضافة حقول إضافية حسب احتياجاتك، مثل اسم المستخدم أو أي معلومات إضافية. بعد إعداد قاعدة البيانات، باستطاعتك استخدام اتصال PDO للاتصال بقاعدة البيانات واستعلام الجدول للتحقق من صحة كلمة المرور، كالتالي: <?php session_start(); // معلومات قاعدة البيانات $host = 'اسم_المضيف'; $db = 'اسم_قاعدة_البيانات'; $user = 'اسم_المستخدم'; $password = 'كلمة_المرور'; // اتصال PDO بقاعدة البيانات $pdo = new PDO("mysql:host=$host;dbname=$db;charset=utf8", $user, $password); if (!isset($_SESSION['loggedIn'])) { $_SESSION['loggedIn'] = false; } if (isset($_POST['password'])) { $enteredPassword = $_POST['password']; // استعلام للتحقق من صحة كلمة المرور $query = "SELECT COUNT(*) AS count FROM passwords WHERE password = :password"; $statement = $pdo->prepare($query); $statement->bindParam(':password', $enteredPassword); $statement->execute(); $result = $statement->fetch(PDO::FETCH_ASSOC); if ($result['count'] > 0) { $_SESSION['loggedIn'] = true; } else { die('Incorrect password'); } } if (!$_SESSION['loggedIn']): ?> <html> <head> <title>Login</title> </head> <body> <p>You need to login</p> <form method="post"> Password: <input type="password" name="password"> <br/> <input type="submit" name="submit" value="Login"> </form> </body> </html> <?php exit(); endif; echo '<h1> hello world ... Logged in successfully..'; ?> وتأكد من تعديل المتغيرات $host، $db، $user و $password وفقًا لمعلومات اتصال قاعدة البيانات. والنموذج السابق يقوم بالاتصال بقاعدة البيانات باستخدام PDO ويستعلم الجدول "passwords" للتحقق من صحة كلمة المرور المدخلة، فإذا تم العثور على تطابق، يتم تعيين الجلسة $_SESSION['loggedIn'] إلى true، وإلا يتم عرض رسالة خطأ. وبإمكانك إضافة سجلات كلمات المرور في جدول "passwords" في قاعدة البيانات، وسيتم قبول أي كلمة مرور تتطابق مع السجلات المخزنة في الجدول. وأنصحك أن تعتمد على نمط تخزين كلمات المرور الأمن والموصى به، مثل استخدام الهاش (hash) والملح (salt)، لتوفير حماية أفضل لكلمات المرور المخزنة.
- 6 اجابة
-
- 1
-
-
عليك باستخدام مكتبة java.time المتوفرة في Java 8 وما بعدها، واستخدام الكود التالي كنموذج لحساب العمر: import java.time.LocalDate; import java.time.Period; import java.time.format.DateTimeFormatter; public class AgeCalculator { public static void main(String[] args) { // تاريخ الميلاد المُدخل String birthDateStr = "1990-01-01"; // يجب تغييره إلى التاريخ الفعلي المُدخل // تحويل النص إلى تاريخ LocalDate birthDate = LocalDate.parse(birthDateStr); // الحصول على التاريخ الحالي LocalDate currentDate = LocalDate.now(); // حساب العمر باستخدام الفارق بين التواريخ Period age = Period.between(birthDate, currentDate); // عرض العمر بصيغة مناسبة System.out.println("عمر الشخص هو: " + age.getYears() + " سنة، " + age.getMonths() + " شهر، " + age.getDays() + " يوم"); } } وبالنسبة لكتابة تاريخ الميلاد في TextField، فتستطيع استخدام النص العادي في الـ TextField. لكن إذا كنت ترغب في استخدام FormattedTextField لضمان أن المستخدم يدخل التاريخ بتنسيق محدد، فبإمكانك استخدام SimpleDateFormat للتحقق من صحة التنسيق. وإليك مثال عن كيفية استخدام FormattedTextField والتحقق من التنسيق: import java.awt.FlowLayout; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import javax.swing.JFormattedTextField; import javax.swing.JFrame; import javax.swing.text.MaskFormatter; public class BirthdayInputExample { public static void main(String[] args) { JFrame frame = new JFrame("إدخال تاريخ الميلاد"); frame.setLayout(new FlowLayout()); try { // تحديد التنسيق المطلوب لتاريخ الميلاد (yyyy-MM-dd) MaskFormatter formatter = new MaskFormatter("####-##-##"); formatter.setPlaceholderCharacter('_'); // إنشاء الـ FormattedTextField JFormattedTextField birthDateField = new JFormattedTextField(formatter); birthDateField.setColumns(10); frame.add(birthDateField); } catch (ParseException e) { e.printStackTrace(); } frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(300, 100); frame.setVisible(true); } } حيث تستخدم MaskFormatter لتحديد التنسيق المطلوب لتاريخ الميلاد، وتعيين حرف النقطة للمساعدة في تحديد موقع الأرقام، ثم استخدام setColumns لتحديد عرض الـ FormattedTextField.
-
بعض الاستخدامات الشائعة للنظامين الثنائي والسداسي عشري، بالإضافة إلى ASCII هي كالتالي: 1- بخصوص النظام الثنائي (Binary) يستخدم في تمثيل البيانات والمعلومات في الحواسيب والأجهزة الإلكترونية، ويعمل الحاسوب الحديث بنظام ثنائي حيث يستخدم الصفر والواحد لتمثيل البتات (Bits) التي تشكل البيانات والتعليمات. يستخدم في عمليات الحساب الثنائي والمنطق المعالجات المنطقية الرقمية والأبواب المنطقية والدوائر المنطقية، وهو مفيد في تصميم الدوائر الإلكترونية والشبكات الرقمية. 2- النظام السداسي عشري (Hexadecimal) يستخدم في تمثيل الأرقام والبيانات في الحواسيب وأنظمة التشغيل والبرمجة. يسهل استخدام الأرقام من 0 إلى 9 والأحرف من A إلى F لتمثيل القيم الثنائية بطريقة مدمجة وقصيرة. يسهل تمثيل عناوين الذاكرة والعناصر في الذاكرة الحاسوبية. على سبيل المثال، في برمجة الحواسيب، يمكن استخدام الأرقام السداسية عند التعامل مع العناوين الذاكرة أو تمثيل الألوان في الرسومات الحاسوبية. 3- ASCII (American Standard Code for Information Interchange) يستخدم لتمثيل الأحرف والرموز المستخدمة في الكمبيوتر والاتصالات، ويعطي كل حرف رمزًا فريدًا في النظام الثنائي (مكون من 8 بت) يمكن تفسيره واستخدامه من قبل الحواسيب. يستخدم في برمجة الحواسيب لتمثيل النصوص والبيانات النصية، وتحويل الحروف والرموز إلى أكواد ASCII يسهل عملية تخزين ومعالجة النصوص في الحواسيب. هل هناك فائدة من تعلم ما سبق كمبرمج؟ ستحتاج إلى تعلم ذلك إذا كنت تريد التخصص في مجال الـ Embedded system أي مجال برمجة الأجهزة المضمنة، وإليك بعض الفوائد: تعلم النظامين الثنائي والسداسي عشري يمكن أن يساعدك في فهم كيفية تمثيل البيانات والأرقام في الحواسيب، ويعتبر النظام الثنائي الأساسي في التعامل مع البيانات الرقمية، ومعرفة كيفية تمثيله قد يفيدك في فهم عمليات الحساب والتخزين والمعالجة داخل الحاسوب. ربما تتعامل مع النظام الثنائي وتمثيل البيانات بشكل مباشر، وفهم النظام الثنائي يساعدك في فهم بنية البيانات وتنسيقها والتعامل معها بشكل صحيح. في حالة وجود مشكلات في البرامج أو الأنظمة، قد تحتاج احيانًأ إلى تحليل البيانات والتعامل معها على مستوى البتات أو الأرقام السداسية عشرية، وتعلم تلك النظم يمكن أن يمكنك من تحليل الأخطاء وتصحيحها بشكل أكثر فعالية. في مجال برمجة الأجهزة المضمنة، قد تحتاج إلى التعامل مع المعالجات والمكونات الإلكترونية المنخفضة المستوى، وفهم النظام الثنائي والسداسي عشري يمكن أن يسهل عليك تطوير وبرمجة هذه الأجهزة بشكل أفضل. قد تحتاج أحيانًا للتعامل مع بيانات أو أجهزة تستخدم تمثيل ثنائي أو سداسي عشري، مثل قراءة وكتابة بيانات في ملفات ثنائية أو التواصل مع الأجهزة الخارجية عبر منافذ التسلسلية (Serial ports) أو بروتوكولات الاتصال المبنية على النظام الثنائي.
-
للأسف لا يوجد دعم لأي عملة أخرى سوى شراء الدورات عن طريق دفع 290 دولار أمريكي، وتستطيع أنت الدفع من خلال عملة بلدك وكما ذكرت من قبل أنها مصر، فستقوم بالدفع بالجنيه بالمصري وسيتكفل البنك الخاص بك بتحويل تلك القيمة إلى دولار مقابل 10% رسوم من قيمة المبلغ واسمها رسوم تدبير عملة. لكن للأسف في مصر حاليًا توجد قيود مختلفة على عمليات الشراء من الخارج، ويتم وضع حدود قليلة جدًا مثل 200 و 300 دولار وبعض البنوك توفر حد أكبر، لذلك عليك بالسؤال عن الحد الشهري للشراء من الخارج في البنك للمصدر للبطاقة الخاصة بك. وكما ذكرت أيضًا من قبل هنا: تستطيع التواصل مع وسيط أو شخص تعرفه ليشتري لك بطاقة هدية Gift card بسعر دورة واحدة أو أكثر، أو سؤال مركز المساعدة عن وجود إمكانية التحويل البنكي مباشرًة.
- 2 اجابة
-
- 1
-
-
وسائل الدفع المتاحة هي إما عن طريق البطاقة الإئتمانية أو PayPal، ولكن بطاقة الدفع يجب أن تكون من نوع Debit أو Credit وليس Prepaid أي ليسة مسبقة الدفع، أو تستطيع ربط أي بطاقة بباي بال ثم الدفع عن طريق باي بال. وتستطيع فتح حساب في QNB واسمه ببساطة بكل سهولة، ثم الشراء عن طريق تلك البطاقة، وإذا كان الحد الأدنى الخاص بها منخفض عن 290 دولار، فستحتاج إلى الخيار التالي: وهو أن تطلب من وسيط أن يشتري لك بطاقة هدية Gift card في أكاديمية حسوب بالقيمة التي تريدها وتدفع له عمولة بسيطة، وأقل قيمة هي 290 تكلفة دورة واحدة فقط، ويوجد بطاقات أخرى بقيم مختلفة كما هو موضح في الصورة التالية: وتستطيع معرفة المزيد عن بطاقة الهدية من الصفحة الخاصة في قاعدة المعرفة. وبخصوص إمكانية التحويل البنكي مباشرًة فعليك بالتواصل مع مركز المساعدة الخاص بأكاديمية حسوب، وأيضًا تستطيع سؤالهم عن أي أمر متعلق بالدورات وتفاصيل الإشتراك.
- 1 جواب
-
- 1
-
-
يستخدم معامل "end" في دالة الطباعة print() في Python، وذلك المعامل يحدد السلوك المرتبط بالنهاية عند طباعة النصوص. وافتراضيًا، قيمة "end" هي "\n"، والتي تعني إدراج سطر جديد بعد كل عنصر يتم طباعته، وافتراضيًا أي في حالة عدم كتابة معامل end. ولنشرح الأمر على المثال لتفهم بشكل أفضل، لنفترض أن لدينا الكود التالي: numbers = [1, 2, 3, 4, 5] for number in numbers: print(number, end=' ') وكما ترى لدينا قائمة من الأرقام من 1 إلى 5، وباستخدام حلقة التكرار for، نقوم بطباعة كل عنصر في القائمة على نفس السطر بواسطة دالة الطباعة print(). هنا نأتي لتعيين قيمة "end" إلى فراغ فارغ (' ') ليتم وضع فراغ بين كل عنصر يتم طباعته. ونتيجة الكود ستكون: 1 2 3 4 5 لاحظ أن الأرقام جميعها طبعت على نفس السطر وتم فصلها بفراغ، وهذا بفضل استخدام المعامل "end=' '" الذي يقوم بتغيير سلوك الطباعة الافتراضي من استخدام سطر جديد "\n" إلى استخدام فراغ " ". وبدون كتابة end ووضع قيمة فراغ لها ' ' سيكون نتيجة الكود كالتالي: 1 2 3 4 5
- 5 اجابة
-
- 1
-
-
هناك عدة طرق، ومنها أن تقوم بالتفكير في كل مسألة 10 دقائق وتحاول جاهدًا، ثم تطلع على الحل من أي مصدر تريد سواء عبر الموقع أو على جوجل أو يوتيوب. وبذلك ستقوم بالتعرف على الكثير من المسائل البرمجية وطرق حلها وستتحسن لديك مهارة الحل بلا شك. لكن أنا لا أفضل تلك الطريقة، وأفضل إعطاء كل مسألة من نصف ساعة إلى ساعة تبعًا لدرجة صعوبة المسألة، وبعد المحاولة بجد واجتهاد، ولا مشكلة في البحث عن بعض الأمور للمساعدة في الحل ولكن ليس الحل الكامل، وإذا لم تتوصل لحل تستطيع رؤية الحل وتطبيقه بنفسك أو محاولة حلها بطريقة أخرى بعد أن فهمت فكرة الحل، ثم الإنتقال للمسألة التالية. ولكن ما يعينك على ذلك، هو عدم الإنتقال لحل المسائل البرمجية وتعلم مهارة الـ Problem Solving بدون تعلم لغة البرمجة الأولى لك بشكل جيد ولفترة مقبولة، أي لا تقل عن شهرين إلى 3 أشهر حسب مستواك وذلك بعدد ساعات 6 إلى 10 ساعات يوميًا من خلال الدراسة والتدرب على مشاريع، حيث ستحتاج إلى دراسة كورس قوي خاص باللغة ثم تنفيذ مشاريع ،ثم العودة والمراجعة مرة أخرى والبعض قد يصاب بالملل بسبب ذلك، لكن تلك طريقة مجربة لتعلم أول لغة لك في البرمجة كما يجب. فأنت في المرة ستنسى الكثير من الأمور وأيضًا قد لا تلاحظ أو تفهم بعض الأمور، وعند تجربة المراجعة وكتابة الكود مرة أخرى ستجد نفسك تشاهدة الدورة بعقلية مختلفة تمامًا.
- 7 اجابة
-
- 1
-
-
بالفعل كلامك صحيح، مكتبة React.js هامة جدًا لأي مطور واجهات أمامية، وأيضًا يوجد إطارات عمل أخرى ومنها Angular وVue.js لكن React.js هي الأكثر شهرة، ويتوقف تعلم أي منهم على المطلوب في سوق العمل الديك، فهل مطلوب React.js بشكل أكبر؟ وبخصوص عدم تضمينها في دورة تطوير واجهات المستخدم، السبب هو أن الدورة موجهة لتعلم أساسيات الواجهة الأمامية من خلال تعلم اللغات الأساسية التي يعتمد عليها أي مكتبة أو إطار للواجهة الأمامية وهو HTML, CSS, JS. وتعلم تلك اللغات في البداية واجب وضروري، وبدونها ستعاني في فهم ما يدور في الكود الخاص بك عند تعلم تلك المكتبات والإطارات، وأيضًا ستواجه صعوبة في حل المشكلات التي تواجهك وأيضًا تخصيص مشروعك بالشكل الذي ترغب به. ولتعلم React.js الأمر يحتاج إلى فرد مساحة في دورة مختلفة تمامًا، والدورة لن تكون للمبتدئين في الواجهة الأمامية، فأنت بحاجة إلى تعلم اللغات الأساسية كما ذكرت لتفهم ما يحدث وما فائدة ما تتعلمه وتكتبته. ولذلك ستجد أنه تم تخصيص دورة تطوير التطبيقات باستخدام لغة JavaScript من جل تعلم مكتبة React وإطارات جافاسكريبت الأخرى مثل React Native لتطوير تطبيقات الهاتف وأيضًا Ionic ثم ستتعلم Electron.js لتطوير برامج سطح المكتب. وأيضًا يوجد شرح لإطار Next.js وهو هام جدًا بعد تعلم React من أجل التصيير من جهة الخادم Server-side Rendering. وجميع المسارات الأولى من الدورات الأخرى متاحة لك، وتستطيع الإطلاع عليها فمثلاً في دورة تطوير التطبيقات باستخدام لغة JavaScript المسار الأول هو أساسيات لغة JavaScript وأنصحك بالإطلاع عليه لتعلم المزيد عن جافاسكريبت بجانب ما درسته في دورة تطوير واجهة المستخدم.
-
بالتوفيق لك إن شاء الله، لكن أولاً عليك بتحديد ما الذي تريده من الدورة بالضبط، هل ستقدمها لوجه الله بشكل مجاني؟ إذن ابذل جهدك قدر المستطاع وقم بالتحضير جيدًا ولا مشكلة في كتابة سكريبت لكن لا تلتزم به كثيرًا بل وضح ما تقوم بشرحه ولماذا اخترت وفعلت ذلك مقارنًة بذلك وهكذا، وأيضًا عليك بتجهيز منهج للدورة وبشكل مخطط ومنهجي وليس بشكل إرتجالي. ولا مشكلة في أن تكون جودة الفيديوهات في البداية جيدًا جدًا يكفي أن تكون مقبولة وستتحسن مع الوقت والجميع بدأ من نفس النقطة، أي ابدء بالإمكانيات المتاحة لديك وفي حدود وقتك طالما تنوي الإفادة وأيضًا الثواب من الله وكلما اجتهدت كان أفضل ولا مشكلة في التكسب من الإعلانات لكن بعضها يعرض مواد لا يجوز التكسب منها. واستخدام برامج مثل Camtasia للتسجيل والشرح وعمل المونتاج وهو أسهل من Adobe premiere وأيضًا يسمح لك بتسجيل الشاشة والتقريب على جزء معين وهكذا. أما إذا كانت الدورة مدفوعة، فهنا عليك بتقديم المزيد وأقصد المزيد عما يتم تقديمه في الدورات المجانية، فهنا أنت تريد إنشاء مشروع شخصي وهو عبارة دورة إحترافية لتأهيل الأشخاص لدخول سوق العمل والحصول على وظيفة في مجال التصميم. هنا يجب أن تكون الإضاءة جيدة جدًا إذا كنت ستظهر بشخصك في بعض الحلقات مثلا أو في بداية كل حلقة مثلاً، وأيضًا عليك بتفقد الدورات الأخرى والمنصات التي تقدم نفس الدورة وعليك بتقديم أمر مختلف، فإذا كانت الجودة متقاربة فهنا يأتي عامل السعر كنقطة تميز لك، أو قد تتجه إلى عرض محتوى الدورة بشكل أفضل وتسهيل شرح المعلومة من خلال سلايدات وتطبيق على مشاريع حقيقية لوضعها في معرض الأعمال وهكذا. وستجد المزيد من التفاصيل حول سؤالك في النقاش التالي:
-
لا مشكلة في ذلك تستطيع التعلم من المصدر المناسب لك وإمكانك الإطلاع على الدورات الأخرى في أكاديمية حسوب إذل كنت مهتم بذلك. وعند الطرح السؤال عليك بتوضيح المشكلة التي تواجهك وتوفير الكود مع توفير صورة لو أمكن للمشكلة، وما تريد فعله بالضبط، فكلما اجتهدت في كتابة السؤال ستجد إجابات وافية بشكل أسرع من قبل الجميع. وتستطيع البحث أولاً على جوجل ويوتيوب قبل طرح المشكلة لكي تستفيد والمحاولة قليلاً، وستجد في أكاديمية حسوب أن تم الإجابة على الكثير من الأسئلة فقم بالبحث عن ما تريد وضع بجانبه كلمة حسوب في جوجل وتفقد هل السؤال موجود أم لا.
-
هل أنت بحاجة إليها في البداية؟ لا، لست بحاجة إلى تعلمها في البداية لكي تتمكن من تعلم الواجهة الخلفية back-End، فالغالبية يتعلم أساسيات البرمجة ويبدأ في مسار التعليمي. لكن ذلك هو الأفضل؟ بالطبع، لا. حيث ستعاني قليلاً في فهم ما يحدث فعلاً، وكيف يتم ذلك وما فائدة بعض الأكواد، وكيف يتم التعامل في الخلفية؟ لذلك ستجد في المسار التعليمي Roadmap المذكور، قد وضع Computer Hardware Architecture ضمن قائمة Reading List أي للقراءة والإطلاع. تلك أمور عليك معرفتها إذا أردت فعلاً أن تصبح Software Engineer وليس مستخدم للغة برمجة وتقنيات فقط، بل عليك فهم ما يحدث فعلاً ولا يشترط بنسبة 100% لكن على الأقل لديك علم في البداية. ووبساطة التعرف على الـ Computer Hardware Architecture توفر فهمًا أعمق لكيفية عمل الحاسوب على المستوى الأساسي، وتتعلق معمارية الأجهزة بالتصميم الداخلي للأجهزة الحاسوبية وتشمل المكونات المادية مثل المعالجات والذواكر ووحدات المعالجة المركزية والشبكات والمخزن الداخلي وغيرها. أي معمارية الأجهزة توضح كيف يتم تنظيم وترتيب المكونات المادية في الحاسوب لتنفيذ المهام المطلوبة، وبفهمها تستطيع تحسين كفاءة وأداء البرامج التي تكتبها، أيضًا توقع أداء البرامج في مختلف الأجهزة واختيار التصميم الأمثل للتطبيقات. و بفهم المزيد عن معمارية المعالج وكيفية عمله، يمكنك أن تكتب كود يستفيد بشكل أفضل من قوة المعالج وميزاته المتقدمة مثل المعالجات المتعددة النوى، بالإضافة إلى أن فهم الذاكرة ونظام التخزين يساعدك على تحسين إدارة الذاكرة والوصول إلى البيانات بكفاءة أكبر. وتستطيع البحث عن أساسيات علوم الحاسوب، وأيضًا قراءة المقال التالي: وأيضًا دراسة دورة علوم الحاسوب:
- 6 اجابة
-
- 1
-
-
طالما أن المشروع في بدايته، فعليك بالعمل عليه بمفردك حاليًا أو البحث عن شريك مختص بمجال آخر، فمثلاً اعمل أنت على مجال البرمجة وابحث عن شخص مهتم بالفكرة في مجال آخر مثل التصميم مثلاً أو أيًا كان. أو تستطيع كبداية البدء بمجال البرمجة ثم توسيع البوت لمجالات أخرى بعد رؤية المردود من الفكرة ومدى قابليتها للتوسع، فلا تبدأ أي مشروع بشكل موسع، بل قم ببناء MVP أي الجزء الأهم من المشروع ثم ألقه في الماء وتقبل النقد حتى يتعلم المشروع السباحة، فإن غرق فإما الفكرة غير جيدة حاليًا أي التوقيت ليس مناسب مثلاً أو طريقة العرض أو الاستخدام كان صعب للبعض مثلاً وهكذا. عليك بطرح الفكرة في جروب مهتم بذلك، في صورة فيديو لعرض الفكرة، وستجد أن المهتمين سيبحثون ويسألون عن كيفية الوصول واستخدام مشروعك، بدلاً من طرح الروابط بدون أي عرض للفكرة ومدى فائدتها.
- 1 جواب
-
- 1
-
-
أولاً الأمر ليس بتلك السهولة، فتطوير الألعاب من أحد المجالات التي تتطلب وقت وجهد ليس بالهينين أبدًا، وقد تحتاج إلى مصمم معك لتصميم الشخصيات وبيئة اللعبة، وأيضًا ستتعلم الكثير من تلك التجربة فهى ليست مشابهة لتطوير تطبيق عادي بل بها الكثير من الأمور المتداخلة. والربحية تأتي من وجود عدد مستخدمين مقبول وعرض الإعلانات من وقت آخر مثل بين مراحل اللعبة أو عرض إعلان مقابل الحصول على عملات إضافية للعبة وهكذا، وأيضًا يجب توفير ميزات يمكن شرائها لتحسين تجربة اللعب أو أحيانًا تسهيل عملية الفوز وتقوية الشخصية عن طريق دفع المال أي Pay to win كغالب ألعاب الهاتف والبعض يتجنب ذلك ويقدم إمكانية دعم مطور اللعبة عن طريق شراء الـ Skins والإكسسوارات الأخرى الخاصة بالشكل وليس جوهر اللعبة Gameplay. والبعض يقوم بعرض اللعبة بإشتراك شهري إذا كانت تستحق ذلك فعلاً أو شرائها بمبلغ 5 دولار مثلاً مدى الحياة. والأمر يعتمد على الجمهور الذي توجه إليه اللعبة والمنصة أيضًا، فمن المعروف أن أرباح تطبيقات وألعاب آبل أكبر بمراحل من أندرويد، وأيضًا مستخدمي آبل على استعداد لدفع المال بشكل أكبر من مستخدمي أندرويد. وأيضًا الفئة العمرية الموجه إليها اللعبة، عليك بالبحث والدراسة عن أنواع شخصيات محبي الألعاب والتفضيلات الخاصة بهم وما يبحثون عنهم وما يفضلونه، وستجد ذلك في المحتوى الأجبي للأسف. وأيضًا المنطقة الجغرافية تشكل عاملاً هامًا أيضًا، فمثلاً في منطقتنا العربية ستجد أن الغالبية يفضل الحصول على اللعبة أو التطبيق مقابل عرض الإعلانات بداخله ولا مشكلة في ذلك طالما أنه مجاني ويقدم الخدمة التي يريدونها بشكل جيد ومقبول، أما منقطة الخليج فستجد أنهم لا يريدون ذلك ويفضلون تطبيق بجودة عالية ولا إشكال في كونه مدفوع وجزء منه مجاني مثلاً. كيف تدخل مجال تطوير الالعاب وتبدأ الربح تجربتي في ربح من مجال تطبيقات , قد يغير حياتك كما فعل بي
-
أولاً عليك باستخدام الأدوات السابق ذكرها في التعليقات السابقة، لتفقد من أين تأتي المواقع المنافسة بالروابط الخلفية الجيدة وركز جدًا على أن تكون جيدة وقوية، فرابط واحد قوي أفضل من 10 روابط ضعيفة. وحاول الحصول على مثل تلك الروابط إن استطعت، كون قائمة وانظر إلى ما تستطيع الحصول عليه منها، وهناك طرق أخرى ومنها: إنشاء محتوى عالي الجودة يرغب الناس في الإشارة إليه وذلك هو العامل الأهم في الحصول على روابط خلفية. ومن الأسهل البحث عن مواقع جيدة لكتابة مقالات ضيف وتلك طريقة رائعة للحصول على روابط خلفية من مواقع ذات سلطة عالية، ثم أضف رابط عائد إلى موقعك. أيضًا هناك العديد من الدلائل التي تقوم بسرد المواقع في فئات مختلفة، والظهور في دليل يمكن أن يساعدك على الحصول على روابط خلفية من مواقع أخرى مدرجة في الدليل، لكن انتبه لا تقم بإدراج موقعك في دليل لديه spam score مرتفع. لكن عليك بالإنتباه جيدًا إلى الموقع التي توفر روابط dofollow والمواقع التي توفر روابط no follow. وهناك عدة نقاشات تم طرح تفاصيل بها أنصحك بالإطلاع عليها: كل ماتريد معرفته عن الباك لينك backlink الباك لينك (انواع الباك لينك،شروط الباك لينك القوي،مواقع باك لينك قوي)
- 4 اجابة
-
- 1
-
-
بخصوص Next.js 13 مع TypeScript ، تستطيع إنشاء مسارات API باستخدام ملفات الـ API في المجلد pages/api في مشروعك، ويتم تحويل هذه الملفات تلقائيًا إلى مسارات API بواسطة Next.js. واستخدام TypeScript يعني أنه بإمكانك أيضًا تعريف نوع البيانات الذي يتم استلامه وإرجاعه من المسارات، وإليك الخطوات الأساسية: 1- أنشئ ملفًا جديدًا في المجلد pages/api بامتداد .ts أو .tsx، مثل: pages/api/example.ts 2- في ذلك الملف، قم بتصدير وظيفة default استدعائها بواسطة Next.js، وتلك الوظيفة ستتلقى طلب HTTP وترجع الاستجابة، وتستطيع تعريف نوع بيانات الطلب والاستجابة باستخدام TypeScript كالتالي: import { NextApiRequest, NextApiResponse } from 'next'; export default function handler(req: NextApiRequest, res: NextApiResponse) { // قم بتنفيذ المنطق الخاص بك هنا res.status(200).json({ message: 'Hello from the API' }); } وبمجرد حفظ الملف، سيتم تحويله تلقائيًا إلى مسار API في Next.js، مثل /api/example. والآن توجه إلى المسار API الجديد عبر المتصفح أو عبر طلبه من التطبيق نفسه. ومن الأسهل استخدام مكتبات إضافية مثل axios للتعامل مع طلبات API الخارجية، وأيضًا تعيين رموز استجابة مخصصة وتعريف النماذج والاستعلامات في TypeScript. وستجد المزيد من الشرح في المستند الرسمي: https://nextjs.org/docs/pages/building-your-application/routing/api-routes
- 2 اجابة
-
- 1
-
-
عليك باستخدام WooCommerce، وعند الضغط على خيار إضافة WooCommerce ستجدي خيار باسم Settings أو الإعدادات، اختاري منها Payments وستجدي خيارات الدفع التي يمكن تفعليها للمتجر. وتستطيعي إغلاق جميع خيارات الدفع الأخرى وتفعيل Cash on delivery ثم ضبط الإعدادات من خلال الضغط على Setup كما بالصورة: وسيصلك إيميل بالطلب ووسيلة الدفع وهي الدفع عند الاستلام، وإذا أردتي المزيد من التخصيص لوسيلك الدفع تلك، عليك بتثبيت إضافة WooCommerce Smart COD. وستجدين قسم كامل في أكاديمية حسوب يشرح منصة WooCommerce
