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

عبدالباسط ابراهيم

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

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

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

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

    11

كل منشورات العضو عبدالباسط ابراهيم

  1. يحتاج البرنامج لإدارة واستخدام الذاكرة لحفظ المتغيرات والقيم ولذلك يقوم بتخصيص أجزاء من الذاكرة وحذفها عند عدم الاستخدام وهذا هو التعريف ببساطة وتوجد لغات برمجية تقوم بعمل ذلك ذاتياً بدون تدخل منك مثل JavaScript وهناك أيضاً لغات تحتاج لإدارة الذاكرة يدوياً ويالطبع يمكن أن يقل أداء البرنامج لسوء استخدام الذاكرة مما يسبب memory leak وأما بالنسبة لل JavaScript فلا تحتاج لعمل ذلك يدوياً لأن اللغة تقوم بذلك تلقائيا
  2. هل تقصد البدأ في التقدم على عمل ومشاريع لعملاء؟ إذا كان كذلك فالأفضل أن تنتظر لنهاية الدورة لأن توجد بعض المشاريع بعد مسار بناء خمسه صفحات هبوط أكثر إحترافية وستتعلم المزيد من المعلومات و التقنيات حيث ستكون قادر على تنفيذ العديد من المشاريع المطلوبة كتحويل design إلى html و css والعديد من المشاريع الأخرى الخاصة بال frontend أما إذا كنت تقصد العمل على مشاريع كتدريب؟ هذه المشاريع التي تبنيها ستتزيد من خبرتك في المجال وستتطور معها وما يجب عليك عند التطبيق هو فهم كل جزء من الشرح وبعدها أيضاً تستطيع عمل أي مشروع خاص بال frontend
  3. ماذا تقصد بالرقم ؟ على العموم يمكنك التأكد من وجود قيمة في ال dictionary من خلال ال دالة .values كالتالي numbers = {'1': 'one', '3': 'three', '2': 'two', '5': 'five', '4': 'four'} 'one' in d.values() True وتقوم هذه الدالة بإرجاع قيمة true إذا كانت القيمة موجودة أو false إذا لم تكن موجودة
  4. يمكنكي أن تستخدم مكتبة os.path وهي توفر دالة ()exists وهذه الدالة تقوم بإرجاع قيمة true أو false كالتالي import os.path os.path.exists(file_path) وتوجد أيضاً دالة ()isfile للتأكد إذا كان ملف أم لا كالتالي os.path.isfile(file_path) ولا تنسي إستدعاء المكتبة
  5. هماك خطأ بسيط في الكود وهو المجال ل this في ال setTimeout حيث سوف تعود ال this للكائن window وليس ال component ولذلك يمكننا حل هذه المشكلة عن طريق عمل binding عن طريق توليد دالة جديدة بمجال scope محدد setTimeout(function(){this.setState({count: 1})}.bind(this), 3000); أو يمكنك استخدام ال arrow function كالتالي setTimeout(()=>this.setState({count: 1}), 3000);
  6. يمكننا تقسيم ال rule التالية '&$checked' لجزئين & هذه العلامة تعني ال rule الأب أي في حالتنا هنا فهو ال root checked$ فهي تقوم بتوليد rule جديد من نفس ال rule الموجود في المثال الموجود سيكون ال rule الناتجة هي "root.checked:"
  7. لا يمكنك أن تقول أن مجال ما أكثر ربحاً من مجال لماذا؟ لأنه يجب الأخذ في الإعتبار عدد الفرص المتاحة عدد ال frontend developer حول العالم متوسط دخل ال frontend developer وهناك العديد من المتغيرات الأخرى ولكن عموماً يمكنك كسب مرتب يختلف على حسب مدى احترافيتك ربما نقارن تطوير واجهات المستخدم مع مجال آخر مثل ال backend ستجد الفرص المتاحة ل تطوير واجهات المستخدم أكثر من الفرص لل backend ولكن عدد مطوري واجهات المستخدم أكثر والعائد المادي أقل من ال backend ولذلك فتحديد المجال الأكثر ربحاً يعتمد على العديد من المتغيرات ولكن عند إتقانك للمجال الذي تحبه ستجد الفرص متاحة أمامك بسهولة
  8. سقوم بتوضيح الخطوات المطلوبة ثم يمكنكي بعدها التطبيق باللغة التي تريديها ويعتبر هذا البرنامج سهل وما تحتاجين إليه هو القيام بإنشاء حلقة تكرار على ال list وفي داخل الحلقة تقومي بحذف ال key الموجود في ال list كالتالي del dic[k] حيث يعتبر ال k هو عنصر من ال list على حسب كل حلقة تكرار
  9. لمن تريد إرسال الرسالة ؟ إذا كنت تريد التواصل مع مركز المساعدة يمكنك من خلال هذا الرابط التواصل معهم أما إذا كنت تريد التواصل مع أحد من المدربين أو الأعضاء يمكنك الدخول لملف العضو وستجد علامة الرسالة قم بالضغط عليها ثم قم بكتابة الرسالة التي تريدها
  10. يعتبر ذلك طبيعي لماذا لأن ال جملة ag1&ag3 لم تأخذ عرض محدد لذلك تأخذ العرض الذي يساوي 1 column ويناسب عرض الجملة بالضبط لذلك لا يؤثر التوسيط ولكن إذا قمت بوضعها داخل span وقمت بإعطائه عرض أكبر من 1 column سترى النتيجة لذلك قم بالتعديل التالي وسترى الجملة يحدث لها توسيط <span class="ag1"> ag1 <br> 1 of 11</span> ثم قم بإضافة التنسيقات التالية .ag1{ background: white; grid-column:1/3; grid-row:1/2; }
  11. يعتبر هذا المشروع هو نظام تشغيل لل desktop ولكن من خلال الويب وتحتاج لاستخدامه تنزيل ال go language من خلال هذا الرابط تحتاج بعد ذلك تنزيل المستودع الخاص بالمشروع على جهازك git clone https://github.com/tobychui/arozos ثم بعد ذلك قم بفتح ال cmd من داخل المجلد arozos/src أو يمكنك تغيير المسار من خلال cd .\arozos\src\ وأخيراً قم بعمل build للمشروع من خلال go build
  12. سأوضح لك فكرة عمل البرنامج ثم يمكنك بعد ذلك تطبيق الخطوات باللغة التي تتقنها يتم أخذ رقمين من المستخدم وحفظ كل رقم في متغير يمكنك معرفة أي الرقمين أكبر عن طريق الدوال الجاهزة كتابة حلقة التكرار وسيكون بداية الحلقة هو الرقم الأصغر في حالة الإتجاه التصاعدي أو الرقم الأكبر في حالة الإتجاه التنازلي يمكن التحويل بين الإتجاه التنازلي أو التصاعدي عن طريق ال if
  13. أولاً بهذه المهارات التي تعلمتها يمكنك بناء أي موقع مهما كان ولكن طبعاً ستحتاج للتطبيق كثيراً لمعرفة الطرق المختلفة لتنفيذ مهمة معينة وإكتساب الخبرات وتعلم أفضل الممارسات عند العمل ك frontend ثانياً بعد تخطي الخطوة السابقة سيكون عليك تعلم الأدوات والتقنيات التي ستسهل عليك العمل وجعل بيئة التطوير أكثر إنتاجية مثل bootstrap لتسهيل العمل ب css وأيضاً أحد إطارات العمل للجافاسكربت لأنها أصبحت الأن من المتطلبات اللازمة لل frontend ولتطوير بيئة العمل ستحتاج لتعلم شيئاً مثل webpack للقيام ببعض المهام المتكررة بالطبع ستتعلم مع webpack بعض التقنيات مثل npm وللعمل مع فريق كامل بشكل متناسق ستحتاج لتعلم git بالطبع أمامك الكثير لتعلمه ولذلك لا تنظر للوقت الذي تحتاجه للتعلم لأنك لن تتوقف عن التعلم إذا أردت أن تكون من المحترفين
  14. توجد العديد من الطرق مثل عن طريق الوسم style في أعلى صفحة ال html <style> <!--يتم وضع التنسيقات هنا--> </style> ال inline-style عن طريق الخاصية style للعنصر <h1 style="color: red;"></h1> ال style sheet وهو عن طريق ربط صفحة ال html بصفحة منفصلة تحتوي على تنسيقات الcss <link rel="stylesheet" href="style.css"> ولكل طريقة استخدام ومميزات ولكن الطريقة الأحتراقية والشائعة هي ملف خاص بال css
  15. أولاً ال gatsby و ال next يستخدمان ال react لذلك ما هما إلا تطوير لل react ولكن ما هو التطوير الذي سأستفيد منه باستخدام أياً منهما NEXT يقوم بتسهيل العمل بال react مثل إختصار كتابة ال routes وإستبدالها ب routes ذاتياً إعتماداً على مجلدات وملفات المشروع والوظيفة الأكثر أهمية هي ال server side rendering مما تساعد بشكل كبير على تحسين ال SEO للموقع gatsby يعتبر static site generator وهو مفهوم جديد للمواقع الديناميكية بحيث يتم فيه الإستغناء عن استخدام قواعد البيانات وبالتالي اتخدام ال backend فمثلاً يمكنك بناء مدونة وإضافة محتوى جديد بدون أي cms ويمكنك أيضاً استخدام ال NEXT ك static site generator لذلك يمكنك استخدام التقنية التي تخدم الأهداف المطلوبة للمشروع
  16. حاول أن تجرب تحديث الإعدادات لل npm عن طريق التالي مسح الإعدادات npm config delete prefix ثم بعد ذلك قم بتنفيذ الأمر التالي npm config set prefix /usr/local ثم أخيراً قم بإعادة تثبيتها npm i -g gatsby-cli وجرب هل تم تثبيتها أم لا
  17. هناك خطأ بسيط وهو حول ال export و ال import حيث نحتاج عند عمل import بالطريقة التي قمت بها أن يكون ال export default كالتالي import React from 'react'; export class Navbar extends React.Component {//default لاحظ كلمة render(){ return ( <ul className="navbar navbar-full"> ... </ul> ); } } أما إذا أردت عمل import ولكن بدون استخدام ال default export أو تحتاج لاستخدام named export يجب عليك وضع ال {} حول الكائن الذي تريد إستدعائه كالتالي import React from 'react'; import ReactDOM from 'react-dom'; import {Navbar} from './components/navbar.jsx';//{ } لاحظ ال export class App extends React.Component{ render(){ return( <Navbar /> ... ); } } ReactDOM.render(<App />, document.getElementById('root'));
  18. أولاً هذا الخطأ error overlay الخاص ب react يظهر فقط في وضع ال Development mode ولن يظهر في ال production mode ويمكنك تعطيل ذلك عن طريق package تسمى react-error-overlay وتستخدم الدالة stopReportingRuntimeErrors كالتالي أولاً تقوم بإضافة ال package yarn add react-error-overlay ثم قم بعد ذلك بإستخدامها في ال root قبل استخدام ال render كالتالي import { stopReportingRuntimeErrors } from "react-error-overlay"; if (process.env.NODE_ENV === "development") { stopReportingRuntimeErrors(); } .بعد عمل الخطوات السابقة لن تظهر error overlay مرةأخرى
  19. يمكنك عمل ذلك من خلال ال create react app عن طريق كتابة HTTPS=true&&react-scripts قبل الأمر start في ملف ال pachage.json كالتالي "scripts": { "start": "set HTTPS=true&&react-scripts start", ... } وسيعمل المشروع بشكل صحيح
  20. نعم هذه هي طريقة الاستخدام الصحيحة ولكن يجب جعل حرف ال S في كلمة "capital "String وهناك أنواع أخرى طريقة استخدامها كالتالي int myNum = 5; // رقم صحيح float myFloatNum = 5.99f; // رقم يحتوي على كسور char myLetter = 'D'; // حرف boolean myBool = true; //logical النوع المنطقي String myText = "Hello"; // محتوى نصي
  21. الدوال هي ببساطة مجموعة من الأكواد التي تؤدي مهمة معينة وأهميتها تتلخص في تنفيذ المهمة بإستدعائها بدلاً من نسخ الأكواد مرة أخرى بمعنى إذا كان لديك دالة تريد تنفيذها عدة مرات في برنامج واحد فبدلاً من كتابة الأكواد الخاصة بها في كل مرة تريد استخدامها يمكنك بكل بساطة إستدعائها وكيفية العمل بها تختلف من لغة إلى لغة من حيث ال syntax ولكن الطريقة واحدة وهي كالتالي function functionName(){ //الكود } //لإستدعاء الدالة نستخدم التالي functionName() وطبعاً ال syntax يختلف من لغة للأخرى
  22. سأكتب الفكرة وراء عمل مثل هذا البرنامج وهي كالتالي كتابة for loop تقوم بتكرار for loop بداخلها وعدد تكرارات هذه ال loop هو عدد صفوف الشكل الهرمي كتابة for loop ثانية بداخل ال loop الأولى بحيث تكون وظيفة هذه ال loop طباعة الشكل الذي تريده ويزيد تكرار هذه ال loop بزيادة رقم التكرار الخاص بال loop الأولى وهذه هي الفكرة يمكنكي تطبيقها وإن واجهكي مشكلة في تنفيذه يمكنكي طرح السؤال
  23. كما وضح المدرب عبدالله فإن من الطبيعي فقدان الثقة في بداية التعلم ولكن عند بداية العمل وتنفيذ أول المشاريع لك سترى أن الموضوع لا يحتاج كل هذا التوتر والقلق وألخص لك ما يجب عليك فعله بما أنك في مرحلة التعلم أنصحك بشدة بالتخصص في مجال محدد والتعمق فيه وبناء العديد من المشاريع بعد كسب الثقة وتعلم ما يكفيك لتفيذ المشاريع الخاصة بمجالك ينبغي عليك تعلم بعض المهارات مثل فن التسويق و الإقناع و كيفية بناء portfolio قوي يوضح المهارات التي تتقنها وهذه المهارات لا تقل أهمية عن البرمجة أو المجال الذي تتقنه بعد ذلك قم بالتقدم للعمل وسأضمن لك بعد تنفيذ الخطوتين السابقتين أنك ستقوم بتنفيذ العديد من المشاريع سواء freelancing أو وظيفة ثابتة
  24. كما شرح المدرب أحمد عند طباعة ال username لم يتم تحديث قيمة ال state عمل المطلوب بالأعلى عن طريق وسائل أخرى مثل بدلاً من استخدام قيمة ال state يمكنك استخدام console.log(e.target.value); أو يمكنك استخدام ال hook useEffect كالتالي useEffect(() => console.log(username), [username]);
  25. ليس هناك مشكلة في الكود و يعمل ال webpack عندي بدون مشاكل لذلك قم بإعادة تشغيل برنامج vs code ولكن قم بفتحه as administraor من خلال الضغط بالزر الأيمن لل mouse وستظهر لك قائمة إختر منها run as administraor ثم قم بالتجربة مرة أخرى
×
×
  • أضف...