لماذا لا يجب أن تجعل العمل الحر مسارك المهني الأساسي

من أكبر الأخطاء التي يرتكبها الناس عندما يكونون حديثي التخرج هو الحماس المفرط في مجال العمل الحر، لأنهم يجدون فرصًا جيدة قد تأتيهم بسهولة أكبر من الحصول على وظيفة في شركة. فيقول الواحد لنفسه: “لماذا أحتاج إلى العمل في شركة من الأساس؟ سأبقى أعمل بشكل مستقل لبقية مساري المهني وحياتي. أتمتع بالحرية، أعمل بأريحيتي في أي وقت، وقد أحصل على مال أكثر ممن يعمل في شركة.” يتخيل أن بيئة العمل الحر هي أفضل شيء على الإطلاق.

مشكلات الاعتماد الكامل على العمل الحر

إن الاعتماد على العمل الحر ليكون أساس مسارك المهني يمثل مشكلة لعدة أسباب:

1. غياب المحاسبة التقنية

أثناء عملك كمستقل، لا أحد يحاسبك على جودة العمل التقني. أنت من يختار البنية الهندسية (Architecture)، وأنت من يختار التقنيات التي ستعمل بها، وكيفية توظيف كل شيء معًا. أمور مثل قابلية الصيانة (Maintainability)، والمراقبة (Observability) من خلال التتبع (Tracing) والسجلات (Logs)، وبناء نظام بيئي (Ecosystem) متين ومستقر، وقابلية إضافة الميزات الجديدة وإصلاح الأخطاء بسهولة في المستقبل؛ كل هذا قد لا يحاسبك عليه أحد في العمل الحر. على الأرجح، أنت تعمل مع عميل ينتظر منك منتجًا يعمل، ولا يهمه كيف كتبت الشيفرة البرمجية، أو حتى لغة البرمجة التي استخدمتها. حتى لو سلمته شيئًا بلغة برمجة قديمة ومهجورة، سيجده مناسبًا طالما أنه يعمل.

2. انعدام الاستمرارية

أنت لا تملك استمرارية أو استدامة فيما تحققه. عندما عملت في العمل الحر في بداية مسيرتي، كان من الممكن أن يأتيني ثلاثة مواقع للعمل عليها في شهر واحد، ثم لا شيء على الإطلاق في الشهر الذي يليه. ثم في الشهر التالي أعمل على موقع واحد، ثم فجأة يأتيني مشروع كبير أعمل عليه لثلاثة أشهر. هذه العشوائية ليست مفيدة على المدى الطويل لمسارك المهني. على المدى القصير هي ممتازة بالطبع، لأنك حصلت على المال واكتسبت خبرة في التواصل والتعامل مع العميل، لكن الخبرة طويلة الأمد التي ستحققها من نظام مستقر وتتعلم كيفية تشغيله وتطويره ضمن دورة حياة تطوير البرمجيات (Software Development Life Cycle) غير موجودة. على الأرجح، مشاريع العمل الحر تكون صغيرة، وحتى لو كبر المشروع قليلًا، لا يكون هناك اهتمام كبير بجودة التقنية أو قابلية توسع البرنامج (Scalability)، فهو عادةً يخدم نطاقًا صغيرًا وسيبقى كذلك.

تجربة شخصية

هذان العيبان قاتلان لأي مسار مهني لمهندس برمجيات. عندما بدأت في مجال البرمجيات قبل التخرج، عملت في مشاريع حرة صغيرة: مشروع لخدمة أساتذة الجامعة في نطاق الامتحانات، شخص يريد موقعًا لمطعم، وآخر يريد موقعًا لشركة مقاولات، وآخر يريد نظام حسابات بسيط لعمليات الجرد والمبيعات اليومية.

بعد العمل على هذه المشاريع لفترة، فوجئت بعد مرور سنة أو اثنتين أو ثلاث أنني لا أملك أي خبرة في أنماط التصميم (Design Patterns)، ولا أفهم ماذا يعني تصميم النظم (System Design)، ولا أفهم البرمجة كائنية التوجه (Object-Oriented Programming) بشكل صحيح. في النهاية، كنت أكتب الشيفرة البرمجية كيفما اتفق، حتى لو وضعتها كلها في صفحة واحدة، فلن يحاسبني أحد. كنت أستخدم منصات بدون برمجة (No-Code) أو أنشئ شيئًا بسيطًا باستخدام ووردبريس، وكان العميل يرى أن العمل جيد ومناسب له، ولن يأتي ليقول: “المعايير هنا ليست سليمة”.

عندما قررت التقديم للعمل في شركات، لأن العمل الحر له سقف لن يوصلك أبعد منه، فوجئت أثناء مقابلة عمل أنني لا أفهم شيئًا. سألني المحاور: “ما هي بنية البصلة (Onion Architecture)؟” - والتي تعرف أيضًا بالبنية النظيفة (Clean Architecture) - فتجمدت مكاني. كل ما أعرفه عن كلمة “Onion” أنها تعني “بصلة”. كان الموقف مرعبًا. ثم بدأ يسألني أسئلة متعمقة في SQL مثل: “ما الفرق بين INNER JOIN و OUTER JOIN؟” لم أستطع الإجابة، لأنني خلال عملي كمستقل لم أحتج أبدًا للتعامل مع هذه المفاهيم بعمق.

ميزة العمل في الشركات

النجاح الحقيقي في هندسة البرمجيات يأتي عن طريق الشركات، بشكل قاطع. كل من وصل إلى منصب متقدم في شركة سيخبرك أنه ربما جرّب العمل الحر لفترة، وأدرك أنه مجرد وسيلة لكسب بعض المال عند الحاجة، وليس مسارًا مهنيًا يمكن الاعتماد عليه.

التعلم من الزملاء وبيئة العمل

عندما تعمل في شركة، وتكون محاطًا بفريق عمل، فإنك تتعلم منهم وتسمع أفكارًا مختلفة. كم من مرة تفاجأ أشخاص بأنهم يعرفون كل شيء عن تقنية معينة، ولكن عندما يعملون مع آخرين يستخدمون نفس التقنية، يسمعون أشياء جديدة لم يعرفوها من قبل.

لقد حدث هذا الأمر معي. عملت لفترة طويلة بـ Node.js, .NET, Python, PHP, وحتى Java. في أحد المشاريع، كان زميل لي يتحدث عن جزئية تتعلق بدوال رد النداء (Callbacks) في Node.js، وسألني: “هل تعلم أنها تُنفذ بشكل غير متزامن (Asynchronous)؟” أجبت: “لا، أعتقد أنها متزامنة (Synchronous)”.

لإثبات وجهة نظره، أعطاني هذا المثال:

console.log("A");

setTimeout(() => {
  console.log("B");
}, 0);

console.log("C");

وأوضح أن الناتج سيكون A ثم C ثم B، وهذا يثبت أن دالة setTimeout والـ Callback الخاص بها يذهبان إلى مكان آخر (Event Loop) ولا يوقفان تنفيذ بقية الشيفرة. رغم أنني كنت قد درست بنية Node.js، إلا أن هذه المعلومة لم تكن واضحة تمامًا حتى احتككت بزميلي. هذه التفاصيل الصغيرة لا تأتي إلا عندما يكون معك من يوجهك أو حتى زميل في نفس مستواك يشاركك أفكاره.

الحصول على إرشاد مجاني

عندما تلتحق بشركة كموظف مبتدئ (Junior)، يصبح من مسؤولية الموظفين الأقدم (Seniors) أن يقوموا بإرشادك. هذا جزء من مهامهم الوظيفية. أنا شخصيًا في شركتي، من مهامي مراجعة عمل المبتدئين، وحتى الموظفين ذوي الخبرة المتوسطة أو المتقدمة، وأعطيهم أفكاري وآرائي ونتناقش معًا. هذه المشاركة تصنع فارقًا كبيرًا.

حتى لو افترضت أن الناس في الشركة لا يشاركون المعلومات، فإن مديرك أو زميلك الأقدم مضطر لمراجعة الشيفرة البرمجية التي تكتبها (Code Review) كجزء من عمله. عندما تفتح طلب دمج (Pull Request)، سيراجع الكود ويترك لك ملاحظات. من خلال هذه الملاحظات، أنت تتعلم باستمرار وتتطور فكريًا دون أن تشعر. أنا أعتبرها فرصة للحصول على إرشاد (Mentorship) مجاني.

بالإضافة إلى ذلك، وجودك في بيئة الشركة يمنحك فرصة للتحدث مع ذوي الخبرة في أمور خارج نطاق العمل اليومي، كأن تسأل عن رأيهم في مكتبة برمجية جديدة، فتسمع آراءهم وتجاربهم وتتغذى فكريًا.

الخلاصة

اعمل في الشركات، فهي التي ستمنحك الخبرة الحقيقية. اجعل العمل الحر سلاحًا تستخدمه كأداة ثانوية، هدفها الأساسي هو الحصول على دخل إضافي أو اكتساب مهارات ناعمة (Soft Skills) في التفاوض والعرض والتواصل، ثم وظّف هذه الخبرات في مسارك المهني الأساسي في الشركة.

شارك المقال

أحدث المقالات

CONNECTED
ONLINE: ...
SECURE
00:00:00