প্রোগ্রামিং কনটেস্ট এবং অনলাইন জাজে হাতেখড়ি

(আমাকে অনেকে মেইল করে জিজ্ঞাসা করে কিভাবে সে প্রোগ্রামিং কনটেস্টের সাথে যুক্ত হতে পারে? তাদের হয়তো কয়েক বাক্যে কিছুটা বুঝিয়ে বলার চেষ্টা করি কিন্তু সব কথা বা গাইডলাইন এভাবে দেয়া সম্ভব হয়না। এই লেখাটা তাদের জন্য যারা সামান্য প্রোগ্রামিং শিখেছে বা শেখার কথা ভাবছে এবং প্রোগ্রামিং কনটেস্টে অংশ নেবার কথা ভাবছে। আমি যখন প্রথম শুরু করেছিলাম তখন যেসব প্রশ্ন মাথায় এসেছিলো বা অনেকেই যেধরণের প্রশ্ন করে সেগুলোর উত্তর দিতে চেষ্টা করবো এখানে এবং কিভাবে অনলাইন জাজে প্রবলেম সলভ করতে হয় সেটা দেখাবো।)

তোমার বয়স যতই হোক বা যেখানেই পড়ালেখা করো তুমি প্রোগ্রামিং কনটেস্টে অংশ নিতে পারবে, এমনকি তুমি যদি স্কুলে পড়ো তাহলেও। ইনফরমেটিক্স অলিম্পিয়াড হলো স্কুল-কলেজের স্টুডেন্টদের জন্য প্রোগ্রামিং কনটেস্ট, বাংলাদেশ জাতীয় পর্যায়ের অলিম্পিয়াডে ভালো করে তুমি অংশ নিতে পারবে আন্তর্জাতিক ইনফরমেটিক্স অলিম্পিয়াডে। তুমি যদি স্কুল-কলেজ থেকেই সিরিয়াসলি কনটেস্ট করা শুরু করো তাহলে খুবই ভালো সম্ভাবনা আছে বিশ্ববিদ্যালয় পর্যায় গিয়ে তুমি দেশের সেরা একজন কনটেস্টেন্ট হতে পারবে, রাশিয়া-চীনের মতো যেসব দেশ কনটেস্টে সবথেকে ভালো তারা খুব কম বয়সে এটা শুরু করে। তুমি যদি এরই মধ্যে কোনো বিশ্ববিদ্যালয়ে ১ম বা ২য় বর্ষে পড়ালেখা করো তাহলেও মোটেও দেরী হয়ে যায়নি, তুমি বিভিন্ন বিশ্ববিদ্যালয়ের আয়োজিত ন্যাশনাল লেভেলের কনটেস্টগুলোতে অংশ নিতে পারবে। তবে তোমার লক্ষ্য হবে আকাশ ছোয়ার, তুমি হয়তো একসময় অংশ নিবে acm icpc ওয়ার্ল্ড ফাইনালে, প্রোগ্রামিং কনটেস্টের সবথেকে সম্মানজনক প্রতিযোগীতায়। এটার জন্য তোমাকে খুবই ভালো ফলাফল করতে হবে রিজিয়নাল কনটেস্টে। প্রতি বছরই বাংলাদেশ থেকে ১টি বা ২টি টিম ওয়ার্ল্ড ফাইনালে অংশ নেয়।

এগুলো ছাড়াও বিভিন্ন ওয়েবসাইটে নিয়মিত অনলাইন কনটেস্ট হয়, সেগুলোতে অংশ নিতে পারে যে কেও, শুধু তোমাকে ইমেইল আইডি দিয়ে সাইটে রেজিস্টার করতে হবে। সেখানে তুমি সারা বিশ্বের প্রোগ্রামারদের সাথে প্রতিযোগীতা করবে, তোমাকে পারফরমেন্স অনুযায়ী গ্র্যান্ডমাস্টার/এক্সপার্ট ইত্যাদি রেটিং দেয়া হবে, সেখানে দেখতে পারবে বাংলাদেশি প্রোগ্রামাররা ইন্টারন্যাশনাল পর্যায়েও খুবই ভালো ফলাফল করে। প্রোগ্রামিং কনটেস্ট টপ-রেটেড কোডারদের অনেকের বয়স ১৫-১৬ বা তারও কম তাই তোমার ইউনিভার্সিটিতে যাওয়া পর্যন্ত অপেক্ষা করা দরকার নেই।

এখন প্রথম প্রশ্ন হলো তুমি শুরু করবে কিভাবে? প্রথম কাজ অবশ্যই প্রোগ্রামিং শেখা। তুমি যদি এখনো প্রোগ্রামিং না শিখে থাকো তাহলে আগে সেটা শুরু করে দাও। সি++ এর একটা ভালো বই যোগাড় করো আর বেসিক জিনিসগুলো শিখে ফেলো। প্রথমেই খুব বেশি শেখা দরকার নেই, বেসিক লজিক-লুপ চালানো-ইনপুট/আউটপুট নেয়া শিখেই তুমি প্রবলেম সলভিং প্র্যাকটিস করতে পারবে, একই সাথে শিখতে থাকবে আরো অ্যাডভান্সড টপিকগুলো। ল্যাংগুয়েজ শেখা আসলে কনটেস্টের প্রস্তুতির বড় অংশ না, এটা শিখতে বেশি সময় লাগবেনা, এরপরে অনেক বেশি সময় দিতে হবে প্রবলেম সলভিং টেকনিকগুলো শিখতে তবে সেই সময়টা তোমার একদমই বোরিং লাগবেনা সেটার নিশ্চয়তা দিতে পারি, এই শেখা চলতে থাকবে তুমি যতদিন কনটেস্ট করবে ততদিন, শেখার কোনো শেষ নেই।

প্রোগ্রামিং ল্যাংগুয়েজ ছাড়াও কি কি বিষয় শেখা লাগবে? তুমি প্রোগ্রামিং কনটেস্টে অংশ নেয়ার প্রস্তুতি নিচ্ছি, তুমি কোনো ওয়েব ডেভেলপার না শুধু ল্যাংগুয়েজ শিখে গুগলে সার্চ করে ফাংশন কপি-পেস্ট করে কাজ শুরু করবে, বা তুমি পরীক্ষার প্রস্তুতি নিচ্ছনা যে কোনো একটা বই মুখস্থ করে ফেলবে। তুমি প্রোগ্রামিং কনটেস্ট করবে তাই তোমার জানার কোনো লিমিট থাকবেনা। তোমাকে খুবই ভালো লজিক ডেভেলপ করতে হবে, তোমাকে গণিতে বিশেষ করে কম্বিনেটরিক্স, প্রোবাবিলিটি আর নাম্বার থিওরিতে অবশ্যই ভালো হতে হবে, অনেক অ্যালগোরিদম আর ডাটা স্ট্রাকচার কিভাবে কাজ করে তোমাকে জানতে হবে এবং সেগুলো কোডে ইমপ্লিমেন্ট করতে জানতে হবে। কঠিন কঠিন শব্দগুলো শুনে ভয়ের কিছু নেই, কনটেস্ট করতে করতেই তুমি এগুলো শিখে যাবে, আগেই সবকিছু শিখে কেও শুরু করেনা। তোমাকে এই লেখার শেষ অংশ কিছু রিসোর্স দিবো শুরু করার জন্য।

এখন আসি যেটা শিখাতে মুলত লেখাটা শুরু করেছিলাম সেই অংশে, অনলাইন জাজে হাতেখড়ি। তুমি যখন একটা প্রবলেম সলভ করবে সেটা সঠিক নাকি সেটা বলে দিবে অনলাইন জাজ। অনলাইন জাজ আসলে এক ধরণের অনলাইন সফটওয়্যার যে তোমার কোড পরীক্ষা করে কয়েক সেকেন্ডের মাঝে বলে দেয় সেটা সঠিক নাকি। প্র্যাকটিস করার জন্য অসংখ্য অনলাইন জাজ আছে। তুমি হয়তো জানো এইসব জাজের মধ্যে একটি আছে একজন বাংলাদেশির তৈরি করা, জাজটির নাম lightoj, তৈরি করেছেন ঢাকা বিশ্ববিদ্যালয়ের জানে আলম জান যিনি বর্তমানে গুগলে কাজ করছেন। তবে আমরা শুরু করবো বাংলাদেশিদের মধ্যে সবথেকে পপুলার UVa online judge দিয়ে, এটা তৈরি করেছে স্পেনের ভ্যালাডোলিড ইউনিভার্সিটি, লিংকটা হলো http://uva.onlinejudge.org/। তুমি শুরুতেই এখানে একটা অ্যাকাউন্ট খুলে ফেলো। Screenshot

অ্যাকাউন্ট খুলে তুমি বামে browse problems থেকে “Contest Volumes” লিংকটাতে যাও। সেখানে দেখবে উপরের মতো volume C,volume CI ইত্যাদি লেখা আছে। তুমি volume C তে ক্লিক করো। সেখানে দেখবে প্রবলেমের একটা লিস্ট এসে গিয়েছে।
Screenshot

ডানের কলামগুলোতে দেয়া আছে কতজন প্রবলেমটা সলভ করেছে আর কতজন চেষ্টা করেছে। যে প্রবলেম যত বেশি মানুষ সলভ করেছে সেটা তত সহজ হবার সম্ভাবনা বেশি। তুমি নিচে স্ক্রল করে 10055 – Hashmat the Brave Warrior প্রবলেমটায় ক্লিক করো। প্রবলেমটি সেট করেছেন বাংলাদেশের Shahriar Manzoor,তিনি খুবই বিখ্যাত প্রবলেমসেটার এবং পুরো পৃথিবীতে হাতেগোণা অল্প যে কয়জন মানুষ তিনি ওয়ার্ল্ড ফাইনালের জাজ হতে পেরেছেন তাদের একজন। প্রবলেমটা একবার তুমি রিডিং পরো তারপর আমি ব্যাখ্যা করছি।

যেকোনো প্রবলেমকে ৩টা অংশ ভাগ করা যায়। প্রথম ভাগে থাকে প্রবলেমের বর্ণনা। এরপরে থাকে “Input” অংশ। এই অংশ বলা থাকে তোমাকে কি ধরণের ভ্যালুর জন্য প্রবলেমটা সলভ করতে হবে। “Output” অংশে থাকে কিভাবে আউটপুট প্রিন্ট করতে থাকে। কয়েকটি sample input/output দেয়া হয় বোঝার সুবিধার জন্য। কিন্তু এটা কিন্তু জাজ এর Input না। জাজের একটি ইনপুট ফাইল থাকে, hashmat প্রবলেমটার জন্য সেটা হতে পারে এরকম:

Screenshot-2

তবে সত্যিকারের জাজ ইনপুট ফাইলে কি আছে সেটা খালি প্রবলেম সেটাররা জানেন, তোমাকে বা আমাকে সেটা দেয়া হবেনা, তোমাকে খালি বলা হবে ইনপুট ফাইলে কি ধরণের ইনপুট আছে, ইনপুট ফাইল কত বড়, যে সংখ্যা বা স্ট্রিং ইনপুট দেয়া হবে সেগুলো কত বড় ইত্যাদি। প্রতিটি ইনপুটের জন্য তোমাকে আউটপুট প্রিন্ট করতে হবে প্রবলেমে বলা ইনস্ট্রাকশন অনুযায়ী। জাজের কাছে একটা answer ফাইল আছে। তুমি যেসব আউটপুট প্রিন্ট করবে জাজ সেটাকে আরেকটি আউটপুট ফাইলে নিয়ে যাবে। তারপরে answer ফাইলের এর সাথে তোমার কোডথেকে পাওয়া আউটপুট মিলিয়ে দেখবে। এই কারণে তুমি আউটপুটে অতিরিক্ত কোনো কিছু প্রিন্ট করতে পারবেনা, যেমন hashmat প্রবলেমে তুমি প্রতি লাইনে সুন্দর করে “the answer is 10” এভাবে প্রিন্ট করলে হবেনা, যেভাবে বলেছে সেভাবে শুধুমাত্র উত্তরটা প্রিন্ট করতে হবে। তোমাকে ফাইল নিয়ে চিন্তা করতে হবেনা, তুমি সাধারণভাবেই printf,scanf দিয়ে কাজ করবে, ফাইলের ব্যাপার জাজ হ্যান্ডেল করবে।

এখন তুমি একটা সলিউশন লিখে ফেলবে। সলিউশনটা হতে পারে এরকম:
Screenshot-4

আমি সরাসরি কোড না দিয়ে ইমেজ দিলাম যাতে কেও কপি-পেস্ট করে প্রথম সলিউশন লেখার আনন্দ মিস না করে। while এর ভিতর scanf এর এরকম ব্যবহার হয়তো তুমি আগে দেখোনি, আপাতত জেনে রাখো এভাবে লিখলে যতক্ষণ ২টি সংখ্যা ইনপুট দেয়া হবে ততক্ষন তোমার কোড কাজ করবে, ফাইল যখন শেষ হবে(EOF=end of file) তখন কোড টার্মিনেট করবে। এই কোডটা লিখে স্যাম্পল ইনপুট গুলো কিবোর্ড দিয়ে ইনপুট দিয়ে দেখো যে আউটপুটের সাথে মিলছে নাকি। মনে রাখবে শুধুমাত্র আউটপুট অংশটা ভিন্ন একটা ফাইলে নিয়ে জাজের সাথে মিলিয়ে দেখা হবে।

এবার বামে quick submit এ ক্লিক করো। প্রবলেম আইডি হলো 10055 যেটা প্রবলেমের উপরেই লেখা আছে। ল্যাংগুয়েজ সিলেক্ট করো C++ 4.5.3।
Screenshot-5

এরপর সাবমিট বাটনে ক্লিক করো। জাজের সার্ভার ঠিকঠাক থাকলে কয়েক সেকেন্ডে জাজ হয়ে যাবে। বামে my submissions এ ক্লিক করো এখন। জাজ হয়ে গেলে দেখাবে “Accepted”। তারমানে তোমার কোড সঠিক, এইমাত্র তুমি অনলাইন জাজে তোমার প্রথম প্রবলেম সলভ করেছো!! UVa’তে সার্ভারের অনেক সময় সমস্যা করলে verdict আসতে দেরি করে, তখন একটু অপেক্ষা করতে হবে, তবে সেটা খুব কমই হয়। তুমি কোড সাবমিট করার পর যেসব verdict পেতে পারো সেগুলো হলো:

Wrong answer: তোমার সলিউশনে ভুল আছে। sample input এর জন্য তোমার কোড সঠিক উত্তর দিলেও জাজের মূল ইনপুট ফাইলের জন্য দিতে পারছেনা। যেমন ধরো hashmat প্রবলেমে বলা আছে 2^32-১ পর্যন্ত ইনপুট দেয়া হবে, সাধারণ integer এর লিমিট হলো 2^31-১, তাই long long ব্যবহার না করলে তুমি wrong answer পাবে। wrong answer আসলে চিন্তা করো কোন ইনপুটের জন্য তোমার প্রোগ্রাম কাজ করছেনা।

Time limit exceeded: প্রবলেমের উপর হয়তো লেখা দেখেছো time limit: 3 seconds, তারমানে সবগুলো ইনপুটের জন্য মোট ৩ সেকেন্ডের মাঝে তোমাকে আউটপুট দিতে হবে, যদি টাইম পার হয়ে যায় তাহলে এই verdict পাবে। তখন চিন্তা করো কিভাবে কোড অপটিমাইজ করা যায়। আমরা সাধারণত ধরে নেই ১ সেকেন্ডে মোটামুটি ১০^৮ পর্যন্ত লুপ চালানো যাবে।

Run time error: তোমার কোড এক্সিকিউশন করার সময় কোনো একটা কারণে বন্ধ হয়ে গিয়েছে। যেমন হয়তো কোথাও তুমি শুণ্য দিয়ে কাওকে ভাগ করার চেষ্টা করছো বা তোমার অ্যারের সাইজ বেশি ছোটো।

Presentation error: তুমি যদি কোডে অতিরিক্ত space প্রিন্ট করো তাহলে এই verdict পাবে। তারমানে তোমার সলিউশন ঠিকই আছে তবে প্রিন্টিং ফরমেট ঠিক নাই। সাধারণত খুব সহজেই এই ইরোর দূর করা সম্ভব।

Accepted: তোমার সলিউশন সঠিক, অভিনন্দন, এখন অন্য আরেকটি প্রবলেম সলভ করো।

এখন তুমি বামে My uHunt with Virtual Contest Service লিংকে ক্লিক করো। সিঙ্গাপুর ন্যাশনাল ইউনিভার্সিটির ফেলিক্স হালিম এই সাইটটা তৈরি করেছেন। এখানে খুব সহজেই তোমার সব statistics দেখতে পারবে, সাবমিট করার পর চাইলে এখানেই তুমি verdict দেখতে পারো। নিচের দিকে “Next Problems to Solve” অংশ থেকে তুমি সলভ করার মতো প্রবলেম খুজে নিতে পারবে, প্রথম দিকে সহজ যত প্রবলেম আছে সব সলভ করে ফেলবে, এরপর দক্ষতার বাড়াতে কঠিন প্রবলেম সলভ করা শুরু করবে। “World Ranklist” অংশে দেখতে পারবে তোমার অবস্থান কোথায়। উপরের দিকে search problems ঘরে প্রবলেম id বসিয়ে খুব সহজে যেকোনো প্রবলেমের লিংক খুজে বের করতে পারবে। এছাড়া এই সাইটে আরো কিছু কাজের টুলস আছে, একটু গুতাগুতি করে বুঝে নিবে।

প্রথম দিকে তোমার input/output ফরমেট নিয়ে একটু সমস্যা হতে পারে। eof পর্যন্ত ইনপুট নেয়া, blank line পেলে ব্রেক করা এসব ব্যাপার নতুন লাগতে পারে। এজন্য তুমি এই ফাইলটা ডাউনলোড করে নাও:

ইনপুট/আউটপুট টেকনিক+অ্যারে+স্ট্রিং+ডাটাটাইপ+পয়েন্টার

এখানে কয়েকটা ছোটোছোটো pdf ফাইল আছে, প্রবলেম সলভিং শুরু করার জন্য খুবই কাজের এগুলো।
যে বইগুলো তোমার পড়া খুবই দরকার সেগুলো হলো knuth এর concrete math, rosen এর discrete math, কোরম্যান বা শাহনীর algorithm, স্টিভেন-ফেলিক্স হালিমের competitive programming।

প্রবলেম সলভ করতে গিয়ে অনেক সময়ই তুমি আটকে যাবে, বারবার wrong answer খাবে। তখন তুমি কি করবে? প্রথম কাজ হলো আরো ভালোভাবে চিন্তা করো। এরপরেও না পারলে সাহায্য নাও। হতে পারে তুমি এমন জায়গায় থাকো যেখানে সাহায্য করার মতো শিক্ষক বা বড় ভাই নাই। ইন্টারনেটের যুগে এটা কোনো ব্যপারই না, তুমি বিভিন্ন ফোরামের সাহায্য নাও। তুমি জান ভাইয়ের lightoj তে রেজিস্টার করলে একটি চমৎকার ফোরাম পাবে যেখানে অনেকেই সাহায্য করবে। uva সহ প্রায় সব অনলাইন জাজেরই ফোরাম আছে, তুমি গুগলে সার্চ করলেই লিংক পাবে সেগুলোর। সেখানে তুমি বড় বড় প্রোগ্রামারদের সাথে কথা বলো, দেখো তারা কিভাবে প্র্যাকটিস করে। বাংলাদেশের প্রোগ্রামারদের সাথে যোগাযোগ করার জন্য চমৎকার জায়গা হতে পারে ফেসবুক, তুমি নিচের গ্রুপ গুলোতে জয়েন করো:
প্রোগক্রিয়া-বাংলা ইনফরমেটিক্স ব্লগ
BD programmers
Bangladesh Informatics Olympiad

এসব জায়গায় তুমি সাহায্য করার মতো অনেক উদার মানুষকে পাবে। ফাহিম ভাইয়ের সাইটে তুমি দারুণ সব রিসোর্স পাবে, বিভিন্ন অনলাইন জাজের কোনটার কি ফিচার আছে সেগুলো জানতে পারবে। তুমি uva’র সহজ প্রবলেমের একটা তালিকা পাবে এখানে, এগুলো দিয়ে সলভ শুরু করতে পারো।

বুঝতেই পারছো তুমি যেখানেই থাকোনা কেনো প্রোগ্রামিং কনটেস্টে ভালো করার মতো সব রিসোর্স ইন্টারনেটেই আছে, তোমার কাজ হলো সেগুলো ব্যবহার করে খুব ভালো করে প্র্যাকটিস করা। অনেকবার তোমার মনে হবে “আমি পারছিনা”, এরকম ভেবে অনেকেই হাল ছেড়ে দেয়, তুমি ছাড়বেনা, একসময় তুমি ভালো করতে বাধ্য। নেটে তুমি অনেক কোড পাবে যেগুলো সাবমিট করে তুমি accepted পেতে পারো কিন্তু ভুলেও সেই কাজ করবেনা, তাহলে বিশাল ক্ষতি হবে, তোমাকে এ ব্যাপারে নিজের কাছে সৎ থাকতে হবে। কিছুটা দক্ষতা আসার পর বেশি প্রবলেম সলভ করার থেকে বেশি গুরুত্ব দিবে ভালো প্রবলেম সলভ করাকে, অনলাইন জাজে তুমি কয়টা প্রবলেম সলভ করেছো সেটা কেও দেখবেনা, দেখবে তুমি বিভিন্ন কনটেস্টে কেমন করো সেটা।

সবশেষে বলতে চাই তোমার চলার পথ হয়তো খুব সহজ হবেনা, অনেকেই নিরুৎসাহিত করবে, অনেক শিক্ষক পছন্দ করবেনা তোমার কনটেস্ট করা, অনেক সময় অন্য কাজের সাথে তাল মিলিয়ে কনটেস্ট করা কঠিন হবে, এগুলোই বাস্তবতা বাংলাদেশে। এসবের মধ্যে কেও কেও হাল ছেড়ে দিবে, বাকিরা কোনো কিছুতেই হাল ছাড়বেনা, জয় একমাত্র তাদেরই প্রাপ্য, তোমাকে বেছে নিতে হবে তুমি কোন দলে থাকবে। আমি কনটেস্ট শুরু করি ২০১০ এ, বেশ কিছু ন্যাশনাল আর রিজিয়নাল কনটেস্ট করেছি, কোনোভাবেই আমাকে সিনিয়র কনটেস্টেন্ট বা খুব ভালো কনটেস্টেন্ট বলা যায়না,তবে এই ৩ বছরে অনেক অভিজ্ঞতা হয়েছে, অনেক ভালো ভালো কনটেস্টেন্টের সাথে কাজ করার সুযোগ হয়েছে। অনেক সময়ই ranklist এ পিছের দিকে ছিটকে পড়েছি আবার পরেরবার সেটা রিকভার করে প্রথমদিকেও এসেছি, এখনও চেষ্টা করছি ইমপ্রুভ করার, সবমিলিয়ে কনটেস্ট করা একটা দারুণ অভিজ্ঞতা। তুমি অনেক অনেক কিছু শিখতে পারবে, অ্যালগোরিদমের বাইরেও তুমি শিখবে কিভাবে এক্সট্রিম প্রেশারে কাজ করতে হয়, খারাপ সিচুয়েশন থেকে রিকভার করতে হয়, কিভাবে প্রতিযোগীতা করতে হয় দেশের সেরাদের সাথে। তুমি হয়তো কখনো টেলিভিশনে ক্রিকেট খেলা দেখতে দেখতে শেষ ওভারে দম বন্ধ করে বসে থেকেছো, তারপর একটা ছক্কা মারার পর সবাইকে চমকে চিৎকার করেছো, তুমি ঠিক সেই অভিজ্ঞতা পাবে কনটেস্টে, হয়তো শেষ মিনিটে একটি প্রবলেম মিলিয়ে হারিয়ে দিবে সবাইকে, কখনো অনলাইন কনটেস্টে বাংলাদেশের পতাকা তুলে ধরবে অনেক উপরে, এই অসাধারণ অনুভূতি তুমি টাকা দিয়ে কিনতে পারবেনা।

আপাতত এখানেই শেষ করছি। তোমার আরো কোনো প্রশ্ন থাকলে অবশ্যই জানাও, তোমাকে সাহায্য করতে পারলে খুশি হবো। শুভকামনা থাকলো।

Print Friendly, PDF & Email

ফেসবুকে মন্তব্য

comments

Powered by Facebook Comments

135,127 times read (exlcuding bots)

36 thoughts on “প্রোগ্রামিং কনটেস্ট এবং অনলাইন জাজে হাতেখড়ি

      1. ভাইয়া আপনি যে ফাহিম ভাইয়ের সাইটের কথা বললেন ফাহিম ভাইয়ের সাইটটির লিংক দেয়া যাবে?

    1. অবশ্যই ভুল করোনি :-), আমিও এই সাবজেক্ট নেয়ার পরে অনেকে বাজে কথা বলেছে, এসবে কান দিতে হয়না :D।

  1. ধন্যবাদ। আমি কিছুদিন হলো প্রব্লেম সলভ করা শুরু করেছি । বেশ কিছু প্রব্লেম সল্ভ করতে না পেরে অনেকটাই হতাশায় ভুগছিলাম । আপনার লেখাটা পরে আত্মবিশ্বাস ফিরে পেলাম । কিছু লিঙ্ক কাজ করছেনা । ঠিক করে দিলে ভালো হয় । আবারো ধন্যবাদ ।

      1. knuth এর concrete math, তোমার যেসব লিংক দরকার হতে পারে তার একটি কালেকশন আমি তৈরি করেছি, তুমি uva’র সহজ প্রবলেমের একটা তালিকা পাবে এখানে,

  2. I am studying computer science and engineering. Now I am at 1st year 2nd semester. I have learnt c language. But I had been ill for a long time and couldn’t practice properly. So I am not an expert at c. I haven’t taken part in any online contest. I haven’t solved any problem in any online judge. Is it still possible for me to prepare myself for a world class contest like ACM ICPC if I start trying hard from today? My classmates are very good programmers. They have told me that it is too late to get started because no one will take a weak programmer in their group and attaining skill takes long time. Please give me a realistic reply. If it is still possible, please tell me how to proceed.

  3. অসাধারন, দারুন একটি লেখা
    আমি আবার শুরু করার উৎসাহ্ পেলাম। আপনার লেখাটা সত্যি আত্মবিশ্বাস ফিরে পাওয়ার একটি মন্ত্র ও বলা যায়।
    আপনারা আছেন বলেই আমরা বার বার হতাশাগ্রস্থ আবস্থায় থেকে পিরে আসতে সাহস পাই…..
    ধন্যবাদ ভাইয়া।

  4. অসাধারন একটা লেখা।
    পড়ে অনেক ভাল লাগল।
    এইরকম একটা ভাল লেখা উপহার দেয়ার জন্য আপনাকে অসংখ্য ধন্যবাদ।

Leave a Reply

Your email address will not be published. Required fields are marked *