كيف تختار مجال البرمجة المناسب لك؟
مقارنة بين الواجهة الأمامية والخلفية والموبايل و Full Stack من حيث طبيعة العمل — المشكلات التي تحلّها وكيف تفشل — لا من حيث ادّعاءات الرواتب التي تتقادم.
بمجرد ترسّخ الأساسيات، عليك اختيار اتجاه، ومعظم النصائح المتاحة غير مفيدة. فالترتيبات حسب الراتب تتقادم وتتباين بشدة بين البلدان. والترتيبات حسب الطلب تصف العام الماضي. ولا أحدهما يخبرك بما يحدّد فعلاً ما إذا كنت ستظل مستمتعاً بهذا بعد ثلاث سنوات: كيف يبدو العمل يوماً بيوم.
الواجهة الأمامية
عمل الواجهة الأمامية يدور حول نقطة اللقاء بين النظام والإنسان. ومشكلاتك بصرية وسلوكية وقابلة للمقاطعة بشدة: شيء غير محاذٍ في متصفّح واحد، ونموذج يفقد المدخلات على اتصال بطيء، وقارئة شاشة تنطق الشيء الخطأ، وصفحة بطيئة على هاتف متوسّط.
وحلقة التغذية الراجعة فورية ومرئية، وهو ما يجده كثيرون محفّزاً — تغيّر شيفرة فترى النتيجة. والمقايضة أن صحّة عملك ذاتية جزئياً ويحكم عليها أشخاص سيخبرونك أن شيئاً ما يبدو خاطئاً دون قدرة على تحديد السبب، وأنك تحمل تعقيد أجهزة ومتصفّحات كثيرة.
وهو يناسب من يهتمّون بشعور استخدام الأشياء، ومن يلاحظون التفاصيل، ومن يرتاحون لمشكلات لها أكثر من إجابة مقبولة.
الواجهة الخلفية
عمل الواجهة الخلفية يدور حول البيانات والقواعد والعواقب. ومشكلاتك بنيوية وغير مرئية في معظمها حتى تصبح حادّة: استعلام يتدهور مع نموّ جدول، وفحص صلاحية في المكان الخطأ، وسجلّات مكرّرة من طلب أُعيدت محاولته، ومهمة مجدولة توقّفت بصمت قبل ثلاثة أسابيع.
والصحّة هنا أكثر موضوعية — فالبيانات إما صحيحة أو لا — وهو ما يروق لمن يحبّون الإجابات القاطعة. والمقايضة أن العمل غير مرئي إلى حدّ كبير حين يسير جيداً، ومرئي بشدّة حين لا يسير كذلك، وأن المخاطر غير متماثلة: علّة في الواجهة الأمامية تزعج شخصاً، وعلّة في الخلفية قد تُفسد سجلّات أو تكشف بيانات.
وهو يناسب من يستمتعون بنمذجة مجال بدقة، والتفكير في حالات الفشل، والتفكير في أنظمة لا يستطيعون رؤيتها كلها دفعة واحدة.
الموبايل
يجمع الموبايل بين عمل الواجهة ومجموعة قيود أصعب: اتصال غير موثوق، وموارد محدودة، وأذونات صريحة، ونظام تشغيل يستطيع تعليقك، وإصدارات تمرّ بالمراجعة ثم تنتظر تحديث المستخدمين.
وجاذبيته أن النتيجة ملموسة بطريقة لا يكونها عمل الويب غالباً — تطبيق على هاتف في يد شخص. والمقايضة دورة إصدار أبطأ وأقل تسامحاً. فلا تستطيع دفع إصلاح خلال خمس دقائق، وهو ما يفرض عناية أكبر قبل الإطلاق ويجعل تقارير الأعطال والإطلاق المتدرّج مهمّين فعلاً لا مجرّد إضافة لطيفة.
Full Stack
Full Stack ليس مساراً رابعاً تختاره في البداية. بل هو ما يحدث بعد أن ترسخ في واحد وتضيف آخر، ويعني القدرة على تتبّع المشكلة عبر الحدّ الفاصل بدلاً من تمريرها. وهذا قيّم فعلاً — إذ يُهدر وقت كبير عند الوصلة بين الواجهة الأمامية والخلفية، حيث يكون كل طرف واثقاً أن الآخر مخطئ.
والتحفّظ الصادق أن الاتّساع له ثمن. فكل مجال تغطّيه هو مجال يقلّ وقتك للتعمّق فيه، ومعظم مطوّري Full Stack العاملين أقوى بوضوح في جانب واحد. وهذا طبيعي ويستحق أن تكون متعمّداً بشأنه بدلاً من التظاهر بغير ذلك.
كيف تقرّر فعلاً
قراءة المقارنات لن تحسم هذا. ابنِ شيئاً صغيراً في كل مجال — صفحة تجلب البيانات وتعرضها بحالتَي التحميل والخطأ، وواجهة API صغيرة بقاعدة بيانات ومصادقة، وتطبيق بسيط يقرأ من تلك الواجهة — ثم لاحظ أيّها ظللت تفكّر فيه وأنت لا تعمل عليه. تلك الإشارة أوثق من أي مقال، بما في ذلك هذا.
والاختيار أقل ديمومة بكثير ممّا يبدو وأنت تتّخذه. فالأساسيات تحت المسارات الثلاثة واحدة، وهذا تحديداً سبب مجيئها أولاً في هذه السلسلة. والمطوّرون ينتقلون بين المسارات بشكل روتيني، والمسار الثاني دائماً أسرع من الأول.
اختر المسار الذي تجد مشكلاته مثيرة للاهتمام، لا الذي رتّبه غيرك في القمة. فستتعمّق أكثر في شيء تريد التفكير فيه فعلاً.
- Career
- Frontend
- Backend
- Mobile
- Full Stack
أحمد العايدي
مطوّر Full-Stack
أبني أنظمة إنتاجية متكاملة — أنظمة Laravel الخلفية، وواجهات React و Next.js، وتطبيقات الموبايل، ولوحات التحكم، وواجهات API. وأكتب عن القرارات وراء الأنظمة التي تصل إلى مستخدمين حقيقيين.