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

ما مدى أهمية البرمجة التنافسية ؟

اسماعيل كشور

السؤال

لقد أنهيت كتاب java notes المترجم كمقالات هنا ، وكان لي سابق تجربة سيئة في تعلم البرمجة قبله.

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

خطواتي اللاحقة :

* بناء مشروع يكون تطبيقاً لمعظم ما تعلمت (وهي الخطوة الحالية) وبعدها تطبيق عدة أفكار ومشاريع.

* الاستزادة في مواضيع الخوارزميات وهياكل البيانات حسب الحاجة لربما اقرأ كتاباً متوسطاً

* رأيت تجميعاً ل 150 مسألة على leetcode قررت حلهم كذلك.

هذه خطواتي القريبة اللاحقة.

 

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

 

اطلعت على بعض مسائل موقع كود فوريس و جربت حل أحد التمارين كان بمستوى 1200 ان صح التعبير (لم أبحث كثيراً عن اسليب تصنيفه)

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

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

شخصياً أفضل تطوير  مهارتي عبر العمل على مشاريع و حل تمارين واقعية أما تمارين البرمجة التنافسية ليست مما أرغب التعامل معه أبداً (:

ومن ناحية أخرى البيئة التنافسية هذه و التي تشجع على المقارنة مع الآخر لا تعجبني.

 

كنت أفكر ان حل المسائل التي ذكرتها على leetcode كافي،أما الأن فيبدوا إن صح القول بمركزيتها فلا بد من أبدأ كذلك بها.

 

ما رأيكم حولها وما مدى ضرورتها للمبرمج وهل تحسين منطق حل المشكلات لن يكون إلا عبر هذه مشكلات الرياضية العقلية ؟

 

تم التعديل في بواسطة اسماعيل Ismail
إصلاح أخطاء إملائية
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

البرمجة التنافسية مهمة للمبرمج 

  • تزيد من قدراتك على حل المشكلات ستساعدك البرمجة التنافسية على حل مشكلات وخوارزميات البرمجة الواقعية الصعبة وتصميمها وتنفيذها في المستقبل.
  • تصبح أسرع. نظرًا لأن المبرمجين المتنافسين يحتاجون إلى حل 5-6 مشاكل في غضون ساعتين أو نحو ذلك ، فإنهم عادة ما يكونون مرتاحين للمواعيد النهائية الصغيرة.
  • تصبح أكثر انضباطًا وتركيزًا. في المنافسة ، يجب أن تحل المشاكل في المواقف العصيبة. تعلمك المشاركة في البرمجة التنافسية كيفية التركيز بشكل أكبر على المهمة وعدم إكمالها بسرعة فحسب ، بل بدقة. هذه المهارات مفيدة للغاية لأي وظيفة ، وليس فقط في البرمجة .
  • تتعلم العمل في فريق. تساعدك مسابقات الفريق مثل ACM ICPC على تعلم كيفية العمل معًا بشكل فعال ، حيث يجب عليك العمل مع الآخرين في فريقك لإكمال نفس المهمة.
  • تتعلم كيفية تقييم نقاط القوة والضعف لدى أعضاء فريقك وتقسيم المسؤوليات بشكل فعال بين بعضهم البعض. هذه مهارة مهمة للغاية حيث ستحتاج في الوظيفة إلى العمل ضمن فريق في معظم الأوقات.
  • فرص أفضل في أعلى الشركات متعددة الجنسيات.
  • يتمتع المبرمجون التنافسيون الجيدون بميزة في وضع أنفسهم في الشركات التي تعتبر أكثر نخبة ويصعب الوصول إليها أكثر من غيرها. المشاركة في مسابقة البرمجة شيء يجب أن تبرزه في سيرتك الذاتية. ستكون مقابلات البرمجة الخاصة بك أسهل.
بتاريخ 9 ساعة قال اسماعيل Ismail:

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

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

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

مرحباً اسماعيل،

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

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

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

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

رابط هذا التعليق
شارك على الشبكات الإجتماعية

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...