কিভাবে সি প্রোগ্রমিং শিখবো?
Tags: c, programming, beginners, learning
Published: 2024-03-11 08:59:53

সি প্রোগ্রামিং ভাষা, যাকে সকল প্রোগ্রামিং ভাষা মা বা The mother of all language বলা হয়। এখনও যদি কোন অভিজ্ঞ প্রোগ্রামারকে বলা হয়, “ভাই, প্রোগ্রামিং শিখতে চাই কোন ভাষা দিয়ে শুরু করবো”। বেশির ভাগেই উত্তর হবে এই ৪৮ বছরের পুরোনো ভাষাটি । এর কারণ কি?
এর অনেকগুলো কারণ আছে তার মধ্যে একটি হলো এটি ছোট একটি ভাষা, বর্তমানে আমরা যত হাই-লেভেল প্রোগ্রামিং ভাষা দেখতে পাই তার প্রায় সব গুলোতেই অনেক অনেক জিনিস থাকে (যেমন: অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং, অনেক বড় বিল্টইন লাইব্রেরি ইত্যাদি)। কিন্তু যারা নতুন প্রোগ্রামিং শুরু করছে তাদের এত কিছু শুরুতেই যানার প্রয়োজন হয় না। তাদের দরকার হয় প্রোগ্রামিংয়ের মৌলিক বিষয় গুলোর জ্ঞান যা সি-য়ের মাধ্যমে অন্য যেকোন ভাষার থেকে ভালভাবে নেওয়া সম্ভম। কারন, সি অনেক ছোট একটি ভাষা এখানে প্রোগ্রামিংয়ের মৌলিক বিষয় গুলোর শেখার পর্যপ্ত সুযোগ পাওয়া যায়।
যাইহোক, এখন আশা যাক আসল আলোচনায় আমার সি প্রোগ্রামিং শেখার অভিজ্ঞতা থেকে এই ব্লগে আমি একটি রোডম্যপ(Roadmap) ও সেটি বস্তবায়নের রির্সোস দেওয়া চেষ্ট করাবো। আশাকরি এটি অনেকরই কাজে আশবে, ইনশাআল্লাহ। আমি সি প্রোগ্রামিং শেখাকে চারটি ধাপে ভাগ করেছি।

## ধাপ-১: প্রাগ্রামিংয়ের মৌলিক বিষয়গুলো শেখা।

যদি প্রোগ্রামিংয়ের মৌলিক বিষয়গুলো শেখার কথা আশে তাহলে এক কথায়, বেস্ট অপশন হলো তামিম সাহরিয়ার সুবিনের কম্পিউটার প্রোগ্রামিং — ১ম খন্ড বইটি। অসাধারণ একটি বই, এপর্যন্ত আমার পড়া প্রোগ্রমিংয়ে সেরা বই এটি। এটি পড়ার সময় পাঠকের মনে হবে লেখক তার সামনে বসে আছে। তাকে প্রোগ্রামিং শেখাচ্ছে, আমার তো এটিই মনে হয়েছিল। বইটি হাতে পাওয়া বেশকিছু অপশন আছে। কেউ চাইলে সরাসরি হার্ডকপি কিনতে পারে রকমানি থেকে আবার cpbook.subeen.com এ বইটি ফ্রি পড়তে পারে। আবার চাইলে cpbook.subeen.com থেকে পিডিএফও ডাউনলোড করতে পারে, যা যেটা ভালো লাগে আরকি। সাথে সাথে দ্বিমিক কম্পিউটিংয়ের ফ্রি র্কোস প্রোগ্রামিংয়ে হাতে খড়ি করাতে হবে।

## ধাপ-২: প্রাগ্রামিংয়ের মৌলিক বিষয়গুলো পোক্ত করা।

কেউ যদি ধাপ-১ সম্পন্ন করে এবং কম্পিউটার প্রোগ্রামিং — ১ম খন্ড বইটিতে বর্ণিত বিষয়গুলো মেনে অনুশীলন করে তবে তার প্রাগ্রামিংয়ের মৌলিক বিষয়গুলোর প্রতি ভালো ধারণা হয়েছে। এখন তাকে এই ধারণা পোক্ত করতে হবে। এজন্য বেস্ট অপশন হলো কিছু প্রোগ্রামিং সমস্যা সামাধান করা। যার জন্য বেস্ট অপশন হলো দ্বিমিক অনলাইন জাজের সমস্যাগুলো সমধান করা। এখানে দেওয়া সমস্যাগুলো সমাধান করলে প্রাগ্রামিংয়ের মৌলিক বিষয়গুলোর উপর দক্ষতা চলে আসবে। যেটা খুবই জরুরি। এবং আনন্দের বিষয়হলো দ্বিমিক অনলাইন জাজের সমস্যাগুলো বাংলায়।

## ধাপ-৩: সি-য়ের অ্যাডভান্স বিষয়গুলো শেখা।

ধাপ-১ ও ধাপ-২ সঠিক ভাবে সম্পন্ন করার পর এখন সি-য়ের তুলনামুলক অ্যাডভান্স বিষয়গুলো (যেমন পয়েন্টার, রিকার্শন, বিটওয়াইজ অপারেশন, স্ট্রাকচার ইত্যাদি) শিখতে হবে। এজন্য কম্পিউটার প্রোগ্রামিং দ্বিতীয় খণ্ড (তামিম শাহরিয়ার সুবিন) বইটি পড়া যেতে পারে। যেটি রকমারিতে কিনতে পাওয়া যায়। এছাড়াও Tech Yourself C (Herbert Schildt) এই বইয়ের অধ্যায়-৬ থেকে অধ্যায়-১২ পর্যন্ত পড়া যেতে পারে। কোন বিষয়ে কনফিউশন থাকলে Google ও Youtube এ র্সাচ দিতে হবে বিভিন্ন ব্লগ ও ভিডিও থেকে সেগুলো শিখে নিতে হবে। এজন্য কিছু Youtube Channel — freeCodeCamp.org (English), MySirG.com (Hindi), Anisul Islam (Bangla), Sharif Chowdhury (Bangla) ও ওপেবসাইট — tutorialspoint.com, programiz.com, geeksforgeeks.org।

## ধাপ-৪: সি-য়ের অ্যাডভান্স বিষয়গুলো পোক্ত করা।

আবার সেই প্রোগ্রামিং প্রব্লেম সলভিং বা প্রোগ্রামিং সমস্যা সমাধান করা। প্রোগ্রমিংয়ের যেকোন কনসেপ্ট সঠিক ভাবে আয়ন্ব করতে হলে অনুশীলনের কোন বিকল্প নিই। আর প্রোগ্রামিং অনুশীলন করার একটি সহজ এবং কার্যকরী পদ্ধতি হলো প্রোগ্রামিং প্রব্লেম সলভিং বা প্রোগ্রামিং সমস্যা সমাধান করা। তাই যেকোন প্রব্লেম সলভিং ওয়েবসাইটে (যেমন: codeforces.com, lightoj.com, UVa) গিয়ে কমপক্ষে ১০০টি মোটি মোটি কঠিন সমস্যা সমাধান করতে হবে। তবেই এই অ্যাডভান্স বিষয়গুলো অয়ত্বে চলে আসবে।
এই চারটি ধাপে বর্নিত বিষয়গুলো শিখে যদি কউ সন্তুষ্ট না থাকে তবে The C Proramming Language (Brian Kernighan, Dennis Ritchie) বইটি পড়া যেতে পারে।

কেউ এই ধাপ গুলো অনুসরন করলে আশা করা যায় প্রোগ্রামিংয়ের উপর একটি ভালো দক্ষতা চলে আসবে, ইনশাআল্লাহ।
ধন্যবাদ