من أحد المترجمين: ننشر اليوم لك
مقالة للمطور أكشات جيري ، يشاركنا أفكاره حول أهمية تعلم المزيد والمزيد من لغات البرمجة.
لقد عملت كمبرمج منذ أربع سنوات. بدأت بـ C # ، وتطوير الألعاب ، ثم تحولت إلى Python والتعلم الآلي. ثم تعلمت JavaScript و TypeScript للواجهة الأمامية. كانت الخطوة التالية هي تطوير تطبيقات الهاتف المحمول ، لذلك قمت باستخدام Ionic و React و React Native. أصبحت مهتمة بالخلفية وبدأت العمل مع Go. بعد ذلك بقليل ، تمت إضافة Dart و Java و PHP إلى قائمة لغات وأطر العمل الخاصة بي - كانت جميعها مطلوبة خلال عملي على Facebook.
لا أريد أن أقول إنني خبير في جميع اللغات المذكورة. لدي خبرة معهم ، أكثر من اللغات والأطر الأخرى. لماذا وقع الاختيار عليهم؟ حسنًا ، يبدو لي أنهم يقدمون أكثر من الآخرين ، ولهذا السبب.
توصي Skillbox بما يلي: دورة تدريبية لمدة عامين "أنا مطور ويب للمحترفين" .
نذكرك: لجميع قراء "Habr" - خصم بقيمة 10،000 روبل عند التسجيل في أي دورة تدريبية في Skillbox باستخدام الرمز الترويجي "Habr".

لكن لماذا أنصحك أن تتعلم المزيد من اللغات؟ الحقيقة هي أنه لا يمكنك حتى تخيل ما سوف يستغرقه الأمر في غضون عامين. يمكن أن يؤدي اختيار اللغة أو الإطار الصحيح إلى توفير الكثير من الوقت عند حل مشكلة معينة.
حل المشكلة الأولى
سأقدم مثال بسيط. قبل بضعة أشهر ، اخترت سماعات Bluetooth. توقف في AirPods. جربت العديد من الآخرين ، لكن بدا لي أنها مريحة قدر الإمكان. كانت المشكلة أنني استخدمتهم في وقت واحد مع كمبيوتر محمول يعمل بنظام Windows وهاتف Android. وإذا كانت كلتا الأدوات الذكية في مكان قريب ، فستتصل سماعات الرأس بالهاتف ، ولكن ليس بالكمبيوتر المحمول. لذلك ، اضطررت إلى فصلها يدويًا وإعادة الاتصال. كل يوم
هذا مرهق للغاية ، وقررت إنشاء زر من شأنه أن يحل مشكلة توصيل سماعات الرأس بجهاز كمبيوتر محمول عند الحاجة.
في البداية ، قررت استخدام Python لحل هذه المشكلة. اعتقدت أنه يمكنني بسهولة العثور على مكتبة تتيح لك التحكم في أجهزة Bluetooth. تبين أن هذا خطأ ؛ لم يتم العثور على مكتبة جيدة.
الخطوة التالية هي Node.js. تمكنت من العثور على مكتبة JavaScript أتاحت التحكم في وظائف Bluetooth على جهاز الكمبيوتر الخاص بي. بعد تنفيذ هذا البرنامج النصي على Node.js ، حققت ما هو مطلوب.
حسنًا ، لكنني الآن بحاجة إلى زر على الشاشة لإطلاق البرنامج النصي. في النهاية ، قررت وضعه على شريط مهام Windows بحيث يكون متاحًا دائمًا. لقد صنعت نصًا آخر بدا لي أنه ساعد في إكمال هذه المهمة. لكن لا ، اضطررت إلى اللجوء إلى Golang. لقد جعل من الممكن إنشاء ملف قابل للتنفيذ ، والذي بدوره قام بتنفيذ البرنامج النصي الذي تم إنشاؤه مسبقًا على Node.js.
/ main.go package main import ( "fmt" "os/exec" ) func main() { output, err := exec.Command("npm", "start").CombinedOutput() if err != nil { fmt.Println(err.Error()) } fmt.Println(string(output))
كل شيء يعمل بها. لقد صنعت اختصارًا لسطح المكتب ونقلته إلى شريط المهام. كل شيء على ما يرام ، كل شيء يعمل.

اعتقدت أنه في C # يمكنني أيضًا حل هذه المشكلة. لكنني حقا لا تريد تثبيت Visual Studio و IDE.
يوضح المثال الخاص بي كيف تساعد اللغات المختلفة في إيجاد حل مختلط لمشكلة معينة بأقل وقت ممكن. هناك الكثير من الأمثلة الأخرى ، لكن النقطة ، كما أعتقد ، واضحة.
فلماذا تعلم لغات أخرى؟
أن نكون صادقين ، وهذا مثير للاهتمام. بالإضافة إلى ذلك ، فهو يوسع أفقك ، ويخرجك من منطقة الراحة (لا يخلق مشكلة ، ولكنه يعطي قوة دفع ، الرغبة في تعلم شيء جديد).
سبب آخر هو تجاوز قدرات لغة أو إطار عمل. اللغات الموجهة للكائنات جيدة ، لكن يجب أن تتعلم أيضًا البرمجة الوظيفية أو الإجرائية.
لغة البرمجة الأولى التي تتعلمها ستكون الأكثر صعوبة. والثاني ، على الأرجح ، سوف يبدو أكثر صعوبة. ولكن مزيد من دراسة المنتجات الجديدة سوف تبدو وكأنها نزهة في الحديقة. بناء جملة مختلف قليلاً ، بضعة أشياء جديدة ، وهذا كل شيء. بالإضافة إلى ذلك ، يمكنك دراسة المكتبات المتخصصة وأطر اللغات التي تتقن بالفعل.
سبب آخر ، كما يبدو لي ، قد يؤدي إلى تعلم لغات أخرى هو WASM. سيمكّنك Web Assembly من تشغيل اللغة التي تحتاجها في المستعرض.
إذا كنت مبرمج JavaScript أو Python ، فمن المفيد إتقان اللغات ذات المستوى المنخفض. يمكنك أن تبدأ بـ C ++ أو C ، لكنني أنصح Golang. يتيح لك الحصول على جميع ميزات C ++ عالية السرعة دون المشكلات التي تميز عائلة C.
إذا كنت تعمل مع لغات منخفضة المستوى ، فجرّب JavaScript أو Python. كلاهما تحظى بشعبية كبيرة وشائعة. يمكن استخدام كلاهما مع اللغات منخفضة المستوى. يمكنك كتابة وحدات C ++ لـ Node.js و Python.
شارك تجربتك الخاصة في التعليقات: ما هي اللغات التي تعرفها ، وما الذي تنوي تعلمه ، ولماذا؟
توصي Skillbox بما يلي: