Post

কম্পিটিটিভ প্রোগ্রামিং কেন করব, কিভাবে করব (পর্ব-২)

প্রথম পর্বে আমরা বিশদভাবে আলোচনা করেছিলাম কেন আমরা competitive programming কিংবা problem solving করব। এবার আমরা জানব — competitive programming শুরু করব কিভাবে?


ACM Club এ যোগ দিন

প্রতিটা University-তেই ACM club/group এবং ACM lab থাকে যেখানে অনেকেই নিয়মিত contest করে থাকে। নিয়মিত class কিংবা discussion হয়। সেই group-এর সাথে যুক্ত হতে পারেন।

যারা প্রতিযোগিতায় অংশ নিতে চান না, কিন্তু skill development-এর জন্য problem solving চালিয়ে যেতে চান তারাও programming-এর মৌলিক জিনিসগুলো শিখে বিভিন্ন online judge-এ নিয়মিত প্রবলেম সলভ করতে পারেন।


  • CodeForces
  • UVa
  • HackerRank
  • LeetCode — বিশেষ করে চাকরি প্রত্যাশীদের জন্য
  • LightOJ
  • SPOJ
  • HackerEarth, Timus, ProjectEuler
  • যারা তুলনামূলক দুর্বল তারা URI দিয়ে শুরু করতে পারেন

কোন Language দিয়ে শুরু করব?

Competitive programmer-দের জন্য C/C++ recommended। তবে problem solving C/C++, Python, Java — যে কোনো language দিয়ে শুরু করা যায়।


শুরুতে কি শিখব?

কিছু basic Data Structure এবং Algorithms আছে যেগুলো জানাটা খুব important।

Beginner problem-গুলো solve করার জন্য regular logical skill-ই যথেষ্ট, যেটা কমবেশি সবারই আছে। একটা problem solve করতে কারো সময় বেশি লাগবে, কারো হয়তো কম। কিন্তু পরবর্তী কঠিন problems solve করার জন্য Data Structure এবং Algorithms শেখা শুরু করা খুব জরুরি।

Syllabus ও source code সহ resource এখানে পাবেন

আমার code library পাবেন এই লিংক-এ যেটা programming contest-গুলোতে আমি সচরাচর use করতাম।


কোনো বই Recommend করবেন?

হ্যাঁ, অবশ্যই। আমি ব্যক্তিগতভাবে blog বেশি follow করি। Blog-গুলো updated থাকে।

Advanced-দের জন্য cp-algorithms ভালো, যেটা originally রাশিয়ান ভাষায় লেখা e-maxx blog-এর ইংরেজি অনুবাদ।

আরো অনেক resource এই লিংক-এ পেয়ে যাবেন।


জুনিয়রদের প্রতি অনুরোধ: বেশি বেশি প্রোগ্রামিং করুন, প্রবলেম সলভ করুন। কাজে দিবে।

কোনো কিছু বাদ গেলে বা প্রশ্ন থাকলে comment করুন। ধন্যবাদ সবাইকে! 🚀

This post is licensed under CC BY 4.0 by the author.