لتتطور في البرمجة، عليك أن تتعلم لغة جديدة.

ترجمة بتصرّف لمقال: (To Keep Growing as a Dev, You Should Learn a New Language By Bennett Garner)

ترجمة: عفاف الحمران afaf_hh@
تدقيق: ريم ريحان reemrayhan@
المراجعة النهائية: أسامة خان.

أصبح هذا شعاري مؤخرًا، لا تكن مخلصًا فقط للغة التي تعلمتها أولًا أو للُّغة التي أحببتها أكثر من غيرها. 

شكرًا لـ أشكات جيري (Akshat Giri) على إلهامي لكتابة هذه الخواطر.

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

  • تُعيد النظر في الأساسيات، مثل المتغيرات، حلقات التكرار (iterators)، نطاق المتغيرات، وتدفق البرمجية (control flow). تتشابه معظم اللغات لكن يتضح الاختلاف في طريقة تشابك عناصرها، والبنية التحتية للبرنامج، وتصبح مطورًا أفضل كلما تعلمت عن هذه التفاصيل. وأيضًا يصل المرء إلى الإتقان في البرمجة مع التكرار والمحاولة، ومن المفترض أن يكون التفكير في الترميز (Code) هو الجزء الأصعب وكتابته هي الجزء السهل، لذا كلما أجدت لغات أكثر كلما سهُل عليك التفكير وكتابة البرمجية. 

 

  • تُغيّر نمط تفكيرك، أنا أبرمج بلغة بايثون (python) في معظم الأحيان وعندما أغير إلى لغة أخرى مثل لغة سي (C) علي حينها أن أفكر بصعوبات مختلفة تمامًا، مثل «هل نوعُ المتغير (عددٍ صحيح غيرُ موقع) كافٍ للتخزين؟ أم أنني سأحتاج إلى نوعِ (عددٍ طويل غير موقّع)؟» لغة بايثون بالطبع تواجه هذه المشكلة ولها حلول أيضًا، لكن هناك إيجابيات بأن تفكر بحلول لهذه المشكلة باستخدام لغة ثابتة مكتوبة. 

 

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

 

  • تطّلع على الأنواع المختلفة من المكتبات البرمجية الجاهزة، فعندما تتعلم لغة جديدة ستتعامل مع أدوات ولُعبٍ جديدة. فعلى سبيل المثال عالم علم البيانات و تعلم الآلة بأكمله يفتح أبوابه لك إذا كنت تتعلم لغة البايثون، وأما لغة جافا (Java) أو الجديدة كوتلِن (Kotlin) تدخلك إلى عالم تطوير تطبيقات أندرويد (Android). كما أن العمل في سي أو سي ++ (C / C++) يدخلك في عالم شيّق جدًا للأنظمة المدمجة وعمليات حسابية فائقة السرعة ويتطلب كفاءة في الأداء. 

فخ الاقتناع

عليك أن تكون بارعًا في لغة أو لغتين أساسيتين من أجل وظيفتك، لكن الاكتفاء بهذه اللغات فخُ خطِر. 

كما ينطبق ذلك على مكتبات وأُطُر عملِ اللغة التي تتقنها، فإذا كنت مطوّر للغة جافا منذ بضع سنوات ولم تستغل الوقت لتعلم أنجُلار (Angular) ثم بعدها رِيَاكت (React) ستُقيّد نفسك بخيارات وظيفية قليلة. 

قدّم هنت (Hunt) وتوماس (Thomas) ذات الحجّة، ذكروا في الكتاب الذي أحبه (المبرمج العملي The Pragmatic Programmer): 

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

(أرفع قبعتي لـ واتسون (W Watson) على تذكيري بهذا الاقتباس)

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

المصدر
تمت الترجمة بإذن من الكاتب.
أحدث المقالات
أحدث التعليقات
الأرشيف

اترك تعليقاً

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