سوبر مبرمج: تعدد لغات البرمجة أم لغة برمجة واحدة تكفي؟

حتى نهاية ثمانينات القرن الماضي كانت موارد التعليم قليلة مقارنة باليوم.

ثمانينات القرن الماضي ليست بالأمر البعيد إنها تربو على 35 سنة.

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

ولكن هل لانتشار وسائل التعلم تأثير سلبي؟

هل تيسُّر استعراض جميع اسماء لغات البرمجة من الفوائد ام من الملهيات؟

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

سمكة ذهبية تتفوق على إنسان 2016 في التركيز

في عام 2002  نشرت بي بي سي خبراً يجعنا نفكر ملياً في تصفحنا للإنترنت.

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

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

ماذا يعني ذلك؟

هذا يعني أن تأثير تصفح الإنترنت المتواصل يجعل فترة تركيز الإنسان أقل من الطبيعي، فقد كانت قبل الدراسة 12 ثانية، الدراسة أجريت عام 2002 فوجدت أن فترة تركيز الإنسان أصبحت مساوية لفترة تركيز السمكة الذهبية وهي 9 ثواني!

للأسف رغم الفترة قصر قدرتنا على التركيز نضطر أحياناً لتعلم أكثر من موضوع في وقت واحد كما سنرى لاحقاً.

و من المشهور الآن -رغم أني لم أجد ما يثبت ذلك علمياً- أن فترة تركيز الإنسان في مهمة واحدة هذه الأيام أصبحت أقصر من السمكة الذهبية (8 ثوانٍ فقط).

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

والسببُ الحقيقي لذلك هو كثرة توفر موارد التعلم.

الفرق بين من تعلم لغة الكوبول و من تعلم لغة الجافا

ما قبل التسعينات، عندما كانت الموارد قليلة كان من يرغب بتعلم لغة برمجة ما يبذل مجهوداً حقيقياً لتعلم لغة البرمجة و بتركيز عالٍ، من أسباب هذا التركيز هو أن موارد تعلم لغات برمجة مختلفة ليست متوفرة كما هي متوفرة اليوم.

كم من مرة سألت نفسك هذا السؤال: هل يجب أن أتعلم لغة البرمجة هذه؟

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

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

هذا السؤال يأتي عن محبة للعلم و التعلم ولكن …

الحقيقة هي:

يجب أن لا يكون هذا هو السؤال.

و إنما السؤال الحقيقي هل تعلمك للغة البرمجة هذه سيؤتي ثماره أم لا.

الهدف من تعلم لغة البرمجة

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

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

هل بعد أن ينصحك صديقك بتعلم لغة برمجة لان له تجربة جيدة معها ستتحول للتعلم لغة البرمجة هذه و تترك ما بدأته؟

الهدف من تعلم لغة البرمجة يؤثر أيضاً

في العادة يكون الهدف من تعلم لغة البرمجة أحد اثنان:

  1. التعلم من أجل التعلم.
  2. التعلم من أجل البرمجة.

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

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

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

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

أولى النقاط:

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

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

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

كيف ذلك؟

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

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

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

ولكن هذا لا يعني دوماً أنه يجب أن تتعلم لغة برمجة واحدة.

يجب أن تتعلم أكثر من لغة برمجة أحياناً

يوجد ما يسمى التكامل Integration و هي خاصية مهمة في الدمج بين لغات البرمجة.

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

سيكون التكامل بتنفيذ بعض الشفرات البرمجة للغة سي داخل برنامج لغة جافا.

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

ولكن…

هناك مهام بطبيعتها تحتاج إلى أن تتعلم أكثر من لغة برمجة لتنفيذها مثل إنشاء تطبيقات الإنترنت.

تعلم اكثر من لغة برمجة

لإنشاء تطبيقات الويب عادة تحتاج إلى تعلم أكثر من لغة برمجة واحدة لبرمجة الخادم مثل php أو asp.net و أخرى للتعامل مع جهة العميل مثل javascript.

توجد بعض اللغات يُطلق عليها البعض خطئاً لغة برمجة، والصحيح هي أنها لغات تنسيق محتوى و هي HTML و CSS.

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

أما إذا كنت تبرمج برنامجاً لسطح المكتب فغالباً تكفي لغة برمجة واحدة لإنشاء برنامج كامل.

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

ولنقل أنك تعمل في مجال تطبيقات الجوال، و تجيد البرمجة الأندرويد، فإن إنتقالك لتعلم لغة برمجة أخرى ليس مشكلة على الإطلاق.. بل هو أمرٌ جميل.

الخلاصة

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

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

مصطفى الطيب

صديقٌ لنُظمِ المعلُومات و عُلومِ الحَاسِب و مُختصٌ بهما، مُحبٌ للعِلمِ و نَشرِه. أُشاركُ معارفي و تَجاربي و خِبراتي في تَدويناتٍ و دوراتٍ من خلال مُدونةِ عُلوم.

‫8 تعليقات

  1. السلام عليكم

    شكرا لك علي هذا المحتوي الجميل فقد استفدت منه بشكل كبير …

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

    مهتدي محمد طالب ثانوي مقدم علي الالتحاق بكليه information technology (it)

    1. وعليكم السلام ورحمة الله مهتدي،

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

      مودّتي ?

اترك تعليقاً

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

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق