অনলাইন জাজে প্রোগ্রামিং প্র্যাক্টিস

08/31/2015

বিশ্বের সবচেয়ে বড় core programming এর প্রতিযোগীতা হচ্ছে ACM ICPC । এই ফরমেটের প্রোগ্রামিং প্রতিযোগীতায় কোন পূর্ণাঙ্গ software বা application বানাতে হয় না। বরং বাস্তব জীবনের সাথে সঙ্গতিপূর্ণ বা গাণিতিক কিছু সমস্যার সমাধান করতে হয় C/C++ বা Java programming language এর মাধ্যমে। এই প্রবলেম সলভিং এর জন্য Graphical User Interface (GUI) এর কোন কাজ করতে হয় না। বা এমন কোন এপ্লিকেশন বানাতে বলা হয় না যাতে computer mouse এর সাহায্য কাজ করা যায়। অর্থাৎ এপ্লিকেশনটি পুরোটাই Command Line Interface (CLI) ভিত্তিক (কী বোর্ড থেকে টাইপ করে ইনপুট দিতে হয়)।

এই প্রোগ্রামিং প্রতিযোগিতায় অংশ নেয়ার প্রস্তুতি শুরু করা হয় যে কোন online programming judge এর problem solving এর মাধ্যমে। অনলাইনে programming practice এর জন্য বেশ কিছু জনপ্রিয় সাইট রয়েছে। এই সাইটগুলোতে ঠিক ACM ICPC format এর অসংখ্য প্রোগ্রামিং সংক্রান্ত সমস্যা দেয়া থাকে। যে কেউ চাইলে সেই সমস্যাগুলো নির্দিষ্ট কিছু programming language এর মাধ্যমে সমাধান করতে পারে। তবে Programming Language C, C++ ও Java সবচেয়ে জনপ্রিয়।

অনলাইনে programming practice এর জন্য একজন শিক্ষার্থীকে প্রথমে ঐ অনলাইন জাজের ওয়েবসাইটে রেজিস্ট্রেশন করে তার সমাধান করার উপযোগী প্রবলেম বের করতে হয়। প্রবলেমটা বুঝে সে অনুযায়ী প্রোগ্রাম লিখে ঐ সাইটে সাবমিট করলে সাথে সাথেই ফলাফল জানা যায় যে প্রোগ্রামটা ঠিক আছে কিনা। Basic programing concept পরিষ্কার করা এবং programming logic উন্নত করার জন্য এই ফরমেটের প্রোগ্রামিং এর কোন বিকল্প নেই। প্রোগ্রামিংয়ের basic syntax, data structure, algorithm সহ বিভিন্ন ক্যাটাগরির সমস্যা এই সাইটগুলোতে দেয়া থাকে। একজন শিক্ষার্থী যে কোন অনলাইন জাজ অনুসরণ করে expert programmer হিসেবে নিজেকে প্রতিষ্ঠিত হতে পারেন!

অনলাইন জাজে প্রোগ্রামিং প্র্যাক্টিস করলে প্রোগ্রামিং এর যেই চর্চা বা অভিজ্ঞতা হয় সেটি পরবর্তী জীবনে software industry তে কাজ করার সময় খুবই সাহায্য করে। যে কোন সফটওয়্যার বা এপ্লিকেশনের জন্য bug free ও efficient code করার ক্ষেত্রে এর বিকল্প নাই। উল্লেখ্য যে Google, Microsoft, Facebook এর মত প্রতিষ্ঠানগুলো প্রোগ্রামার নিয়োগ দেয়ার ক্ষেত্রে ACM ICPC World Finalists-দেরকেই পছন্দের তালিকায় প্রথম দিকে রাখে। কারণ এই চর্চার মাধ্যমেই তৈরি হতে পারে একজন শক্তিশালী প্রোগ্রামার।
Tech Analyst – Techmorich