Thursday, August 3, 2017

প্রোগ্রামিং কনটেস্ট , হতাশা এবং আমি

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

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

১) লাইফে কি চাই এবং তা কেন চাই এর সম্পূর্ণ ক্লিয়ার ধারণা আমার কাছে আছে কিনা ।
২ ) যা চাই তা কিভাবে আমি পেতে পারি এইটা আমি জানি কিনা ।
৩ ) তা কিভাবে পাব এবং এর জন্য যে যে স্কিল আমার থাকা দরকার তা আমার আছে কিনা এবং যদি না থাকে তাহলে সময়ের সাথে সাথে আমি তা নিজের মধ্যে ডেভেলপ করতে পারব কিনা ।
৪ ) যদি উপরের সবগুলা পয়েন্ট আমার কাছে ক্লিয়ার থাকে এবং আমি যা চাই তা পেতে চাই তার জন্য যা যা করা দরকার, তা একটা লং টাইম হতাশ না হয়ে করার মত সক্ষমতা আমার কাছে আছে কিনা ।

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

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

দ্বিতীয় পয়েন্ট কিভাবে ভাল কনটেস্ট প্রোগ্রামার হব ? প্রথমত কনটেস্ট এ allow করে এমন একটা প্রোগ্রামিং ল্যাঙ্গুয়েজ আমাকে ভালভাবে জানতে হবে যেইটাতে আমি কোন প্রবলেম এর সলুশ্যন পাইলে কোন প্রবলেম ছাড়াই তাতে কোড করে ফেলতে পারি । আমাকে অনেক আল্গরিথম , ট্রিক্স জানতে হবে । কোড অপিটিমাইস কিভাবে করতে হয় জানতে হয় যদি আইসিপি এর টার্গেট থাকে কিভাবে টিম করে প্রবলেম সল্ভ করতে হয় তা জানতে হবে এবং অনেক অনেক ভাল কঠিন এবং যে প্রবলেম গুলা সল্ভ করলে অনেক নতুন কিছু শিখা যায় তার সোর্স জানতে হবে এবং কিছু ভাল ফ্রেন্ড করতে হবে । এইসব ভাল ফ্রেন্ড শুধু নিজের ভার্সিটি না অন্য ভার্সিটি এমনকি বাহিরের দেশের মানুষজনও হইতে পারে। Don't just work hard, work smartly. একই রকম প্রবলেম ১০০টা সল্ভ করে কোন লাভ নাই তার চেয়ে ২/৩ ধরনের ৫টা প্রবলেম করেও অনেক কিছু শিখা যাইতে পারে এইটাও বুঝতে হবে।

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


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



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


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