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

حمزة عباد

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

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

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

كل منشورات العضو حمزة عباد

  1. بالنسبة للمدة فقد أجابك الأعضاء قبلي. على العموم هذا شيء متغيّر يعتمد على الوقت الذي تخصصه للدراسة وسرعة استيعابك وتطبيقك. أما بالنسبة لكيفية الاختبار، فخلال الدورة ستقوم بإنجاز مشاريع عن طريق متابعة المدرّب في عمله. يجب عليك أن تحتفظ بملفات المشروع التي قمت بإنشائها أثناء متابعته. يجب أن تنجز ما لا يقل عن 4 مشاريع من هذا النوع وأن لا تكتفي فقط بالمشاهدة النظرية بدون تطبيق. بعد ذلك، سوف تقوم برفع هذه المشاريع على GitHub، وثم تحجز موعدا عبر التواصل مع الإدارة. في هذا الموعد سيتحدّث معك أحد المدرّبين صوتيا لكي يتأكد من دراستك وفهمك لما تم القيام به في الدورة. إذا وجد المدرّب أنك متمكّن، فسوف يقترح عليك مشروع تخرّج خاصّا بك، بحيث تقوم فيه بتطبيق كلّ ما تعلّمته. وبناء على هذا المشروع يتم تقييمك وإعطاء شهادة التخرّج لك. لذلك، فالاختبار ليس ورقة أسئلة تجيب عليها ويتم احتساب عدد مرات المحاولة فيها، لكنه مشروع حقيقي يشبه ما تفعله مع العملاء الحقيقيّين. لذلك لا توجد عدد محاولات معيّنة فيه. للمزيد من المعلومات حول الامتحان والشهادة والتواصل مع الإدارة، يمكن مراجعة الصفحة المناسبة على مركز المساعدة.
  2. إذا كان المطلوب هو تطبيقات الهاتف، أو تطبيقات سطح المكتب، فالجواب عموما هو لا. لأن Flutter لديه طريقة خاصّة في إنشاء الواجهات، وهي تعتمد على مفهوم القطع Widgets الذي هو مختلف اختلافا كبيرا عن مفاهيم الوسوم Tags والأنماط Styles المستخدمة في HTML و CSS. كما أن تخطيط الواجهة وكيفية تغيرها مع حالة النافذة أو الجهاز أيضا يختلف كثيرا. أما إذا كان المطلوب هو إنشاء تطبيقات الويب باستخدام Flutter، فالجواب هو أيضا لا، لكن مع بعض الملاحظات، حيث أن تطبيق Flutter يتم عرضه من خلال صفحة ويب، وهذه الصفحة مكتوبة بـHTML، وتقوم بتشغيل كود JavaScript. من الأحسن أن يكون لدى المبرمج فكرة عن عمل تلك الصفحة وكيفية تضمينها للتطبيق، بحيث يتمكن من حل المشاكل التي قد تواجهه عند رفع التطبيق على الخادم. لكن على العموم، الجواب المختصر: لا توجد حاجة لدراسة HTML و CSS من أجل إنشاء تطبيقات Flutter عاديّة.
  3. مرحبا إسلام، يرجى طرح الأسئلة في التعليقات أسفل الفيديو حتى نعرف عمّا تتحدث، فهذا قسم للأسئلة العامة ولا أدري أي درس هذا الذي تم استخدام فيه cmder.
  4. وعليكم السلام، دورة تطوير التطبيقات باستخدام JavaScript تعلّم كل ما يتعلّق بـJavaScript وبعض أطر العمل المتعلّقة بها والتي تسمح بإنشاء تطبيقات متقدمة، مثل React JS، Node JS، React Native، TypeScript، Electron.js، Next.js وكذلك Ionic، بالإضافة إلى مفاهيم برمجية مهمة مثل WebSockets و GraphQL. لذلك ربما يوجد دائما ما يمكن أن تتعلمه منها، خصوصا أن الدورات على أكاديمية حسوب يتم تحديثها باستمرار (مثلا مسار TypeScript لم يكن موجودا سابقا وتم إضافته في هذا الشهر فقط. على حد علمي، دورات الأكاديمية يتم بيعها كوحدة واحدة ولا يمكن أن تتجزأ. لكن يمكنك دراسة أي جزء شئت منها. على الرغم من ذلك، لاجتياز الاختبار والحصول على الشهادة، تحتاج على الأقل قبل ذلك أن تثبت أنك درست 4 مسارات منها على الأقل (يمكنك أن تختار المسارات التي لا تجيدها). لذلك، ربما يمكنك اختصار الوقت طبقا لما تعرفه بالفعل في JavaScript، فالدورة ليست مؤقتة ويمكنك الرجوع إلى محتواها متى شئت. يمكنك العثور على معلومات أكثر في مركز المساعدة.
  5. نحتاج إلى تفاصيل أكثر، هل تستطيع فتح الصفحة على حاسوبك؟ هل يظهر كل شيء فيها بشكل صحيح؟ هذه الأمور يجب أن يكون قد تمّت في الدرس السابق. هل الملف الذي تعمل عليه يسمى index.html؟ لا يمكن أن يسمى بغير هذا الاسم. هل الملف موجود مباشرة داخل مجلد المشروع؟ إذ لا يمكن أن يكون في مجلّد داخلي. يرجى إرفاق صور تثبت مكان الملف وكيف قمت برفعه.
  6. توجد طريقة أخرى أبسط من استخدام باقي القسمة (لأنها لا تحتاج إلى رياضيات)، وهي تحويله إلى سلسلة نصية، ثم استخدام حروفها، مع إمكانية تحويل كل حرف إلى رقم مرة أخرى. إليك كيف يتم ذلك: number = 2536 digits = [] for n in str(number): # حلقة تمر على جميع الحروف المشكلة للعدد من اليسار إلى اليمين digits.append(int(n)) # تحويل الحرف إلى عدد print(digits) لو أردنا استخدام باقي القسمة فالشفرة ستصبح أكثر تعقيدا: number = 2536 digits = [] remaining = number # لتتبع حاصل القسمة while remaining != 0: # مادام حاصل القسمة مختلفا عن الصفر digits.insert(0, remaining % 10) # نضع باقي القسمة كأول عنصر في القائمة remaining = remaining // 10 # نستبدل العدد الحالي بحاصل قسمته (الصحيحة) على 10 print(digits) كما ترى، الحل الأبسط هو تحويل العدد إلى سلسلة نصيّة. الحلول التي وضعتها تعمل مع أي رقم مهما كان طوله، بحيث تخزّن أرقامه في قائمة.
  7. عندما تقوم بشراء عنوان نطاق (domain) فلن تحتاج لشراء 2، ستشتري واحدا فقط ويتم ربطه بموقعك وكذلك ببريدك الإلكتروني. بل يمكن ربطه بعدد غير محدود من عناوين البريد، فمثلا يمكن أن يكون هناك contact@mahmoud.tn و support@mahmoud.tn وغيرها، كلها تحت نفس عنوان النطاق mahmoud.tn الذي يمكن أن تربطه بموقعك على عنوان: www.mahmoud.tn. بالنسبة للمصداقية، فلا يوجد شيء يدل عليها بشكل قاطع إلا التعامل المباشر معك، فحتى النصابون يمكنهم أن يشتروا عناوين نطاق خاصّة بهم، فالمسألة متعلقة بالمال. لكن عادة ما يتم إقفال عناوين النطاق الخاصة بالنصابين بعد اكتشافهم، لذلك فكلّما أرادوا الظهور بهوية جديدة كلما احتاجوا لدفع مبلغ إضافي، لذلك فهذا مرهق لهم على المدى الطويل. لذلك يمكن اعتبار اسم النطاق دليلا خفيفا على المصداقية مادام الشخص أو المؤسسة قد صرف بعض المال عليه.
  8. وعليكم السلام، هذان ليسا شيئن متعارضين حتى تختار بينهما، فلكل واحد منهما وظيفته الخاصّة. بالنسبة للحصول على اسم نطاق (domain name) مدفوع (مثل هذا mahmoud.tn) فهذا يتم عن طريق شراءه من شركة توفر مثل هذه الخدمة (بالنسبة للنطاق .tn فهذا مخصص لدولة تونس فقط، لذلك أعتقد يجب طلبها من وزارة الإتصالات التونسية)، لكن هنا نحن نتحدّث عن عنوان النطاق فقط، والذي يتم الحصول عليه بالمال (ليس لهذا علاقة بالبرمجة إطلاقا). بعد ذلك، تأتي خطوة ربط اسم النطاق بموقع موجود أو خدمة بريد إلكتروني. حتى بالنسبة للموقع والبريد الإلكتروني، فهذه لا يجب أن تكون من برمجتك، فقد يقوم أحدهم بربط عنوان النطاق مع بريده على Gmail ومدونته على Wordpress. لذلك، فاسم النطاق لا يعبر عن كونك مبرمجا، بل يعبر عن أنه لديك مال وقمت بدفعه. الحصول على اسم نطاق مدفوع هو شيء مهم للشركات الحقيقية وكذلك للأشخاص المهمّين، فهؤلاء يجب عليهم أن يقوموا بصرف بعض المال على هويتهم على الأنترنت. لأن وجود شركة مثلا تستخدم نطاقا مجانيا هو شيء يضرب مصداقيتها ويضر بسمعتها كثيرا (يعني هذا يجعلها تشبه النصابين والمتسولين في الطرقات!). لكن ليس كل شخص عادي يريد التقدم لعمل يجب عليه أن يشتري اسم نطاق (أنا مثلا لا أملك واحدا). أما بالنسبة للأعمال السابقة (portfolio) فهذه هي المهمة في عالم البرمجة وغيرها عند التقدم للعمل أو محاولة الحصول على عملاء لتعمل على مشاريعهم. عادة ما يقوم كل شخص يريد العمل برفع أعماله السابقة (أو صور منها) على موقع وعرضها عليه، ثم لكي يقنع أصحاب العمل بتوظيفه فإنه يراسلهم ويرسل لهم موقعه الذي يعرض أعماله السابقة, بهذه الطريقة يمكن لأصحاب الأعمال أن يأخذوا فكرة عن خبرة الشخص وقدراته.
  9. إذا كان الأمر كما ذكرت، فنعم يمكنك تخطي الأساسيات. ربما يمكنك أن تبدأ من قسم تطبيقات عملية باستخدام بايثون Python لأنه يتناول بعض التطبيقات الهامة مثل التعامل مع المستندات واستخراج البيانات من الويب. كما يمكنك أن تهتم بالأقسام التي تدرس Django و Flask فهي موجهة لتطوير تطبيقات الويب. أما إذا كنت تقصد التخرّج والاختبار النهائي بكلمة "المخاوف"، فأنت تحتاج إلى إتمام 4 مسارات تعليمية فقط كشرط، ويمكن أن تكون هي مسارات Django و Flask مثلا، هنا يجب عليك إنجاز المشاريع التي يقوم بها المدرب والاحتفاظ بها. وكذلك لن يكون لديك مشكل في اجتياز المحادثة الصوتية مع المدرب وأداء المشروع النهائي الذي يقترحه مادمت قد درست بجد فعلا. للمزيد من التفاصيل حول الامتحان وكيفية التخرج، يمكن قراءة مقال الامتحان والحصول على الشهادة على مركز المساعدة.
  10. تحليل البيانات مفهوم واسع يندرج تحته أمور لها علاقة بالبرمجة وأخرى ليست لها علاقة بها. فمثلا، برنامج Microsoft Excel وأشباهه يعتبرون بالفعل أدوات صالحة لتحليل البيانات في كثير من الأحيان، إذ أنه يوفر طرقا للقيام بالعمليات الرياضيّاتية وللحسابات الإحصائية وإنشاء رسوم بيانيّة بكفاءة عالية. بالمقابل، توجد لغات برمجة مكتوبة خصيصا للتعامل مع البيانات الإحصائية، ولعل أشهرها هي لغة R، حيث أنها توفر كل الوظائف الضرورية التي يحتاجها الإحصائيون والعاملون في البيانات، بما في ذلك إنشاء الرسوم البيانية، لكنها غير موجهة لإنشاء التطبيقات العادية مثل Python. ربما تود القيام ببحث عن هذه اللغة فربما هي التي تناسبك أكثر. بينما لغة Python لم تكن موجهة في الأساس لتحليل البيانات، إلا أن استخدامها الكبير في مجالات الذكاء الاصطناعي كالتعلّم الآلي والتعلّم العميق، وظهور مكتبات متطوّرة عليها مثل Tensorflow و Pytorch جعلها اللغة رقم واحد في مجال الذكاء الاصطناعي. لذلك، إذا كنت تريد التعامل مع نماذج الذكاء الاصطناعي المتطورة والحديثة فهنا قد تحتاج إلى استخدام Python. بالاطلاع على دورة الذكاء الاصطناعي في أكاديمية حسوب (التي أعتقد أنك مشترك فيها بالفعل)، أرى أن المهتم بعلم البيانات سيحتاج إلى تعلّم أساسيات لغة بايثون، الوحدات والحزم، التعابير النمطية، والتعامل مع الملفات النصيّة، لكنك ربما لن تحتاج إلى استخراج البيانات من الويب (هذا على افتراض أنك تملك البيانات التي ستقوم بتحليلها، وإلا فستحتاج إلى دراسة هذه أيضا). سوف تحتاج بالطبع إلى دراسة فصول التعامل مع البيانات وتحليل البيانات. أمّا بالنسبة لنماذج الذكاء الاصطناعي، فهذا راجع إليك فيما إن كنت تريد دراسة هذه أيضا. شخصيّا أنصح بشدّة بتعلّم تقنيات الذكاء الاصطناعي فهي طريق المستقبل.
  11. سأفترض أنك تسأل ما الفرق بين HTML و XHTML، إذ أنّه لا يوجد شيء مشهور في تقنيات الويب يسمى XTML. هما ببساطة نسخ مختلفة لنفس الشيء، والفرق بين الكلمتين موجود لأسباب تاريخية فقط. في البداية، تم إنشاء HTML لتكون لغة لكتابة صفحات الويب. مرّت لغة HTML بتغييرات كثيرة خلال السنوات الأولى، فظهرت منها نسخ مثل HTML 2 و HTML 3 و HTML 4، ومع ذلك تم فصل أنماط العرض منها وتم إنشاء لغة جديدة مختصّة بالأنماط سميت CSS. ثم بعد أن وصلت HTML إلى نسختها الرابعة، اقترح بعض المطورين ايقاف العمل على HTML والانتقال إلى إنشاء لغة XHTML التي ترث صرامة لغة XML لتكون هي اللغة المستقبلية للويب، ففي لغة XML، عندما تقوم بأخطاء في الكتابة فإن المتصفّح لا يحاول إصلاح ما كتبته (كما يفعل مع HTML) بل يعرض خطأ (كما تفعل البرامج التي تتعامل مع XML)، وهذه كانت الفكرة وراء إنشاء XHTML، حيث أن المطورين ببساطة أرادوا أن يفرضوا احترام قواعد HTML لأن كثيرا من المبرمجين لم يكن يحترمها. ولكن في النهاية، أغلب المبرمجين لم ينتقلوا إلى استخدام XHTML، بل طالبوا مطوري المتصفحات بأن يوقفوا هذا التشديد الذي لا داعي له على الشفرة ما دامت المتصفحات بالفعل قادرة على عرض HTML حتى لو كانت فيها أخطاء. لذلك، انتهى مشروع XHTML بعد نسختين فقط، وهما 1.0 و 1.1، ثم عادت HTML إلى الواجهة بنسختها الخامسة HTML 5 والتي هي اللغة الأساسية لتطوير مواقع الويب منذ سنوات عديدة، وهذه الأخيرة تحوي مزايا كثيرة ليست حتى في آخر نسخة من XHTML مثل إمكانية تضمين الفيديو والصوت. إذن ببساطة، يجب اسستخدام HTML 5 كما يفعل كل العالم ولا يجب الالتفات إلى XHTML لأنها نسخة ميتة حاليا.
  12. أسئلة الدورات تظهر للعامة بعد أن يوافق عليها أحد المشرفين. لذلك فهذا عادي. فقط انتظر بعض الوقت ريثما يتم قبول التعليق إذا كان سؤالك صحيحا. أحيانا قد يقوم المشرفون برفض قبول بعض التعليقات بسبب أنها مكررة أو أنه تم كتابتها عن طريق الخطأ أو لأسباب أخرى تجعلها غير مناسبة. إذا استمر المشكل معك فيمكن مراسلة فريق الدعم.
  13. حاليا لغة JavaScript تستخدم في كثير من الأمور، مثل التفاعل على صفحات الويب أو إنشاء تطبيقات خوادم أو تطبيقات هاتف، أو كلغة لتعديل عمل برنامج ما، وغير ذلك. نظريّا، يمكنك تعلّم JavaScript كلغة مستقلّة بدون الحاجة إلى لغة أخرى. لكن في الواقع، JavaScript لا تستخدم وحدها أبدا. المجالان الرئيسيان لاستخدام هذه اللغة هما جهة العميل (client side) وجهة الخادم (server side). بالنسبة لجهة العميل، فبرامج JavaScript تعمل داخل المتصفّح الذي يعرض صفحات مكتوبة بـHTML و CSS، ولذلك، حتى يستطيع JavaScript القيام بشيء ملموس، فإنه يتفاعل مع هذه الصفحات ويقوم بتعديلها. لذلك، يحتاج مطوّر JavaScript الذي يتعامل مع الصفحات أن يكون على دراية بلغتي HTML و CSS على الأقل. أمّا بالنسبة لجهة الخادم، فهنا JavaScript لا تستخدم للتفاعل مع الصفحات بل للتعامل مع الملفات وقواعد البيانات وغير ذلك. في هذه الحالة لا يحتاج مطوّر JavaScript لأن يكون على معرفة عميقة بـHTML و CSS مادام لا يقوم بالتعديل على محتوى الصفحات قبل إرسالها. في الواقع، إذا كنت تريد أن تتعلم من أجل سوق العمل، فمعرفة HTML و CSS ضرورية حتى لو كنت ستبرمج بلغة أخرى غير JavaScript، فهاتان لغتان قاعديتان يفترض بالجميع معرفتهما، لأنه عاجلا أو آجلا سوف يضطر المبرمج للتعامل معهما في المشاريع الحقيقية.
  14. لقد ذكر كاتب المقال في الخاتمة أنّه استخدم برنامج Dia لرسم هذه المخططات: توجد أيضا خيارات أخرى قد تكون أبسط من ناحية الاستخدام وأكثر جاذبيّة، مثل Draw.io.
  15. من شروط التقدّم إلى الامتحان أن تكون أتممت أربعة مسارات تعليمية على الأقل، وأن تكون أنجزت التطبيقات العملية مع المدرّب واحتفظت بها على GitHub لأنه سيطلب منك مشاركتها مع الإدارة. بعد ذلك ستجري محادثة صوتية مع مدرّب لكي يناقش معك ما تعلّمته ويتأكّد من فهمك، وإذا وجدك متمكّنا فسيمنحك العمل على مشروع تخرّج إذا أتممته بشكل صحيح ستحصل على الشهادة. يمكنك الاطلاع على مزيد من التفاصيل في مقال الدعم الخاص بالامتحان والشهادة. لا أظن أنّ هناك عددا محدودا من المحاولات، لأن مشروع التخرّج ليس ورقة أسئلة، لكن من أجل الاستفسار عن ذلك بشكل دقيق، يرجى التواصل مع الدعم.
  16. أوّلا، يوجد خطأ كتابي في السطر التالي: let userValid = fales; حيث أن كلمة fales غير موجودة في JavaScript، فأنت تقصد false (لقد قلبت بين e و s). يوجد أيضا خطأ في السطر: document.forms.onsubmitb = function (e){ فأنت تقصد onsubmit (بدون b). بالإضافة إلى ذلك، لا يمكن أن يحصل الحدث onsubmit على جميع forms، لذلك عليك اختيار واحدة فقط، يعني forms[0]. بعد تصحيح هذه الأخطاء يصبح الكود: document.links[0].onmouseenter = function (event) { console.log(event); event.preventDefault(); }; document.forms[0].onsubmit = function (e){ let userValid = false; let userAge = false; if (userValid == false || userAge == false ){ e.preventDefault(); } } أيضا بالنسبة لـpreventDefault، فهذه تعمل عندما يكون هناك فعل افتراضي يقوم به المتصفّح فتقوم هي بإلغاءه، ولكن في حالة onmouseenter فلا يوجد فعل افتراضي، فهي لن تفعل شيئا. إذا أردت رؤية فعلها حقيقة فاستخدم مثلا onclick.
  17. هياكل البيانات (data structures) هي مفاهيم مهمّة في كلّ لغات البرمجة وليس في Python فقط. لذلك لا يمكن تعلّم أيّة برمجة حقيقيّة من دونها. بعبارة هياكل البيانات فأنا أقصد مثلا: list، dict، set، tuple، وغيرها من الأنواع المشابهة لها. هذه أساسيّات لا يمكن الاستغناء عنها في أي برنامج. فمثلا: list يستخدم لحفظ قائمة من البيانات بالترتيب. set يستخدم لحفظ مجموعة من البيانات بدون تكرار ولا ترتيب. dict يستخدم لحفظ لربط مجموعة من المفاتيح غير المكرّرة بمجموعة من القيم، حيث يقابل كل مفتاح قيمة معيّنة. tuple يستخدم لحفظ بيانات بالترتيب وغير قابلة للتعديل. للمزيد من التفاصيل يرجى الاطلاع على أجوبة هذا السؤال:
  18. يبدو أن هذا شيء عادي، لأن تعليقات الطلّاب على الدورات تمرّ على المشرفين قبل نشرها. هذا الإجراء ينبّه المشرفين إلى وجود تعليق جديد حيث يمكنهم التحقق من صحّته (لأن بعض الطلاب يضعون تعليقات عشوائية) ثم قبوله في حالة ما كان صحيحا والإجابة عليه بأسرع وقت ممكن.
  19. الجواب المختصر لا توجد قاعدة، هذا يعتمد على اتفاقك أنت والعميل، يمكنك إرسال مجلّد المشروع كما ذكرت إذا كان موافقا. الجواب المفصّل في مواقع العمل الحر، مثل مستقل وخمسات، يستحسن أن يتم إرسال الملفّات من خلال المحادثة بينك وبين العميل، وهذا بعد أن يقوم العميل بشراء الخدمة أو اختيارك للعمل معه من خلال الموقع، خاصّة إذا لم يكن هناك معرفة سابقة به أو لا توجد ثقة كافية بينكما. بهذه الطريقة يمكن للإدارة أن تتطلع على الملفات التي أرسلتها وتتأكّد من قيامك بالعمل بشكل صحيح في حالة حدوث مشكل بينكما (شخصيّا حدث لي مشكل مع عميل اختفى فجأة من مستقل واضطررت إلى التعامل مع الإدارة حتى أستلم جزء من مستحقاتي!) ولكن، إذا كان العميل مثلا يطلب أن يتم استضافة المشروع على منصّة محددة، أو يتم رفع الكود على GitHub فهنا يجب تلبية طلب العميل كما أراده. وحتى لو لم يطلب هذا الشيء، ورأيت أن العميل جاد في التعامل معك، فاقترح عليه القيام مثل هذه التحسينات وعرّفه بفائدتها، فهذا سيشعر العميل أنّك مهتمّ بمشروعه وقد ينشئ بينكما علاقة على المدى البعيد وسيرسل إليك المزيد من المشاريع للقيام بها، أو قد يقترح عليك فرصة للتوظيف، وهذا يعود عليك بالنفع في النهاية.
  20. المساهمات هي ببساطة الأسئلة التي تطرحها أو الردود التي تكتبها على أسئلتك أو أسئلة الآخرين. أمّا السمعة فتزداد كلّما تفاعل الأعضاء الآخرين مع أسئلتك وردودك. وبما أنّي قد وضعت إعجابا على سؤالك فقد زدت درجة في سمعتك لكن على حسب علمي، عدد المنشورات وقيمة السمعة لا تهم كثيرا في أكاديميّة حسوب، فكل الأسئلة الجيّدة والمساهمات مرحّب بها لإثراء المحتوى. لذلك يمكن لأي شخص أن يطرح الأسئلة أو يجيب على أسئلة الآخرين. نحن (فريق الإشراف) نحاول أيضا أن نجيب على كل الأسئلة المطروحة من الأعضاء في أسرع وقت ممكن وبالتفاصيل اللازمة.
  21. مرحبا، الحصول على عمل في الواقع يعتمد على ثقة صاحب العمل في قدراتك. هذه الثقة يمكن أن تأتي بطرق مختلفة، منها: توصية من أحد أصدقاء صاحب العمل حيث يكون هذا الصديق وسيطا بينكما. نجاحك في المقابلة مع صاحب العمل حيث تتمكّن من تجاوز اختباراته والرد على أسئلته بالشكل الصحيح أو الذي كان يتوقعه منك. إعجاب صاحب العمل بمشاريعك السابقة وأدائك في بعض الأمور. ثقة صاحب العمل في الشهادة التي تحملها. وغير ذلك... أضف إلى ذلك، تطوير واجهة المستخدم تجعلك تحمل عنوان frontend developer، لذلك يمكنك البحث عن الوظائف التي توافق هذا العنوان. طبعا قد تختلف شروط التوظيف من شركة لأخرى، فكل شركة قد تكون لها شروط خاصّة إضافيّة على هذا العنوان. في دورات أكاديمية حسوب، يتم التركيز على بناء مهارات المتعلّم، كما يوجبون عليه القيام بعدّة مشاريع برمجيّة واقعيّة أثناء رحلته التعليمية (بدونها لا يحصل المتعلّم على الشهادة). هذه المشاريع تهدف إلى تعزيز خبراته في البرمجة لكي يستعد لمتطلّبات سوق العمل. هذه المشاريع يمكنها أن تحسّن فرصة قبولك للعمل كما ذكرت في النقطة رقم 3. مادام العميل أو صاحب الشركة يثق في قدراتك بإحدى الطرق المذكورة سابقا، فسيقبل العمل معك. لكن توجد مواقع تابعة لمؤسسة حسوب يمكنها أن تكون مدخلا لك: خمسات: سوق لبيع الخدمات المصغّرة. مستقل: منصّة للعمل الحر. بعيد: للتوظيف عن بعد. شخصيّا لا أعرف، لذلك لا يمكنني الإجابة على هذا السؤال، ربّما قد يجيب عليه شخص غيري. لكن في كل الأحوال يمكنك التواصل مع دعم أكاديميّة حسوب للاستفسار.
  22. للحصول على اسم الموقع على شكل نص، يجب القيام بعمليّة تدعى reverse geocoding، وهو ميزة منفصلة متوفّرة في Google Maps API. هذه العملية تأخذ خط الطول ودائرة العرض كمعاملات وتعيد النتيجة كعنوان. يمكنك قراءة المزيد عن هذه المزيد لتعلم كيف تعمل وتقوم بتفعيلها قبل الاستمرار: https://developers.google.com/maps/documentation/javascript/geocoding بعد ذلك، يمكنك تغيير كود JavaScript للقيام بهذه العملية. يمكن أن يكون الكود شبيها بالتالي: let map; let geocoder; // Declare a geocoder variable function initMap() { map = new google.maps.Map(document.getElementById("map"), { center: { lat: -34.397, lng: 150.644 }, zoom: 8, scrollwheel: true, }); const uluru = { lat: -34.397, lng: 150.644 }; let marker = new google.maps.Marker({ position: uluru, map: map, draggable: true }); geocoder = new google.maps.Geocoder(); // Initialize the geocoder google.maps.event.addListener(marker,'position_changed', function (){ let lat = marker.position.lat() let lng = marker.position.lng() $('#latitude').val(lat) $('#longitude').val(lng) document.getElementById('latitude').dispatchEvent(new Event('input')) document.getElementById('longitude').dispatchEvent(new Event('input')) geocodeLatLng(lat, lng); // Call the geocodeLatLng function }) google.maps.event.addListener(map,'click', function (event){ pos = event.latLng marker.setPosition(pos) }) } // Define the geocodeLatLng function function geocodeLatLng(lat, lng) { var latlng = {lat: lat, lng: lng}; geocoder.geocode({'location': latlng}, function(results, status) { if (status === 'OK') { if (results[0]) { // Set the location input value to the formatted address $('#location').val(results[0].formatted_address); document.getElementById('location').dispatchEvent(new Event('input')); } else { window.alert('No results found'); } } else { window.alert('Geocoder failed due to: ' + status); } }); }
  23. للأسف حاولت تثبيت آخر النسخ من المكتبات ويبدو أن الأمر قد تغير كثيرا، لذلك لم يحصل معي ذلك الخطأ ولكن حصل غيره ولا أدري كيف أحلّه، لأني لم أستخدم كثيرا من الأمور الموجودة في الكود ولا أدري كيف تعمل بالضبط، لذلك ليس لدي حلّ سريع لها. ما قمت به: إنشاء بيئة افتراضية جديدة. تثبيت Jupyter تعديل بعض المكتبات وحذف نسخها من ملف ipynb. هذا هو الملف ipynb بعد التغيير، وهو لا يزال لا يعمل بعد، لكن بخطأ آخر في GridSearch ولا أدري كيف يعمل هذا الكائن لذلك لم أستطع حلّه. استخدمت Python 3.10.12 asa.ipynb
  24. هل يمكنك رفع ملفات المشروع (بما في ذلك الملفات التي تحوي البيانات) حتى أستطيع تجريبها عندي بسرعة؟ لا حاجة لرفع مجلّد البيئة الافتراضية (الذي يسمى sa عندك)، أحتاج فقط إلى requirements.txt.
  25. يبدو أنك تتحدّث عن دورة محددة، لكنّك لم تذكر ما هي. لكن بما أنّك ذكرت بايثون فأعتقد أنك تقصد دورة تطوير التطبيقات باستخدام بايثون. الاسم الوظيفي ليس شيئا تحدده الدورة وحدها، بل هو ليس تعريفا ثابتا له مميّزات واضحة يمكنك معرفتها مباشرة من قراءته. وحتى أعطيك مثالا، قد عملت سابقا في شركة كانت تطلب اسما وظيفيّا: Python developer وكنت أظن من الاسم أنني سأقوم بتطوير تطبيقات بايثون للاستخدام العام، لكن عند إجراء الاختبار والمقابلة اتضح أنهم كانوا يريدون Web scraping باستخدام Python. على كل حال، أنا نجحت في الحصول على تلك الوظيفة لأنني تمكّنت من تعلّم ما ينقصني في ذلك المجال بسرعة، لكن عنوان الوظيفة كان (وما يزال إلى يومنا هذا) مضلّلا جدّا ولا يعبّر عن المضمون! لذلك، يمكنك ببساطة أن تختار عنوانا وظيفيّا عامّا مثل Python developer، ولا تقلق بشأن عدم مطابقته لما تعرفه، لأن الشركات نفسها لا تكترث لذلك كثيرا.
×
×
  • أضف...