كيف تصبح مبرمجا ؟

Updated: Aug 28, 2018


كثيرا ما أقابل أصدقاء أو أقارب يبادروني بهذا السؤال: كيف أصبح مبرمجا؟ هل هناك دورة تدريبية تنصحني ان انضم إليها؟ ماذا أعمل؟

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

هذه المقالة هي تجربتي في الجواب على هذا السؤال.


هل تناسبك البرمجة أم لا؟

يخلط الكثير من الناس بين شيئين مهمين وهما :

  1. اتخاذ البرمجة كمهنة أساسية.

  2. تعلم البرمجة بغرض دعم مشاريع في المجال الرئيسي للشخص تكون فيها البرامج عاملا مساعدا ومٌسهّلا.

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


قبل اتخاذ أي خطوة في هذا الاتجاه، أسال نفسك أحد الأسئلة التالية:

  1. هل تستطيع الجلوس لفترات طويلة على جهاز الكمبيوتر للعمل أم أن ذلك يشعرك بالملل؟

  2. هل تناسبك أعمال التأليف الغير مرتبطة بشيء ملموس (أي ليست أعمال ترى نتيجتها وأنت تعملها مثل صناعة الأجهزة مثلا)؟

  3. هل تستطيع التعلم بسرعة؟

  4. هل تستطيع متابعة الجديد وقضاء بعض الوقت أسبوعيا على الأقل في هذه المتابعة؟

  5. هل تعرف اللغة الإنجليزية أو على الأقل تستطيع قراءة المقالات التعليمية على الإنترنت؟

قمت بترتيب هذه الأسئلة بالأولوية (تقريبا وحسب رأيي) وفي اعتقادي إذا أجبت على السؤالين الأولين منها بلا فاحتمالية أن تكون مبرمجا تصبح أقل بشكل كبير. أما الأسئلة من 3 والى 5 فضعفك فيها سيأثر على قدرتك من أن تكون مبرمجا جيدا.

طرق اكتساب مهارات البرمجة

إذا كنت تملك الرغبة لتصبح مبرمجا وكما ذكرنا في القسم السابق تجد نفسك لا تواجه مشكلة في أعمال التأليف الذهنية والجلوس لفترات طويلة فطرق اكتساب مهارات البرمجة عدة ومنها:

الجامعة:

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


التدريب رسمي:

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


ممارسة:

وهي مطلب أساسي لأي مبرمج ولكنها تحتاج إلى أساسيات قد تغطيها أحد الطرق المذكورة سابقا.

تعليم ذاتي:

هي حياة المبرمج ولا غنى للمبرمج عن ذلك حتى يصبح محترف قادر على إنتاج أعمال ذات جودة عالية.


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

مهارات البرمجة: رحلة

المهارات التي يحتاجها المبرمج ليتطور من مرحلة إلى أخرى يمكن اختصارها في 3 مراحل رئيسية:


مرحلة الأساسيات

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


مرحلة الإنتاج

وفيها يتعلم المبرمج كيف يستخدم ما تعلمه من أدوات في إنتاج البرامج وطبعا حسب أنواعها وهي عبارة عن محورين:


  • تعلّم طرق الإنتاج نظريا وتطبيقها

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

مرحلة الاحتراف

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


الشكل التالي يعرض المراحل بشكل مصور:


كيف يمكن الحصول على هذه المهارات؟

إذا قمنا بربط المهارات السابقة بطرق التعلّم نحصل على الشكل التالي:

لاحظ التالي:

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

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

  • مهارات الاحتراف مُعلمها الأهم هو الممارسة ومساعده هو التعليم الذاتي وبدون الإثنين لا أرى أن احتراف البرمجة يمكن بلوغه.


التعليم الذاتي مرافقك دائما

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


الخلاصة

سأقوم باختصار ما ذكرته في النقط التالية:

  • يجب أن ترى ما إذا كانت البرمجة مناسبة لك من البداية عن طريق سؤال نفسك بعض الأسئلة المذكورة في الأعلى.

  • مهارات البرمجة عبارة عن رحلة من الأساسيات وحتى الاحتراف.

  • هناك عدة طرق تُكسبك هذه المهارات خلال هذه الرحلة وبعض هذه الطرق تناسب مهارات مرحلة معينة ولا تناسب مراحل أخرى أو تناسبها بشكل أقل.

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

  • الاحتراف يحتاج إلى الممارسة المُكثّفة.

  • التعليم الذاتي مرافقك الأمين خلال هذه الرحلة ويكبُر دوره من مرحلة إلى أخرى.

أتمنى لكم رحلة سعيدة.

مدون الجيبان

  • White LinkedIn Icon

©2018 by Aljaiban