কীভাবে একজন সিএসই শিক্ষার্থী নিজের সময় ব্যয় করবে

প্রথম বর্ষ:

যারা ইতিমধ্যে বিএসসি ইন সিএসই তে চান্স পেয়েছেন সবাইকে স্বাগতম। আপনারা সবাই অধির আগ্রহভরে ভার্সিটি লাইফের প্রথম ক্লাস করার জন্যে অপেক্ষা করছেন। এই সময়টাতে আপনি চাইলে শুরুর শুরু করতে পারেন। আপনি ভবিষ্যৎ এ যেই সেক্টরই কাজ করেন না কেন, সিএসই স্টুডেন্ট হিসাবে আপনাকে প্রোগ্রামিং জানতেই হবে। ভার্সিটি লাইফের প্রতি পর্বেই প্রোগ্রামিং রিলেটেড কোর্স পাবেন। তাই ভার্সিটি লাইফ আনন্দময় করে তুলতে প্রোগ্রামিং শিখার বিকল্প নাই। যারা প্রোগ্রামিং এর অ আ জানেন না তারা চাইলে তামিম শাহরিয়ার সুবিন এর প্রোগ্রামিং প্রথম খন্ড বই দিয়ে শুরু করতে পারেন (pdf available). আর যারা প্রোগ্রামিং এর সাথে পরিচিত আছেন তারা সুবিন এর প্রথম,দ্বিতীয় খন্ড রিভিউ দিয়ে কমপক্ষে ৫০০ প্রব্লেম সমাধান করেন। আমার এবং অনেকের সবচেয়ে বড় ভুল, ভাল ভাবে কোড ইমপ্লিমেন্টেশন না শিখেই এলগোরিদম শুরু করে দেয়া।
যার ফলে কোন প্রব্লেম এর সমাধান বের করতে পারলেও কোড করতে পারা যায় না। বা কোড করতে , ডিবাগ করতে সময় অনেক বেশি লাগে। অনেক সময় এলগোরিদম জানা থাকলেও কোড এ উপস্থাপন করা যায় না।
হতাশা অনেক বেশি গ্রাস করে। বেশ কয়েক জনকেই দেখছি এভাবে প্রোগামিং লাইফের সমাপ্ত ঘটাতে। কোডফোর্সেস এ আমার রেটিং ১৩৪৭। আমি বেশ কিছু এলগোরিদম জানি। অথচ শুধু ইমপ্লিমেন্টেশন প্রব্লেম সমাধান করেই ১৬০০ রেটিং সম্ভব ছিল। কিন্তু তা পারিনি। তাই আশা করবো আপনারা একই ভুল করবেন না। তাই মনে করি কমপক্ষে ৫০০ প্রোব্লেম সমাধান করে তারপর এলগোরিদম শিখা বেশি ইফেক্টিভ। তবে একদম সাধারন কিছু এলগোরিদম শিখতে হবে যেমনঃ GCD,Binary Search,prime number,cumulitive sum প্রব্লেম সল্ভিং শুরুর জন্যে (www.urionlinejudge.com, https://atcoder.jp) এই সাইটের বিগিনার লেভেলের প্রব্লেম গুলো সমাধান করতে পারেন। এর পর সুবিন এর তৃতীয় খন্ড ডাটা স্ট্রাকচার ভাল করে শিখতে পারেন। এবং এই রিলেটেড অনলাইনে অনেক ভালো ভালো ব্লগ,ভিডিও দেখতে পারেন। তৃতীয় খন্ড শেষ করার পাশাপাশি অনলাইনে বিভিন্ন প্রোগ্রামিং কন্টেষ্ট এ অংশগ্রহণ করতে পারেন (www.codeforces.com, https://atcoder.jp, www.codechef.com). এবং অনলাইনে ডাটা স্ট্রাকচার রিলেটেড বিভিন্ন প্রব্লেম সার্চ দিয়ে সলভ করতে পারেন।

দ্বিতীয় বর্ষ:

যারা প্রথম বর্ষ ফাকি দিয়ে আসছেন এবং প্রোগ্রামিং এ তেমন ভাল করতে পারেননি তারা প্রথম বর্ষের গাইডলাইন অনুসরণ করতে পারেন। যারা কিছুটা প্রোগ্রামিং পারেন তারা চাইলে প্রোগ্রামিং এ ক্যারিয়ার গড়ার জন্যে নিজেকে আরো এগিয়ে নিতে পারেন। এই সময়টায় ডাটা স্ট্রাকচার পরিষ্কার ধারনা নিয়ে গ্রাফ এলগরিদম শিখতে পারেন। কেউ চাইলে আগে নাম্বার থিওরি শুরু করতে পারেন। প্রায় প্রতিটি ন্যাশনাল কন্টেস্টে গ্রাফ এবং নাম্বার থিওরি থেকে প্রব্লেম থাকে। আসলে ন্যাশনাল কন্টেস্ট গুলোতে সব ক্যাটাগরির প্রব্লেমই থাকে। কিন্তু আপনার যদি ইমপ্লিমেন্টেশন স্কিল ভাল থাকে ,আর গ্রাফ, নাম্বার থিওরি, স্ট্রিং সমাধান করতে পারেন আপনি টপ ২০-৩০ তে থাকতে পারবেন ।
গ্রাফ এলগরিদম এর জন্যে আপনি সাফায়েত এর ব্লগ পরতে পারেন ( www.shafaetsplanet.com) এবং মাহাবুব হাসান এর প্রোগ্রামিং কন্টেস্ট বই পরতে পারেন। পাশাপাশি অনলাইনে রেগুলার কন্টেস্ট এবং প্রব্লেম সলভ করেন। নির্দিষ্ট টপিকের উপর (https://onlinejudge.org, lightoj. com ) এই সাইট গুলোতে অনেক ভাল ভাল প্রব্লেম আছে। এর পর এডভান্স এবং নতুন নতুন এলগরিদম শিখে ন্যাশনাল কন্টেস্ট এর জন্যে নিজেকে তৈরি করতে পারেন।

একান্তই নিজের মতামত পোষণ করলাম।সবার জন্যে এটা কার্যকরী না। ভুলত্রুটি মার্জনীয়। আপনার কোন সাজেশন থাকলে, আমি কৃতঘ্ন থাকিব। সবাই বাসায় অবস্থান করবেন, সুস্থ থাকবেন, সর্তক থাকবেন, স্বাস্থ্য সংস্থার নির্দেশ মেনে চলবেন। সময়টা উপভোগ করবেন, প্রোগ্রামিং উপভোগ করবেন । ধন্যবাদ। #Happy_Coding