رابط الفيديو

أو

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

قبل ذلك كنت أعمل عمل حر كمطور ويب بين الحين والآخر وكنت أستخدم بعض التقنيات التي تعلمتها مثل php, codeigniter , jquery, html , css , bootstrap مثل كثير من المطورين في ذلك الوقت.

كنت أظن أنه من السهل جداً التقدم إلى عمل في الدنمارك حيث أن لدي بعض الخبرة ولكن لم يكن الوضع كذلك!

تقدمت بطلب عمل إلى كثير من الشركات وتفاجأت بالرفض.

هذا البلد الصغير الذي لا يتعدى عدد سكانه 5 مليون ولد فيه عظماء في مجال البرمجة من أمثال

  • Bjarne Stroustrup مخترع ++C

  • Anders Hejlsberg مخترع Pascal , Delphi

  • Rasmus Lerdorf مختزع PHP

  • David Heinemeier Hansson مخترع إطار Ruby on Rails

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

لاحظت هنا أن هناك شيء ما ينقصني وأن هناك فجوة بين المؤهلات المطلوبة للعمل في الوطن العربي وبين سوق العمل في أوروبا.

وأن هناك كثير من التقنيات ظهرت مؤخراً ولم أطور نفسي بها بسبب الظروف الصعبة في سوريا. وبدأت التحري في مواقع التوظيف عن المهارات المطلوبة في تطوير الويب ووجدت أن هناك كثير من التقنيات حتى لم أسمع بها.

وأذكر أنني شاهدت الفيديو الرائع للشهير Brad على يوتيوب يتحدث فيه عن دليل المطور لعام 2018

وقررت أن أطور مهاراتي وفقاً لهذا الخطة

وفي نفس الوقت رأيت إعلان لمركز تعليم تطوير الويب

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

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

تعلمت خلال هذه الفترة Javascript, React, Node.js بشكل أساسي وقررت التوقف عن التقدم لطلبات عمل حتى أنهي الدورة.

بعد ذلك بدأت بالتقديم مجدداً وكان هناك فرق واضح الآن وحصلت فرصة عمل رائعة في شركة wizkids.dk

وفي هذه الشركة نقوم بعمل تطبيقات تعليمية للمدارس أو الأفراد لمختلف المنصات وأنظمة التشغيل

وأعمل فيها كمطور JavaScript, TypeScript في إضافة extension لمتصفح Chrome اسمه AppWriter و تطبيق آخر تابع لها pdf viewer وهناك تطبيقات أخرى في خطة العمل.

تساعد إضافة AppWriter في إظهار اقتراحات تكميل أثناء الطباعة على الانترنت وقراءة الأحرف والكلمات والجمل وغير ذلك

وهناك إضافة أخرى لتصحيح الأخطاء أثناء الطباعة تشبه إضافة Grammarly ولكن تستهدف بشكل أساسي اللغة الدنماركية واللغات الاسكندنافية

صعوبات وتحديات:

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

  • اللغة: هي المشكلة الأزلية, فنحن في سوريا ندرس كل شيء باللغة العربية وهذا جعل من لغتنا الانجليزية ضعيفة جداً وأيضاً فرق الثقافة والعادات والتقاليد الكبيرة بيننا كشرقيين وبينهم يجعل التواصل والمشاركة صعب.

ناهيك عن أنني يجب أن أتعلم اللغة الدنماركية وأتابع دراسة اللغة الدنماركية بالإضافة لتطوير اللغة الانجليزية وتطوير مهاراتي البرمجية معاً وهذا ليس سهل.

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

خبرات مكتسبة من العمل

  • يجب الاهتمام لأبعد حد بأدق التفاصيل خلال كتابة الكود فليس من المهم فقط أن التطبيق يعمل. يجب أن يكون بأفضل أداء ممكن وبتركيز على أدق التفاصيل من أسماء متغيرات وتوابع وطريقة إنشاء الصفوف classes وتقسيمهم وكل اسم يجب أن يدل بشكل واضح عن الغرض منه..

نصائح

  • سمعت أحدهم يقول "تعلم البرمجة وليس لغة برمجة". أي ركز على مفاهيم البرمجة بشكل عام أثناء تعلمك وليس المهم أي لغة برمجة تتعلم. فمثلاً لو كان هناك إعلان عن وظيفة لمبرمج JavaScript وتقدم إليها مرشحين اثنين. أحدهم لديه خبرة سنة بـ JavaScript والثاني 4 سنوات في #C فأي منهما ستختار الشركة؟

إن فرصة الثاني (مطور #C) هي أقوى بكثير لأنه يفهم البرمجة ومن السهل عليه الانتقال للغة أخرى.

لذلك تعلم الأساسيات بدقة كالوراقة inheritance و المصفوفات arrays ... الخ ولا تنسى الخورازميات

  • من الأمور التي أحدثت فرقاً بطريقتي في البرمجة

design pattern

SOLID principles