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

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

عادة ما يكون شيء مثل "Learn ______"

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

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

أو:

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

أو:

"ذلك Go gopher هو فقط لطيف يا إلهي".

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

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

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

صورة الائتمان

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

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

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

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

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

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

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

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

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

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

لكن هذه اللعبة هي محرك Little Engine That يمكن أن يشتهر ببطء في السنوات القليلة الماضية. وهذا المحرك هو جافا سكريبت.

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

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

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

علوم الكمبيوتر 101

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

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

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

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

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

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

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

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

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

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

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

تعد JavaScript هي اللغة الأكثر شيوعًا التي يستخدمها مطورو 49،397 الذين استجابوا لـ Stack Overflow's 2016 Survey.

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

أذكر منشورات الوظائف جافا سكريبت أكثر من أي لغة برمجة أخرى غير جافا:

بيانات من أكبر مجمع نشر للوظائف في العالم ، في الموقع

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

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

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

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

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

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

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

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

البيانات من الواقع

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

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

العامل رقم 2: الآفاق طويلة الأجل

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

المصدر: The GitHub’s 2016 State of the Octoverse

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

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

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

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

هذا محاكاة ساخرة ل XKCD فكاهي.

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

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

العامل رقم 4: المشاريع التي يمكنك إنشاؤها معها

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

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

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

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

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

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

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

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

1970s أسلوب سيمون اللعبةلعبة كونواي للحياةحرب النجوم تحت عنوان ويكيبيديا البحثلعبة الزاحف roguelike المحصنة

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

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

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

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

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

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

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

الإعتراض رقم 1: لكن هل جافا سكريبت بطيئة؟

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

جافا سكريبت (Node.js) هي أوامر من حيث الحجم أسرع من بيثون وروبي و PHP.

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

فيما يلي نتائج المؤشر الأكثر شمولية للغة المشتركة:

الاعتراض رقم 2: لكن جافا سكريبت لم يتم كتابتها بشكل ثابت

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

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

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

exampleArray = "النص"
-> "النص"
exampleArray.length
-> 4

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

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

"يحتوي Typescript على منحنى تعليمي ، لكن إذا كنت تعرف JavaScript بالفعل ، فسيكون ذلك سلسًا." - Alex Ewerlöf على TypeScript

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

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

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

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

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

مهن 49525 مطورًا ، استنادًا إلى الردود على استبيان Stack Overflow لعام 2016.

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

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

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

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

وهذا يعني جافا سكريبت.

الاعتراض رقم 4: أليس جافا سكريبت لغة ألعاب مكتوبة في 10 أيام؟

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

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

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

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

"لا يوجد سوى نوعان من لغات البرمجة: هؤلاء الأشخاص دائمًا ما يخدعونهم ولا يستخدمهم أحد." - Bjarne Stroustrup

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