17

تجربتي مع CrossOver للتوظيف في عمل حر

السلام عليكم،

أردت أن أنقل إليكم تجربتي مع شركة CrossOver المتخصصة في توظيف المبرمجين، لعلّ أحدا يستفيد من بعض ما حصل معي

القصة بدأت منذ مدة عندما كنت أشاهد عروض عمل عن بعد (remote) برواتب تتراوح بين 30 إلى 100 ألف دولار سنويا، قائمة مناصب التوظيف متوفرة من هذا الرابط:

https://www.crossover.com/x...

كنت أهتم بعروض البرمجة جافا، كانت كثيرة ومتنوعة، فقمت ذات مرة باختيار أحد عروض البرمجة Full Stack Web Developer

تلقيت فورا بريد الكتروني يعرض علي اختبار تقني على منصة HackerRank، أذكر أن مدته كانت حوالي ساعة ونصف، كان مجموعة أسئلة موقوتة ومتنوعة شملت جميع مجالات تطوير الويب

فكانت النتيجة أنهم راسلوني بعد بضعة أيام وأخبروني أني لم أتحصل على نتائج كافية للانتقال إلى الاختبار المقبل (ولم أحصل على أية أرقام رغم أني راسلتهم ليخبروني بالنتائج)

مرة أيام إلى أن شاهدت عرض Java Software Architect (with c++) براتب سنوي 60 ألف دولار، للعمل في شركة بريطانية متخصص في البرمجيات تدعى Ignite Technology

ولأنه كانت لدي تجربة مع JNI في جافا قمت بالتسجيل ثم قمت بإجراء الاختبار التقني على HackerRank

كانت مجموعة من الأسئلة حول جافا و++C ومكتبة JNI

قمت بالاجابة عنها وحصلت على نتيجة مقبولة حسب

راسلت بإلحاح أحد الموظفات التابعة لـ CrossOver لمعرفة نتيجة الاختبار بأخبرتني أن الاختبار تقوم به مجموعة أخرى وأنها لا تعرف نتيجة الاختبار، واختبرتني أن كل ما تشاهده هو نتيجة 81 على حسابي الشخصي أن هناك عددا قليلا من الذين تم قبولهم لهذا المنصب.

بعدها تلقيت اتصال من أحد موظفات CrossOver من Texas أنه علي أن أقوم بآخر اختبار وهو إنشاء مشروع تقييمي وفق مواصفات محددة مشابهة لمجال عمل المنصب الذي سأشغله، خلاصة قولها أنه يحسن بي أن اختار عطلة نهاية الأسبوع واستعد جيدا لذلك وأوفر مجال عمل مريح لأن المشروع قد يستغرق ساعات عمل طويلة (أقلها 10 ساعات متتالية) أقصاها 3 أيام متواليه...

قمت خلال أسبوع بمذاكرة بعض المراجع والقيام ببعض التطبيقات بهدف المراجعة

اخترت يوم نهاية يوم الخميس كموعد للانطلاق، لكنني قررت البداية من يوم الجمعة صباحا

لم أكن أعرف تفاصيل المشروع، كل ما كان لدي هو صفحة فيها عداد للوقت Timer وزر للانطلاق Start Project

عندما نقرت على الزر تفاجئت بمواصفات المشروع وطريقة التقييم في ما يقارب 6 صفحات

خلاصة المشروع: إنشاء تطبيق على مستوى العميل (في شكل مكتبة Native تقوم بقراءة استهلاك الموارد (الذاكر، المعالج، التطبيقات) يقرؤها تطبيق جافا ثم) يقوم بارسال البيانات بشكل دوري عبر خدمة ويب Web Service إلى خادم Server ليقوم بحفظها في قاعدة بيانات بهدف رصد استهلاك الموارد في الأجهزة العميلة...

ليس هذا فقط بل يجب أن يتم إنجاز المشروع كاملا فقط باستخدام حلول مجانية أو مفتوحة المصدر، ورفع مع المصدر البرمجي كاملا مرفقا باختبار الوحدات unit testing وتوثيق كامل للمشروع docs ومخططات بيانات diagrams و... وغير ذلك مما يمكنكم الاطلاع عليه في هذا الملف:

كل ذلك في مدة لا تتجاوز ثلاث أيام، حسنا يمكنك طلب مهلة إضافية extention مع تقديم سبب مقنع لذلك!

طبعا، لو كان لدي من الوقت ما يكفي لإنجاز مشروع بهذه المواصفات (والذي حتما حجمه الساعي يفوق 3 أيام) لقمت بإنجازه وتسوقه عبر النت، مع تحرير فاتورة عند البيع وفاتورة للدعم أيضا!

لست مستعدا لتقديم مثل هذه الأعمال مجانا مهما كان العائد وأيّا كانت الأسباب، وهذا ما أخبرتهم به فيما بعد

أيضا لا يوجد هناك أي قانون يحمي حقوقك كعامل حر، من الذي سيضمن لك أن مشروعك لن يتم تسويقه بشكل أو بآخر وأنت لا تدري بذلك.

استغلال أوقات المبرمجين لمجرد وعود ليس له مبرّر أيّا كان شكل هذه الوعود...

هذا رأيي بخصوص هذا النوع من طريقة التوظيف هذه، الأمر يبدو مختلف فيما يخص شركات توظيف أخرى TopTal مثلا.


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

كان الاولى ان تقسم المشكلة breakdowns الى مجموعه من الخطوات:

1) جلب البيانات: كتابة كود يجلب معلومات الموارد من النظام بلغة سي++؟ هل هذا الكود صعب؟ هناك بعض ال win32 api بسهولة تستطيع جلب معلومات النظام، ايضاً قد تجد command line بسيطة تضعها وتخرج لك بعض الارقام وتستطيع قرائتها من برنامجك (اي تشغيل ال cmd process وتمرير الامر وقرائة الناتج)، لو لديك اساسيات سي++ العملية لن تاخذ 5 ساعات على الأكثر.

2) ارسال البيانات: عملية POST HTTP سواء بمكتبة او بدون في جافا لو بحثت هناك اللاف من الشروحات والدروس عليها (لن تاخذ سوى 3 ساعات على الاكثر)

3) ارسال البيانات بشكل متكرر: هي Timer أو حتى Thread تضع به sleep ، حتى لو وجدت طريقة بدائية المهم قدرتك على فعل المهمة (لن تاخذ سوى 3 ساعات على الأكثر)

4) كتابة ويب سيرفس تستقبل البيانات، هي صفحة Servlet مثلاً تاخذ النتيجة وتخزنها في Mysql مثلاً (هذا درس 101 في اي servlet أو database programming) (لن تاخذ سوى 5 ساعات على الأكثر).

المتطلبات الاخرى ايضاً ليست صعبة كما تظن، يعني رسم diagram يوضح ان هذه عدة كلاينت وهناك تطبيق يأخذ البيانات منهم ويرسلها عبر الشبكة الى السيرفر وبدوره يخزن البيانات، ايضاً UML للكلاسات بسيطة (لنقل 10 ساعات في الرسم والتوثيق).

هذه تاسك 101 للمبرمج وكيف يمكن ان يعمل على مشكلة حقيقية ، خصوصاً لو حتعمل في Challenging environment ستجد الكثير من الامور كهذه.

اذا كنت قد بدئت بها وواجهت مشكلة في تاسك رقم 4 مثلاً يمكن ان ترسلهم وتقول انجزت 1 و 2 و 3 وتبقى 4 والحل سيأخذ وقتاً وساٌقوم بمثلاً بعمل x أو ... وسوف يمدووا لك الوقت بكل تأكيد عندما يفهموا مشكلتك واين تقف وربما قد يساعدوك ايضاً.

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

حاول ان تقوم بحل التاسك واستفد من التجربة

وبالتوفيق لك.

أولا أشكرك على هذه الصراحة في الإجابة...

كل ما ذكرته مر في ذهني سابقا وفكرت فيه بعمق، وأول ما بدأت به هو تقسيم المشروع إلى أجزاء كما ذكرت، كذلك التقنيات التي سردتها...

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

ال task التي ارسلوها هي بسيطة وليست مشروع مهم

لم أقل عن شيء من ذلك أنه صعب، كل ما أردت تأكيده هو أن هذا يتطلب وقتا، وأنت بنفسك قلت 5 ساعات من هنا و3 من هناك و...

لا أدعي أن كل ذلك سهل علي، هناك أمور نسيتها أو أراجعها حين أصل إليه... المشكلة ليست هناك.

كونك رددت بهذا الشكل فهذا يعني أنك خفت ولم تتوكل على الله وتبدأ العمل

ولأكون معك صريح، فقد حدثتني نفسي بما ذكرته، فقالت: "أنت لا تريد أن تعمل على المشروع لأنك لا تملك خبرة كافية"، فرددت عليها: "سأقوم بعمل المشروع وأرفعه على github مفتوح المصدر أو أوزعه بشكل آخر..." وهذه كبداية:

لاحظت أنك تركز كثيرا على الجانب التقني، غير أنه ليس محل بحثنا هنا، المشكلة أنك ستنفق من وقتك دون مقابل أكيد، يبقى السؤال إلى أي حد تعتبر وقتك ثمينا؟ الأمر يختلف من شخص لآخر، شخصيا لست مستعدا لأنفق من وقتي لمصلحة شركة أجنبية دون مقابل...

والأسوء من ذلك أنت لا تعمل تحت عقد توظيف واضح، ما الذي سيحفظ لك حقوقك (إن كانت لديك حقوق أصلا)؟ إنه فراغ قانوني تستغله شركات عالمية لاستغلال اليد العاملة المؤهلة بالشكل التي تشاء.

ترددت قبل أن أرّد بذلك الشكل، فاتصلت بأحد الأصدقاء (وهو مدير تنفيذي ومبرمج اختلط بالمحاكم) ووصفت له المشروع، فأكد لي وجهة نظري وأن هناك فراغ قانوني واسع واحتمال استغلال واضح...

عندما تتعامل مع شركات من هذا النوع انتبه جيدا إلى الجانب القانوني وطبيعة التعاقد قبل أن تفكر في التقنيات التي ستستخدمها...

بالاضافة الى انه يوضح عدم وجود خبرة كافية أو أنك لم تعمل في بيئة عمل جيدة من قبل.

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