اذهب إلى المحتوى

السؤال

نشر

إخواني أنا حرفي وتعلمت ال css و html و الجافا سكريبت و التايب سكريبت و الرياكت و express وبايثون ومكتبة الأوبن سيفي و fastApi و الراست ونظام الملكية و Axum و السي++ وإدارة الذاكرة دون خلفية أكادمية تعلمتهم لأتقن الإنجليزية تعلم نظري دون تطبيق أصبحت مدمن على التعلم وأفكر في إتقان الأسامبلي والبرمجة المنخفظة المستوى والأنظمة المدمجة و هل التعلم يحتاج حفظ كل المصطلحات البرمجية أم المفهوم العام وهل تكتبون الكود من حفظكم أم بالإستعانة بالنقل  

Recommended Posts

  • 0
نشر

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

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

  • التركيز على المفاهيم: البرمجة مثل بناء منزل تحتاج إلى فهم لماذا مثل كيفية عمل الذاكرة في C++ أو نظام الملكية في Rust لتجنب الأخطاء وليس مجرد حفظ الأسماء فعلى سبيل المثال، في Rust مفهوم ال "ownership" يمنع مشاكل الذاكرة وفهم هذا يساعدك في لغات أخرى مثل C++ دون حفظ كل كلمة مفتاحية.
  • الحفظ غير ضروري: المصطلحات تأتي مع الوقت عبر التكرار والتطبيق و لو حاولت حفظ كل شيء مثل جميع الدوال في OpenCV أو ال APIs في FastAPI) ستشعر بالإرهاق والملل والتشتت ولا يوجد شخص يحفظ كل هذا. وبدلا من ذلك تعلم كيف تبحث عنها عند الحاجة مثل في الوثائق الرسمية أو Stack Overflow أو على جوجل.
  • الاستثناءات: في بعض المجالات مثل الأنظمة المدمجة أو البرمجة المنخفضة المستوى (low-level)، قد تحتاج إلى حفظ بعض المصطلحات الأساسية مثل registers في Assembly ولكن حتى هناك الأمر يدور بشكل أساسي حول الفهم العملي لا الحفظ .

وأيضا كما وضحت لك أن معظم المبرمجين بما فيهم المحترفينؤلا يكتبون الكود من الذاكرة بل يستعينون دائماً بالمراجع والنسخ واللصق والأدوات وإليك كيف يعمل الأمر في الواقع:

  • الذاكرة للأساسيات فقط فنحفظ المفاهيم الأساسية مثل كيفية كتابة loop في JavaScript أو class ولكن للتفاصيل الدقيقة نستخدم:
    • الوثائق الرسيمة.
    • النسخ واللصق حتى المطورين المحترفين ينسخون الأكواد من GitHub أو Stack Overflow ثم يعدلونه ليتناسب مع احتياجاتهم .
    • أدوات المساعدة مثل ال IDEs ك VS Code تساعد بال auto-complete.

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

  • 0
نشر

أولاً لا أحد يحفظ كل المصطلحات. المهم أن تفهم كيف تعمل الأشياء. ولا يوجد مبرمج يكتب الكود كاملاً حفظاً بنسبة 100%. بل نحفظ ال syntax  والمنطق (Logic)، ونستفيد من 

  • الوثائق الرسمية (Documentation)
  • البحث  لإيجاد حلول لمشاكل واجهت غيرنا.

أي المبرمج يعرف ما الذي يبحث عنه ويعرف كيف يعدل الكود.
ثانياً لماذا التوجه للـ Assembly والأنظمة المدمجة فأنت تفكر في تعلم Assembly لأنك تريد التعمق أكثر، لكنك لم تستخدم Rust أو C++ التي تعلمتها بالفعل أي يجب عليك تحديد المجال الذي تريد تعلمه للعمل به لتصبح محترفاً في هذا المجال .

  • 0
نشر

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

بينما البرمجة نفسها اكتفي بالتطبيق العملي فهو الأهم وبدونه فلا معنى للمُلخصات النظرية مهما كتبت، ببساطة لن تستطيع قيادة سيارة بمشاهدة فيديو صحيح؟

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

لذا في البداية المطلوب فهم الفكرة العامة أي ماذا تفعل الدالة؟  وماذا تحتاج لتعمل؟

كذلك لست مضطر للتوجه لصفحات الإنترنت في كل مرة، فالبيئة التي تعمل بها مثل vscode توفر لك تكملة تلقائية، عند كتابة اسم الدالة ضع مؤشر الماوس داخل القوسين واضغط على زر CTRL + Space  في لوحة المفاتيح وستظهر لك نافذة صغيرة فيها كل المعاملات المتاحة.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...