16 October 2010 0 Comments

প্রোগ্রামিং প্রতিযোগিতার কর্ম-পরিকল্পনা

অনুবাদ- আহমেদ শামসুল আরেফীন।

(মূল ইংরেজী ভার্সন – স্টিভেন হালিম ও রব কোস্তাদ (USACO ট্রেনিং সাইট))

সেরা প্রোগ্রামারের – কি চাই?

সবার আগে চাই কর্ম-পরিকল্পনা। আর তাই প্রোগ্রামিং প্রতিযোগিতায় ভাল করার জন্য প্রথমেই চাই তিনটি জিনিষ-
১. অ্যালগোরিদম ও গণিত এর ভাল ধারণা। কারণ প্রোগ্রামিং প্রতিযোগিতা বেশির ভাগ এ দুটির উপর ভিত্তি করে আসে।
২. একটি অ্যালগোরিদমকে প্রোগ্রামিং কোডে লেখার দক্ষতা। অ্যালগোরিদমগুলো সিওডো-কোডে (সাংকেতিকভাবে) লেখা থাকে।
৩. টিম মেম্বারদের সাথে মিলেমিশে কাজ করার ক্ষমতা।

অ্যালগোরিদম কি?

সহজ কথায়, অ্যালগোরিদম হলো যে কোন সমস্যা সমাধাণের ধাপগুলোর বণর্না। একটি ভাল অ্যালগোরিদম কাজ করে ধারলো ছুরির মতো। যা সমস্যাটিকে কেটে ছোট করে ফেলে।
একটি ভাল অ্যালগোরিদমের বৈশিষ্ট্য কি?
১. সেটি অবশ্যই থামবে/ টারমিনেট করবে।
২. যখন থামবে, অবশ্যই কোন ফলাফল দেবে।
৩. অবশ্যই কম সময়ে সবগুলো ইনপুটের জন্য সবচেয়ে সঠিক আউটপুট দেবে দক্ষতার সাথে।
কিছু বুড়ো-আঙলা টিপ্স
১. সবচেয়ে বড় সংখ্যা হলো- “long long” is 2^63-1: 9*10^18 (up to 18 digits)
২. শ সংখ্যক লুপ হ সংখ্যক বার ঘুরলে কমপ্লেক্সিটি হবে-O(n*k)
৩. হ সংখ্যক সংখ্যাকে সাজালে বা সর্টিং করা হলে সময় নেবে O(n log n)
৪. O(n log n) প্রোগ্রামিং প্রতিযোগিতার জন্য সবচেয়ে ভাল টাইমিং।

সমস্যার খসড়া অ্যালগোরিদম লিখুন

প্রবলেম টাইপ নির্ধারণের পরই এমন হতে পারে স্ট্যানডার্ড যে অ্যালগোরিদমটি আপনার সমস্যার জন্য আছে তা আপনার সমস্যার জন্য ব্যবহার করতে চাইলে খানিকটা পরিবর্তন করেই ব্যবহার করতে হবে। তাই আপনার অ্যালগোরিদমের খসড়া করুন।

অ্যালগোরিদম শিখতে হলে যা যা শিখতে হবে

টাইম কমপ্লেক্সিটি শিখতেই হবে। তাহলেই বুঝতে পারবেন আপনার অ্যালগোরিদমটি অন্যদের চেয়ে কতটা ভাল কাজ করে।
ইনপুটের সাপেক্ষে-

Order of Growth n Time (ms) Comment
O(1) 1000 1 Excellent, almost impossible for most cases
O(log n) 1000 9.96 Very good, example: Binary Search
O(n) 1000 1000 Normal, Linear time algorithm
O(n log n) 1000 9960 Average, this is usually found in sorting algorithm such as Quick sort
O(n^2) 1000 1000000 Slow
O(n^3) 1000 10^9 Slow, btw, All Pairs Shortest Paths algorithm: Floyd Warshall, is O(N^3)
O(2^n) 1000 2^1000 Poor, exponential growth… try to avoid this. Use Dynamic Programming if you can.
O(n!) 1000 uncountable Typical NP-Complete problems.

সময়ের সাপেক্ষে-

Order of Growth Time (ms) Max Possible n Comment
O(1) 60.000 ms Virtually infinite Best
O(log n) 60.000 ms 6^18.000 A very very large number
O(n) 60.000 ms 60.000 Still a very big number
O(n log n) 60.000 ms ~ 5.000 Moderate, average real life size
O(n^2) 60.000 ms 244 small
O(n^3) 60.000 ms 39 very small
O(2^n) 60.000 ms 16 avoid if you can
O(n!) 60.000 ms 8 extremely too small.

মনে রাখতে হবে কমপ্লেক্সিটির ক্রম- constant < log n < n < n log n < n^2 < n^3 < 2^n < n!

কোড টেস্টিং এর আর্ট শিখুন

এবার হলো টেস্ট ইনপুট তৈরী করার পালা। এই কাজটি করতে হলে-
১. প্রাথমিকভাবে সরল ইনপুটগুলো, যা প্রশ্নে উল্লেখ করাই আছে।
২. এবার ইনপুটের সর্বোচচ এবং সর্বনিু মান দিন।
৩. মাল্টিপল ইনপুট বিবেচনা করতে খেয়াল করুন ভেরিয়েবলকে বারবার সেট করা হলো কিনা?
৪. ট্রিকি টেস্ট কেসগুলো বিবেচনা করুন।
৫. নানা টেস্ট কেস দিয়েও আপনার প্রোগ্রামটিকে টেস্ট করতে পারেন।

এবার বিজয়ের ট্রিকস

১. কনটেস্টে প্রশ্ন পাওয়া মাত্রই সেগুলোকে ভাগ করে ফেলুন-
- ছোট/সহজ
- বড় কিন্তু করা আছে
- অপরিচিত। সাবধান অপরিচিত সমস্যা প্রথমে করার দরকারই নেই।
২. প্রবলেম সিলেক্ট করার পর অ্যালগোরিদম স্কেচ করে নিন, কমপ্লেক্সিটি হিসেব করুন, বিভিন্ন অ্যালগোরিমের মাঝে সবচেয়ে কার্য্যকরটা বেছে নিন।
৩. কোড করার আগে, গাণিতিকভাবে সমস্যাটি সমাধান করে নিন।
৪. এবার দ্রুত কোড করে ফেলুন।

টাইম ম্যানেজমেন্ট স্ট্র্যাটেজি

ধরা যাক এটি প্রবলেম নিয়ে অনেকক্ষণ বসে আছেন। এবার ভাবুন-

১. অ্যালগোরিদমটা কি ভুল?
২. ডাটাস্ট্র্যাকচারে কি কোন পরিবর্তন করতে হবে কিনা?
৩. অন্য সমস্যায় চলে যাবেন নাকি এটাই ঠিক করবেন?
৪. সবচেয়ে ভালো হয় যদি অন্য একজনকে দিয়ে নতুন করে ভাবুন।

প্রবলেম সেটারের কারসাজি

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

(মূল লেখাটি পাওয়া যাবে এখানে।)

11 October 2010 Comments Off

প্রোগ্রামিং প্রতিযোগিতার এর প্রাথমিক ধারণা

(লেখাটি অনুপম ভট্টাচার্য্যর স্মৃতির উদ্দেশ্য ডেডিকেট করা হলো। এটি ২০০৩ সালে তার পাঠনো (এবং হারিয়ে যাওয়া..) একটি টিউটোরিয়ালের অনুবাদ। আমেরিকায় ওয়াইন স্টেটের বিশ্ববিদ্যালয়ে পিএইচডি করতে গিয়ে অনুপম আজ লেক মিসিসিপির প্রবল ঝারো ঢেউয়ে হারিয়ে গেছে। তার করা অন্তত এই টিউটোরিয়ালটি থাকুক। তাই বাংলায় অনুবাদ করে দিলাম।)

প্রথম ধাপ- লক্ষ্য নির্ধারণ

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

সাধারনতঃ নবীন প্রোগ্রামারেরা যেই ভুলটা করে তা হলো- স্বল্প সময় ব্যয় করে প্রোগ্রামিং কোড/সংকেত লেখার জন্য কিন্তু সেখানে থেকে যায় নানান ভুল। এবার সেটাকে ঠিক করতে গিয়ে বাকি সময়টা নষ্ট করে।

একজন ভাল প্রোগ্রামারের সময়ের ভাগাভাগিটা কেমন হওয়া চাই?

একজন ভাল প্রোগ্রামারের কাছে সময়ের দামটা সবচেয়ে বেশি। তাই আপনি যদি ভাল প্রোগ্রামার হতে চান তবে সময়টাকে একটু মেপেই ব্যবহার করতে হবে।

* ১০% সময় ব্যয় করতে পারেন প্রোগ্রামিং কোড/সংকেত লেখার কাজে।
* ৪৫% সময় সমস্যাটি ভাবার জন্য।
* বাকিটা সময় সমাধানের সঠিকতা নির্ণয়ের কাজে।

এই অনুপাতটি আপনার কাজের ধরণের উপর নির্ভর করছে। নবীন প্রোগ্রামারেরা একই ধরণের প্রোগ্রাম সমাধান করে করে কোডিং লেখার সময়টিকে কমিয়ে আনতে পারবে।

ইনপুট/আউটপুট ফাইলের ব্যবহার

অনলাইন জাজে প্রোগ্রমিং প্র্যাকটিস করতে চাইলে কিন্তু ইনপুট/আউটপুট ফাইলের ব্যবহার করাটা চলবে না। কিন্তু সাধরণভাবে এটি ব্যবহার করে আপনি ডিবাগিং/ ভ্রমসংশোধনের কাজ করতে পারেন। ……(চলবে)।

4 October 2010 0 Comments

ইউনিভার্সিটি ডি ভ্যালাডলিড এর অনলাইন জাজ নিয়ে কিছু টিউটোরিয়াল লিখেছেন- শিশির

ইউনিভার্সিটি ডি ভ্যালাডলিড এর অনলাইন জাজ নিয়ে কিছু টিউটোরিয়াল লিখেছেন- শিশির।

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

রেজিস্ট্রেশন করা এবং সহজ প্রব্লেমগুলো খুঁজে বের করা

ইনপুট নেয়া

এখানে ইউ.ভি.এ. এর কিছু প্রব্লেম এর সলিউশন

কিছু পরিচিত-অপরিচিত, কঠিন-ননকঠিন অ্যালগরিদম টিউটোরিয়াল।

প্রোগ্রামিং এর কিছু কমন রুটিন

পিরামিড

প্রোগ্রামিং ল্যাঙ্গুয়েজ টিউটোরিয়াল-

০১.প্রোগ্রামিং ল্যাঙ্গগুয়েজ কিভাবে কাজ করে

০২.সি তে তোমার প্রথম প্রোগ্রাম

০৩.সি এর একেবারে বেসিক কিছু জিনিস

০৪.শর্ত সাপেক্ষে কাজ করা

০৫.প্র্যাকটিস সেশনঃ ০১

০৬.অ্যারে

০৭.লুপ

০৮.প্র্যাকটিস সেশন ০২

০৯.ফাংশন

১০.পয়েন্টার

১২.ফাইল ইনপুট-আউটপুট

১৩.স্ট্রাকচার ইউনিয়ন

আর বিস্তারিত জানতে টুক করে ঢুঁ মারতে পারো- http://dewsworld.x10.mx/

22 September 2010 0 Comments

সমস্যা তৈরি করাই তাঁদের কাজ!

- নুরুন্নবী চৌধুরী (Collected from Prothom-alo.com)

বাংলাদেশে শিক্ষার্থীদের মধ্যে বিশেষ করে কম্পিউটার বিজ্ঞান নিয়ে যাঁরা পড়ছেন তাঁদের কাছে কম্পিউটার প্রোগ্রামিং ব্যাপারটি বেশ জনপ্রিয়। দেশের গণ্ডি ছাড়িয়ে আন্তর্জাতিক বা অনলাইন জগতের প্রোগ্রামিংয়ে বাংলাদেশের সাফল্যও কম নয়। কম্পিউটার বিজ্ঞান ও প্রকৌশলের শিক্ষার্থীদের অনেকেরই ধ্যানজ্ঞান এই প্রোগ্রামিং। অ্যাসোসিয়েশন ফর কম্পিউটিং মেশিনারির (এসিএম) আয়োজনে প্রতিবছর অনুষ্ঠিত হয় আন্তর্জাতিক কলেজিয়েট প্রোগ্রামিং প্রতিযোগিতা (আইসিপিসি)। এর চূড়ান্ত পর্বে প্রতিবারই অংশ নেয় বাংলাদেশ। আর ঢাকায় নিয়মিতভাবেই হয় এর বাছাই পর্ব। সময়ের বদলেএখন আমাদের দেশের প্রোগ্রামাররা শুধু প্রোগ্রামিং সমস্যার সমাধানই করেন এমন নয়।বরং সমস্যা বা প্রশ্নও তৈরি করছেন বিশ্বের বাঘা বাঘা প্রোগ্রামারদের সঙ্গে পাল্লা দিয়ে।

দেশ সেরা প্রোগ্রামাররা
দেশে প্রোগ্রামিং প্রতিযোগিতার শুরু থেকে জড়িত আছেন শাহরিয়ার মঞ্জুর। ২০০০ সাল থেকে প্রোগ্রামিং সমস্যা সমাধানের কাজটি শুরু। তার পর থেকেই প্রোগ্রামিং নিয়ে আছেন তিনি। ২০০৩ সাল থেকে প্রতিবছর এসিএম আইসিপিসির চূড়ান্ত পর্যায়ে একজন বিচারক হিসেবে দায়িত্ব পালন করছেন তিনি। তবে শুধু এসিএম আইসিপিসি নয়, বিভিন্ন জাতীয় ও আন্তর্জাতিক প্রোগ্রামিং প্রতিযোগিতার জন্য তিনি প্রায় নিয়মিতভাবেই সমস্যা তৈরি করছেন। তাঁর উদ্যোগেই স্পেনের ভ্যালাদলিদ বিশ্ববিদ্যালয় পরিচালিত অনলাইন প্রোগ্রামিং প্রতিযোগিতার সাইটে (http://online-judge.uva.es) নিয়মিত প্রোগ্রামিং প্রতিযোগিতা আয়োজনের চর্চা শুরু হয়। দীর্ঘদিন ধরে অসংখ্য ভালো সমস্যা তৈরি করে কেবল বাংলাদেশেই নয়, সারা বিশ্বের প্রোগ্রামারদের কাছে দারুণ জনপ্রিয় এই তরুণ প্রোগ্রামিং শিল্পী। বর্তমানে তিনি সাউথইস্ট বিশ্ববিদ্যালয়ের কম্পিউটার বিজ্ঞান ও প্রকৌশল বিভাগে শিক্ষকতা করছেন।
শাহরিয়ার মঞ্জুরের পাশাপাশি বেশ কজন প্রোগ্রামার প্রতিযোগিতার জন্য প্রোগ্রামিং সমস্যা তৈরি করছেন। তাঁদের একজন হলেন আবদুুল্লাহ্ আল মাহমুদ। দেশের বিভিন্ন বিশ্ববিদ্যালয় ছাড়াও মালয়েশিয়ার আন্তর্জাতিক ইসলামি বিশ্ববিদ্যালয়ে প্রশিক্ষক হিসেবে কাজ করেছেন তিনি। ২০০৫ সালে এসিএম আইসিপিসির চূড়ান্ত পর্বে অংশ নেন। বিশ্বের অন্যতম প্রোগ্রামিং প্রতিযোগিতা টপকোডার (www.topcoder.com) সাইটের বাংলাদেশের প্রথম প্রোগ্রামার বিশেষ ‘রেড কোডার’ হয়েছেন তিনি। এ ছাড়া তিনি এসিএম আইসিপিসির একাধিক আঞ্চলিক পর্ব ও বিভিন্ন আন্তর্জাতিক প্রতিযোগিতায় সমস্যা তৈরি করেছেন। তাঁর তৈরি সমস্যাগুলো সাধারণত খুব জটিল ধরনের হয়। প্রোগ্রামিংকে সব সময় একটা খেলার মতো করেই দেখেন তিনি।
প্রোগ্রামার মোহাম্মদ মাহমুদুর রহমান ২০০৭ সালে এসিএম আইসিপিসির চূড়ান্ত পর্বে অংশ নেন। বর্তমানে বিভিন্ন জাতীয় ও আন্তর্জাতিক প্রোগ্রামিং প্রতিযোগিতার জন্য নিয়মিত সমস্যা তৈরি করেন। এসবের পাশাপাশি মাহমুদুর রহমান আন্তর্জাতিক ইনফরমেটিকস অলিম্পিয়াডে বাংলাদেশ দলের প্রশিক্ষকের দায়িত্বও পালন করেছেন। প্রোগ্রামিং সমস্যার সমাধান, প্রোগ্রামিং সমস্যা ও সফটওয়্যার তৈরি—এ তিনটি বিষয়ে তাঁর রয়েছে বিশেষ দক্ষতা। তিনি বলেন, এ তিনটা ভিন্ন ধরনের শিল্প। সমস্যা সমাধানের দক্ষতা নির্ভর করে একটি সমস্যাকে বিশ্লেষণ করে ছোট ছোট ভাগে ভাগ করার কৌশলের ওপর। আর সমস্যা তৈরির সবচেয়ে কঠিন দিক হচ্ছে, একটা সমস্যার সম্ভাব্য সব সঠিক এবং ভুল সমাধান চিন্তা করতে পারা। বর্তমানে মুক্ত সফটওয়্যার লিমিটেডের প্রধান কারিগরি কর্মকর্তা হিসেবে কাজ করছেন তিনি।
যাঁরা ভালো করছেন প্রোগ্রামিং, আবার তৈরি করছেন প্রোগ্রামিং সমস্যাও, তাঁদের মধ্যে আরেক প্রোগ্রামার হচ্ছেন সোহেল হাফিজ। তিনি বলেন, ভালো লাগা থেকেই প্রোগ্রাম করার শুরু। যাঁরা প্রোগ্রামিংয়ে আসতে চান, তাঁদের অবশ্যই জানতে হবে এবং প্রোগ্রামিং নিয়মিতভাবে করে যেতে হবে। সমস্যা সমাধানের পাশাপাশি সমস্যা তৈরিতে দক্ষ এ প্রোগ্রামার দেশে ও দেশের বাইরে বিভিন্ন প্রতিযোগিতার জন্য সমস্যা তৈরি করেন। এর পাশাপাশি গুরুত্বপূর্ণ কিছু অনলাইন প্রতিযোগিতার জন্যও সমস্যা তৈরি করেন।

[...]

18 September 2010 0 Comments

যন্ত্র গণকের যন্তর মন্তর (সর্টিং নিয়ে টিউটোরিয়াল)

সর্টিং ও অন্যান্য কিছু নিয়ে টিউটোরিয়াল লিখেছেন রাগিব হাসান-

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

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

বিস্তারিত পড়তে ক্লিক করুন।

17 September 2010 3 Comments

কিছু কমন প্রোগ্রামিং রুটিন

লিখেছেন- শিশির

হ্যালো ওয়ার্ল্ড!

এসিএম সলভার এর বাংলা ভার্শনটা কানের পাশ দিয়ে যায় অথচ খুব একটা খেয়াল করা হয় নি। কি আজব! আজকে খেয়াল করেছি। তাই পোস্ট দিচ্ছি। ভার্সিটির ফার্স্ট টার্ম এ যখন দেখতাম সবাই প্রোগ্রামিংটাকে বেশ গুরুগম্ভিরভাবে নিচ্ছে তখন ভাবলাম কিছু লিখে ফেলি যাতে সবাই বুঝে আর আমারও কিছু নাম হয়! যাই হোক এভাবে প্ল্যান করতে গিয়ে একটা ওয়েবে প্রোগ্রামিং নিয়ে কিছু কিছু করে বাংলায় লিখতে থাকি। এখানে  (বেসিক্যালি কন্টেস্ট প্রোগ্রামিং এ) প্রায়ই লাগে একমন কিছু রুটিনের একটা আর্কাইভ আছে। আশা করি ভালো লাগবে। লিংক

বি.দ্র.হ.: পুরোটাই এখানে লিখতে চেয়েছিলাম, কিন্তু সময় লাগে। তাই শুধু লিংক ।

কিছু কমন প্রোগ্রামিং রুটিন।
15 September 2010 0 Comments

এসিএম আইসিপিসি এর গল্প

এসিএম আইসিপিসি এর গল্প

প্রোগ্রামার ইকরাম মাহমুদের এসিএম আইসিপিসি এর গল্প-

”ওয়াটারলু একটা সলভ করে ফেলল!

আমার কন্টেস্ট করা মোটামুটি লাটে উঠলো। আমি কিছুতেই প্রবলেমে মনোযোগ দিতে পারলাম না। খালি ইকটু পর পর র‌্যাংকলিস্ট রিফ্রেশ করি, আর হা করে ওয়াটারলুর কোড করা দেখি। ওরা করে কি তিনজন তিনটা প্রবলেম নিয়ে বসে, একজন কোড লিখে, বাকি দুইজন চেয়ার পিছনে নিয়ে বসে বসে চিন্তা করে। কি অশরীরী ব্যাপার স্যাপার!

জান ভাই প্রথম প্রবলেমটা কোড করতে বসলো। আমরা টাইম লিমিট একসিডেড খেলাম, বাইসেকশনে টলারেন্স চেক করার ঝামেলা নিয়ে। জান ভাই টলারেন্স কমালো, আর আমি সাথে একটা চেক ভ্যারিয়েবল লাগিয়ে দিলাম, কিছুতেই দেড়শ বারের বেশি বাইসেকশন চালাবো না। জাজ সলুশন এক্সেপ্ট করলো।”

বিস্তারিত পড়ুনঃ সামইয়্যারইনে পড়ুন বাকি গল্প (এত্ত সুন্দর লেখাটি এর লেখক (ইকরাম মাহমুদ) কেন যেন  মুছে ফেলেছেন। প্রিয় লেখা বলে তার অনুমতি ছাড়াই এখানে জুড়ে দিলাম।) ভীষন ভাল লাগবে আশা করি।

ওয়ার্ল্ড ফাইনালস এর ঠিক আগের দিন জান ভাই বিছানায় শুয়ে একটা বিশাল ঘুম দিলো, আমাদের বলল যদি ভালো খাবার দাবার থাকে তাইলে যেন রুমে ফোন দেই। সেই ক’দিনে আমাদের অবস্থা একেবারেই খারাপ হয়ে গেছে। ইউরোপিয়ানরা একেবারেই রান্না বান্না করতে পারে না। আমি চিংড়ি দেখে একটা বিশাল লাফ দিয়ে চামুচ ভর্তি করে নিলাম, তারপর দেখি সেই চিংড়ি আধাসিদ্ধ (ইয়াক! ইয়াক!)। তারপর আমি আর মাহবুব মুজ এর কাবাব খাওয়া শুরু করি, আর গুনতে থাকি কয়টা খাইসি। ওই একটা জিনিসই যা খাওয়া যায়। তো আমরা সবাই একসাথে মাঝে মাঝেই দিপু ভাইয়ের বাসার খিচুড়ির কথা মনে করি, আর চোখ উড়ু উড়ু হয়ে যায়। তারপর স্টার কাবাবের বিরিয়ানির কথা মনে হয়.. চোখ আবার উড়ু উড়ু হয়ে যায়।

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

তারপর জুব ভাই আমাকে ঠান্ডা গলায় বলল, এরা কিন্তু আসলে এভাবে জব দেয় না। প্রথমে এরা রেফারেন্স নেয়, যেমন এই ছেলেটা নিলো। তারপর ইন্টারভিউ হাবিজাবি, তারপর গিয়ে চাকরি দেয়।

আমি ঠিক তখনি ব্যাপারটা বুঝি নাই, তো আমি আরো কিছুক্ষণ লাফাইলাম। তারপর আমরা দুজন রাস্তার ধারে একটা ফেরারি পড়ে থাকতে দেখলাম। আমার মনে হল, ওয়াও! ভালো জিনিস! আমিও একটা কিনবো কোন একদিন!

বেলুনটা চুপসালো পরের দিন।

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

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

কিবোর্ডের উপর বড় বড় করে একটা কাগজে লেখা ছিল কিচ্ছু ধরা যাবে না। আমি সেজন্য দুই হাতে দুই হাত ধরে বসে থাকলাম। আমাদের মাথার উপর তারে একটা ক্যামেরা আসা যাওয়া করতে থাকলো, আমি আর জুব ভাই বসে বসে সেটার আসা যাওয়া দেখলাম। ওরা সুইডিশ একটা টিভিতে লাইভ টেলিকাস্ট করছিল, আর নেটেও ব্রডকাস্ট করছিল একই সাথে। আমার শুধু মনে হচ্ছিল, আমাকে ক্যামেরাটার দিকে তাকিয়ে হাসতে হবে, কারণ আপু বলসে ও লাইভ ব্রডকাস্টটা দেখবে বসে বসে.. কিন্তু মাথার উপরের ক্যামেরাটা আমাদের দিকে ঘুরলোই না!

তো একটা সময় কন্টেস্ট শুরু হলো, আমি একটা নোটবুক নিয়ে টেম্প্লেট লিখতে শুরু করলাম। তারপর টেম্প্লেট লিখে প্রবলেমসেট নিয়ে পড়তে শুরু করলাম – তখন -

ওয়াটারলু একটা সলভ করে ফেলল!

আমার কন্টেস্ট করা মোটামুটি লাটে উঠলো। আমি কিছুতেই প্রবলেমে মনোযোগ দিতে পারলাম না। খালি ইকটু পর পর র‌্যাংকলিস্ট রিফ্রেশ করি, আর হা করে ওয়াটারলুর কোড করা দেখি। ওরা করে কি তিনজন তিনটা প্রবলেম নিয়ে বসে, একজন কোড লিখে, বাকি দুইজন চেয়ার পিছনে নিয়ে বসে বসে চিন্তা করে। কি অশরীরী ব্যাপার স্যাপার!

জান ভাই প্রথম প্রবলেমটা কোড করতে বসলো। আমরা টাইম লিমিট একসিডেড খেলাম, বাইসেকশনে টলারেন্স চেক করার ঝামেলা নিয়ে। জান ভাই টলারেন্স কমালো, আর আমি সাথে একটা চেক ভ্যারিয়েবল লাগিয়ে দিলাম, কিছুতেই দেড়শ বারের বেশি বাইসেকশন চালাবো না। জাজ সলুশন এক্সেপ্ট করলো।

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

আমি খুব দ্রুত ফ্রাস্ট্রেটেড হয়ে যাই, জুব ভাই আমার কোডে ওর অংশ লেখা শুরু করলো, কিন্তু জিনিসটা ভজগট পাকাই গেলো, কারণ কোডটা ছোট করার জন্য আমি যেভাবে ডাটা স্ট্রাকচারগুলা সাজাইসিলাম, সেটা বুঝাতে গিয়ে খবর হয়ে গেলো। তারপর স্যাম্পল মিলল না। আমি আরো ফ্রাস্ট্রেটেড হয়ে গেলাম। আমি বসে বসে পিত্জা চিবালাম, আর ভাবলাম, আমি এখানে কি করতেসি? আমি তো কিছুই পারি না! তারপর পিত্জা চিবাইতে চিবাইতে আমি আবার ওয়াটারলুর বেলুন দেখতে থাকলাম, আর কন্সতান্তিন লোপিরেভ আর ম্যালকম শার্পের কাজ কারবার দেখলাম। তারপর আবার ভাবতে শুরু করলাম,আসলেই আমি এখানে কি করতেসি? আই ডোন্ট ডোন্ট বিলঙ হিয়ার! মাথার উপর ক্যামেরাটা আসা যাওয়া করতে থাকলো, জুব ভাই খাটাখাট করে কিবোর্ড চাপতে চাপতে ডিবাগ করতেসে। জান ভাই মাথা নিচু করে কাগজে দাগ কাটতেসে, আর মাঝে মাঝে মাথা তুলে বিষন্ন চোখে জিজ্ঞেস করতেসে “কি অবস্থা?” চারপাশে কিবোর্ড চাপার আওয়াজ.. একশটা কম্পিউটার থেকে.. সবার মাথার উপর অনেকগুলো বেলুন, আমাদের মাথার উপর মাত্র একটা.. আমি ধরে নিলাম, আমরা একটা প্রবলেম সলভ করেই বাসায় ফিরবো.. আমার খুব বাসায় গিয়ে ঘুমাতে ইচ্ছে করছিল মশারি দিয়ে.. কাথামুড়ি দিয়ে, ফোন বন্ধ করে..

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

তখন জাজের রেসপন্স আসলো – সবুজ রঙে – ইয়েস!
আমাদের দুইটা হইসে.. আমি আবার র‌্যাংকলিস্ট ঘাটলাম, দেখে মনে হলো, আমরা যদি আরেকটা করতে পারি কোনভাবে আমরা র‌্যাংক পাবো।

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

আমি মোটামুটি চিল্লাচিল্লি করে নিজেকে বলতে থাকলাম এটা হবে! কিন্তু তারপরও আমি বারবার ভুলে যাচ্ছিলাম আমি আসলে কি লিখতে চাচ্ছি। কিন্তু আমি কোড লিখতে থাকলাম, কোডটা বড় হতে থাকলো.. বড় হতে থাকলো..

তারপর একটা সময় কোড লেখা শেষ হল, আমি কাঁপা কাঁপা হাতে সাবমিট করে সরে গেলাম। জান ভাই বসলো ডি কোড করার জন্য। তারপর একটা সময় ভার্ডিক্ট আসলো, আমি শুধু দেখলাম সেটার রং লাল, আমি ধরে নিলাম সেটা রং অ্যানসার, আমার চরম বাজে লাগল – আমি বললাম – আর্ঘঘঘঘঘঘঘঘঘঘঘ! জান ভাই ভ্রু কুঁচকে আমার দিকে তাকালো, তারপর বলল, “ঠিক করো! এটা প্রেজেন্টেশন এরর!” প্রেজেন্টেশন এরর দেয়, যদি প্রোগ্রাম ঠিক মতই আউটপুট দেয়, কিন্তু যদি আউটপুট ফরম্যাটে কোন ভুল থাকে। জুব ভাই প্রবলেম নিলো, আমরা একসাথে ঝুকলাম, তারপর দেখলাম আমি একটা সেমিকোলন এর জায়গায় কমা লিখসি!!

ঠিক ঠাক করার পর সবুজ রঙে ইয়েস আসলো! তাও অনেকক্ষণ পর..

তো আমাদের তিনটা প্রবলেম সলভ হলো। আমরা আসলেই র‌্যাংক পেলাম – ৪৯তম। জান ভাই তারপরের দিন প্লেনে উঠে দেশে ফিরে আসলো, আর আমরা আমাদের ফাইভ স্টার হোটেলটা ছেড়ে দিপু ভাইয়ের বাসায় গিয়ে উঠলাম। রুমটা শেষবারের মত বন্ধ করতে খুব খারাপ লাগলো.. তারপর আমরা একটা জাহাজে উঠলাম বাল্টিক সির উপর দিয়ে ফিনল্যান্ড যাবার জন্য।

বুয়েট চারটা সলভ করে ৩৪তম, আর নর্থ সাউথ দুইটা সলভ করে অনারেবল মেনশন। ভারতের দুইটা টিমই দুইটা করে সলভ করসে – অনারেবল মেনশন।

তারপর তার দুদিন পর আমরা প্লেনে উঠলাম ঢাকায় আসার জন্য। আমার দীপু ভাইয়ের জন্য খুব খারাপ লাগতেসিলো.. জুব ভাই বলল আমার ব্যাগে কিছু চকোলেট রাখতে হবে, ওর ব্যাগে জায়গা হচ্ছে না। তারপর প্লেনটা ঢাকায় নামলো.. আমি জুব ভাইদের বাসায় গেলাম, বিছানায় সব চকোলেট বের করে রেখে বললাম, আমি যাই এবার.. আমার তখন হাল্কা মন খারাপ লাগছিলো, কারণ আমার জন্য এয়ারপোর্টে কেউ আসেনি.. জুব ভাই বলল, আরি! কি কর? এই সব চকোলেট তো তোমার জন্য কিনসি!

জুব ভাই আমাকে বাসায় পৌছে দিলো.. রাস্তায় ছিল ভয়াবহ জ্যাম আর ভয়াবহ গরম।
সেদিন আমার ক্লাস শুরু হল, আমি একদিন ঘুমালাম বাসায় শুয়ে.. তারপর আমি ভার্সিটি যাওয়া শুরু করলাম, এবং এক সপ্তাহ পর আমি ভয়াবহ ফ্রাস্ট্রেটেড হয়ে গেলাম। আমি কোন ক্লাসেই কিছু বুঝতে পারতেসি না। আর ক্লাসগুলোতে চোখ খুলে রাখাও ভয়াবহ কঠিন কাজ। আমি বসে বসে আবার প্রবলেম সলভ করা শুরু করলাম, কিন্তু সব প্রবলেমগুলো আমাকে হালুম হালুম করে ভয় দেখানো শুরু করলো। রাশানরা কি পরিমাণ অমানুষের মত ট্রেইন আপ করে.. যে ওরা ওয়ার্ল্ড ফাইনালস এর সেটে নয়টা সলভ করে! টপকোডারে একটা ম্যাচ ছিল, আমি ২৫০ পয়েন্টার খুলে ভুল বুঝলাম, তারপর কোড টোড করে অনেক পরে খেয়াল করলাম আমি প্রবলেমটা ভুল বুঝছি.. আমি হাল ছেড়ে দিয়ে ৫০০ পয়েন্টার খুলে কোড করতে শুরু করলাম, কারণ সেটা ডিপি ছিল, কিন্তু কোডটা শেষ করতে পারলাম না, আর আমার একটাও সলভ হলো না, আর টপকোডারে আমার হলুদ রংটা নীল হয়ে গেলো..

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

How can I be lost,
If I’ve got nowhere to go?
Search for seas of gold
How come it’s got so cold?

তো আমি দুইদিন ঘুমালাম, আর বাসায় চুপচাপ বসে থাকলাম খুব মন খারাপ করে কারণ আমার কিছু করতে ভাললাগছিলো না। তারপর আমি ওয়াসিকে ফোন করলাম, আর আমরা ফোনের সব পয়সা শেষ করে ফেললাম কথা বলতে বলতে। তারপর আমি আবার ভার্সিটি গেলাম, আবার বাসায় ফিরলাম প্রচন্ড ফ্রাস্ট্রেটেড হয়ে কারণ আজকেও কিছুই বুঝি নাই! তারপর অনেক গুতাই টুতাই ফোরট্রানে একটা কোড লিখলাম অ্যাসাইনমেন্টের জন্য – আবার সেই বাইসেকশন মেথড – নিউমেরিকাল এনালাইসিস কোর্সের জন্য। তারপর..

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

তারপর আমি অনেক-অনেক দিন পর লিখতে বসলাম, কারণ অনেক অনেক দিন পর আমার সত্যি সত্যি লিখতে ইচ্ছে করছিল। বাইরে ঝড় আসছে, একটু আগে বাতাস অনেক ধুলো ঢুকিয়ে দিলো আমার কিবোর্ড, আর সাথে একটা হলুদ কামরাঙা গাছের পাতা.. এখন একটু একটু করে বৃষ্টির ছাট আসছে..

আমি গত সপ্তাহে একটা জোশ বই পড়ে শেষ করলাম – The Perks of Being a Wallflower – বইটা পড়ে আমার খুব দারুণ লাগলো – কারণ আমার মনে হচ্ছিল আমি বইটার সাথে নিজেকে রিলেট করতে পারছি। আমার মনে হচ্ছিল ছেলেটার সাথে আমার অনেক মিল। তবে ছেলেটা আমার চেয়ে অনেক বেশি সেন্টিমেন্টাল।

ছেলেটা বইয়ের একদম শেষে বলে
And we could all sit around and wonder and feel bad about each other and blame a lot of people for what they did or didn’t do or what they didn’t know. I don’t know. I guess there could always be someone to blame. … And God for not stopping all this and things that are much worse. And I did do that for a while, but then I just couldn’t anymore. Because it wasn’t going anywhere. Because it wasn’t the point.

…………………

Don’t get me wrong. I know what happened was important. And I needed to remember it. But it’s like when my doctor told me the story of these two brothers whose dad was a bad alcoholic. One brother grew up to be a successful carpenter who never drank. The other brother ended up being a drinker as bad as his dad was. When they asked the first brother why he didn’t drink, he said that after he saw what it did to his father, he could never bring himself to even try it. When they asked the other brother, he said that he guessed he learned how to drink on his father’s knee. So, I guess we are who we are for a lot of reasons. And maybe we’ll never know most of them. But even if we don’t have the power to choose where we come from, we can still choose where we go from there. We can still do things. And we can try to feel okay about them.

I think that if I ever have kids, and they are upset, I won’t tell them that people are starving in China or anything like that because it wouldn’t change the fact that they were upset. And even if somebody else has it much worse, that doesn’t really change the fact that you have what you have. Good and bad.

হুমম.. আমার আসলে পুরা বইটাই কপি করে দিতে ইচ্ছে করছে।

Later, they came by in Sam’s pickup truck. And we went to the Big Boy just like we always did. Sam told us about her life at school, which sounded very exciting. And I told her about my life in the hospital, which didn’t. And Patrick made jokes to keep everyone honest. After we left, we got in Sam’s pickup truck, and just like Sam promised, we drove to the tunnel.

About half a mile from the tunnel, Sam stopped the car, and I climbed in back. Patrick played the radio really loud so I could hear it, and as we were approaching the tunnel, I listened to the music and thought about all the things that people have said to me over the past year. I thought about Bill telling me I was special. And my sister saying she loved me. And my mom, too. And even my dad and brother when I was in the hospital. I thought about Patrick calling me his friend. And I thought about Sam telling me to do things. To really be there. And I just thought how great it was to have friends and a family.

As we went into the tunnel I didn’t hold up my arms like I was flying. I just let the wind rush over my face. And I started crying and smiling at the same time. Because I couldn’t help feeling just how much I loved my aunt Helen for buying me two presents. And how much I wanted the present I bought my mom for my birthday to be really special. And how much I wanted my sister and brother and Sam and Patrick and everyone else to be happy.

But mostly, I was crying because I was suddenly very aware of the fact that it was me standing up in that tunnel with the wind over my face. Not caring if I saw downtown. Not even thinking about it. Because I was standing in the tunnel. And I was really there. And that was enough to make me feel infinite.

এবং তারপর বইটা শেষ হয়ে যায় -

Tomorrow, I start my sophomore year of high school. And believe it or not, I’m really not that afraid of going. I’m not sure if I will have the time to write any more letters because I might be too busy trying to “participate.”

So, if this does end up being my last letter, please believe that things are good with me, and even when they’re not, they will be soon enough.
And I will believe the same about you.
Love always,
Charlie

THE END

http://www.somewhereinblog.net/blog/smilitudeblog

27 August 2010 0 Comments

প্রোগ্রামিং করো-টাকা কামাও! টপকোডারের ইন্ট্রো ও প্লাগইনস

লিখেছেন- ইকরাম মাহমুদ (smilitude)

লেখাটির ইংরেজী সংস্করণ (ভিবব পান্ডের লেখা) পাওয়া যাবে এখানে

বিশ্বের অন্যতম বড় কম্পিউটার প্রোগ্রামিং প্রতিযোগিতা টপকোডার। টপকোডারে রেজিস্ট্রেশন করার জন্য তোমাকে টপকোডারের ওয়েব পেইজে যেতে হবে। সেটার অ্যাডরেস হচ্ছে http://www.topcoder.com/tc

11 টপকোডারে ইনট্রো   প্রোগ্রামিং কন্টেস্টের জন্য | Techtunes

ডান কোনায় দেখো একটা রেজিস্টার করার লিংক আছে। ওখানে ক্লিক করলে রেজিস্টার করার পেইজ খুলবে।

2 টপকোডারে ইনট্রো   প্রোগ্রামিং কন্টেস্টের জন্য | Techtunes

বাকিগুলোতে টিক দেয়ার কোন দরকার নেই আপাতত। এরপর একটা বিশাল পৃষ্ঠা আসবে, সেখানে তোমার নাম ঠিকানা লিখতে হবে।

3 টপকোডারে ইনট্রো   প্রোগ্রামিং কন্টেস্টের জন্য | Techtunes

রেজিস্ট্রেশন শেষে টপকোডার তোমাকে তোমার মেইল অ্যাডরেসে একটা মেইল করবে, কনফার্ম করার জন্য যে ওটা আসলেই তোমার ইমেইল আইডি। ওখানে একটা লিংক থাকবে, সেটাতে ক্লিক করার সাথে সাথে তুমি একজন টপকোডার! :)

অ্যারেনা

অনেক অনেক বছর আগে যখন রোমান সাম্রাজ্য ছিল, তখন গ্ল্যাডিয়েটররা যে জায়গাটায় মারামারি করতো, সেটাকে বলা হতো অ্যারেনা। টপকোডারের সব কন্টেস্টগুলো অ্যারেন্জ করা হয় একটা জাভা অ্যাপ্লেটে, আর সেটাকে ডাকা হয় অ্যারেনা বলে, কারণ সেখানে সব কোডাররা প্রতিযোগীতা করতে আসে, রোমের গ্ল্যাডিয়েটরদের মতই।

অ্যারেনাতে ঢোকার জন্য, তোমার পিসিতে জাভা থাকতে হবে। জাভা ডাওনলোড করতে পারো এখান থেকে।

জাভা ইন্সটল করার পর, অ্যারেনা খোলার জন্য তোমাকে টপকোডারের পেইজে যেতে হবে।

11 টপকোডারে ইনট্রো   প্রোগ্রামিং কন্টেস্টের জন্য | Techtunes

বামপাশে দেখো, একটা জায়গায় O(n) লেখা আছে। ওখানে ক্লিক করলে অ্যারেনা ডাওনলোড শুরু হবে। প্রথমবার রান করার সময় অনেক সময় লাগে জাভার। একটু অপেক্ষা করতে হবে সেজন্য। যদি কোন ডায়ালগ বক্স আসে, এই অ্যাপলেটটাকে অ্যালাও করতে ভুলো না।

5 টপকোডারে ইনট্রো   প্রোগ্রামিং কন্টেস্টের জন্য | Techtunes

যদি ডিরেক্ট কানেকশন কাজ না করে (প্রক্সি সেটিংস এর জন্য), সেক্ষেত্রে কানেকশনে গিয়ে Html Tunnel ব্যবহার করতে পারো। অ্যারেনা খুললে, তোমাকে সেখানে ইউজার নেইম আর পাসওয়ার্ড দিতে হবে অ্যারেনায় ঢোকার জন্য। তারপর go তে ক্লিক করলে তুমি অ্যারেনার ভিতরে ঢুকে যাবে।

[...]