كيف تتعلم لغة برمجة جديدة؟

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

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

تجربتي:

هذا المقال راح يكون مبني على تجربتي مع لغة Rust واللي تعتبر من أصعب اللغات من ناحية التعلم نتيجة لشموليتها وإحتواءها على الكثير من الخصائص والميزات.

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

وبعدها قدرت -بفضل الله- أتمكن من اللغة خلال فترة أقل من شهر واليوم بدي أشارككم الطريقة اللي أنا اتبعتها.

أخذ فكرة عامة

من أهم الأشياى اللي لازم تعرفها حتى قبل تعلم الsyntax هي الفلسفة العامة للغة، هاي الجزئية بتعتمد بشكل رئيسي على النظر في الصفحة الرئيسية للغة أو عن طريق النقاش مع أحد برامج الذكاء الاصطناعي (أنا شخصيا بستخدم جيميناي) مثل هاي الأسئلة:

  • - ما الفلسفة العامة للغة؟
  • - ما المشكلة التي حلتها اللغة؟
  • - لماذا أستخدم Rust بدلا من لغة أخرى مثل C؟
أهمية هاي الخطوة هي معرفة السبب اللي ممكن يخليني أتعلم اللغة وأفهم اللي اخترع اللغة ليش اخترعها وشو المشكلة اللي حلها أو حاول يحلها باللغة وليش الشركات ممكن تستخدم هاي اللغة ووين تستخدمها.

كراش كورس & يوتيوب

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

هذا من وجهة نظري هو الشيء الوحيد اللي بتحتاج فيه اليوتيوب عشان نتجنب فخ الTutorial Hell إلا إذا حبيت تتابع قنوات بتنزل محتوى عام عن اللغة أو advanced tips and tricks.

بناء المشاريع الصغيرة والدخول في التفاصيل

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

اللي بدك تعمله كالاتي، بتروح على الai المفضل عندك وبتطلب منه مشاريع تستخدمها عشان تتعلم اللغة اللي بدك تتعلمها.

إذا ما بدك تستخدم الai ممكن تبني مشاريع سابقة بنيتها بلغات مستخدمة في نفس المجال.

يفضل في كل مشروع بتطلبه من الذكاء الاصطناعي تركز على فكرة معينة في اللغة، أنا مثلا وأنا بتعلم Rust كنت مركز على بناء مشاريع الsystem programming لأنه هذا هو اختصاص Rust، وكان تركيزي على المواضيع التالية:

  • - التعامل مع المدخلات و المخرجات input/output
  • - عمليات الString processing
  • - التعامل مع الFile system
  • - بناء وتنظيم التواصل عن طريق الشبكات Networking
  • - التعامل مع الAsynchronous code
  • - بناء البرامج المتوازية Parallelism وحل مشاكل الRace conditions
  • - التعامل مع تراكيب البيانات المختلفة

وعن طريق التركيز على هاي القائمة بنيت مجموعة من المشاريع البسيطة وركزت على تقليد مشاريع مشهورة منها:

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

الختام

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

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