سامح أشرف

مطور ومصمم مواقع ويب إحترافية (Backend و Frontend) أعمل دائمًا على تطوير نفسي، فإن كان لديك أي إستفسار أو نصيحة لا تتردد في إخباري بذلك ;)

250 نقاط السمعة
107 ألف مشاهدات المحتوى
عضو منذ
تطوير الويب من أكثر المجالات طلبًا في سوق البرمجة، ويوجد فيه عدد من الفروع التي يمكنك التخصص فيها وعدد من لغات البرمجة التي يمكنك تعلمها. في البداية يجب أن تعلم التخصصات الرئيسية في هذا المجال: مطور الواجهات الأمامية Frontend Developer هو المبرمج الذي يقوم بتحويل تصميم معين (مجرد صورة تخيلية) لموقع ما إلى أكواد. الأزرار، النصوص والصور والقوائم وغير من مكونات في الموقع، يقوم هذا المبرمج بإنشائها وبرمجتها حتى يتمكن المستخدم العادي من استعمالها، ويستعمل في هذا التخصص لغات مثل
عناصر iframe لا يمكن التحكم في محتواه على الإطلاق بسبب أسباب أمنية ولكي لا يستعمله بعض الأشخاص في سرقة معلومات وبيانات مستخدمين آخرين، ما لم تكن صاحب الصفحة الموجودة داخل عنصر iframe فلا تستطيع التعديل على بيانات بسهولة.
في المجالات التقنية (برمجة - it - ..) لا تحتاج إلى شهادة في هذا المجال لكي تعمل في أحد الشركات أو لتعمل كمستقل Freelancer، ففي كلا الحالتين لا يتم السؤال عن الشهادات الخاصة بك، ولكن سوف تقوم بعمل مقابلة عمل interview لإختبار قدراتك ومعرفة طريقة كتابتك للكود ومختلف أنواع المعارف التقنية التي لديك وهل ستستطيع إتمام العمل الخاص بالشركة على أكمل وجهة أم لديك قصور في بعض النواحي. ويوجد الكثير من المبرمجين الذين لم يذهبوا إلى الجامعة حتى، حسب إحصائية
في Tailwind يتم كتابة الموجهات directives مثل hover و dark و rtl .. إلخ بدون وجود مسافة بينها وبين الخاصية، مثال: hover:bg-gray-500 dark:bg-white rtl:ml-4 في حالة وجود مسافة في أي صنف Class من الأصناف السابقة سوف يتم إعتباره صنفين منفصلين. حاول إزالة المسافة الإضافية من الكود الخاص بك، ليصبح على النحو التالي: @apply cursor-pointer hover:underline;
حاول تحديث تطبيق Google Chrome وحذف بيانات التطبيق المؤقتة Clear Cache. حاول كذلك تجربة متصفح آخر غير Google Chrome، هنا بعض المتصفحات الأخرى: Microsoft Edge Mozilla Firefox Brave ربما لديك مشكلة في شبكة الإنترنت Network لديك، حاول الإتصال بشبكة إنترنت آخرى أو جرب تشغيل البيانات Mobile Data (Celler Data) ، فربما لديك مشكلة في جهاز الموجه Router (الروتر). إن إستمرت المشكلة بعد إتمام كل المحاولات السابقة، فحاول التواصل مع مركز المساعدة من خلال الرابط التالي وسوف يساعدونك على الفور: https://help.hsoub.com/
يمكنك إستعمال الصنف MutationObserver والذي يسمح لك بمراقبة حدوث تغيرات معينة على أحد العناصر، ويمكنك إستعماله على النحو التالي: const element = document.querySelector(".vid-card_lolo"); const observer = new MutationObserver((data) => { // الكائن data يحتوي على الكثير من المعلومات عن العنصر الذي حدث عليه تغيير console.log('element has changed', data); }); observer.observe(element, {subtree: true, childList: true, attributes: true, characterData: true}); يمكنك الإطلاع على مزيد من المعلومات حول هذا الصنف من خلال المقالة التالية: https://academy.hsoub.com/programming/javascript/%D9%85%D8%B1%D8%A7%D9%82%D8%A8-%D8%A7%D9%84%D8%AA%D8%AD%D9%88%D9%84-mutationobserver-%D8%B9%D8%A8%D8%B1-%D8%AC%D8%A7%D9%81%D8%A7%D8%B3%D9%83%D8%B1%D8%A8%D8%AA-%D9%84%D9%85%D8%B1%D8%A7%D9%82%D8%A8%D8%A9-%D8%B4%D8%AC%D8%B1%D8%A9-dom-r1239/
لم أفهم ما تقصده تمامًا، إن كنت تحتاج إلى الحصول على نتيجة الكود داخل PHP فسوف تحتاج إلى إرسال نتيجة الطلب من JavaScript إلى PHP عبر Ajax على سبيل المثال.
كود PHP يتم تشغيله على الخادم Server وبالتالي سيتم إرسال الطلب بإستخدام ip الخاص بالخادم نفسه، إذا أردت أن تقوم بإرسال الطلب من خلال ip المستخدم، فيجب عليك أن تستعمل كود JavaScript داخل المتصفح، ليتم إرسال الطلب من جهاز المستخدم. يمكنك بعد ذلك أن ترسل نتيجة الطلب إلى الخادم مرة أخرى وتقوم بإستخدام لغة PHP في معالجة الطلب كما تريد. مثال: let response = await fetch('https://dummyjson.com/products/1'); console.log(await response.text());
لا مشكلة، مازال بإمكاننا الوصول إلى كل العناوين Titles من خلال إستخدام التابع Object.keys الذي سيقوم بجلب كل المعرفات id الخاصة بكائن، معين، مثال: const new_my_data = JSON.parse(my_data); new_my_data.map(item => Object.keys(item)[0]); // ['143390192', '14339019', '1433901'] الآن يمكننا إستعمال كل معرف من النتيجة السابقة للحصول على قيمة الخاصية title: new_my_data.map(item => item[Object.keys(item)[0]].title); // [' title 1', ' title 2', ' title 3'] ونستطيع تنفيذ التابع trim بعد ذلك: new_my_data.map(item => item[Object.keys(item)[0]].title.trim()); // ['title 1', 'title 2', 'title 3']
يبدو أن البيانات لديك موجودة في شكل نص string، لذلك يجب تحويلها إلى JSON أولًا من خلال التابع JSON.parse const new_my_data = JSON.parse(my_data) بعد ذلك يمكننا أن نقوم بالمرور على كل عناصر المصفوفة من خلال التابع map بالشكل التالي: new_my_data.map(item => item['1433901927011940748'].title); // [' title 1', ' title 2', ' title 3'] بهذا الشكل يمكننا الحصول على كل قيم الخاصية title في كل العناصر. إن أردت إزالة المسافات الإضافية الموجودة في كل عنوان، يمكن إستخدام التابع trim بالشكل التالي: new_my_data.map(item
لتزيد من خبرتك في مجال هندسة البرمجيات، يجب أن تتأكد من تعلم وفهمك لكل الأساسيات بشكل جيد جدًا، وعليك أن تحدد المجال الذي ستعمل به كذلك، لكي لا تشتت نفسك بين المصادر والدورات وغيرها من مصادر المعلومات. تأكد من تعلمك للغات أساسية مثل ++C و Python ولأن أغلب الشروحات المتقدمة التي تشرح الخوارزميات وهياكل البيانات تستعملها، ويمكنك أن تتعلم لغات أضافية لأنها مطلوبة بشكل كبير في سوق العمل مثل PHP و JavaScript. بعد تعلم اللغات المطلوبة والتأكد من فهمك لها،
شخصيُا، لا أجد أي مشاكل أخرى في المدونة، ويبدو كل شيء على مايرام. بالتوفيق.
تحتاج إلى بعض المهارات البرمجة لإتمام هذا الأمر، أو على الأقل يمكنك البحث عن قالب أفضل من ناحية السيو، في الغالب تكون هذه القوالب مدفوعة. إن أردت إستعمال نفس القالب أو لم تتمكن من الحصول على قالب أفضل، فحاول طرح مشروع على أحد مواقع العمل الحر مثل مستقل أو خمسات، وستجد العديد من المبرمجين الذي سيساعدونك في هذا الأمر.
لاحظ أن كل المقالات تم كتابتها خلال فترة قصيرة نسبيًا (9 أيام)، حاول أن تنشر مقالات بنفس هذا المعدل (مقالة أو أثنتين كل يوم ) ولكن لفترة أطول (شهر أو شهور ونصف)، ثم أعد محاولة الإشتراك مرة أخرى. أيضًا يوجد لديك بعض المشاكل المتعلقة بالسيو في القالب الخاص بك، حاول إصلاحها كذلك لتزيد من فرصتك في القبول: https://web.dev/measure/?url=https%3A%2F%2Fratsta.blogspot.com%2F حاول كذلك إستخدام برمجيات للكشف عن أي جمل مكررة أو منسوخة من مواقع أخرى. بالرغم من أنك قد تكتب المقالة بالكامل بنفسك،
حاول عمل import للمشروع من خلال File > New > Import Project وجرب تشغيله مرة أخرى. إن أستمرت المشكلة، فتأكد من وجود الملف build.gradle لديك في مجلد المشروع الرئيسي لكي يعمل Gradle بشكل سليم. أما إن كنت تعمل على مشروع قديم أو تم إنتاج هذا المشروع من خلال برنامج Eclipse أو من خلال IntelliJ، فحاول الإطلاع على توثيق Google لتشغيل المشروع في Android Studio: https://developer.android.com/studio/intro/migrate في هذا الدليل ستجد شرح لما هو Gradle وسبب وجوده، وكيفية تشغيل المشاريع في Android
إن كان تطبيقك يعمل بالإنترنت (أو لا توجد مشكلة في أن تجبر المستخدم على الإتصال بالإنترنت بإستعمال التطبيق)، فيمكنك أن تستعمل MongoDB من خلال خدمة Atlas التي تقدمها الشركة المنشئة لـ MongoDB نفسها. خدمة Atlas توفر لك قاعدة بيانات متاحة Online ويمكنك الإتصال بها من أي مكان، وبالتالي يمكنك أن تستخدمها في البرنامج الخاص بك بدون الحاجة إلى تثبيت أي برمجيات أضافية أو الحاجة إلى الطلب من المستخدم تحميل برامج إضافية. العيب الوحيد لهذا الحل، هو أن التطبيق الخاص بك
هذا الأمر ليس متاحًا في كثير من الأحيان، فالبشر يخطئون بشكل طبيعي، لذلك قد تحتوي الخوارزمية نفسها على أخطاء، ويجب إصلاحها بعد ذلك عند إكتشاف الخطأ، أيضًا يوجد مشاكل في حد ذاته لا يمكن توقعها بسهولة أو تحدث خارج قدرة البشر على التحكم بها. على سبيل المثال قد يتم إنشاء منتدى بسيط للنقاش بين المستخدمين، ولكن إذا زاد عدد المستخدمين بشكل ضخم يصبح الموقع بطيء نوعًا، لذلك يجب إعادة حل هذه المشكلة من خلال إستخدام خوارزميات أفضل في التعامل مع
من أهم الأمور في البرمجة بشكل عملي الخوارزميات وهياكل البيانات Data Structures، خصوصُا إن كنت ستعمل على مشروع ضخم ويستعمله الآلاف من المستخديمن معًا. فكرة الخوارزمية هي حل مشكلة ما من خلال مجموعة من الخطوات المنظمة التي يتم تنفيذها بشكل متتابع، ويمكننا أن نعتبر أن أي حل منظم لأي مشكلة مُحددة يُعتبر خوارزمية. وبما أنك تقوم ببرمجة تطبيقات أو برامج فأنت تقوم بحل مشكلة ما، وبالتالي تستخدم الخوارزميات بالفعل. بالتأكيد لإنتاج مشروع عملي (قابل للإستعمال من قبل المستخدمين العاديين)، نواجهة
إن كنت تقصد أنك تريد تحديد عناصر a التي لديها صور بداخلها، فيمكنك أن تستخدم has: بالشكل التالي: const links = document.querySelectorAll('a:has(img)') console.log(links) هنا سيتم تحديد أي عنصر a يوجد في داخله صورة img
يمكنك أن تستخدم لينكس في نظام وهمي عبر برامج مثل Virtual Box (مجاني) و VM Ware (مدفوع)، كل ما عليك فعله هو تحميل وتثبيت البرنامج وتحميل أحد توزيعات لينكس، في الغالب يتم إستعمال Kali Linux (أشهر توزيعة في مجال أمن المعلومات) ، ثم إنشاء نظام وهمي وتتثبيت هذه التوزيعة. يوجد في هذه المقالة شرح كيفية تشغيل نظام تشغيل في بيئة وهمية عبر Virtual Box: https://academy.hsoub.com/devops/linux/%D8%AA%D8%AB%D8%A8%D9%8A%D8%AA-red-hat-enterprise-linux-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-virtualbox-r249/ بما أنك تريد أن تبدأ من الصفر فعليك أن تتبع الخطوات الوجودة في دورة ما
إن كنت تقصد أن لديك أكواد JavaScript ولكن هذه الأكواد مضغوطة وغير قابلة للقراءة، فهذا الأمر يسمى تعمية obfuscator وليس تشفير، وهو عملية جعل الكود صعب القراءة والتعديل لكي لا يتمكن شخص آخر من تعديل الكود أو الحصول على نسخة خاصة به بغرض الحماية أو حماية حقوق الملكية. توجد مواقع تقوم بتعمية الكود مثل https://obfuscator.io، كما توجد مواقع تقوم بمحاولة إعادة الكود إلى حالته الأصلية أو مقاربة منها لكي تتمكن من قراءةء وفهم الكود مثل موقع https://deobfuscate.io ملاحظة: لا تتمكن
لا يمكن ضمان حماية قاعدة البيانات 100% وذلك لأنه قد تظهر ثغرة في المستقبل خاصة بقاعدة البيانات وتؤدي إلى السماح لأشخاص غير مصرح لهم بالوصول إلى هذه البيانات أو التعديل فيها أو حتى حذفها بالكامل، ولكن في الغالب يتم تحديث نظام قاعدة البيانات بشكل سريع إن كنت تستعمل نظام معروف مثل MySQL أو PostgreSQL أو MS SQL أو غيرها من قواعد البيانات المعروفة، وهنا بعض النصائح لحماية قاعدة البيانات بشكل أفضل: قم بعمل مستخدم لقاعدة البيانات ولا يكون له صلاحيات
لغة JavaScript من أكثر اللغات إنتشارًا وأكثرها إستخدامًا في العديد من المجالات، ويوجد الملايين من مكتبات JavaScript ويزداد هذ االعديد بشكل كبير يوميًا، لذلك لا يمكن إعطاء نبذة عن كل مكتبة على حدى، لكن أولًا ما هي المكتبة library؟ في البرمجة، عادةً ما نجد أننا نستخدم بعض الأكواد بشكل متكرر بين عدد من المشاريع، ونقوم بكتابتها من الصفر في كل مرة نحتاج إلى أحد هذه الأكواد في مشروع مختلف، لذلك نقوم بتجميع مثل هذه الأكواد ونضعها في ملف منفصل ونستدعي
لماذا هذه الخدمات مجانية؟ كل شركة تتبع نظام خاص بها لجزب العملاء وللربح منهم كذلك، لذلك ستجد أن بعض الشركات تقوم ببيع المنتجات الخاصة بها مثل شركة Adobe سبيل المثال، وشركات أخرى تقدم نسخ مختلفة من البرامج (نسخة مجانية ونسخة مدفوعة) مثل برامج الحماية Avast على سبيل المثال، وشركات أخرى تقدم بعض الخدمات الإضافية عند شراء المنتج مثل شركة Microsoft التي أصبحت مؤخرًا تسمح لك بإستخدام الويندوز بدون تفعيل ولكنك ستخسر العديد من الممزيات في النظام بحيث لن يمكنك الوصول
في البداية يجب تحديد هدفك، لماذا تريد تعلم البرمجة؟ هل تريد إنشاء المواقع websites؟ أم برمجة تطبيقات الجوال للاندرويد و iOS؟ أم تريد إنشاء الألعاب؟ .. إلخ، بعد تحديد إجابة لهذا السؤال سيكون واضح أمامك ما الذي يجب أن تتعلمه بالضبط وما هي التقنيات التي يجب أن تركز عليها. أنصحك بالاطلاع على هذه المقالة هنا، حيث تحتوي على شرح بأشهر مجالات البرمجة وأكثرها طالبًا في سوق العمل، مع ذكر لأشهر وأهم التقنيات المستخدمة في كل مجال: https://academy.hsoub.com/programming/general/%D8%AA%D8%B9%D9%84%D9%85-%D8%A7%D9%84%D8%A8%D8%B1%D9%85%D8%AC%D8%A9-r662/ أيضًا يجب قراءة