التدوينات الحديثة
Please reload

الارشيف
Please reload

ابحث بالتاق
تابعنا

ماهي لغات البرجمة التي يجب على المبتدئ تعلمها في سنة ٢٠١٧؟

 

إن مواهب ستيم (STEM) مطلوبة بشكل كبير هذه الأيام، ويدفع لها رواتب مجزية وهذا ليس بالخبر الجديد. حيث أن إعلانات وظائف البرمجيات عبر الشبكة العنكبوتية في الولايات المتحدة نمت بنسبة ٣١٪ بين سنة ٢٠٠٧ و٢٠١٢. هذا النمو يعتبر أسرع بثلاث أضعاف -تقريبًا- من إعلانات الوظائف الأخرى مجتمعة. يتوقع المكتب الأمريكي لإحصاءات العمل أن وظائف مطوري البرمجيات ستستمر في النمو بنسبة ٢٢٪ بين ٢٠١٢ و٢٠٢٢ بمعدل راتب ١٠٠.٠٨٠ دولار أمريكي لمطوري تطبيقات البرمجيات بدًأ من شهر مايو - ٢٠١٦.

 

قد يكون العدد الهائل للغات البرمجة محبطًا عند بدئك رحلة البحث عن طرق تعلّمها! - ماهي اللغة التي ينبغي عليك تعلّمها؟نأمل أن يوضح لك هذا المقال بعض المؤشرات من خلال مقارنة المرتب المرتبط بلغات البرمجة وشعبيتها ومستقبلها المحتمل.

 

المحتويات

  • نظرة عامة على لغات البرمجة

  • فرص العمل

  • موارد البرمجة

  • مستقبل كل لغة من لغات البرمجة

  • الخاتمة

 

نظرة عامة على لغات البرمجة

دعونا نلقي نظرة أولًا على اللغات التي سنتناولها قبل البدء في عملية المقارنة/المفاضلة.

 

اللغات الديناميكية

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

 

  • جافا سكريبت (JavaScript)

 

    حتى لا تخلط بينها وبين جافا (Java)، جافا سكريبت (JavaScript) هي في الأساس لغة البرمجة من جانب العميل المستخدمة لتطوير المظهر الأمامي، ومتوافقة مع جميع المتصفحات. تستخدم جافا-سكريبت لإنشاء تطبيقات الويب التفاعلية، غالبًا من خلال المكتبات مثل جي كويري (jQuery) وأطر تصميم المواقع مثل أنجولارجس (AngularJS) وامبر. جي اس (Ember.js) وري اكت (React) وغيرها.

     

    وتستطيع أيضا استخدماها كلغة جهة الخادم من خلال منصة نود. جي إس (Node.js) فقد كانت نود. جي إس (Node.js) قبل سنتين جديدة ولكن مستخدميها تزايدوا بشكلٍ كبير. يمكنك الآن إيجاد الكثير من المصادر هنا. وتستطيع أيضا إنشاء تطبيقات جوال هجينة باستخدام جافا سكريبت من خلال استخدام إطارات مثل فون جاب (phonegap)، في حين أن ري اكت نيتف (React Native) المطورة لموقع الفيس بوك تسمح لك بإنشاء تطبيقات جوال أصلية باستخدام جافا سكريبت.

     

    تعرف الجافا سكريبت بأنها لغة صعبة، لأن البيانات فيها غير مصنفة وبالتالي فهي صعبة التصحيح. هناك ثلاث نسخ تدعم نظام التنويع الثابت(1) مثل مايكروسوفت تايب سكريبت (Microsoft's TypeScript) أو جي إس إكس (JSX) التي تستخدمها لغة ري اكت (React).

     

    • روبي (Ruby)

     

    لقد تم تطوير لغة روبي ليتسنى للمطورين الإستمتاع والإنتاج في الوقت ذاته. اشتهرت لغة روبي بإطار روبي اون ريلز (Ruby on Rails) مجموعة كاملة من إطارات الويب تم تطويرها لترجمة مبهجة/مريحة أكثر. ولأن لغة روبي سهلة القراءة، وإطارات روبي أون ريلز تسهّل العديد من مهمّات البرمجة المعتاده، يرشّح الكثير روبي على أنها أفضل لغة لتبدأ تعلم البرمجة منها.

     

    تستخدم لغة روبي غالبًا في برمجة الخلفية(٢)، والعديد لمواقع المشهورة مثل إيربي أند بي (Airbnb) وشوبيفي (Shopify) وبلومبرج (Bloomberg) وهولو (Hulu) وسليديشار (Slideshare) أُنشئت باستخدام روبي اون ريلز (Ruby on Rails).

     

    • بايثون (Python)

     

     

    تعد بايثون (Python) أيضًا من اللغات التي ينصح بها المبتدئين، وهي أشهر لغات البرمجة التمهيدية لدى أفضل الجامعات الأمريكية.

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

    أُنشىء كل من قوقل، ودروب بوكس، وبينتريست (Pinterest) وانستجرام، وريديت (Reddit) وبيتتورينت (BitTorrent) وسيفيليزايشن أي في IV) Civilization) وغيرهم باستخدام بايثون.

     

    • بي.اتش.بي ( PHP)

     

    بي.اتش.بي (PHP) هي لغة البرمجة النصية من جانب الخادم(٣) وتعتبر عادة جيدة للمبتدئين، حيث إنه من السهل تصور ماذا سيفعل كود بي.اتش.بي ممًا يسهّل تعلّمه. وقد أنشئت معظم المواقع باستخدام لغة بي.اتش.بي لأنها مختصة في الشبكة العنكبوتية بشكل كبير.

     

    أنشئ موقع الفيس بوك، والويكيبيديا (Wikipedia)، والياهو وتمبلر، ووردبرس (Wordpress) والكثير باستخدامها.

     

     

    اللغات المصنفة بشكل ثابت

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

     

    • جافا (Java)

     

     

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

    بالإضافة إلى ذلك هادوب (Hadoop) والذي هو إطار معروف مبني باستخدام لغة جافا ويستخدم للفرز ومعالجة البيانات الكبيرة، واستخدمتها الشركات لخدمات الويب مثل ياهو، وفيس بوك، وأمازون.

     

    • سي (C)

     

    تستخدم لغة سي (C) غالبًا لبرمجة نظم التشغيل، وهي لغة مشتركة لأنظمة التشغيل.

    أثرت هذه اللغة تقريبًا على كل لغات البرمجة، وسنقوم باختبارها في هذه المقالة وبالأخص أوبجيكتيف-سي (Objective-C) وسي ++ (C++).

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

     

    • أوبجيكتيف-سي \سويفت (Objective-C / Swift) (لتطوير IOS)

     

    أوبجيكتيف-سي ( Objective-C) هي طبقة أنشئت على لغة سي (C) وهذا ما جعلها ثابتة. ونقول مع ذلك أنها قد تستخدم للأنواع الديناميكية. أبل‘ز سويفت (Apple’s Swift) هي لغة ثابتة صممت لتلائم لغة أوبجيكتيف-سي ولكن كتابتها الثابتة جعلتها أكثر عرضة للأخطاء.

    استوحيت لغة سويفت من لغة بايثون (Python) لعمل أكواد للمبتدئين ومعرفتها بسهولة، ومن أهدافها إصلاح بعض مشاكل أوبجيكتيف-سي.

     

    • سي ++ (C++)

    سي ++ (C++) هي لغة قوية مبينة على لغة سي (C) وصممت لبرمجة نظم التشغيل، ولكنها استخدمت لإنشاء محركات اللعبة\الألعاب وتطبيقات سطح المكتب وتطبيقات الجوالات وتطبيقات الشبكة العنكبوتية.

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

     

    الكثير من البرامج أنشئوا باستخدامها، منها نظام أدوبي (Adobe Systems) وأمازون، وباي بال (Paypal) وكروم وغيرهم الكثير.

    مثل سي، تعتبر لغة سي++ صعبة على المبتدئين أن يتعلموها بأنفسهم. لذلك، عندما تقرر أن تتعلم لغة سي ++ (C++) كأول لغة برمجة، لا تتردد بالبحث عن معلم عن طريق ميت-أبس (Meetups) أو إيجاد معلم أكواد للغة سي ++ (C++).

     

    • سي (C)

    سي# (C#) (سي شارب ("C Sharp")) والتي طورت ليستخدمها مايكروسوفت. نت فريم ورك (Microsoft’s .NET framework)، تشغل بشكل أساسي مايكروسوفت ويندوز!.

    تستخدم هذه اللغة لتطوير الشبكة العنكبوتية والألعاب وبرامج مايكروسوفت بشكل عام. ورغم من أن مايكروسوفت لم تعرف بكونها متوافقة مع منصات مختلفة في الماضي، فقد بدأ اكساماريان (Xamarin) بمشروع مفتوح المصادر يعرف بـ“مونو“ (Mono) والذي يهدف لإيصال سي # لمنصات أخرى، وأن يوصل أفضل أدوات التطوير لمطوري نظام لينيكس.

    مؤخرًا، أصبح بإمكانك استخدام سي# لإنشاء تطبيق جوال بلغة برمجة معينة ل أي.او.اس (iOS) والأندرويد من خلال اكسامريان.

     

    أخرى

     

     

    • اس.كيو.ل (SQL)

     

     

    اس.كيو.ل( سيكول) (SQL (”Sequel"))، أو: لغة الاستعلامات البنيوية هي لغة استعلامات(٤) مستخدمة للتواصل مع قواعد البيانات. وعلى الرغم من أن هذه اللغة لا تستخدم في إنشاء التطبيقات، إلا أنها تستخدم لإدارة بيانات التطبيقات التي تستخدم أنظمة إدارة بيانات ذات علاقة ار.دي.ام.اس (RDMS).

     

     

     

     

    قد تريد أيضا قراءة: أكثر من عشرين مورد لتصبح مطور

     

    فرص العمل

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

    نستطيع تقسيم لغات البرمجة إلى تسعة طبقات وذلك بناء على تقديرات الرواتب في الولايات المتحدة من تحليل الإعلانات الوظيفية لموقع انديد.كوم/indeed.com.

     

     
     

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

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

     

    اتجاهات سوق العمل

    ما مدى احتمال حصولك على وظيفة بناءً على لغة البرمجة التي تعرفها؟ هذه نظرة سريعة على اتجاهات سوق العمل من موقع انديد.كوم (indeed.com):

     

     

     

    كما نرى في هذه الصورة أن لغات سي، واس.كيو.ل، وجافا، وجافا سكريبت، هي الأكثر ذكرًا في منشورات الوظائف، في حين أن لغات سي#، وسي ++، وبايثون هي لغات سهلة.

     

    وقد يكون اتجاهات سوق العمل من موقع انديد. (indeed.com) ليس بالمؤشر الجيد لك إذا كان هدفك هو العمل في الشركات الناشئة. حيث توجد منشورات وظائف الشركات الناشئة في موقع انجيل ليست (AngelList).

    سنلقي نظرة على مدى الطلب لمهارات البرمجة المبنية على إعلانات مطوري البرامج في هذا الموقع.

     

     


     

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

     

    سوق العرض للمبرمجين

    دعونا نلقي نظرة على المهارات التي يملكها المستشارين في موقع كود-مينتور (Codementor):

     


     

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

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

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

     

    معدل الرواتب

     

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

     

     

     كما ترى أعلاه، مبرمجي لغة روبي أوسي++، أو جافا يحصلون على رواتب أعلى في بداية عملهم، بينما يحصل مبرمجي لغة بايثون وروبي على أعلى الرواتب المتوقعة، وهذا يعني أن المبرمجين الجيدين للغات روبي\بايثون قلة ومطلوبون بشكل كبير. ويبدو أيضًا أن رواتب مبرمجي لغة جافا سكريبت شهدت انخفاضًا كبيرًا، حيث أنها وصلت إلى أعلى حد لها في ابريل سنة 2015 براتب ١٨٨،١٦٨ دولار أمريكي والآن هي تقريبا ١٠٧ ألف دولار أمريكي، ومع ذلك فلا تزال جافا سكريبت  حالة خاصة ودعونا نرى السبب.

     

    الحالة الخاصة لإطارات جافا سكريبت (JavaScript)

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

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

    دعنا نلقي نظرة على معدل الرواتب لمختلف مطوري إطار جافا سكريبت في أمريكا ( ملاحظة: يمكن القول أن ري اكت (React) و باك بون (Backbone) مكتبات لا إطارات وأن نود. جي.اس (Node.js) ليست محيطًا فقط):

     

     

     

    معدل الرواتب الآن ليس بذلك السوء، وبشكل خاص لنود.جي.اس (Node.js) حيث أن لها مستقبل جميل. وتعتبر جافا سكريبت مهارة مربحة لأنها مفتاح الأساس لتعلم هذه التقنيات.

     

    دعنا نلقي نظرة على حاجة سوق العمل لمبرمجي هذه الإطارات:

     

     

     

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

     

    في المقابل، ري-اكت (React) تقنية جديدة إلى حدٍ ما وقد اكتسبت زخمًا بسرعة حتى أنها أصبحت تنافس مراحل أنجولا.جي.اس (AngularJS) المبكرة. ومع كونها لا تزال في مرحلة اكتساب الزخم، إلا أنها يحتمل أن تصبح الأكثر طلبًا على نحوٍ كبير، وتستخدم استخدامًا أكثر من أنجولا.جي.اس (AngularJS) وبالتالي، ستقدم تجربة مستخدم أفضل.

     

    إليك دليلًا مفيدًا حول كيفية المقارنة بين ري اكت.جي.اس (React.js) وانجولار.جي.اس (Angular JS).

     

    موارد البرمجة

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

     

    • مجتمع ستاك-أوفر-فلو (StackOverflow)

    يعد مجتمع ستاكوفيرفلوو(StackOverflow) أكبر مجتمع يستخدمه المبرمجون حول العالم لمساعدة المبرمجين وطلب المساعدة منهم. لذا سنقوم باختبار مدى شعبية مجتمع اللغة وكذلك مدى فائدتها للغات الأخرى.

     

    شعبية اللغة

    نستطيع أن نرى ذلك بناء على وسم المتابعين في ستاك-أوفر-فلو (StackOverflow) الشعبية العامة للغة:

     

     

     

    نحن نعلم بالفعل من دراسة اتجاهات العمل أن مبرمجي لغتي جافا، وجافا سكريبت مطلوبون بشكلٍ كبير، لذا ليس من المفاجئ أن يكون لديهم أعلى وسم متابعين. تعتبرالآن جافا سكريبت التي تحل محل جافا أكثر الوسوم استخدامًا في ستاك-أوفر-فلو (StackOverflow). (إن من المثيرة للاهتمام كيف قررت جامعة ستانفورد مؤخرًا أن تدرّس جافا سكريبت بدلا من جافا (Java) في دورة البرمجة التمهيدية!)

     

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

     

    معدل الإجابة في ستاك-أوفر-فلو (StackOverflow)

    لدى مجتمع ستاك-أوفر-فلو (StackOverflow) قاعدة غير معلنة بحيث أنه يجب عليك أن تصيغ سؤالك بشكل صحيح أو لن يكلف الناس أنفسهم بالإجابة عليك. ومع أخذ ذلك بعين الاعتبار، دعنا نلقي نظرة على مدى احتمالية الإجابة على سؤالك لكل لغة: