البرمجة و الحصول على عمل.. من أين أبدأ؟

0 2٬920

تعتبر تكنولوجيا المعلومات اختصاص واسع يهتم بمعالجة وإدارة المعلومات عبر مجموعة من المنهجيات والأدوات، مثل: البرمجة، والعمل على البيانات، تخزين تلك البيانات، واسترجاعها.

لكن إنْ كنت طالباً في حقل تكنولوجيا المعلومات، أو تبحث عن عمل في هذا المجال، عليك أن تبدأ بالإجابة عن هذه الاسئلة :

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

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

لغات البرمجة.. أي منها عليّ إتقانه !؟

توجد الكثير والكثير من لغات البرمجة، لكل منها مزايا وعيوب، كل منها تحتاج منهجية خاصة في العمل والتفكير، ولكل لغة روّادها.

إن الخيارات كثيرة أمامك فأي لغة ستختار؟  جافا java، روبي Ruby، بايثون Python، جافا سكريبت JS، PHP.. أم هل عليك تعلّم جميع لغات البرمجة في العالم!؟ لكن فلنعد للسؤال الأهم، هل اختيار اللغة حقاً أمر مهم؟ في الحقيقة، نعم ولا.. كيف ذلك !؟ .. فلنرى.

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

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

ما التقنيات التي أرغب بالعمل عليها؟

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

وكمثال على ذلك، مطور ويب يعمل مع لغة بايثون، يختار Django كتقنية ذات صلة، ولتحقيق تكاملية العمل يحتاج للتعامل مع قاعدة معطيات لتخزين البيانات MySQL  PostgreSQL, Redis ويحتاج لجعل الموقع أكثر تفاعلية JavaScript.

ماذا عن الفرص؟

ما يجب معرفته عن المهنيين المحترفين أنهم نادرون بالفعل، حيث تلعب التقنيات المستخدمة دوراً حيويّاً سواءً أثناء البحث عن عمل أو من حيث تنازع الشركات عليها.

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

 فلتكن مجازفاً وعازماً على تعلم كل جديد كلما أتيحت الفرصة لذلك، ستكون النتائج غير متوقعة ومن الممكن أن تتغير حياتك.

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

هل من داعٍ للتسويق؟

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

فلنقم مثلاً، بمتابعة ثورة الويب منذ عام 2000 حتى الآن، ظهرت الكثير من الوظائف فيما يخصّ إنتاج عدد كبير من التطبيقات والملفات الصوتية والتلفزيونية. ناهيك عن ظهور الهواتف الذكية وتخصيص مهام لتطوير تطبيقات مناسبة لها.

بالإضافة إلى الظهور الكبير مؤخراً لتطبيقات في عدة مجالات كأتمتة المنازل، والبيانات الضخمة، وعلوم البيانات، وتطبيقات الويب التقدميّة (المرنة)، والعملات المشفرة، وتقنيات الـ blockchain.

كيف يمكن تصنيف المطورين؟

فلنطلع على بعض أصناف المطورين:

1)   مطوّر تطبيقات Fron-end: يعمل على تطوير كل ما يخصّ الواجهة الأمامية للتطبيقات، أي ما يشاهده المستخدم من واجهات وصور ونصوص، وغيرها. يتطلب مهارات بتصميم واجهة المستخدم، جافا سكريبت، HTML و CSS..

2)   مطوّر تطبيقات  Back-end: يعمل على تطوير البنية التحتية للتطبيق، وتصميم قواعد البيانات الخاصة بالتطبيق. يتطلب معرفة بلغات البرمجة مثل الجافا  Java، روبي Ruby، بايثون Python، غو Go ، وغيرها، بالإضافة إلى خبرة بالتعامل مع قواعد البيانات تبعاً لمتطلبات العمل.

3)   مطور تطبيقات Full-stack: يعمل على تطوير التطبيق برمتّه، ابتداءً بالبنية التحتية وتصميم قاعدة البيانات انتهاء بواجهات المستخدم.

4)   مطوّر تطبيقات Middle-Tier:  لديه خبرة ضئيلة بعملية التطوير كاملة، وربط الأجزاء مع بعضها البعض.

5)   مطوّر الويب: هو مهندس برمجيات متخصّص في إنشاء مواقع الويب وتطوير تطبيقات الانترنت . يشمل الأنواع الأربعة السابقة.

6)    مطور تطبيقات سطح المكتب: يعمل على تطوير البرمجيات التي تنفذ على أنظمة التشغيل المكتبية مثل ويندوز ولينوكس.

7)     مطور تطبيقات الموبايل: يعمل على تطوير البرمجيات التي تنفذ على أنظمة الهواتف الذكية والأجهزة اللوحيّة مثل الأندرويد.

8)    مطور بيانيات: مسؤول ضمن صناعة منتجات الألعاب والفيديو عن الظلال وإدارة المشاهد، وغير ذلك.

9)   مطور الألعاب: متخصص في تصميم وبناء الألعاب التفاعلية والمحاكاة.

10)  عالم بيانات: يعمل على تطوير برمجيات فيما يخص تحليل مجموعات المعطيات.

11)   مطور Big Data: يعمل على تطوير برمجيات لتخزين واستعادة البيانات من قواعد معطيات ضخمة.

12)  مطوّر WordPress: يعمل على إنشاء وقولبة الأُطر والإضافات للمواقع المبنية بالووردبرس، وهو نظام إدارة محتوى إلكتروني مفتوح المصدر.

هل يجب عليك التفكير بالعمل عن بعد؟

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

هذه قائمة ببعض المواقع التي توفر فرص للعمل عن بعد:

1.   Toptal – https://www.toptal.com/#book-tested-programmers

2.   BairesDev – https://www.bairesdev.com/

3.   AngelList – https://angel.co/

4.   Remote.com – https://remote.com/

5.   Codementor – https://www.codementor.io/

6.   Indeed – https://www.indeed.com/jobs?q=developer&l=remote

7.   Dice – https://www.dice.com/jobs?q=&l=remote

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

يمكنك تعلم الأساسيات عن اللغات والتقنيات البرمجية ضمن سلسلة علوم الحاسب.

 

  • إعداد:  نور عبدو
  • تدقيق لغوي: نسرين أبو زيتون
مصدر dev.to
تعليقات
Loading...