ডাটা স্ট্রাকচার ও অ্যালগরিদম কম্পিউটার বিজ্ঞানে খুব গুরুত্বপূর্ণ দুটি বিষয়। বলতে গেলে কম্পিউটার বিজ্ঞানের ভিত্তি অনেকটাই দাঁড়িয়ে আছে এই দুটি বিষয়ের উপর। লজিক্যাল উপায়ে ডেটা বা তথ্য সাজানোকে ডাটা স্ট্রাকচার বলা হয়।
যেমন ধরুন আপনার একটি বইয়ের র্যাক আছে সে বইয়ের র্যাকে আপনি বিভিন্ন উপায়ে বই সাজাতে পারেন। প্রথম র্যাকে হয়তো প্রবন্ধ, দ্বিতীয় টাতে উপন্যাস, তৃতীয় র্যাকে কবিতা রাখেন। যাতে আপনি সহজে বই খুঁজে বের করতে পারেন। কম্পিউটার সায়েন্সে ডাটা স্ট্রাকচারের কাজ অনেকটা এরকম। আপনি তথ্যগুলো এমন ভাবে সাজাতে পারেন যাতে সহজে তথ্য বের করে নিয়ে আসতে পারেন।
কম্পিউটার সায়েন্সে আমাদের কাজ হল ডেটার উপর অপারেশন করা, আমরা মূলত তিনটি ধাপে অপারেশন করি :-
1) ইনপুট নিই
2) এটি প্রসেস করি
3) আউটপুট দিই।
ইনপুট যেকোন ভাবে হতে পারে, যেমন গুগল ম্যাপে সার্চ করার সময়, আপনি গুগল ম্যাপে ইনপুট হিসাবে যাত্রা এবং গন্তব্য দেন, ইন্সটাগ্রামে লগ ইন করার সময়, আপনি ইনপুট হিসাবে আপনার ইউজার নেম এবং পাসওয়ার্ড দেন।
সেই ইনপুট কে সিস্টেম প্রসেস করে দেখে যে ঠিকঠাক তথ্য দিচ্ছেন কিনা।
তারপর কম্পিউটার অ্যাপ্লিকেশন আমাদের কোনো না কোনো আকারে আউটপুট দেয়।
পুরো প্রক্রিয়াটি দ্রুত ও কার্যকরী করার জন্য, আমাদের তিনটি ধাপই অপ্টিমাইজ করতে হবে। আমরা সর্বাধিক অপ্টিমাইজ করতে পারি ২য় ধাপ, যেখানে ডেটা স্ট্রাকচার এবং অ্যালগরিদম রয়েছে।
ডেটা স্ট্রাকচার বলতে আমরা আমাদের কম্পিউটারে যেভাবে তথ্য সাজাই তা বোঝায়। আমরা যেভাবে তথ্য সাজাই তা পুরো এপ্লিকেশনের স্পিডের উপর অনেক প্রভাব ফেলতে পারে।
উদাহরণস্বরূপ, একটি লাইব্রেরি ধরি। ধরুন, আপনি একটি পাবলিক লাইব্রেরি থেকে এলগোরিদমের উপর একটি বই পেতে চান, এটি করার জন্য আপনাকে প্রথমে computer science বিভাগে যেতে হবে, তারপর theory বিভাগে যেতে হবে। যদি এই বইগুলি এই পদ্ধতিতে সাজানো না হয় এবং কেবল এলোমেলোভাবে বিতরণ করা হয় তবে এলগোরিদমের বইটি খুঁজে পাওয়া সত্যিই কষ্টকর হবে। হয়তো লাখ লাখ বই থেকে নাও খুজে পেতে পারেন।তাই একজন গ্রন্থাগারিক তার বইগুলিকে (ডেটা) একটি নির্দিষ্ট আকারে (ডেটা স্ট্রাকচার) সংগঠিত করে দক্ষতার সাথে একটি কাজ সম্পাদন করে।
এই পদ্ধতিতে আমরা কম্পিউটার সায়েন্স এ প্রসেস করি এবং আমাদের কাছে থাকা ডেটা সাজানোর সেরা উপায় বের করি, যাতে ইনপুটের উপর ভিত্তি করে এটি আরও ভালভাবে প্রসেস করা যায়।আর এই যে, যে উপায়ে সাজাবো সেগুলোর ক্রমানুযায়ী ধাপগুলোকে একসাথে একটা এলগোরিদম বলা হয়।
ডেটা স্ট্রাকচার এবং অ্যালগরিদম একটা সফ্টওয়্যার ডেভেলপ করতে এবং কোম্পানি গুলোতে নিয়োগ প্রক্রিয়াতেও একটি প্রধান ভূমিকা পালন করে।
ইন্টারভিউ তে ভাষা/ফ্রেমওয়ার্ক/টেকনোলজি এর প্রশ্নের পরিবর্তে data structure/algorithm এ বেশি ফোকাস করা হয়। গুগল, মাইক্রোসফট, ফেসবুক, অ্যামাজন-এর মতো কোম্পানিতে কর্মরত ইঞ্জিনিয়াররা অন্যদের থেকে আলাদা এবং অন্যান্য কোম্পানির তুলনায় বেশি বেতন পান।
কারণ আসলে কোড শুধুমাত্র লিখতে মোটামুটি সময় লাগে ১৫%। কিন্তু চিন্তা করতে বা ডিজাইন করতে সময় বরাদ্দ থাকে ৬০-৭০%। কোম্পানিগুলির ইন্টারভিউতে অ্যালগরিদমের উপর ফোকাস করার এটাই প্রধান কারণ।
তারা এমন লোকদের চায় যারা একটু ভিন্নভাবে চিন্তা করতে পারে। যারা এমন অ্যালগরিদম ডিজাইন করতে পারে যা কোম্পানির হাজার হাজার ডলার বাঁচাতে পারে। ইউটিউব, ফেসবুক, টুইটার, ইনস্টাগ্রাম, গুগলম্যাপস এই সব Software এর ব্যবহারকারীর সংখ্যা বিশ্বে অনেক বেশি। এখানে আরও নতুন নতুন ইউজার ম্যানেজ করার জন্য আরও অপ্টিমাইজেশন প্রয়োজন এবং এই কারণেই বড় কোম্পানিগুলি এমন প্রার্থীদের নিয়োগ দেয় যারা ইউজারের চাহিদা অনুসারে তাদের সিস্টেম অপ্টিমাইজ করতে পারে।
তাই ডাটা স্ট্রাকচার এলগোরিদম অবশ্যই শেখা প্রয়োজন কম্পিউটার সায়েন্স এ নিজেকে ডেভেলপ করতে চাইলে।
কিছু গুরুত্বপুর্ণ লিংক ক্লিক করুনঃ
Data Structure: Tamim Shahriar Subeen
Data Structures and Algorithms for Beginners
Algorithms:
Uncode - GATE Computer Science
