“Despite his very young age, Mihai Patrascu’s work has broken through many old barriers on fundamental data structure problems, not only revitalizing but also revolutionizing a field that was almost silent for over a decade.” – প্রেসবার্গার অ্যাওয়ার্ড কমিটি, ২০১২
আতামুরাদের চিঠি
হ্যালো মিহাই,
আমার ইংরেজি খুব একটা ভালো না। প্লিজ কিছু মনে কোর না।
আমি আতামুরাদ হেযরেতগুলিয়েভ। আমার বয়স ১৬ আর আমি তুর্কিমিনিস্তানে থাকি। আমি ইনফরম্যাটিক্সে আগ্রহী এবং আমি এখন IOI এর জন্য প্রস্তুতি নিচ্ছি। শেষবারের IOI তে আমি ৬০০ তে ২৫৫ স্কোর করেছিলাম। কোন মেডেল পাইনি কারণ ২৬৫ তে ব্রোন্জের কাটআউট ছিলো। আমি ২০০৫ এবং ২০০৬ এ IOI তে অংশ নেবো এবং আমি স্বর্ণপদক জিততে চাই ।
আমি একটা কবিতা পড়েছিলাম - To follow the path: look to the master, follow the master, walk with the master, see through the master, become the master.
আমি সত্যি কাওকে খুঁজে বেড়াচ্ছি কিন্তু দু:খজনকভাবে আমার দেশ IOI তে মাত্র চারবছর ধরে অংশ নিচ্ছে আর কেউই কখনো কোন মেডেল জিততে পারেনি। সেজন্য আমার একটা “মাস্টার” দরকার দেশের বাইরে থেকে। তো সেইজন্য আমি গুগল করলাম আর তোমাকে খুঁজে পেলাম এবং আমার তোমার সাহায্য দরকার।
বন্ধু, আমি জানি কাওকে অ্যালগরিদম বা প্রোগ্রামিং শেখানো সহজ নয়। এবং আমি তোমাকে সেটা করতে বলবোও না। কিন্তু আমি তোমার সাহায্য চাই আমাকে পথ দেখানোর জন্য। প্লিজ আমাকে সাহায্য করো আমার প্রশ্নগুলোর উত্তর দিয়ে। কিভাবে প্রস্তুতি নিবো? কি পড়বো? কি সলভ করবো? তুমি সেটা কিভাবে করেছিলে? তুমি কিভাবে প্রস্তুতি নিয়েছিলে?
আমি কিছু অ্যালগরিদম আর ডাটা স্ট্রাকচার শিখেছি কিন্তু খুব একটা প্রবলেম সলভ করতে পারি না। যেমন ধরো, USACO এর গোল্ড লেভেলের প্রবলেম। এবং আমি জানি না কি পড়বো আমি। বা কি শিখবো। আমি প্রায় তিন বছর ধরে IOI এর জন্য ট্রেনিং করে যাচ্ছি।
আশা করি তুমি আমার সমস্যা বুঝতে পারছো। আমি তোমার উত্তরের জন্য অপেক্ষা করবো।
আতামুরাদ
মিহাই পাত্রাস্কুর উত্তর
হ্যালো!
অনেক ধন্যবাদ তোমার চিঠির জন্য :- )
আমি আসলে বহুদিন অলিম্পিয়াড থেকে দূরে আছি; আমি এখন রিসার্চ করছি থিওরি নিয়ে, আর সেটা আমাকে অনেক দূরে নিয়ে গেছে আমার IOI করার দিনগুলি থেকে। তবুও আমি তোমাকে কিছু উপদেশ দেবার চেষ্টা করবো আমার স্মৃতি থেকে, যা কিছু মনে পড়ে। কিন্তু মনে রেখো আমি যেহেতু বহুদিন ধরে অলিম্পিয়াডের সংস্পর্শে নেই হয়তো এই উপদেশগুলো সর্বোত্তম হবে না।
প্রথমত, ট্রেইন করার জন্য প্রবলেম সলভ করার চেয়ে ভালো কোন পথ নেই। আর প্রবলেমের জন্য সেরা উৎস হচ্ছে আগের IOI এর প্রবলেমগুলো অথবা অন্য প্রতিযোগিতাগুলোর প্রবলেমগুলো। তুমি CEOI (Central European OI), BOI (Balkan), BOI (Baltic) এর প্রবলেমগুলো দেখতে পারো। এই সব কন্টেস্টে অনেক ভালো প্রবলেম আছে, বিশেষ করে শেষ কিছু বছরের কন্টেস্টে।
আরেকটা চমৎকার জায়গা হচ্ছে USACO। ওদের বিশাল কালেকশন আছে ভালো প্রবলেমের। আমার যতদূর মনে পড়ে ওদের একটা ট্রেইনিং সিস্টেম ও আছে, যেখানে তুমি পর্যায়ক্রমে যতগুলো লেভেল পার করবে প্রবলেমগুলো তত কঠিন হতে থাকবে। এবং একইসাথে, তুমি USACO এর কন্টেস্টগুলোতেও অংশ নিতে পারো এবং নতুন প্রবলেমগুলো সলভ করতে পারো।
শুরুতে, তোমার কাছে ভীষণ কঠিন লাগতে পারে প্রবলেমগুলো সলভ করতে। কিন্তু আশা ছেড়ো না, অন্য কাওকে জিজ্ঞেস করো তোমাকে কিছু আইডিয়া দিতে। অথবা অন্য প্রবলেম ঘাটতে পারো, হয়তো খুব কাছাকাছি কোন একইরকম আইডিয়া তোমাকে এই প্রবলেমটা সলভ করতে সাহায্য করতে পারে। কিছু কিছু কন্টেস্টের অ্যানালাইসিসও থাকে যেখানে সবগুলো প্রবলেমের সমাধান আলোচনা করা হয়। সেগুলোও পড়তে পারো।
কিছু মেইলিং লিস্ট আর ফোরাম আছে যেগুলোতে মানুষজন আগ্রহী ইনফরম্যাটিক্স অলিম্পিয়াড নিয়ে। সেগুলো খুঁজে বের করতে পারো। তুমি সেখানে প্রশ্ন করতে পারো আর হয়তো তুমি জবাবও পাবে। অন্যদের করা প্রশ্নগুলোও তোমার ভাবনার খোরাক হতে পারে।
প্রবলেম সলভিং ছাড়া আরেকটা কাজ তুমি করতে পারো। সেটা হচ্ছে বই পড়া। দূর্ভাগ্যজনকভাবে আমি কোন ভালো বই এর নাম জানি না। Cormen, Leiserson এবং Rivest এর বইটা বেশ বিখ্যাত। কিন্তু ব্যাখ্যাগুলো খুব একটা ভালো না, আর তারা খুব বেশি ডিটেইলসের ভিতর ঢুকে যায়। কিন্তু তারপরও সবকিছু মিলিয়ে আমার মনে হয় এটা বেশ কাজের হবে অন্তত জানাটা যে বইটার ভেতর কি আছে।
আবার এটাও একটা প্রশ্ন যে তুমি কি বেশি করে কোডিং করবে নাকি বেশি করে থিওরি পড়বে। আমার মতামত হচ্ছে তোমার উচিত একটা সময় পর্যন্ত ধুমায়ে কোড করা, যতক্ষণ না পর্যন্ত তুমি খুব কম্ফোর্টেবল হচ্ছো কোডিং নিয়ে। এর মানে হচ্ছে, তুমি লিখে ফেলতে পারো যেটা তুমি লিখতে চাও এবং তুমি সেটা লিখতে পারো নির্ভূলভাবে। তারপর তোমার উচিত প্রচুর প্রবলেম সলভ করা থিওরিটিকালি এবং মাঝে মাঝে সেগুলো কোডে ইম্প্লিমেন্ট করে দেখা শুধু অভ্যাসটা রাখার জন্য। আমার মনে হয় আমি শেষ বছরগুলোতে বড়জোর একটা প্রবলেম ইম্প্লিমেন্ট করেছি প্রতি মাসে। যখন তুমি ভীষণ কম্ফোর্টেবল হয়ে যাবে প্রোগ্রামিং এ, তখন কোন প্রয়োজন নেই সেখানে সময় নষ্ট করার। সময়গুলো নষ্ট করো বরং অন্য জায়গাগুলোতে যেখানে তুমি দূর্বল।
আর সবকিছুর উপরে, আমার উপদেশ হচ্ছে রিল্যাক্স করো আর নিজের উপর ভরসা রাখো। অবশ্যই তোমার ভালো হতে হবে, কিন্তু একই সাথে তোমার ভেতর শক্ত বিশ্বাসও থাকতে হবে যে তুমি আসলেই ভালো। আর তুমি যদি খুব বেশি মাত্রাতিরিক্ত পরিশ্রম করতে থাকো, সেটা তোমার সৃষ্টিশীলতাকে ধ্বংস করে ফেলবে। There’s really a very fine point where you balance work and ingenuity, and you need to be relaxed and confident in order to find that point.
শুভ কামনা।
মিহাই পাত্রাস্কু
উল্লেক্ষ্য, আতামুরাদ হেযরেতগুলিয়েভ ২০০৬ সালে ইনফরমেটিক্স অলিম্পিয়াডে স্বর্ণপদক জেতে।