من الشائع في مقابلات العمل التقنية Technical Interviews في الشركات عند التقدّم لوظيفة مطوّر، أن تُختبر على عدّة أصعدة للتأكد من أنك شخص كفؤ لهذا العمل، فبالإضافة للأسئلة التي تركّز على الخوارزميات وقواعد البيانات وحل المشكلات، يُعدّ تصميم النظم من أهم الأسئلة التي تُطرح في هذا النوع من المقابلات. كيف أبدأ بتصميم نظام ما؟ 1. ابدأ أولًا بالحصول على متطلبات النظام بشكل دقيق، حاول الحصول على إجابات للأسئلة التالية: - ما الهدف من النظام وما هي المشكلة التي يحاول حلها؟
هندسة الأوامر Prompt Engineering
شاع مؤخرًا مصطلح هندسة الأوامر Prompt Engineering وذلك تزامنًا مع ظهور نماذج اللغات الضخمة Large Language Models كما تعرف اختصارًا باسم LLM وعلى رأسها GPT-3، فما هي هندسة الأوامر؟ يهتم مهندس الأوامر بتصميم وتطوير الأوامر التي تُستخدم مع نماذج معالجة اللغات الطبيعية، ويُقصد بالأوامر هنا؛ السلسلة النصية المكتوبة بلغة طبيعية لطلب مهمّة معينة أو توليد خرج. وتتضمّن مهام مهندس الأوامر مراجعة البيانات التي تولّدها نماذج اللغات وتطوير الخوارزميات واختبارها بالإضافة إلى تنظيف البيانات وتنظيمها. لتعلّم المزيد عن هندسة الأوامر، يُنصح
يوم الألغاز Puzzle Day من CS50
يعرف معظمنا دورات CS50 المميزة المقدمة من جامعة هارفارد، إلا أن CS50 تعقد أيضًا حدثًا سنويًا متكررًا يدعى بيوم الألغاز Puzzle Day. إذ يمتد هذا الحدث على مدى ثلاث أيام ويُشارك فيه فرق من أنحاء العالم، لا تتطلب الألغاز معرفة في علوم الحاسوب أو البرمجة لحلّها، بل تركز على التفكير المنطقي وحل المشاكل، ويمكن لأي شخص من أي عمر أو بلد المشاركة فيها إما بشكل فردي أو ضمن فريق (قد يكون هذا الفريق مكونًا من أصدقائك أو من أشخاص حول
التعلّم المُقاد بالمشاريع
يعدّ بناء المشاريع وبرمجتها -حتى لو كانت وهمية أو مكرّرة- من أفضل الطرق التي يمكنك تعلم البرمجة من خلالها، إذ أنّ متابعة الدورات التدريبية بشكل مستمرّ لن يفيدك بقدر التنفيذ العملي! بالإضافة لذلك، تستطيع استعراض المشاريع التي برمجتها في معرض أعمالك لاحقًا عند تقدّمك لوظيفة ما. لكن قد تصيبك الحيرة عند اختيار فكرة مشروع معيّنة، لذا أشارك معكم قائمة من المصادر لاستلهام الأفكار (على الرغم من أنني أعتقد أن الفكرة الأفضل لمشروعك البرمجي يجب أن تكون شخصية ونابعة من مشكلة
ما هو تعطيل الذاكرة المؤقتة Cache busting؟
يُستخدم تعطيل الذاكرة المؤقتة Cache-Busting كطريقة في تطوير الويب للحصول على آخر نسخة من موارد assets صفحة الويب، وذلك لضمان أنّ العميل يستعرض التغييرات المؤخرة على الموقع بدلًا من تصفّح إصدار الموقع المُخزّن في الذاكرة المؤقتة الخاصة بالمستعرض الخاص به، إذ تُجبر هذه الطريقة مستعرضات الإنترنت على تحميل هذه الموارد مجددًا. تستخدم هذه الطريقة معرّفًا خاصًا لكل مورد (مثل ملف CSS أو JavaScript) وذلك لمعرفة أنّه قد تغيّر، ويكون المعرف الخاص عبارة عن طابع زمني Timestamp لوقت تعديل الملف أو
ما هي الرصاصات الخطّاطة Tracer Bullets في تطوير البرمجيات؟
يُعرف الرصاص الخطّاط Tracer Bullets عمومًا بأنه نوع من الرصاص يُستخدم ليُعطي الشخص معلومات بصرية على تصويبه ليُحسن التصويب في المرة القادمة. المصطلح هذا موجود أيضًا في عالم تطوير البرمجيات، إذ يُستخدم مصطلح الرصاصات الخطاطة لبناء أجزاء من نظام كبير وذلك لكي يُعطي للمطوّرين تصوّرًا على كيفية تفاعل أجزاء هذا النظام مع بعضها البعض، ممّا يجعل ذلك من عملية تطوير المشروع ككُل عمليّة أسهل نسبيًا بما أن الخطوات أصبحت واضحة بالنسبة لك. على سبيل المثال، قد يتألف المشروع الذي تعمل
كيف تقدّر وقت زمني دقيق لإنجاز المشاريع والمهام البرمجية؟
"ما تقديرك للوقت المستغرق بالنسبة لهذه المهمة/المشروع؟" عادةً ما يفزعنا هذا السؤال كمطوّرين مستقلّين أو مديري مشاريع، إذ أنك لا تريد تقدير وقت يزيد عن حاجتك فيعكس أنّك مبتدئ في عملك، ولا تريد في الوقت ذاته أن تبالغ في سرعة التنفيذ فتتخلّف عن موعد التسليم النهائي. لا شكّ أن عملية التقدير تتطلّب بعض الممارسة حتى تستطيع منح التقدير المناسب والصحيح، إلا أن هناك بعض القواعد العامة التي ستساعدك بتحقيق التقدير المناسب. افهم متطلّبات المشروع بدقّة: لن تستطيع منح التقدير المناسب