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

Mustafa Suleiman

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

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

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

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

    296

كل منشورات العضو Mustafa Suleiman

  1. الأسئلة الإمتحانية لا يتم الإجابة عليها ولكن يمكن إرشادك لطريقة الحل. لحل السؤال الخاص بك، يمكن اتباع الخطوات التالية: إنشاء مكدس (Stack) خاص بالأقواس. تمرير النص الذي يحتوي على الأقواس إلى البرنامج. البحث عن الأقواس الافتتاحية " ( [ { " في النص وإضافتها إلى المكدس. البحث عن الأقواس الختامية " ) ] } " في النص ومقارنتها بالأقواس في أعلى المكدس. إذا كانت الأقواس الموجودة في النص متوازنة، سيتم إخراج جملة تفيد بأن الأقواس صحيحة، في حين إذا كانت غير متوازنة، فسيتم إخراج جملة تفيد بأن الأقواس غير صحيحة. الخطوات يمكن تنفيذها باستخدام كود جافا، باستخدام أساليب تضمن أن المكدس يتم التعامل معها بشكل صحيح، مثل دالة push() و pop()، حيث تتم إضافة الأقواس إلى المكدس عند العثور عليها في النص، وإزالة الأقواس من المكدس عند العثور على أقواس ختامية. في النهاية، يمكن فحص المكدس إذا كان فارغاً ليتم تحديد ما إذا كانت الأقواس متوازنة أم لا.
  2. لا يتم الإجابة على الأسئلة الإمتحانية ولكن يمكن إرشادك لطريقة الحل. العناصر المختلفة للمخطط الانسيابي هي: بداية البرنامج (Start) استلام الإدخال من المستخدم (Input) التحقق من صحة الإدخال (Decision) إذا كان الإدخال غير صالح ، فإنشاء رسالة خطأ (Process) إذا كان الإدخال صالحًا ، حساب المضاعفات الثلاثية بين الرقمين (Process) عرض المضاعفات الثلاثية (Output) نهاية البرنامج (End) ويمكن توضيح هذه الخطوات في المخطط الانسيابي النهائي للسيناريو كالتالي: Start | v Input | v Decision / \ / \ Invalid Valid Input Process | | v v Output Output | | v v End End وبالنسبة لخطوات كتابة الكود باستخدام جافاسكريبت: يتم استخدام دالة prompt() لاستقبال إدخال المستخدم. استخدام دالة parseInt() لتحويل النص الذي تم استلامه من المستخدم إلى رقم صحيح. التحقق من صحة الرقمين المدخلين عن طريق إجراء الاختبارات التالية: التحقق من أن الرقمين المدخلين هما رقمين صحيحين، وإلا فإنه سيتم عرض رسالة خطأ. التحقق من أن الرقم الأول أصغر من الرقم الثاني، وإلا فإنه سيتم عرض رسالة خطأ. استخدام حلقة for للعثور على جميع الأعداد بين الرقمين المدخلين. التحقق من كل عدد إذا كان مضاعفاً للعدد 3 باستخدام العملية الحسابية (العدد % 3 === 0)، إذا كان العدد مضاعفاً للعدد 3، فسيتم عرضه على الشاشة. ثم يتم إنهاء البرنامج.
  3. تتوافر الدالة Math.abs() في جافاسكريبت لعرض الأعداد بشكل موجب وسالب، حيث تعيد هذه الدالة القيمة المطلقة لأي عدد تم تمريره إليها، أي أنها تعيد العدد نفسه إذا كان إيجابيًا وتعيد نفس العدد ولكن مع اتجاه معاكس (سالب) إذا كان سالبًا. لذا، يمكن استخدام الدالة Math.abs() لعرض جميع الأعداد الموجودة في المصفوفة بشكل موجب كما يلي: for (let i = 0; i < arr.length; i++) { console.log(Math.abs(arr[i])); // طباعة العدد بشكل موجب } أما إذا أردت عرض الأعداد بشكل سالب، فيمكن استخدام العلامة "-" قبل العدد، كما يلي: for (let i = 0; i < arr.length; i++) { console.log(-arr[i]); // طباعة العدد بشكل سالب }
  4. الأسئلة الإمتحانية لا يتم الإجابة عليها ولكن يمكن إرشادك لطريقة الحل. بالنسبة لسؤالك، يمكنك اتباع الخطوات التالية: الحصول على النص المراد عكسه من المستخدم باستخدام مثلاً prompt() في JavaScript. تقسيم النص إلى مصفوفة من الأحرف باستخدام split()، وهذه الدالة تأخذ المحتوى الذي تم الحصول عليه في الخطوة السابقة وتحويله إلى مصفوفة. إنشاء مكدس stack باستخدام push() و pop()، يتم استخدام push() لوضع العناصر في المكدس، و pop() لإزالتها. يتم وضع الأحرف واحدة تلو الأخرى في المكدس باستخدام حلقة for أو while. يتم إزالة الأحرف من المكدس ووضعها في مصفوفة جديدة لعكس النص. يتم عرض المصفوفة الجديدة باستخدام دالة alert() أو console.log() في JavaScript. هذه هي الخطوات الأساسية لحل السؤال، ولكن يجب الانتباه إلى تفاصيل الكود والتأكد من اتباع معايير البرمجة المناسبة ومراعاة الأخطاء الشائعة مثل تجنب الحروف الكبيرة والصغيرة والتحقق من الأسماء المستخدمة للمتغيرات والدوال ومراجعة الحل بعد الانتهاء منه.
  5. يمكن إنشاء مصفوفة وملؤها باستخدام حلقة for في جافاسكريبت، وذلك كالتالي: let arr = []; // إنشاء المصفوفة الفارغة let start = 2; // الرقم الأول في المصفوفة let end = 100; // الرقم الأخير في المصفوفة for (let i = start; i <= end; i += 2) { if (i % 4 !== 0) { // تجاهل الأعداد المتعددة لـ 4 arr.push(i); // إضافة العدد للمصفوفة } else if (i % 4 === 0 && i % 100 === 0) { // إضافة الأعداد المتعددة لـ 100 arr.push(i); } } console.log(arr); // عرض المصفوفة في وحدة التحكم وباستطاعتك عرض جميع الأرقام في المصفوفة باستخدام حلقة for أخرى وطباعة كل عدد في الصفحة، كالتالي: for (let i = 0; i < arr.length; i++) { console.log(arr[i]); // طباعة العدد في وحدة التحكم // يمكن استخدام العدد في عمليات أخرى هنا }
  6. أهلا بك فاطمة، هل سؤالك بخصوص دورات حسوب، إذا كان كذلك، فالإجابةهي لا يوجد فترة محددة للإنتهاء من الكورس لكن الأفضل وضع جدول زمني والإلتزام به. وإذا كنت تتسائلين عن مدة تعلم البرمجة فقد تم الإجابة على ذلك هنا في النقاش التالي وأيضًا بخصوص دورات حسوب. كم من الوقت احتجت لتعلم أساسيات برمجة المواقع ؟
  7. سأحاول توضيح بعض الأمور لك. إطار العمل Hugo هو إطار عمل يستخدم لبناء مواقع الويب السريعة والآمنة والسهلة الصيانة. يتميز Hugo بكونه إطار عمل سريع وخفيف الوزن حيث أنه يستخدم لغة البرمجة Go والتي تعتبر من أسرع لغات البرمجة، ويستخدم Hugo أيضاً نظام تحديد الموقع الذي يعمل بشكل مشابه لـ WordPress ولكنه يوفر أداء أفضل وأمان أعلى. وإطار Hugo و React و Vue.js جميعها تقنيات تطوير الواجهات الأمامية Front-end، ولكن لكل منها فلسفة ومميزات مختلفة: فإطار Hugo هو إطار عمل موجه لإنشاء مواقع الويب الثابتة (static websites) بسرعة وسهولة. حيث يستخدم Hugo لغة الترميز Markdown والقوالب (templates) وتوفريه السرعة والأمان، حيث أن موقع الويب الثابت لا يتطلب قواعد بيانات ديناميكية، مما يتيح أداءً سريعًا وأمانًا أفضل، ويستخدم Hugo في العادة لإنشاء المدونات والمواقع الشخصية ومواقع الأخبار وما إلى ذلك. بينما React هو إطار عمل تم تطويره بواسطة Facebook وهو يستخدم تقنية تسمى "تجريد الواجهة" (interface abstraction)، والتي تسمح للمطورين ببناء مكونات الواجهة معيارية قابلة لإعادة الاستخدام، و يعتبر React واحدًا من أشهر إطارات العمل الحديثة ويستخدم في العديد من التطبيقات على الويب والجوال. أما Vue.js هو إطار عمل تم تطويره من قبل Evan You وهو يستخدم تقنية تسمى "تكوين المكونات" (component composition)، والتي تسمح للمطورين ببناء واجهات مستخدم مرنة وسهلة الصيانة، ويتميز Vue.js بالبساطة والسهولة في التعلم والاستخدام، كما أنه يعد أحد أسرع إطارات العمل في الأداء. الفرق الرئيسي بين هذه التقنيات هو الغرض الذي تستخدم له، فإطار Hugo يستخدم لإنشاء المواقع الثابتة، في حين يتم استخدام React و Vue.js لإنشاء تطبيقات الويب الديناميكية والمتطورة، ولكل منها فلسفتها الخاصة ومميزاتها في الأداء. وإليك شرح بسيط لأساسيات Hugo: 1- يمكنك إنشاء مشروع جديد في Hugo بالأمر التالي في محرر الأوامر: hugo new site mysite حيث "mysite" هو اسم المشروع الجديد. 2- إنشاء صفحة جديدة بالأمر التالي: hugo new posts/my-first-post.md حيث "posts" هو مجلد الصفحات و "my-first-post.md" هو اسم الصفحة. 3- يمكنك تنسيق الصفحات باستخدام لغة الترميز Markdown. على سبيل المثال، إذا كنت تريد إضافة عنوان للصفحة، يمكنك استخدام "#" مع النص الذي تريد إضافته، مثل هذا: # هذا هو عنوان الصفحة كما يمكنك إضافة النص بسهولة بدون تنسيق. 4- يمكنك إضافة قوالب إلى مشروعك بسهولة. قالب Hugo يستخدم لإنشاء الصفحات بشكل أوتوماتيكي. يمكنك إضافة قالب بإنشاء ملف HTML جديد في مجلد "layouts". على سبيل المثال، إذا كنت تريد إضافة قالب لصفحة الأرشيف، يمكنك إنشاء ملف HTML جديد بالاسم "archive.html" في مجلد "layouts". 5- باستطاعتك إضافة محتوى ديناميكي باستخدام قوالب Hugo. واستخدام متغيرات Hugo لإضافة محتوى ديناميكي. على سبيل المثال، إذا كنت تريد عرض عنوان الصفحة على الصفحة، يمكنك استخدام المتغير التالي: {{ .Title }} في المثال، يتم استخدام المتغير .Title لعرض عنوان الصفحة. وباستخدام هذه الطريقة يمكن إضافة المزيد من المحتوى الديناميكي، مثل المقالات، الصور، القوائم، والمزيد. 6- إضافة ملفات CSS و JavaScript الخاصة بك في Hugo عن طريق إنشاء مجلد static ووضع الملفات داخله. بعد ذلك، يمكنك استخدام الرمز التالي لربط ملف CSS بصفحات Hugo: <link rel="stylesheet" href="/css/style.css"> في المثال، يتم ربط ملف style.css الموجود في مجلد static/css بالصفحة. 7- إضافة صفحات جديدة إلى Hugo عن طريق إنشاء ملف Markdown جديد في مجلد content. بعد ذلك، يمكن إنشاء قالب جديد لعرض هذه الصفحة وربطها بالقائمة الرئيسية في الموقع.
  8. يمكنك القيام بذلك عن طريق استخدام AJAX في Laravel، حيث يتيح لك AJAX تحميل وإرسال البيانات بطريقة ديناميكية دون الحاجة إلى إعادة تحميل الصفحة بأكملها. وعند النقر على الزر لإضافة مدخلات، باستطاعتك استخدام جافا سكربت لإرسال طلب AJAX إلى الخادم الذي يستخدم Laravel. وبمجرد استلام الطلب، سيقوم Laravel بجلب البيانات المطلوبة من قاعدة البيانات باستخدام controller، ومن ثم سيرسل البيانات المستلمة إلى الصفحة بشكل JSON. وباستخدام جافا سكربت بالإمكان تحليل البيانات المستلمة من Laravel وإنشاء صف جديد للمدخلات المضافة بناءً على هذه البيانات. بعد ذلك، يمكنك استخدام الجافا سكربت لتحديث الصفحة وعرض المدخلات الجديدة. إليك بعض الخطوات الأساسية التي يمكن اتباعها لتحقيق ذلك: إنشاء زر لإضافة مدخلات وتعيين معرفًا له. إنشاء ملف JavaScript للقيام بمهام إضافة المدخلات. إضافة كود JavaScript الذي يستخدم AJAX لإرسال طلب إلى controller في Laravel. في controller Laravel، استخدمي الطريقة المناسبة لجلب البيانات من قاعدة البيانات. استخدمي JSON لإرسال البيانات المطلوبة إلى ملف JavaScript. في ملف JavaScript، استخدمي البيانات المستلمة لإنشاء صف جديد للمدخلات. تحديث الصفحة لعرض المدخلات الجديدة. وكنصيحة الأفضل استخدام مكتبات مثل Axios لتسهيل استخدام AJAX وإرسال الطلبات إلى controller في Laravel. وإليك مثال باستخدام Axios. 1- بعد تثبيت المكتبة من الأمر التالي: npm install axios 2- سيتعين عليك إنشاء زر HTML على الصفحة الخاصة بك باستخدام معرف فريد له، وهذا الزر سيقوم بتنفيذ الطلب AJAX عند النقر عليه. 3- إنشاء ملف JavaScript جديد وتعيينه للزر HTML الخاص بك. 4- استدعِ مكتبة axios داخل ملف JavaScript الخاص بك. import axios from 'axios'; 5- استخدمي axios لإرسال الطلب AJAX إلى controller في Laravel، ويمكنك استخدام المثال التالي لإرسال طلب GET لجلب البيانات من controller: axios.get('/get-data') .then(function (response) { // استخدم البيانات المستلمة لإنشاء صف جديد للمدخلات. }) .catch(function (error) { console.log(error); }); حيث /get-data هو عنوان URL للطلب AJAX الذي يمكن تغييره بما يناسب متطلباتك. 6- في controller Laravel، استخدمي الطريقة المناسبة لجلب البيانات من قاعدة البيانات وإرجاعها كـ JSON. public function getData() { $data = // جلب البيانات من قاعدة البيانات return response()->json($data); } عند استلام البيانات من controller، يمكنك استخدامها داخل دالة .then() للتحكم في عرض الصفحة وإضافة المدخلات الجديدة. 7- تحديث الصفحة لعرض المدخلات الجديدة، ويمكن استخدام Vue أو React لإنشاء تطبيق أكثر ديناميكية.
  9. بالإضافة إلى ما ذكره عبد الباسط، يجب أن تأخذ في الاعتبار أنه إذا كانت لديك خلفية في تطوير تطبيقات Windows Forms، فقد يكون لديك فهم أفضل لبعض المفاهيم الأساسية التي يشترك فيها إطار عمل .NET Framework بأكمله، والتي يمكن أن تفيدك في تطوير تطبيقات ASP.NET MVC و Entity Framework و Xamarin. ومع ذلك، فإن الخبرة السابقة في تطوير تطبيقات Windows Forms ليست شرطًا لتعلم هذه الإطارات الأخرى. لذلك، يمكنك البدء في تعلم أي إطار عمل من إطارات عمل .NET Framework بدون الحاجة إلى تعلم Windows Forms Applications مسبقًا. وإليك بعض النصائح: يجب أن يكون لديك معرفة جيدة بلغة C# ومكتبات .NET Framework قبل البدء في تعلم إطارات عمل مثل ASP.NET وEntity Framework وXamarin وغيرها. لذلك، من المهم بدء العمل على تعلم لغة C# ومكتبات .NET Framework المشتركة مثل ADO.NET وLINQ وغيرها. يتطلب العمل مع إطارات عمل مثل ASP.NET وXamarin وغيرها القدرة على تصميم وإنشاء صفحات واجهة المستخدم الخاصة بتطبيقاتك. لذلك، يجب أن تكون لديك فهم جيد لأساسيات HTML وCSS وكيفية استخدامها في تصميم صفحات الويب. يعد استخدام قواعد البيانات جزءًا أساسيًا من تطوير تطبيقات الويب والجوال، ويتطلب ذلك فهم قواعد البيانات وكيفية التعامل معها. لذلك، ينبغي عليك تعلم مفاهيم قواعد البيانات ولغة الاستعلام المنطقي SQL ومكتبات ADO.NET للاتصال بقواعد البيانات. يوجد العديد من الموارد المتاحة على الإنترنت التي يمكن استخدامها لتعلم إطارات عمل .NET Framework، مثل المواقع التعليمية والمنتديات والدورات التدريبية والمقاطع التعليمية. يجب استغلال هذه الموارد بشكل جيد لتسريع عملية التعلم وتحسين المهارات. ينبغي أن تعمل على مشاريع عملية أثناء تعلم إطارات عمل .NET Framework،
  10. إليك بعض النصائح التي من شأنها تحسين جودة المحتوى والذي بدوره سيزيد من عدد الزيارات لموقعك: إختيار موضوع يهم الجمهور المستهدف، ويمكن البحث عن المواضيع باستخدام أدوات البحث عن الكلمات الرئيسية. إجراء بحث عن الكلمات الرئيسية التي تصف الموضوع وتساعد في زيادة ظهور المقال في محركات البحث. كتابة المقال باستخدام أسلوب معين، مثل "طريقة الهرم المقلوب"، والتي تساعد على كتابة مقال يحوي معلومات قيمة ومنظمة بشكل مناسب، أي ذكر المعلومات القيمة في البداية والتي من شأنها أن تجذب إنتباه الزوار. تحسين المحتوى بشكل داخلي من خلال استخدام أفضل الممارسات لتحسين محتوى الصفحة، مثل إضافة عناوين تحتوي على الكلمات الرئيسية وتصميم صفحة جذابة. إضافة وسائط متنوعة، مثل الفيديو والصور والرسوم البيانية والأدوات الرقمية لجعل المقال أكثر جاذبية وإثارة للاهتمام. تطوير استراتيجية لمشاركة المقال عبر مختلف القنوات الممكنة، مثل مواقع التواصل الاجتماعي والبريد الإلكتروني والمدونات وغيرها. تضمين محتوى يمكن وصله بروابط إلى موقعك، وذلك لزيادة مصداقية الموقع في محركات البحث، حيث يمكن استخدام أنواع مختلفة من المحتوى الذي يمكن ربطه بروابط، مثل الفيديو والرسوم البيانية والأدوات الرقمية والمزيد. ركّز على إنشاء محتوى طويل لمدوّنتك حيث تشير الدراسات إلى أن المحتوى الطويل يؤدي إلى أداء أفضل في نتائج البحث من المشاركات القصيرة أو الضعيفة، ولكن هناك شرطًا مهمًا وهو أن يكون المحتوى الطويل جيدًا ومناسبًا للقارئ. فالمحتوى الطويل هو المحتوى الذي يتميّز بعدد كبير من الكلمات ويعرض أفكارًا ومعلومات عميقة حول موضوع معيّن. يمكن أن يساعد المحتوى الطويل في تحسين مراكز البحث بسبب زيادة عدد الكلمات الرئيسية المستخدمة في المحتوى وأيضًا بسبب قدرته على إرضاء القارئ وتلبية استفساراته، مما يزيد من فرص المشاركة في وسائل التواصل الاجتماعي أو الربط بمواقع أخرى ويؤدي إلى زيادة حركة المرور. كما أن المحتوى الطويل يزيد من وقت الإقامة لدى الزائر، وهو الوقت اللازم بين لحظة النقر على نتائج البحث ولحظة العودة إلى نتائج محرك البحث، وهناك دراسات تشير إلى وجود علاقة بين وقت الإقامة الطويل وترتيبات البحث الأعلى. أيضًا حافظ على تحديث محتوى الموجود، فإنشاء محتوى "جديد" أمرًا حيويًا لتحقيق نتائج بحث جيدة وزيادة حركة المرور إلى موقعك، ولكن ينبغي أن تركز على جودة المحتوى بدلاً من الكمية. يمكنك الاستثمار في وقتك لتحسين المحتوى الحالي وجعله أفضل عن طريق مراجعة المشاركات السابقة باستمرار وتحديثها باستخدام أحدث المعلومات المتاحة. وهذا ينطبق بشكل خاص على مراجعات المنتجات، ولكن حتى "المحتوى الأخضر" (المحتوى الدائم الذي يتضمن حقائق لا تتغير كثيرًا، إن كانت تتغير على الإطلاق) يمكن أن يستفيد من إعادة النظر فيه وتحسينه من وقت لآخر. ويتميز تحديث المحتوى القديم بإرسال إشارات "التحديث" إلى جوجل، مما يعطي إشارات إيجابية للخوارزميات التي تستخدمها جوجل، بالإضافة إلى زيادة طول المنشورات وتوفير المحتوى "الطويل" الذي غالبًا ما يعمل بشكل أفضل في نتائج البحث. ولكن، يجب أن نذكر أن هناك قيمة مهمة في إنشاء محتوى جديد بشكل دوري، لأن كلما زاد عدد المحتوى على موقعك، كلما كان لديك المزيد من الكلمات الرئيسية التي يمكنك تصنيفها في نتائج البحث، ولكن هذا يتحقق فقط إذا كان المحتوى قويًا ومفيدًا للقارئ.
  11. أقصر طريق للقبول بسرعة في جوجل أدسنس هو إنشاء محتوى عالي الجودة وأن يضمن موقعك تجربة جيدة للزائرين من حيث السرعة المقبولة وقالب الموقع المناسب للهاتف. وسألخص لك الشروط: 1- محتوى الموقع: يجب أن يكون المحتوى الذي تريد وضع الإعلانات فيه محتوى ذو جودة عالية ومفيد للمستخدمين. ويجب أن يكون المحتوى مكتوبًا بلغة صحيحة وواضحة ويتوافق مع سياسة AdSense. كما يجب أن لا يحتوي على محتوى مخل بالآداب العامة أو ينتهك القوانين الدولية. 2- عدد الزيارات: يجب أن يكون لديك عدد كافٍ من الزيارات اليومية للموقع. لا يوجد رقم محدد للزيارات المطلوبة، ولكن عادة ما يعتبر موقعك مؤهلاً للتقديم عندما يكون لديك عدد كبير من الزيارات الفريدة كل شهر. 3- تصميم الموقع: يجب أن يكون تصميم الموقع جذابًا وسهل الاستخدام، ويجب أن يكون متوافقًا مع متطلبات AdSense. يجب أن يتضمن محتوى الموقع صفحات مثل "الاتصال بنا" و "سياسة الخصوصية" و "الشروط والأحكام" وغيرها. 4- العمر: يجب أن يكون عمر موقعك على الأقل 6 أشهر، وذلك للتأكد من أن الموقع يتمتع بالاستقرار والنمو. 5- الدول المؤهلة: يتم قبول التسجيل في برنامج AdSense في بعض الدول فقط، لذلك تحتاج إلى التحقق من ما إذا كانت دولتك مؤهلة للتقديم. وأهم نصيحة أقدمها لك هي الصبر والاستمرارية حيث يمكن أن تستغرق عملية الحصول على الموافقة من Google AdSense بعض الوقت، ولا ينبغي الاستسلام في حالة الرفض الأولي، ويمكن تحسين الموقع والمحتوى وإعادة تقديم الطلب، وكذلك الاستمرار في إنشاء محتوى عالي الجودة فالأمر يتطلب وقت لتحقيق عائد.
  12. قبل أي شيء يجب معرفة المهارات المطلوبة في سوق العمل الذي تطمح في العمل فيه سواء سوق العمل المحلي أو موقع العمل الحر مثل مستقل وبعيد، فأنت في النهاية تريد تعلم البرمجة من أجل العمل وليس لمجرد التعلم لنكن واقعيين. لذلك تفقد الوظائف الخاصة بمستوى Junior أو Entry Level وقم بكتابة المهارات المطلوبة في ملف نصي وتعلم تلك المهارات، ولكن تأكد من كتابة المهارات الأكثر طلبًا. فمثلاً في أغلب البلدان العربية ستجد المطلوب هو PHP ولارافيل ثم Angular و ASP.NET. وبالطبع بالنسبة لمسار Front-End فأنت بحاجة إلى تعلم HTML,CSS,JS بدون أدنى شك، بعد ذلك ستختار ما تتعلمه مما سبق أو المهارات التي تناسب سوق العمل لديك، فمثلاً البعض يطلب React والبعض بحاجة إلى لارافيل و Vue.js. لذلك ركز على الأساسيات أولاً وخصوصًا أساسيات جافاسكريبت لا تهملها أبدًا، طالما أنك ستعمل كـ Front-End. وبخصوص المدة الواقعية لتعلم أحد مسارات البرمجة فقد قمت بالإجابة على ذلك سابقًا. وإليك بعض النقاشات التي أنصحك بشدة بقرائتها.
  13. بخصوص سؤالك، فمن المستحيل إنشاء خوارزمية واحدة تصف جميع الأكواد في مشروع الويب. ومن الأفضل فهم الخوارزميات كأدوات تستخدم لحل مشكلات محددة، بدلاً من كونها وصفًا شاملًا للكود. في الواقع، يمكن استخدام الخوارزميات في مشاريع الويب في العديد من الأمور، مثل تصميم نظام تصنيف، أو توجيه المستخدمين إلى المحتوى الذي يناسبهم بناءً على تفضيلاتهم، أو تحسين سرعة الاستجابة للمستخدمين، وغيرها الكثير. وبالتالي، يمكن للمبرمج البحث عن الخوارزميات المناسبة لحل مشكلات محددة في مشروع الويب، وتطبيقها على الأكواد الخاصة بالمشروع. ويمكن أيضاً تصميم خوارزميات مخصصة لحل مشاكل فريدة في المشروع، على سبيل المثال، العثور على الكلمات المميزة في مدونة أو تصميم نظام توصية فريد لمتجر إلكتروني. وأنصحك بإنشاء flow chart أفضل لأنه يمثل رسماً توضيحياً لخطوات الخوارزمية ويسهل فهمها وتنفيذها. وبالتالي، يمكن استخدام ال flow chart كدليل لكتابة الكود اللازم لتنفيذ الخوارزمية. كما أنه يساعد على تفادي بعض الأخطاء الشائعة في كتابة الخوارزميات مثل الدوال التكرارية (loops) اللامنتهية والتكرارات الزائدة (redundant iterations) وغيرها. على الرغم من ذلك، فإنه من المهم أن يتعلم المبرمج الكتابة المباشرة للخوارزميات بمجرد تحسين مهاراته في البرمجة، حتى يمكنه تحسين كفاءة وسرعة كتابة الأكواد والتحكم بها بشكل أكبر. وعند إنشاء خوارزمية لمشروع كامل، يتم البدء بتحليل المشروع وتقسيمه إلى أجزاء صغيرة قابلة للإدارة. على سبيل المثال، يمكن تقسيم المشروع إلى الجزء الخاص بال Front-End والجزء الخاص بال Back-End. بعد ذلك، يمكن تحليل كل جزء وتحديد الخوارزميات المناسبة لكل جزء. يمكن أيضًا تحديد العمليات والوظائف الرئيسية لكل جزء وتصميم الخوارزميات المناسبة لتحقيق هذه العمليات والوظائف. ويمكن أن تشمل الخوارزميات المستخدمة في مشروع ويب عدة مجالات مثل: التواصل مع قاعدة البيانات: يمكن تصميم خوارزميات لتحليل البيانات وتخزينها واسترجاعها من قاعدة البيانات. التحقق من الصحة والأمان: يمكن تصميم خوارزميات للتحقق من صحة البيانات المدخلة والمرسلة بين ال Front-End وال Back-End وتطبيق الأمان المناسب لحماية المعلومات. العمليات الحسابية والرياضية: يمكن تصميم خوارزميات للقيام بالعمليات الحسابية والرياضية المختلفة التي يحتاج إليها المشروع. التعامل مع الرسائل والإشعارات: يمكن تصميم خوارزميات لإدارة الرسائل والإشعارات وإرسالها واستقبالها بين ال Front-End وال Back-End. تحسين أداء الموقع: يمكن تصميم خوارزميات لتحسين أداء الموقع وتقليل وقت الاستجابة وزيادة سرعة تحميل الصفحات.
  14. باستطاعتك العمل على إطار العمل .NET Framework و ASP.NET MVC و Entity Framework و Xamarin دون الحاجة إلى تعلم C# Windows Forms Applications بشكل مسبق. ومع ذلك، فإن معرفة C# وواجهة Windows Forms قد تساعد في فهم أساسيات بعض المفاهيم المستخدمة في هذه التقنيات وجعل عملية التعلم أسهل. لذلك أنصحك بتعلم C# وواجهة Windows Forms Applications إذا كنت ترغب في تطوير تطبيقات سطح المكتب باستخدام C# في المستقبل. وبخصوص سؤالك الآخر فإن .NET Framework وASP.NET MVC وEntity Framework و Xamarin هي بيئات وإطارات عمل مختلفة تستخدم في تطوير البرمجيات باستخدام لغات برمجة مختلفة مثل C# وVB.NET وF#. على سبيل المثال، يستخدم ASP.NET MVC لتطوير تطبيقات ويب باستخدام لغات برمجة مثل C# وVB.NET وJavaScript. بينما يستخدم Xamarin لتطوير تطبيقات الجوال باستخدام C#، ويمكن استخدام Entity Framework في تطوير تطبيقات قواعد البيانات باستخدام C# أو VB.NET. وإليك بعض النصائح التي قد تساعدك: قم بتعلم أساسيات البرمجة قبل الانتقال إلى لغة معينة، مثل البدء بتعلم أساسيات البرمجة مثل المتغيرات، الدوال، والتحكم في التدفق (if/else statements و loops) في أي لغة برمجة. قم بتعلم الأساسيات التي تحتاجها للبرمجة في بيئة .NET Framework، مثل Visual Studio ومساعدات التصحيح البرمجية والعلامات التجارية المستخدمة في برمجة الأسماء والنواحي الأخرى المهمة. تعلم كيفية استخدام مكتبات الفئات المختلفة وAPIs المتاحة في .NET Framework، مثل ADO.NET للاتصال بقواعد البيانات أو ASP.NET لإنشاء تطبيقات الويب. قم بتطبيق المفاهيم والأساليب التي تتعلمها في مشاريع عملية. يمكنك العثور على مشاريع تطبيقية وتعليمية على الإنترنت، أو إنشاء مشاريع بنفسك لتطبيق ما تعلمته وتحسين مهاراتك البرمجية.
  15. الخطأ في الصورة يشير إلى عدم وجود النموذج"app\models\user" المطلوب في المشروع. حاول تجربة الآتي: التحقق من وجود ملف النموذج "user" في المسار التالي: app/models/user.php التأكد من أن الأحرف الكبيرة والصغيرة في اسم الملف متطابقة مع الاسم الذي تم استدعائه في الكود. التأكد من وجود عبارة "namespace app\models" في بداية الملف "user.php"، والتي تحدد مساحة الاسم الخاصة بالنموذج. التأكد من أنه تم تضمين الملف "user.php" في ملف "composer.json"، والذي يحدد الاعتماديات اللازمة لتشغيل المشروع. في حالة عدم وجود ملف "user.php"، يجب إنشاءه في المسار المذكور في الخطوة الأولى وإضافة الكود المناسب لتعريف النموذج وتحديد خصائصه وطرقه.
  16. هناك خطأ في إحدى ملفات CSS (b88d04fba731603756b1.css) وهو ملف بناء أي تعمل عمل بناء له من ملفات المشروع الخاص بك، والخطأ يتعلق بوجود حرف تهريب (Escape character) مع بعض الحروف المميزة في هذا الملف. بمعنى وجود مشكلة في تعريف مسار أحد الملفات داخل ملف CSS، وقد يكون السبب هو عدم وجود حرف التهريب مع الأحرف المميزة في مسار الملف، أو استخدام حرف التهريب بشكل غير صحيح.
  17. الخطأ معناه وجود مشكلة في تحميل الصورة التالية: ./IMG/(3)علمني والموجودة في المسار المحدد بعد اسم الصورة كما يظهر في الخطأ في مجلد src في ملف HTML. لذلك عليك بالتأكد من مسار الصور الصحيحة المتضمنة في ملفات HTML في هذا المسار. أيضًا هناك مشكلة في تحميل ملف style.css في نفس المسار ، لذلك تأكد أيضًا أنك قمت بكتابة المسار بشكل صحيح.
  18. تعلم Sass لا يزال مهمًا لمطوري ReactJS، حتى مع تقدم Webpack أو تراجعها لصالح Vite وظهور مكتبات أخرى مثل Tailwind. تظل Sass أداة مساعدة لتحسين تجربة كتابة CSS وإنشاء أنماط مرنة وسهلة الصيانة، مما يجعل الكود أنظف وأكثر تنظيمًا. بالإضافة إلى ذلك ، قد يكون من الصعب التعامل مع Tailwind إذا كان لديك تصميم خاص لموقع الويب الخاص بك. ومن الممكن أن يتطلب تخصيص تصميم CSS الخاص بك وقتًا أطول وجهدًا أكبر عند استخدام Tailwind. علاوة على ذلك ، فإن تعلم Sass يمكن أن يساعدك في تعلم مفاهيم CSS المتقدمة ، مما يجعلك مطورًا أفضل وأكثر كفاءة في كتابة الأنماط. ويمكن استخدام Sass مع ReactJS بسهولة باستخدام Webpack أو Vite. و Sass لها علاقة بالمكتبات الأخرى مثل React و Tailwind بطريقة غير مباشرة. فعلى سبيل المثال، إذا كنت تستخدم Sass لإنشاء CSS في تطبيق React يستخدم Tailwind، فيمكنك تعريف المتغيرات والمكونات والدوال وإعادة استخدامها بطريقة أكثر فعالية. كما أنه يمكن استخدام Sass لإنشاء ملفات CSS قابلة للتكيف مع Tailwind، مما يتيح لك تخصيص التصميم وفقًا لاحتياجات التطبيق الخاص بك. ومع ذلك، فإن Tailwind لا يعتمد بشكل أساسي على Sass ولكنه يستخدم نظامًا مختلفًا لتخصيص التصميم، مما يعني أنه لا يوجد علاقة مباشرة بين preprocessor وهذه المكتبات. بالنهاية، الاختيار بين استخدام Sass أو Tailwind أو أي أداة أخرى يعتمد على متطلبات المشروع الخاص بك والتفضيلات الشخصية والمسار الخاص بك فمثلاً مطوري Full-stack غالبًا ما يعتمدوا على Tailwind حاليًا لكونها حل وسط بدلاً من استخدام Bootstrap.
  19. تستطيع الحصول على المتوسط والتباين لمجموعة الأعداد عن طريق كتابة برنامج بلغة C++. يمكن استخدام الأسلوب التالي لحساب المتوسط والتباين: إنشاء مصفوفة لتخزين المدخلات العشوائية. إنشاء متغير لتخزين مجموع المدخلات العشوائية. قم بإنشاء متغير لحساب المتوسط. قم بإنشاء حلقة for لتوليد 1000 مدخل عشوائي وحساب مجموع المدخلات العشوائية. حساب المتوسط عن طريق تقسيم مجموع المدخلات العشوائية على 1000. إنشاء متغير لحساب التباين. قم بإنشاء حلقة for جديدة لحساب الفرق بين كل عدد والمتوسط. حساب التباين عن طريق جمع جميع الفروق المربعة وتقسيمها على 999. الخطوات السابقة تعتبر الأساس لحساب المتوسط والتباين. ويمكن تحقيقها في برنامج C++ عن طريق استخدام دوال مثل rand() و pow(). البرنامج النهائي يجب أن يعطيك قيم المتوسط والتباين، ويمكنك استخدام دالة cout لطباعة النتائج على الشاشة.
  20. بجانب ما تم قد شرحه، يمكن رسم خرائط التدفق للكود الخاص بك على النحو التالي: +--------------+ | Start | +--------------+ | v +--------------+ | Initialize | +--------------+ | v +--------------+ | Generate | | random | | numbers and | | calculate sum| +--------------+ | v +--------------+ | Calculate | | mean and | | reset sum to | | 0 | +--------------+ | v +--------------+ | Calculate | | variance | +--------------+ | v +--------------+ | Display | | results on | | screen | +--------------+ | v +--------------+ | End | +--------------+ وتتضمن خريطة التدفق السابقة العمليات التالية: البدء البدء بتعيين المتغيرات والقيام بالإعدادات الأولية إنشاء أرقام عشوائية وحساب مجموعها حساب المتوسط الحسابي وإعادة تعيين المجموع إلى الصفر حساب الانحراف المعياري باستخدام الصيغة: (مجموع الفروق المربعة) / (n-1) عرض النتائج على الشاشة النهاية ويتم الانتقال من مرحلة إلى أخرى في الخريطة باستخدام العمليات الشرطية والحلقات.
  21. ربما الخطأ ناجمًا عن طريقة تخزين البيانات في ملف Excel، وعلى الأرجح يتعلق بطريقة قراءة الملفات في Flutter. حاول تجربة استخدام مكتبة أخرى للقراءة من ملفات Excel مثل flutter_excel أو excel بدلاً من استخدام مكتبة dart_excel المستخدمة حاليًا. ويمكن استخدام الكود التالي للقراءة من ملف Excel باستخدام مكتبة excel: import 'package:excel/excel.dart'; import 'dart:io'; var file = "path/to/file.xlsx"; var bytes = File(file).readAsBytesSync(); var excel = Excel.decodeBytes(bytes); for (var table in excel.tables.keys) { for (var row in excel.tables[table]!.rows) { print("$table -> $row"); } } ويجب تعديل الكود أعلاه واستخدام المكتبة المذكورة والتي توفر واجهات للقراءة والكتابة من وإلى ملفات Excel في Flutter.
  22. من الصعب تنفيذ مشاريع فعلية باستخدام اللغات والمكتبات التي ذكرتها، حيث يجب تعلم إطار عمل مثل React و Angular. حيث أن اللغات والتقنيات التي ذكرتها جيدة في تنفيذ المشاريع البسيطة والتي بها بيانات ثابتة، ولكن عدما يتعلق الأمر بالمشاريع المتوسطة والكبيرة والتي بها بيانات متغيرة أي ديناميكية فهنا يجب استخدام إطار أو مكتبة للواجهة الأمامية كما ذكرت. وسأحصر إجابتي فيما يخص مواقع العمل الحر العربية مثل مستقل وخمسات، فالمهارات المطلوبة بكثرة بها هي لغة PHP و إطار عمل لارافيل وورد بريس، ثم إنشاء تطبيقات الهواتف باستخدام React native أو Flutter. وهناك بعض المشاريع الي تتطلب لغة ASP.NET وبالطبع ما سبق بحاجة إلى اللغات والمكتبات التي تعلمتها أنت فهى الأساسيات التي يُبنى عليها كل ما سبق. وربما ستجد بعض المشاريع الصغيرة في بعض الأحيان التي لا تتطلب سوى html- CSS- JavaScript - Bootstrap - jQuery - Sass. لكن لتصبح مستقل محترف وتكسب المال بشكل حقيقي فعليك بتعلم إطر العمل واللغات المطلوبة وأهما PHP ولارافيل ومنصة إدارة المحتوى وورد بريس. وأيضًا أنصحك بقراءة مقالات عن كيفية تقديم نفسك للعميل وكتابة عرض مناسب بشكل إحترافي والتعامل بأسلوب لائق يدل على أنك شخص يعتمد عليه وذو ثقة، وبالطبع يجب توافر معرض أعمال بجودة عالية، وتذكر أن لكل شخص رزقه وستحصل عليه بلا شك فعليك بالسعي والتقديم على المشاريع المناسبة لك لحين تعلم ما ذكرته لك.
  23. في بداية تعلم البرمجة يجب إختيار ما يتم تقديمه في محتوى الدورة بعناية، فلا يمكن أن تحتوي الدورة على كافة التفاصيل ولا يوجد دورة توفر ذلك أبدًا. بل الدورة الجيدة تقدم ما يحتاجه الدارس ليتقن المهارة التي يريد تعلمها وبشكل إحترافي دونّ إرهاقه بكم هائل من المعلومات التي لن يحتاجها في بداية مساره البرمجي وسينساها وسيعود إليها لاحقًا بعد اكتساب الخبرة للازمة لتعلمها. فليس العبرة بكم المعلومات بل بمقدار الاستفادة منها وتوفيرها في الوقت الصحيح عند الحاجة، ويتم التوجيه دائمًا لضرورة تعلم مهارة البحث بدلاً من توفير معلومة معينة وذلك لتحفيزك لاكتساب مهارة لا غنى عنها لأي مبرمج. فالبحث والقراءة هما الأساس لأي مبرمج يريد أن يصبح ذا شأن في مجاله وإلا لن يصل بعيدًا، ومن خلال التطبيقات العملية يتم التوسع في المعلومات المقدمة وذكر كافة التفاصيل الهامة التي ستحتاجها في بناء المشاريع باستخدام اللغة الخاصة بالدورة. والمشاريع ليست عبارة عن نماذج بسيطة و لعبة XO بل مشاريع حقيقية تضعها في معرض أعمالك عند التقدم للوظيفة بعد الإنتهاء من الدورة، فتلك هي نوعية المشاريع التي تؤهلك لسوق العمل بالفعل والتي يتم النظر إليها عند التقدم لوظيفة في مجال البرمجة وليس النماذج البسيطة. وهناك فخ دائمًا ما يقع فيه الكثير، وهو مقارنة مدة الفيديو أو حجم الدورة بدلاً من مقارنة القيمة والمعلومات التي يتم توفيرها والتي أنت بحاجة إليها فعلاً لتصبح مبرمج محترف، فهناك الكثير من المعلومات التي يمكن ذكرها لكن لن تستخدمها في بداية حياتك كمبرمج أو ربما لن تستخدمها إلا نادرًا حتى بعد اكتساب الخبرة.
  24. الخطأ يحدث لأنك تحاول الوصول إلى موارد API من موقع آخر، ويتم منع ذلك بسبب سياسة الـCORS، ويتم ذلك لأسباب أمنية لمنع الوصول غير المصرح به إلى بيانات المستخدم. لحل هذا المشكلة، يجب تمكين الوصول لمصدر الموارد في الخادم الذي تستخدمه. وفي حال لم تكن تملك خادم خاص بك، يمكنك استخدام خدمات بروكسي مثل CORS Anywhere أو بدائل أخرى لتفادي هذه المشكلة. وهذه الخدمات تسمح بإرسال طلب من الموقع المضيف إلى خدمة البروكسي، ثم يتم إعادة إرسال الطلب من خلال البروكسي إلى المصدر الأصلي دون تعريض الصفحة لمشكلة CORS. يمكنك قراءة المزيد عن سياسة CORS وطرق تجاوزها من هنا: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS لذلك، يمكن تعديل الرابط في الطلب ليتضمن عنوان بروكسي، على سبيل المثال: axios.get('https://cors-anywhere.herokuapp.com/https://timeapi.io/api/Time/current/zone?timeZone=Africa/Tripoli') .then(function (response) { // handle success console.log(response); }) .catch(function (error) { // handle error console.log(error); }); المثال يستخدم خدمة بروكسي مجانية تسمى "CORS Anywhere"، والتي تضيف رأس "Access-Control-Allow-Origin" إلى الطلب لحل مشكلة CORS. ويجب الانتباه إلى أنه يجب استخدام خدمات بروكسي بحذر، وتأكد من أن المصدر المستخدم هو موثوق به وآمن.
  25. بالتأكيد، يمكن استخدام لغة C# لبناء تطبيق مثل تطبيق Uber. ولكن، يتطلب ذلك استخدام عدة تقنيات وأدوات بالإضافة إلى لغة البرمجة. فتطبيق Uber يستخدم تقنيات مثل نظام تحديد المواقع العالمي (GPS)، وخدمات الدفع الإلكتروني، وقواعد البيانات، والاتصالات، وواجهات المستخدم، وغيرها. لبناء تطبيق مثل Uber باستخدام C#، يمكن استخدام إطار عمل (framework) مثل .NET Framework، والذي يوفر مكتبات وأدوات للتطوير والتصميم. على سبيل المثال، يمكن استخدام ASP.NET MVC framework لبناء نظام الخوادم الخلفية (Backend) الذي يتيح التواصل بين التطبيق وقاعدة البيانات والتحكم بالبيانات المرسلة والمستلمة وغيرها، بالإضافة إلى استخدام Entity Framework لتنفيذ عمليات قاعدة البيانات بشكل أكثر سلاسة. أما بالنسبة لجانب العميل (Client side) من التطبيق، يمكن استخدام Xamarin، وهو إطار عمل يستخدم لتطوير تطبيقات الهاتف المحمول لأنظمة Android وiOS باستخدام لغة C#. بالإضافة إلى استخدام Xamarin.Forms لتطوير واجهات المستخدم لتطبيقات Android و iOS في الوقت نفسه. وبهذه الطريقة، يمكن استخدام لغة C# وإطار عمل .NET Framework وأدوات مثل ASP.NET MVC وEntity Framework و Xamarin لبناء تطبيق مثل تطبيق Uber. ومن المهم الإشارة إلى أن هذه الطريقة ليست الوحيدة الممكنة، وأن هناك العديد من التقنيات الأخرى التي يمكن استخدامها أيضاً. التقنيات المستخدمة في تطبيق UBER تم بناء تطبيق أوبر باستخدام عدة لغات برمجة. للجانب الخادم (Backend)، حيث استخدمت أوبر لغة برمجة Java في البداية، ثم انتقلت إلى استخدام لغة Go. وقد تم تطوير الجزء الأمامي (Frontend) من التطبيق باستخدام لغات مثل Objective-C و Swift لتطبيق iOS، و Java و Kotlin لتطبيق Android. كما تم استخدام HTML و CSS و JavaScript لتطوير نسخة الويب من التطبيق. علاوة على ذلك، تم استخدام العديد من التقنيات والأدوات الإضافية مثل MySQL لقواعد البيانات و Amazon Web Services (AWS) لإستضافة الخادم وإدارة الحمولة وغيرها.
×
×
  • أضف...