একজন সফটওয়্যার প্রকৌশলীর কাজ হচ্ছে সফটওয়্যার তৈরি করা। এই সফটওয়্যারের আবার নানান রকমফের রয়েছে― ছোটোখাটো মোবাইল কিংবা ওয়েব অ্যাপ্লিকেশন, যেমন― সফটওয়্যার, তেমনি কম্পিউটার চালানোর জন্য যে অপারেটিং সিস্টেম (উইন্ডোজ, লিনাক্স ইত্যাদি), চালকবিহীন গাড়ি নিয়ন্ত্রণের জন্য যে প্রোগ্রাম, সেগুলোও কিন্তু সফটওয়্যার। বাংলাদেশের সফটওয়্যার ইন্ডাস্ট্রিতে যে ধরনের কাজ হয়, তার বেশিরভাগই অপেক্ষাকৃত সহজ ও সাধারণ। এসব কাজ করার জন্য কম্পিউটার বিজ্ঞানের জ্ঞান খুব বেশি দরকার হয় না। কিন্তু কিছু কিছু কাজ করতে গেলে আবার কম্পিউটার বিজ্ঞানের জ্ঞান-বুদ্ধি অপরিহার্য। এসব জটিল সফটওয়্যার তৈরি করতে গেলে কম্পিউটার বিজ্ঞানের যে জিনিসটি না জানলেই নয়, তার নাম হচ্ছে ডেটা স্ট্রাকচার ও অ্যালগরিদম। ডেটা স্ট্রাকচার ও অ্যালগরিদম আলাদা জিনিস, কিন্তু তারা পরস্পরের সঙ্গে খুবই সম্পৃক্ত। তাই অনেক সময় বিষয় দুটো একই সঙ্গে উচ্চারিত হয়। এই বইতে আমি এই দুটো বিষয় নিয়েই লিখেছি।