ما هي لغة البرمجة التي يجب أن تتعلمها أولاً في 2020؟ ʇdıɹɔsɐʌɐɾ: ɹǝʍsuɐ

تبدأ رحلة معظم الأشخاص نحو تعلم البرمجة ببحث Google واحد في وقت متأخر من الليل.

عادةً ما يكون شيئًا مثل "تعلم ______"

لكن كيف يقررون اللغة التي يبحثون عنها؟

"إنهم يمزحون دائمًا بشأن جافا في وادي السيليكون. أعتقد أنني يجب أن أتعلم ذلك ".

أو:

"هاسكل. حار جدا الآن. هاسكل ".

أو:

"هذا جو غوفر لطيف للغاية."

ثم هناك بقيتنا. ربما سنبحث عن شيء مثل:

"ما هي لغة البرمجة التي يجب أن أتعلمها أولاً؟"

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

يمكن أن يكون اتخاذ قرار بشأن لغة البرمجة الأولى لديك عملية ممتعة - نوعًا ما يشبه تلك "أي شخصية من شخصيات كوينتين تارانتينو أنت؟" اختبارات الشخصية.

لكن قبل أن تهرب لتتعلم روبي لأنك استمتعت باللعب مع Play-Doh عندما كنت طفلاً ، دعني أذكرك: المخاطر كبيرة هنا.

سوف يستغرق الأمر مئات الساعات من التدريب لتصبح مؤهلًا عن بعد بلغة البرمجة الأولى.

لذلك يجب مراعاة العوامل التالية:

  • سوق العمل للغة
  • آفاق المدى الطويل للغة
  • ما مدى سهولة تعلم اللغة
  • ما هي المشاريع التي يمكنك إنشاؤها أثناء التعلم (ومشاركتها مع الأصدقاء حتى تظل متحمسًا)

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

بجدية. تحقق من هذه الأحجار الكريمة من الشهر الماضي:

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

جافا كان لها صعود وهبوط.

ارتفعت بايثون تدريجياً لتصبح الخيار الأكثر شعبية.

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

قبل أن أتحدث عن لغات البرمجة هذه ، دعني أوضح:

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

لنبدأ الأمور من خلال استكشاف كيفية تدريس البرمجة حاليًا في المدرسة.

علم الحاسوب 101

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

بالطبع ، كما قد تكون سمعت الآن:

"لا يمكن لتعليم علوم الكمبيوتر أن يجعل أي شخص مبرمجًا خبيرًا أكثر من دراسة الفرشاة والأصباغ يمكن أن تجعل شخصًا رسامًا خبيرًا." - اريك س. ريموند

اعتبارًا من عام 2016 ، لا تزال العديد من الجامعات تتعامل مع البرمجة مثل علوم الكمبيوتر وعلوم الكمبيوتر مثل الرياضيات.

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

ويبقى رؤساء الأقسام عمومًا في الدورة ، مشيرين إلى قوائم متصدري لغة البرمجة السنوية مثل مؤشر TIOBE ، أو هذا من IEEE:

تبدو معظم لوحات المتصدرين هذه مطابقة تقريبًا لما كانت عليه قبل 10 سنوات.

لكن التغيير يحدث. حتى في الأوساط الأكاديمية.

في عام 2014 ، تفوقت Python على Java باعتبارها لغة التدريس الأكثر شيوعًا في أفضل برامج علوم الكمبيوتر الأمريكية.

ومع ذلك ، هناك تغيير آخر لا بد أن يحدث ... في النهاية ...

لأنه إذا نظرت إلى اللغات المستخدمة بالفعل من قبل القوى العاملة ، فإنها ترسم صورة مختلفة تمامًا:

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

تشير إعلانات الوظائف أيضًا إلى JavaScript أكثر من أي لغة برمجة أخرى غير Java:

ليس من قبيل الصدفة أننا قمنا ببناء منهج مجتمعنا مفتوح المصدر حول JavaScript. على مدار العامين الماضيين ، استخدم أكثر من 5000 شخص Free Code Camp للحصول على أول وظيفة مطور لهم.

أنا لا أدافع عن JavaScript لأنني أعلمها. أقوم بتدريس JavaScript لأنها الطريق الأضمن لوظيفة مطور أول.

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

العامل رقم 1: سوق العمل

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

كما ذكرت سابقًا ، تم ذكر Java في إعلانات الوظائف أكثر من أي لغة برمجة أخرى. جافا سكريبت تأتي في المرتبة الثانية.

ولكن هذا هو الشيء المتعلق بـ JavaScript: على الرغم من وجودها منذ 20 عامًا ، إلا أنها أصبحت مؤخرًا أداة جادة تقوم شركات مثل Netflix و Walmart و PayPal ببناء تطبيقات كاملة حولها.

نتيجة لذلك ، توظف الكثير من الشركات مطوري JavaScript ، ولكن ليس هناك الكثير في سوق العمل.

هناك 2.7 من مطوري Java يتنافسون على كل موقع Java مفتوح. وبالمثل ، فإن المنافسة على وظائف PHP و iOS شرسة.

ولكن مقابل كل موضع JavaScript مفتوح ، هناك 0.6 مطور JavaScript فقط. إنه سوق للبائعين إلى حد كبير للمطورين ذوي مهارات JavaScript.

العامل رقم 2: الآفاق طويلة المدى

يتلقى مشروع JavaScript العادي ضعف عدد طلبات السحب مثل متوسط ​​مشروع Java أو Python أو Ruby. علاوة على ذلك ، فإن JavaScript تنمو بشكل أسرع من أي لغة شائعة أخرى.

يستفيد نظام JavaScript البيئي أيضًا من الاستثمار الضخم للأموال والمواهب الهندسية من شركات مثل Google و Microsoft و Facebook و Netflix.

على سبيل المثال ، يحتوي TypeScript (مجموعة شاملة مكتوبة بشكل ثابت من JavaScript) على أكثر من 100 مساهم مفتوح المصدر ، والعديد منهم من موظفي Microsoft و Google يتم دفع رواتبهم للعمل عليها.

يصعب العثور على هذا النوع من التعاون بين الشركات باستخدام Java. غالبًا ما تقاضي Oracle - التي تمتلك Java بشكل فعال من خلال استحواذها على Sun Microsystems - الشركات التي تحاول التوسع فيها.

العامل رقم 3: صعوبة التعلم

يتفق معظم المبرمجين على أن لغات البرمجة النصية عالية المستوى سهلة التعلم نسبيًا. تقع JavaScript ضمن هذه الفئة ، جنبًا إلى جنب مع Python و Ruby.

على الرغم من أن الجامعات لا تزال تدرس لغات مثل Java و C ++ كلغات أولى ، إلا أنها أصعب كثيرًا في التعلم.

العامل رقم 4: المشاريع التي يمكنك البناء عليها

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

بسبب انتشار JavaScript في كل مكان ، صاغ المؤسس المشارك لـ Stack Overflow جيف أتوود قانونه الشهير الآن:

"أي تطبيق يمكن كتابته بلغة JavaScript ، ستتم كتابته في النهاية بلغة JavaScript."

ومع مرور كل شهر ، يظل قانون أتوود قويًا.

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

تعاني بايثون من نفس المشاكل:

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

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

تعلم لغة واحدة بشكل جيد. ثم تعلم ثانية واحدة.

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

من أجل تجاوز الأساسيات ، عليك أن تتعلم لغتك الأولى جيدًا. عندها ستكون لغتك الثانية أسهل بكثير.

من هناك ، يمكنك أن تتفرع ، وأن تصبح مطورًا أكثر شمولاً من خلال تعلم الكثير من اللغات:

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

لكن تعلم JavaScript أولاً.

حسنًا ، سأحاول الآن المستحيل - سأحاول وأتوقع الاعتراضات من قسم التعليقات.

الاعتراض الأول: لكن أليست JavaScript بطيئة؟

جافا سكريبت - للأغراض العملية - بنفس سرعة اللغات عالية الأداء.

تعد JavaScript (Node.js) أسرع من حيث الحجم من Python و Ruby و PHP.

كما أنها تقترب من سرعة اللغات عالية الأداء مثل C ++ و Java و Go.

فيما يلي نتائج أحدث معيار شامل متعدد اللغات:

الاعتراض رقم 2: لكن JavaScript غير مكتوب بشكل ثابت

مثل Python و Ruby ، ​​تتم كتابة JavaScript ديناميكيًا ، وهو أمر مناسب. لكن يمكنك أن تقع في مشكلة. أنا هنا أنوي exampleArrayأن أكون مجموعة. أقوم بتعيين قيمه ، ثم تحقق من طوله - أي عدد العناصر التي يحتوي عليها.

exampleArray = [1, 2] -> [1, 2] exampleArray.length -> 2

ولكن بعد ذلك أعينها بطريق الخطأ لتكون سلسلة.

exampleArray = “text” -> “text” exampleArray.length -> 4

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

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

"يوجد منحنى تعليمي للطباعة ، ولكن إذا كنت تعرف JavaScript بالفعل ، فسيكون ذلك سلسًا." - أليكس إويرلوف على TypeScript

الاعتراض رقم 3: لكنني أريد حقًا إنشاء تطبيق جوال

ما زلت أوصي بتعلم JavaScript أولاً.

  1. تتميز JavaScript بالعديد من الأدوات لإنشاء تطبيقات الجوال الأصلية ، مثل Angular Cordova و React Native.
  2. من أجل أن يقوم تطبيق الهاتف المحمول الخاص بك بأي شيء مثير للاهتمام ، فمن المحتمل أن يحتاج إلى نهاية خلفية مناسبة ، والتي سترغب في إنشائها باستخدام إطار عمل مناسب لتطوير الويب ، مثل Node.js + Express.js.

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

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

لم تتحقق الرؤية الكبرى المتمثلة في "وجود تطبيق لذلك". بدلاً من ذلك ، توقف معظم مالكي الهواتف الذكية عن تنزيل تطبيقات جديدة.

بالتأكيد - ما زالوا يستخدمون التطبيقات. معظمهم من Facebook و Google Maps وحفنة من الآخرين. على هذا النحو ، يتركز الكثير من الطلب على مطوري تطبيقات الأجهزة المحمولة في عدد قليل من أصحاب العمل الكبار.

من الصعب التنبؤ بالتوقعات الخاصة بوظائف تطوير الأجهزة المحمولة. العديد من جوانب تطوير تطبيقات الأجهزة المحمولة وصيانتها وتوزيعها أسهل مع JavaScript. لذلك تستثمر شركات مثل Facebook و Google بكثافة في أدوات أفضل لبناء هذه باستخدام JavaScript.

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

وهذا يعني JavaScript.

الاعتراض الرابع: أليست JavaScript لغة ألعاب كُتبت في 10 أيام؟

جافا سكريبت لها تاريخ ملتوي.

ستسمع بلا شك الناس يكسرون النكات على حسابها.

حسنًا ، يحب الناس أن يكرهوا C ++ أيضًا. ومثل JavaScript ، نجحت C ++ على الرغم من هذه الكراهية ، وهي الآن موجودة في كل مكان أيضًا.

لذا ، إذا واجهك أي شخص وقتًا عصيبًا لتعلم JavaScript بدلاً من لغة النخبة في الأسبوع ، فقط تذكر الكلمات الشهيرة للرجل الذي ابتكر C ++:

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

أنا أكتب فقط عن البرمجة والتكنولوجيا. إذا تابعتني على Twitter فلن أضيع وقتك. ؟