কম্পিউটার কে নিজের ইচ্ছামত কাজে লাগানোর উপায় হলো প্রোগ্রামিং। কম্পিউটার খুবই মুর্খ কিন্তু চালাক একটা যন্ত্র। এটা নিজে নিজে চিন্তা করতে পারে না। যেটা পারে তা হলো খুব দ্রুত হিসেব করতে পারে। কিন্তু হিসেব কিভাবে করতে হবে সেটা আমাদের বলে দিতে হবে। এজন্য আমরা কম্পিউটার কে সুনির্দিষ্ট কিছু নির্দেশনা দিতে পারি। এই নির্দেশনা গুলোই হলো প্রোগ্রাম। এখন আমি যদি চাইনিজ কোন মানুষকে বাংলা ভাষায় নির্দেশনা দেই তাহলে সে কিছু বুঝবে ? অবশ্যই না। আমাদের এমন ভাবে কমান্ড দিতে হবে যাতে সে বুঝতে পারে। কম্পিউটার কেও কমান্ড দিতে হলে অবশ্যই কম্পিউটার এর ভাষায় কমান্ড দিতে হবে। নাহলে সে বুঝবে না। এখন কম্পিউটার জিরো(০) এবং ওয়ান(1) ছাড়া কিছু বুঝে না। প্রথমদিকে জিরো এবং ওয়ান বা বাইনারি স্টাফ ব্যবহার করে প্রোগ্রাম লেখা হতো। এদের বলা হয় মেশিন কোড। এখন মেশিন কোডে প্রোগ্রাম লেখা অনেক কঠিন এবং জটিল ছিল। এজন্য পড়ে কিছু ব্যাসিক ল্যাংগুয়েজ তৈরী করা হয় যাতে কিছু সংখ্যক কমান্ড দেওয়া যেত যা একটা উপায়ে বাইনারী স্টাফে কনভার্ট হয়ে কম্পিউটারে যেত এবং কম্পিউটার বুঝতে পারতো। এরপর ধিরে ধিরে প্রোগ্রামিং ভাষায় ব্যাপক উন্নতি হয়। অনেক সহজ সহজ প্রোগ্রামিং লাংগুয়েজ তৈরী করা হয় প্রোগ্রামার দের কাজ সহজ করার জন্য । ল্যাংগুয়েজ সি আবিস্কার হবার পর প্রোগ্রামার রা অনেক স্বাধীন ভাবে প্রোগ্রাম লিখতে সহ্মম হয়। এখন প্রায় ১ হাজাড় এর মত প্রোগ্রামিং ল্যাংগুয়েজ প্রচলিত আছে। তার মধ্যে সি, সি++, জাভা, পিএইচপি, পাইথন, সি শার্প,পার্ল, রুবি, গো ইত্যাদি খুবই জনপ্রিয়।
এখন আসা যাক একদম নতুন যারা তারা কিভাবে প্রোগ্রামিং শিখা শুরু করতে পারে সে বিষয়ে। প্রোগ্রামিং করার জন্য অবশ্যই তোমাকে একটা ভাষা জানতে হবে। পৃথিবীতে বর্তমানে সি এবং পাইথন এই দুইটা ল্যাংগুয়েজ জনপ্রিয় প্রোগ্রামিং শুরু করার জন্য। তুমি এই দুইটার যেকোন একটা দিয়ে শুরু করতে পারো। আমি বলব সি দিয়ে শুরু করো। তামিম শাহরিয়ার সুবিন ভাই এর খুব সুন্দর একটা বই আছে সি এর উপর। সেটা কিনে ফেলো। একটা কম্পিউটার লাগবে অবশ্যই। সেটা নরমাল একটা কম্পিউটার হলেই হবে । খুব বেশি ভালো কনফিগারেশন এর কম্পিউটার লাগবে এমন কোন কথা নেই। এবার ধিরে ধিরে বই এর একদিক থেকে পড়তে শুরু করো। গল্পের মত করে পড়লে হবে না। বুঝে বুঝে ধিরে সুস্থে পড়তে হবে । কোন একটা টপিক না বুঝলে পরের টপিকে যাওয়া যাবে না। প্রতিটা উদাহরন বুঝে কম্পিউটারে নিজে লিখে রান করিয়ে দেখতে হবে। এক্সারসাইজ গুলো কারো হেল্প না নিয়ে নিজে নিজে করতে হবে। অনেক চেষ্টা করার পরেও যদি না পারা যায় তাইলে হেল্প নিতে হবে । এভাবে ল্যাংগুয়েজের ব্যাসিক শিখে ফেলার পর পরের ধাপে যেতে হবে।
এই ধাপে তোমাকে প্রবলেম সলভ করা শিখতে হবে। কিভাবে একটা প্রবলেম কে ভেংগে ধাপে ধাপে সমাধান করা যায় সেটা শিখতে হবে। এজন্য সবথেকে ভালো পদ্ধতি হলো এসিএম প্রবলেম সলভিং। অনেক ওয়েবসাইট আছে যাদের বলে অনলাইন জাজ যেমন uva onlinh judge । এখানে অনেক প্রবলেম দেওয়া আছে। এই প্রবলেম গুলো সহজ ক্যাটাগরি ও করা আছে। এখান থেকে প্রবলেম সলভ শুরু করো। সলভ করে সাথে সাথে জমা দেওয়া যাবে এবং দেখা যাবে তোমার কোড টা ঠিকমতো হয়েছে কিনা। যেকোন একটা জাজে সলভ করতে থাকো। বেশ কিছু প্রবলেম সলভ করা হয়ে গেলে এবার ডেটা স্ট্রাকচার শিখতে হবে। এলগরিদম শিখতে হবে। এহ্মেত্রে তুমি বই ফলো করতে পারে অথবা অনলাইনে বিভিন্ন ব্লগ পড়তে পারো। আমি ইউটিউব এর ভিডিও দেখে শিখতাম।
তুমি যদি ভার্সিটি তে পরো তাহলে এসিএম প্রোগ্রামিং কনটেস্টে অংশ নিতে পারো। এটা একটা বিশ্বব্যাপি প্রোগ্রামিং প্রতিযোগীতা যা প্রোগ্রামিং এর সবথেকে সন্মানজনক প্রতিযোগীতা। আর তুমি যদি ভার্সিটি লেভেল এর নিচে থাকো তাহলে ইনফরমেটিক্স অলিম্পিয়াড এ অংশ নিতে পারো। এই সব কনটেস্টে তোমাকে কিছু প্রবলেম দেওয়া হবে যেগুলো প্রোগ্রামিং ল্যাংগুয়েজ ব্যবহার করে সমাধান করতে হবে। ল্যাংগুয়েজ হিসেবে মুলত সি,সি++,জাভা,পাইথন ব্যবহার করা হয়।
আবার যদি তুমি কনটেস্ট করতে না চাও তাহলেও সমস্যা নাই। প্রোগ্রামিং এর ব্যাসিক তোমার জানা হয়ে গেছে। ছোট ছোট এপলিকেশন বানাতে পারো। ওয়েভসাইট ডেভলপ করতে পারো। প্রাকটিস করার হাজারো উপায় আছে।
এই ছিল প্রোগ্রামিং এর একটা সিম্পল গাইডলাইন। এরপরের কোন একটা পোস্টে আমি প্রোগ্রামিং ল্যাংগুয়েজ এর রিভিউ দিবার চেষ্টা করব। কোন ধরনের কাজ কোন ল্যাংগুয়েজ দিয়ে সহজে করা যায় তার উপর। সে পর্যন্ত সবাই ভালো থাকবেন। ধন্যবাদ।
Shohidul Bari,
Dept of ICT, MBSTU