كيف تصبح مطوراً برمجياً متميزاً وتسرّع من تطوير مهاراتك

دقائق القراءة: 12

مقدمة: عالم التكنولوجيا المتغير باستمرار

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

على سبيل المثال، بينما كان إطار عمل Angular شائعاً قبل خمس سنوات وكانت معظم وظائف الواجهة الأمامية تتطلب مهارات Angular، فقد تغير السوق الآن بشكل كبير. لقد تفوق React على جميع أطر عمل الواجهة الأمامية الأخرى كتقنية جديدة ورائجة. وبالمثل، بينما كان Rails شائعاً قبل خمس سنوات، يهيمن الآن Node و Python على الوصف الوظيفي في العديد من الشركات. إن الحفاظ على مهاراتك متجددة هو أحد الأجزاء الأساسية لتكون مهندساً متميزاً وتبني مسيرة مهنية مستدامة.

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

التعلم بالممارسة: مفتاح إتقان المهارات البرمجية

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

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

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

الخروج من ‘جحيم الدروس’: بناء مشاريعك الخاصة

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

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

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

لم تترسخ البرمجة في ذهني إلا عندما بدأت في التركيز على بناء شيء صغير بمفردي. ابتعد عن الدروس التعليمية بمجرد أن تشعر بالراحة. الدروس رائعة عندما تبدأ، ولكن عند نقطة معينة، فإنها تبطئ تعلمك فقط إذا اعتمدت عليها كثيراً. ينطبق هذا في كل خطوة من مسيرتك المهنية. إذا كنت مهندساً مبتدئاً، اختر مشروعاً صغيراً. لا تستخدم درساً تعليمياً. حاول معرفة كيفية بنائه بنفسك. لا تشعر بالسوء إذا لم تتمكن من بناء تطبيق كامل بعد – هذا أمر طبيعي! ابدأ بمشاريع صغيرة ثم ابنِ عليها. وإذا كنت مهندساً ولديك بضع سنوات من الخبرة وترغب في الانتقال إلى تعلم الآلة (machine learning) من هندسة الواجهة الخلفية (backend engineering)، على سبيل المثال، اختر مشروعاً صغيراً وابدأ بالبرمجة.

التعلم المستمر: سمة المطور المتميز

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

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

  • اكتب الكثير من الأكواد البرمجية.
  • ابحث عن مطورين أفضل منك واعمل معهم.
  • اطلب التبديل بين الفرق في وظيفتك إذا شعرت بالركود.
  • ساهم في مشاريع مفتوحة المصدر (open source).
  • احضر اللقاءات والمؤتمرات التقنية.
  • اشترك في النشرات الإخبارية التقنية.
  • ابدأ بالتواصل مع المطورين على Twitter.
  • اقرأ باستمرار.
  • ابنِ مشاريع جانبية (side projects).
  • تابع شهادات جديدة.
  • احضر دورات عبر الإنترنت.
  • خذ بعض الإجازات.
  • اقرأ المدونات التقنية.
  • ابحث عن مرشد (mentor).
  • شارك معرفتك.
  • اكتب مدونات تقنية.

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

تعلم أن تكون مرتاحاً في وضع عدم الراحة

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

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

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

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

كانت وظيفة الشركة الناشئة غير مستقرة في أحسن الأحوال. لا شيء كان مضموناً. لم يكن لديهم مهندسة أخرى تُعرف كامرأة في الشركة. سأكون المرأة الوحيدة في فريق الهندسة بأكمله. ناهيك عن أن هذا لم يكن عرض عمل! كان عرضاً لتدريب مهني لمدة ثلاثة أشهر دون ضمان بأنني سأحصل على وظيفة بعد ذلك. كان علي الانتقال إلى المدينة، وتوقيع عقد إيجار، والأمل في أن أتمكن بطريقة ما من تحمل الإيجار إذا فشلت في التدريب. وكان هذا عندما كانت معسكرات البرمجة (coding bootcamps) في أوج فقاعتها. كان الطلاب يتخرجون في سان فرانسيسكو وكان السوق مشبعاً أكثر من أي وقت مضى. كانت إعلانات الوظائف تتضمن بشكل متكرر ‘لا لخريجي معسكرات البرمجة’، وهو أمر محبط للغاية.

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

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

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

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

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

العمل العميق: التركيز كقوة خارقة

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

من خلال بناء عادة التركيز والعمل العميق (deep work)، ستصبح مهندساً يبرز من بين الحشود. سيظهر إنشاء هذه العادة أيضاً أن لديك أخلاقيات عمل لا يمكن اختراقها. كم من الوقت يمكنك البقاء دون التحقق من هاتفك أو Facebook أو Twitter؟ خمس دقائق؟ عشر؟ خمس عشرة؟ إذا لم تقرأه، احصل على نسخة من كتاب Deep Work للمؤلف Cal Newport.

ابدأ صغيراً. حاول التركيز على مهمة واحدة لمدة 20-25 دقيقة دون انقطاع. ضع هاتفك على وضع الطائرة (airplane mode)، أغلق جميع علامات التبويب غير الضرورية، وضع لافتة كبيرة على بابك تقول ‘ممنوع الإزعاج’. ابدأ في زيادة هذا الوقت. حاول العمل حتى تصل إلى جلسة متواصلة لمدة 45 دقيقة. في عالم مشتت كهذا، تعد القدرة على القيام بذلك نادرة، وستجد أن كمية العمل التي يمكنك إنجازها فجأة في وقت قصير ستكون صادمة. هناك العديد من التطبيقات التي تستخدم تقنية بومودورو (Pomodoro technique) والتي يمكن أن تساعدك على البقاء مركزاً. حاول تجربة عدد قليل منها واكتشف ما يناسبك.

الخلاصة التقنية

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

ملاحظة: هذه المدونة مقتطف من كتابي الأخير، The Standout Career، وهو متاح الآن للطلب المسبق. إذا قرأت حتى هذه النقطة، فشكراً لك على اهتمامك. يمكنك تعلم البرمجة مجاناً من خلال منهج freeCodeCamp مفتوح المصدر الذي ساعد أكثر من 40,000 شخص في الحصول على وظائف كمطورين. ابدأ الآن.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *