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

Adnane Kadri

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

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

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

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

    52

كل منشورات العضو Adnane Kadri

  1. من الصعب تحديد المشكلة التي تواجهها من دون الاطلاع على تفصيل كامل لها ولنص رسالتها. ولكن عموما فيما يلي بعض النصائح التي تساعدك في العمل على مثل هاته المشاكل: اعط تسميات واضحة صريحة للمتغيرات والدوال والتوابع لديك. تأكد من التزام ترتيب منطقي وتسلسلي للشيفرة لديك وأعد ترتيبها بما يدل على وظيفيتها. اهتم أكثر بنظافة الشيفرة وبضبط المسافات البادئة بشكل يجعل الشيفرة مقروءة. لا تقم بتعريف متغيرات لا تقوم باستعمالها. فيما يلي محاولة لتنقيح وتهوية شيفرتك أكثر: var string_id = 1231414; var page_title = document.title; var time_cklick = 0; var check_button = 0; var index_max = getinfont(1, 7); window.onload = function() { setTimeout(function() { $('div[class="gow-wrap"] img').remove(); }, 2000); setTimeout(function() { $('div[class="gow-tumbleweed"]').remove(); }, 2000); setTimeout(function() { $('span[class="gow-btn-mid__val"]').remove(); }, 2000); /*$('div[class="gow-fan"]').attr("style",'bottom:-150px; left:1%; width:100%; height:100%; background:url(https://i.ibb.co/gyzFHVS/150.jpg) no-repeat 50%')*/ ; document.onclick = ({ target }) => { page_title = document.title; if (page_title.indexOf('Wild West Gold') !== -1) { console.log(page_title); let parent = target; if (parent.className == "gow-start-btn gow-btn gow-btn-green gow-btn-mid our-btn dont_touch") { console.log(0); get_format_new(); index_max = getinfont(1, 7); get_format(index_max); } if (parent.className == "gow-btn gow-btn-brownl gow-get-price gow-btn-mid") { console.log(1); get_format_new(); } } } }; function getinfont(min, max) { min = Math.ceil(min); max = Math.floor(max); return_tt = Math.floor(Math.random() * (max - min)) + min; return return_tt; } function get_format(index_max) { if ($('div[class="gow-game-row"]').eq(0).children('div[class="gow-game-cel"]').length == 2) { for (i = 0; i < index_max; i++) { var get_infont = getinfont(0, 2); $('div[class="gow-game-row"]').eq(9 - i).children('button').eq(get_infont).attr("style", 'background:url(https://v2l.cdnsfree.com/default/img/gold_of_west/gow-win-img.jpg)'); } } else { for (i = 0; i < index_max; i++) { var get_infont = getinfont(0, 3); $('div[class="gow-game-row"]').eq(9 - i).children('button').eq(get_infont).attr("style", 'background:url(https://v2l.cdnsfree.com/default/img/gold_of_west/gow-win-img.jpg)'); } } } function get_format_new() { $('div[style="background:url(https://v2l.cdnsfree.com/default/img/gold_of_west/gow-win-img.jpg)"]').attr("style", ''); }
  2. يبدوا أن المشكلة هي بخصوص استعمال الوظيفة render في مكون وظيفي functional component وهي في هاته غير جائز استعمالها، لأنها تتفرع كتابع عن أي صنف يرث الصنف React.component أو بمعنى آخر، عن أي مكون class component. لا داعي لتصريح واستعمال render() ولذلك سيمكنك مباشرة استخدام السياق التالي: import React from 'react' export function About() { return ( <div>About</div> ) }
  3. بجانب الاحتمالات والحلول التي طرحها المدربان، يمكن أن تكون المشكلة هي بخصوص عدم تحديد أذونات الوصول بشكل صحيح، أو عدم تضمين ملف الاكسجريبت بشكل صحيح في المصفوفة الموجودة في الملف المانيفست. ولذلك تأكد من كل النقاط التالية: أن اسم ملف الاسكريبت يسمى بشكل صحيح ويقع في المسار الصحيح. أن ملف المانيفست يحتوي على صلاحيات الوصول الصحيحة للمواقع التي تريد استخدام الاسكريبت بها، ويمكنك إضافة صلاحيات الوصول بشكل صحيح في الملف المانيفست. أيضا قم بالتوجه الى صفحة ادارة الاضافات والتطبيقات من على متصفحك كروم وقم باستعراض وتشخيص اي اخطاء تظهر هنالك بخصوص تطبيقك. (انتبه الى ان هذا سيقتضي تسجيلك للتطبيق بصورة صحيحة)
  4. ان كان السؤال عن القدرات فنعم سيمكنك، وسيكفيك المهارات التي تعلمتها في دورتي تطوير واجهات المستخدم بالإضافة الى دورة تطوير التطبيقات باستخدام لغة بايثون، هذا بجانب بعض الجزئيات الأخرى التي ستتعلمها أثناء العمل. ولكن ان كان السؤال عن القيام بذلك بذات الجودة التي هي عليها منصة اكاديمية حسوب، فلا أظن أن ذلك سيكون بالشيء اليسير. خصوصا وأن نظام الأكاديمية يتم تطويره وتحسينه منذ سنين من قبل فريق من المختصين، كل منهم مختص في جزئية معينة. فالعمل على نظام بحجم أكاديمية حسوب مع ضمان الجودة ومراقبتها وضمان صيانتها وامكانية ادارة حجم كبير من الموارد مثل الذي يعرض فيها يحتاج على الأقل تنسيقا بين فريق عمل مختص، وإلا فمن طرف مطور ذو خبرة عملية ومتمرس لمقاربة كل فكرة على حدة. ولكن بشكل عام، سيمكنك التطوير من الفكرة ان شئت الاجتهاد في الأمر. سيجب عليك فقط التحلي بالصبر والتأكد من التزام معايير الجودة والتركيز على قابلية التوسع لتطوير كل ميزة واحدة واحدة.
  5. قد قمت باختبار ملفات المشروع ولا يبدوا أن هنالك مشكلة سوى أن هاته الحزمة تعتمد على جيكويري كحزمة تبعية، واستعمال هاته الأخيرة في تطبيق رياكت لا يعد خيارا جيدا ولا عمليا أصلا. جرب استعمال واحدة من الحزم الخاصة برياكت على وجه الخصوص، وبدل الاعتماد على الحزمة التبعية وعلى جيكويري سيمكنك الاعتماد على رياكت وحده. أجد حزمة مثل react-image-magnify عملية وسلسلة من حيث الاستعمال وأكثر مرونة. جرب الإعتماد عليها في تطبيق فكرتك بدل حزمة magnify التي تتطلب حزمة jQuery.
  6. المورد او resource في إطار تطبيق لارافيل، يمكن أن يكون أي شيء يتم التعامل معه عن طريق API. على سبيل المثال، إذا كان التطبيق هو تطبيق مدونة، فإنه يمكن أن يكون المورد هو المقالات أو التعليقات. يمكن أن يكون المورد مصدرًا للبيانات المختلفة مثل العملاء أو الطلبات أو المبيعات أو أي شيء آخر يتم التعامل معه من خلال API. ولذلك فإنك ستجد مثل هاته الكلمة متكررة كثيرا في تطبيقات لارافيل. فالمستخدم هو مورد، والمقالة هي ايضا. وكذلك أي نموذج بيانات معين او مصدر للبيانات.
  7. يتم التعامل مع عمليات التوجيه في تطبيقات الخادم بهاته الأفعال غالبا، ولكل منها دلالة معينة رغم أن بعضها قد يشترك في طريقة عمله او تخاطبه بوساطة بروتوكول الـ HTTP. ولكن بشكل عام: GET: تُستخدم للحصول على المعلومات من المورد، مثل الصفحات أو البيانات من قاعدة البيانات. مثال: طلبية عرض صفحة المستخدم. POST: تُستخدم لإنشاء مورد جديد عند إرسال البيانات إلى الخادم. مثال: طلبية انشاء مستخدم جديد. PUT: تُستخدم لتحديث المورد بالكامل، مثال: طلبية تحديث بيانات مستخدم معين، بحيث يتم تحديثها بالكامل. PATCH: تُستخدم لتحديث المورد بشكل جزئي، مثال: طلبية تحديث بيانات مستخدم معين، بحيث يتم تحديثها بشكل جزئي. DELETE: تُستخدم لحذف المورد بشكل كامل. وهاته هي افعال وطرق HTTP، وتتواجد كتوابع للصنف Route بالاضافة الى بعض التوابع الأخرى. لتشير الى نفس الشيء ايضا. فالتابع get يولد مسارا بالطريقة GET و التابع post يولد مسارا بالطريقة POST وما الى ذلك .. اما بالنسبة للتابع view فهو يستعمل لتصيير صفحة عرض انطلاقا من المسار. على سبيل المثال: Route::view('/home' ,'main-page'); عند طلب المسار home/ سيقوم تطبيق لارافيل لديك بالبحث عن ملف العرض main-page.blade.php لتصييرها كصفحة. فكر بالأمر بمدلوله ليسهل عليك التعامل معه، فـ PATCH بالانجليزية تعني ترقيع، والترقيع قد يشير الى ضبط جزئية او تعديل جزء معين من الكل. في حين أن الوضع أو PUT تحمل مدلولا الى وضع شيء بدل الآخر، وهذا هو الفرق بينهما ببساطة فالفعل PATCH يستخدم للطلبيات التي يتم تحديث فيها جزئية معينة، في حين ان PUT يستخدم للطلبيات التي يتم فيها تحديث المورد بشكل كامل.
  8. بجانب إمكانية حقن شيفرة HTML مثلما أشار اليك المدرب مصطفى فإنه يمكنك أيضا حقن شيفرة HTML في صفحة التدوينة لديك أيضا. اذ ويكون ذلك عن طريق: الانتقال إلى صفحة التحرير في المدونة اختيار خيار "HTML" في شريط الأدوات. اذ سيتيح لك ذلك إدراج أي كود HTML تريده في منشوراتك أو صفحات المدونة. يمكنك استخدام هذه الطريقة لتخصيص التصميم وإضافة المزيد من الوظائف إلى مدونتك وما الى ذلك. مما يعني أنه يجب عليك توخي الحذر عند إضافة الكود HTML إلى مدونتك، حيث يمكن أن يؤثر على تصميم المدونة وسرعة التحميل. لذلك، يجب عليك اختيار الكود بعناية والتأكد من عدم تأثيره سلبًا على تجربة المستخدمين.
  9. تحتوي أكاديمية حسوب على واحدة من أحسن الدورات في هذا الخصوص، فهي تخصص مسارا كاملا نظريا عن NodeJS واكثر من مسار عملي. هاته الدورة هي دورة تطوير التطبيقات باستخدام جافاسكربت، فهي بجانب تعليمك NodeJS ستعلمك كلا من: أساسيات لغة JavaScript أساسيات React.js أساسيات Node.js تطوير تطبيق جوال باستخدام React Native تطبيق دردشة يشبه WhatsApp تطوير تطبيق سطح مكتب باستخدام Electron.js إنشاء تطبيق أسئلة وأجوبة باستخدام Next.js تطوير تطبيق جوال للتواصل الاجتماعي باستخدام Ionic تطبيق حجز مناسبات باستخدام GraphQL تفاصيل إضافية
  10. أشجعك على اهتمام بالبرمجة في مثل هذا العمر، وبالطبع سيفيدك الاستزادة منها والتوغل في مفاهيمها، ولكن لا اقترح عليك العجلة في الأمر. فإن كان هدفك العمل، فقد لا يكون مناسبا لك في عمر صغير، فهو يتطلب بعض المتطلبات الأخرى التي يمكن أن تتوفر في عمر مناسب. ولكن بشكل عام، الدخول في المجال في سن مبكرة سيشجعك على الإبداع مستقبلا، وباستطلاع بسيط سيمكنك معرفة أن حتى المبرمجين المحترفين عالميا قد بدأو البرمجة في سن مبكرة. وبما أن دورات الأكاديمية ذات وصول دائم، فستحصل على إشعار بأي تحديثات مستقبلية مما سيعني أنك ستحصل على محتوى قيم بشكل دائم، بشكل يواكب أي تغييرات قد تحصل حتى بلوغك السن الطبيعي للعمل. ولحد ذلك، سيمكنك تطوير استيعابك وتفكيرك البرمجي والرياضي والقدرات المنطقية لديك، بشكل يجعلك قادرا على الإبداع مستقبلا.
  11. السؤال عن الفرق بين main و master هو سؤال عام جدا فقد يكون لكلمة main دلالة معينة مثلا في لغة جافا او c++، وفي سياق git في مثالك هما مثلما أشير اليه سابقا.
  12. الفرق بين main و master يختلف حسب السياق الذي يستخدم فيه كل منهما، ولكن بشكل عام: في Git: كان يتم استخدام الفرع الافتراضي "master" للإشارة إلى النسخة الرئيسية من المستودع، ولكن في الآونة الأخيرة، تم تغيير اسم الفرع الافتراضي إلى "main" في الإصدارات الحديثة من Git، تماشيًا مع الجهود العالمية للحد من استخدام المصطلحات التي قد تسيء إلى بعض الأشخاص مثلما اشار المدرب مصطفى. أما في البرمجة بشكل عام: فعند كتابة برنامج، يعتبر الدالة main هي دالة البداية التي يتم تشغيلها في البداية، وتعتبر بمثابة الباب الرئيسي للبرنامج، ويتم العودة إليها في النهاية. يجب الانتباه إلى أن استخدام "main" أو "master" يختلف تبعاً للسياق ويمكن أن يختلف في الاستخدام بين اللغات البرمجية وأدوات إدارة المشاريع المختلفة. وفي حالتك، هو ليس أكثر من تسمية الفرع الرئيسي لمستودع git لديك.
  13. مرحبا اسامة، سعر الاشتراك في أي دورة من دورات أكاديمية حسوب هو 290$. وهي: دورة ادارة تطوير المنتجات . دورة علوم الحاسب. دورة تطوير التطبيقات باستخدام لغة جافاسكربت . دورة تطوير التطبيقات باستخدام لغة بايثون . دورة تطوير التطبيقات باستخدام لغة PHP . دورة تطوير التطبيقات باستخدام لغة Ruby. دورة تطوير واجهات المستخدم.
  14. مرحبا صلاح، لا يتم حل الأسئلة الاختبارية بشكل مباشر في الأكاديمية، جرب العمل على محاولة وسنعينك في بلوغ الصواب. فيما يلي بعض الخطوات العامة التي يمكنك الاستعانة بها لعمل المطلوب: أنشئ فئة للدرجات تحتوي على التالي: مصفوفة تخزن الدرجات للطالب الواحد دالة تحسب مجموع الدرجات دالة تحسب المعدل دالة تحسب التقدير دالة تطبع اعلى درجة مع المعدل والتقدير يتم إنشاء فئة للطالب تحتوي على التالي: اسم الطالب كائن لفئة الدرجات يتم إنشاء كائن لكل طالب يحتوي على معلومات الطالب والدرجات. يتم إنشاء مصفوفة تخزن كائنات الطلاب. يتم إنشاء دالة تطبع اعلى درجة مع المعدل والتقدير لجميع الطلاب في المصفوفة. يتم انشاء دالة main() لادخال درجات الطلاب وطباعتها. يتم استدعاء الدوال وإرجاع القيم الناتجة لتطبيقها على بيانات الطلاب. يتم تشغيل البرنامج واختباره.
  15. جرب استعمال ترميز &lt; المعبر عن الرمز > لتجنب تفسير وسم php?> كوسم بداية لشيفرة PHP، فيكون: &lt;php? echo "النص النص النص"; ?&gt; سيتم تفسيرها كـ: <?php echo 'النص النص النص'; ?>
  16. بجانب المقترح، يمكنك تصدير مشروعك في لغة Go إلى ملف تنفيذي exe باستخدام أحد أدوات التحزيم (Packaging) المتاحة. أحد هذه الأدوات هي آداة "goxc"، وهي أداة تحزيم مستقلة عن go. يمكن استعمال الامر التالي لتثبيت الآداة: go get github.com/laher/goxc ثم الأمر التالي لتخريج وتحزيم المشروع بها: goxc -d=./out -pv=1.0.0 -os="windows" -arch="386 amd64" -bc="windows,amd64" حيث تعني كل من: -d: مجلد الإخراج للملفات المعبأة. -pv: رقم الإصدار الحالي للمشروع. -os: نظام التشغيل المستهدف (Windows). -arch: المعمارية المستهدفة (32 بت أو 64 بت). -bc: البناء المستهدف.
  17. يحتمل أن المشكلة في استخدام setInterval داخل useEffect، حيث أن setInterval لا يتوقف عن العمل عند إعادة رسم العنصر الخاص بالمؤشر الزمني، مما يؤدي إلى تكرار تشغيل المؤشر الزمني وزيادة ثانيتين في كل دورة. يمكن استخدام setTimeout بدلاً من setInterval، وإعادة تشغيل المؤشر الزمني فقط عند تغيير الحالة. وللحفاظ على تحديث المؤشر الزمني كل ثانية، يمكن إنشاء دالة مساعدة تستدعى setTimeout مع مهلة زمنية وتحديث الحالة. const [timer, setTimer] = useState(0); const format = (time) => { let hours = Math.floor((time / 60 / 60) % 24); let minutes = Math.floor((time / 60) % 60); let secondes = Math.floor(time % 60); hours = hours < 10 ? "0" + hours : hours; minutes = minutes < 10 ? "0" + minutes : minutes; secondes = secondes < 10 ? "0" + secondes : secondes; return hours + ":" + minutes + ":" + secondes; }; const updateTimer = () => { setTimer((timer) => timer + 1); setTimeout(updateTimer, 1000); }; useEffect(() => { setTimeout(updateTimer, 1000); }, []); return <div>{format(timer)}</div>;
  18. باختصار، كل من الدورات التالية تؤهلك للعمل كمطور ويب شامل: دورة تطوير التطبيقات باستخدام لغة Python دورة تطوير التطبيقات باستخدام لغة JavaScript دورة تطوير تطبيقات الويب باستخدام لغة PHP دورة تطوير تطبيقات الويب باستخدام لغة Ruby فكل منها تستعمل لتطوير تطبيقات الويب، وسيمكنك استعمال اي منها لعمل تطبيقات ويب شاملة ومتكاملة. هذا بجانب أن كلا منها يتفصل في شرح أشهر أطر عملها ومكتباتها على الساحة، ففي Python نجد Django و في Javascript نجد MERN stack وفي PHP نجد Laravel وفي Ruby نجد Rails. وكلها يتم التعرض له بإسهاب في الدورة الخاصة به. ولذلك فإنه سيجب عليك فقط اختيار المسار الذي تريد التخصص فيه والبدء في الأمر مباشرة.
  19. بجانب الفروقات التي أشار اليها المدربان، وجب الاشارة ايضا الى أن هنالك ملف composer.phar الذي هو الآخر ملف يختلف عن كليهما كليا. فهو ملف قابل للتنفيذ يستخدم لتثبيت وإدارة حزم PHP باستخدام أداة Composer دون تثبيتها. اذ يتم تحميله عادة من الموقع الرسمي لـComposer. تختلف الميزات التي يوفرها ملف composer.phar قليلاً عن تلك التي تقدمها النسخة المثبتة من Composer. فعلى سبيل المثال، يمكن استخدام ملف composer.phar لتثبيت Composer على نظام لا يحتوي على PHP، ويمكن تشغيل الملف phar على أي منصة تدعم PHP. يتم استخدام الملف composer.phar عند تشغيل الأوامر التالية: php composer.phar install php composer.phar update ويتم استخدام هذا الملف بدلاً من تنزيل وتثبيت Composer على النظام المحلي. يتم تنفيذ الملف composer.phar بتشغيله باستخدام PHP من خلال الأمر "php composer.phar" متبوعًا بالأمر المطلوب.
  20. أظن أن موضوع شريك التعلم هو من أكثر المواضيع تكررا في الوسط البرمجي ككل. ولكن لا يوجد اي شرط او لازمة لذلك في الغالب. ورغم بعض الميزات التي يفرضها الالتزام بالتعلم مع الشريك من مثل: تنظيم الوقت التحفيز على التعلم والتحصيل اكثر التشجيع على المنافسة والاطلاع إلا أنه يمتلك سلبيات لا يجب الغفلة عنها، من بينها: الخضوع لظروف الآخر وتوقيته واحتمال عدم التزام الشريك، فليس كل الناس سواءا من ناحية الظروف المحيطة فقد يمكنك التعرض لمادة علمية لمدة 6 ساعات مثلا في حين ان شريكك غير قادر على التركيز بعد ان يتجاوز الساعتين. هذا بجانب احتمالية تعطيل التعلم لسبب يخص شريكك ولا يخصك اصلا. الفروقات في الاستيعاب والتركيز والذكاء، وهو ما يؤدي في الأخير الى استفادة احد الطرفين دون الآخر. طبيعة المجال تقتضي الاجتهاد والبحث والتطوير والشخصي. اختلاف الرؤى والاهداف، وهو الأمر الذي قد يؤثر في مسار التعلم او في طريقته او في كثافته.
  21. طبعا فإن هذا يعتمد على اللغة التي تستخدمها مثل ما اشار اليك المدرب مصطفى، فإذا كنت تستخدم لغة برمجة مثل Python يمكنك استخدام برامج مثل برنامج PyInstaller . فهي تطبيقات وبرمجيات تقوم بتحزيم المشروع وجميع المكتبات التي يعتمد عليها في ملف تنفيذي واحد exe .. أو برنامج Launch4j مثلا للتعامل مع مشاريع جافا أو Advanced Installer لمشاريع Net. ابحث عن البرمجية المناسبة للغة التي تستعملها وسيمكنك ايجاد الكثير.
  22. بالطبع فإنه من الممكن أن يتعرض كود PHP للاختراق إذا لم يتم كتابته بطريقة آمنة متينة. واضافة الى ما أشار اليه المدربون، فيما يلي بعض الممارسات الأخرى التي تقلل من احتمالية ذلك: استخدام بروتوكولات SSL / TLS: لتأمين اتصالات الشبكة، ويتم توفيرها عادة من قبل مزود خدمة الاستضافة. استخدام إعدادات php.ini الآمنة: اذ يجب تعيين الإعدادات الأمنية في ملف php.ini للتحكم في سلوك PHP والتحكم في إدارة الأخطاء والتقارير، مثل تخريج الاخطاء وغيرها. إخفاء معلومات الاتصال بقاعدة البيانات: اذ يجب إخفاء معلومات الاتصال بقاعدة البيانات في ملفات الكود لعدم إتاحة هذه المعلومات للمهاجمين. استخدام اطر العمل التي تهتم بمعالجة مثل هاته الثغرات، من مثل لارافيل و Symfony و codeigniter وغيرهما. الاستعانة بمفاهيم البرمجة كائنية التوجه في معالجة البيانات وتخريجها من مثل التغليف encapsulation وما الى ذلك. الصيانة الدورية. متابعة سجلات الوصول Access Logs والمستخدمين الجدد قبل منحهم صلاحيات معينة. استعمال مقيدات معدل التراسل Rate limiting، وذلك للحد من هجمات DDos وما الى ذلك. الحد من استخدام الوظائف المتخصصة في اللغة من مثل eval و exec وغيرهما، مثل هاته الاوامر تعتبر مكافئات لسطر اوامر. الحد من الوصول العام للملفات والمجلدات وادارة الاذونات والصلاحيات عليها.
  23. مرحبا عبدالله، عند إتمام عملية الشراء ودفع المبلغ سيتم إرسال تأكيد بالشراء إلى بريدك الإلكتروني المسجل في الأكاديمية، فبعد مراجعة طلبك والتأكد من وسيلة الدفع المستخدمة، ستلاحظ إضافة أيقونة جديدة في الشريط العلوي للموقع باسم دوراتي، عند الضغط عليها ستصل إلى الدورات التي سجلت بها، أين سيمكنك بدأ الدروس. وقد يأخذ ذلك بضع دقائق إلى ساعات.
  24. ان كان السؤال هو حول سطر الاوامر في محتلف أنظمة التشغيل، ففيما يلي بعض الطرق الشائعة لكل نظام: في نظام Windows: اضغط على زر "Start" ثم اكتب "cmd" في صندوق البحث. اضغط على مفتاح "Enter" لفتح نافذة سطر الأوامر. في نظام MacOS: افتح "Terminal" من الـ "Applications" أو من خلال البحث. يمكنك أيضًا استخدام الاختصار "Command + Space" لفتح نافذة البحث، ثم اكتب "Terminal". في نظام Linux: يمكن الوصول إلى سطر الأوامر بالنقر على زر "Terminal" في شريط المهام، أو باستخدام اختصارات لوحة المفاتيح مثل "Ctrl + Alt + T".
  25. مثلما أشار اليك المدرب مصطفى، فإن شعورك كذلك امر طبيعي ولا مشكلة فيه من الأساس. وفيما يلي بعض الخطوات التي تساعدك في تخطي الأمر وزيادة تحصيلك وتركيزك: قم بتنظيم ملاحظاتك: يمكنك استخدام الورق والقلم أو برامج الملاحظات الإلكترونية لتسجيل المفاهيم والتعليمات التي تحتاجها. احرص على الكتابة بطريقة منظمة ومفهومة لديك. وفي هذا أحب الاشارة دوما للطلبة الى هيكلة دروسهم وفق هيكل الدروس والمسارات في الدورة، فيكون مثلا ملف منفصل لكل درس به تفاصيل او ملاحظات ذلك الدرس. فتكون مرجعا او فهرسا او ملخصا تعود له وقت الحاجة. اعمل على مشاريع عملية: فتطبيق المفاهيم والأفكار المكتسبة في مشاريع عملية يمكن أن يساعدك في فهمها وتذكرها بشكل أفضل. كما يمكنك استخدام المشاريع كطريقة لترسيخ المعلومة والتحقق من فهمك. استخدم الرسوم البيانية والمخططات الذهنية: يمكن استخدام الرسوم البيانية لتصور العلاقات والاتصالات بين المفاهيم المختلفة. يمكنك استخدام مخططات بيانية مثل الدوائر الزمنية أو المخططات الهرمية لتمثيل العلاقات بين المفاهيم وهذا يكون بالطبع وفق فهمك وتصورك ونمذجتك، فهي موجهة لك. ابحث عن المصادر الإضافية: يمكنك البحث عن الموارد الإضافية على الإنترنت مثل الكتب الإلكترونية والمقاطع الفيديو التعليمية والمدونات المختلفة. ويجب في هذا بطبيعة حال التأكد من اختيار مصادر موثوقة او ذات سمعة جيدة. تواصل مع المجتمعات البرمجية: اذ انه من المفيد جدا البقاء في محيط برمجي لكي يمكنك الاستفادة من خبراتهم. كل هذا سيلزمه الصبر وبعد النظر وعدم العجلة بالطبع.
×
×
  • أضف...