প্রোগ্রামিংয়ের সাথে পরিচয়

সাম্প্রতিক সময়ে ‘প্রোগ্রামিং’ খুব হাইপ পাওয়া একটা বিষয়। এখন সবার মুখে মুখেই প্রোগ্রামিংয়ের নাম পাওয়া যায়। একটু আধটু প্রোগ্রামিং জানা মহাশয়ও এখন ইউটিউব সেলিব্রিটি। এর কারণ হলো, এখনও বাংলাদেশের অনেকেরই (বিশেষ করে হাইস্কুল/কলেজের শিক্ষার্থীরা) প্রোগ্রামিং সম্পর্কে খুব বেশি একটা ধারণা নেই। যাদের একটু আধটু ধারণা আছে তারা আরেকটু বেশি জানতে চায় না। আর যাদের ভালো ধারণা আছে তারা অন্যদের সেটা জানাতে চায় না। এজন্যই বর্তমানে বাংলাদেশে প্রোগ্রামিং একটা আন্ডাররেটেড জিনিস (ওভাররেটেডও বটে)।

Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.

– Rick Cook

প্রোগ্রামিং কী?

কম্পিউটার একটা বোকা বাক্স ছাড়া কিছু নয়। এটি খুব দ্রুত একটা কাজ সম্পাদন করতে পারে। কিন্তু যতক্ষণ না একে একটা কাজ করার জন্য পরিষ্কার নির্দেশনা দেয়া হচ্ছে ততক্ষণ এটি নিজে থেকে কিছুই করতে পারে না। তোমার মনে হতে পারে, “আরে আমি তো মাউসে কয়েকটা গুঁতা দেই কিবোর্ড চাপাচাপি করি আর ব্যাস কম্পিউটার আমার কাজ করে দেয়”, কিন্তু ব্যাপারটা এত সহজ নয়। কম্পিউটার এটাও জানে না যে মাউসে গুঁতা দিয়ে কিবোর্ডে চাপাচাপি করলে তাকে আসলে করতে হবেটা কী! এই ‘করতে হবেটা কী’ জিনিসটা কম্পিউটারকে শিখিয়ে দেয়ার নামই হলো প্রোগ্রামিং।

যেমন ধরো তুমি একটা ভিডিও দেখতে চাচ্ছ। এজন্য তুমি তোমার কম্পিউটারে থাকা .mp4 ফরম্যাটের একটা ফাইলের উপর ডাবল ক্লিক করলে। সাথে সাথে একটা ভিডিও প্লেয়ারে ভিডিওটা চালু হয়ে গেল। এখানে কিন্তু প্রথমে তোমার কম্পিউটার জানতো না যে কীভাবে .mp4 ফরম্যাটের ফাইল চালাতে হয়। এজন্য একদল প্রোগ্রামার প্রোগ্রামিং করে একটা ভিডিও প্লেয়ার সফটওয়্যার তৈরি করে রেখেছিল, যেটা তুমি তোমার কম্পিউটারে ইনস্টল করে এখন সেই ভিডিও দেখতে পাচ্ছ।

এবার একটু কম্পিউটার সায়েন্সের ভাষায় আলোচনা করি। কম্পিউটার মূলত গঠিত হার্ডওয়্যার আর সফটওয়্যার নিয়ে। তুমি হাইস্কুলের আইসিটি বইয়ে পড়ে থাকতে পারো, “কম্পিউটারের যেসব জিনিস ধরা যায় বা ছোঁয়া যায় তাদেরকে হার্ডওয়্যার বলে আর যেসব জিনিস ধরা যায় না কিন্তু কম্পিউটারে তাদের অস্তিত্ব আছে তাদেরকে সফটওয়্যার বলে”। আসলে ব্যাপারটা এরকম না। হার্ডওয়্যার হচ্ছে বিভিন্ন যন্ত্রাংশ আর সফটওয়্যার হচ্ছে সেসব যন্ত্রাংশ চালাবার জন্য লেখা কোড (নির্দেশনা)। হার্ডওয়্যার কখন, কীভাবে, কতক্ষণ, কী করবে সেটি নির্ধারণ করে সফটওয়্যার, যাকে আমরা কম্পিউটার প্রোগ্রামও বলি। কম্পিউটার প্রোগ্রাম হচ্ছে এক বিশেষ ধরণের ভাষায় লেখা কোড, যেগুলো সাজানো থাকে এমনভাবে যাতে করে কম্পিউটারের হার্ডওয়্যার সহজেই বুঝতে পারে তাকে ঠিক কোন কাজটা কখন, কীভাবে, কতক্ষণ করতে হবে। অর্থাৎ কম্পিউটারের হার্ডওয়্যারের জন্য সফটওয়্যার বানানোর প্রোগ্রাম লেখার কাজই হলো প্রোগ্রামিং। আর যারা এই প্রোগ্রাম লেখার কাজ করে বা প্রোগ্রামিং করে তাদেরকে বলা হয় প্রোগ্রামার।

A computer is a stupid machine with the ability to do incredibly smart things, while computer programmers are smart people with the ability to do incredibly stupid things. They are, in short, a perfect match.

– Bill Bryson

প্রোগ্রামারের কাজ কী?

প্রোগ্রামারের কাজ হচ্ছে বিভিন্ন প্রোগ্রামিং ল্যাঙ্গুয়েজ ব্যবহার করে প্রোগ্রাম লেখা। প্রোগ্রামগুলো বিভিন্ন ধরনের সফটওয়্যার হতে পারে। যেমন: গেম, মোবাইল অ্যাপ, সাধারণ ওয়েবসাইট থেকে ফেসবুকের মতো বড় সোশাল সাইট, গুগলের মতো সার্চ ইঞ্জিন, কম্পিউটার ভাইরাস, অপারেটিং সিস্টেম, মোবাইল রিচার্জ সফটওয়্যার, পরীক্ষার রেজাল্ট তৈরি করার সফটওয়্যার ইত্যাদি। দুনিয়ায় যে কত রকমের সফটওয়্যার কত কাজে ব্যবহৃত হচ্ছে তার কোনো হিসাব নেই। প্রোগ্রামাররা নিত্য নতুন সফটওয়্যার তৈরি করেই চলেছেন।

প্রোগ্রামিং ল্যাঙ্গুয়েজ কী?

প্রোগ্রামিং করা আর কম্পিউটারের সাথে কথা বলা একই জিনিস (তাই বলে উইন্ডোজে কর্টানার সাথে কথা বলাটাকে আবার প্রোগ্রামিং হিসেবে ধরে নিও না!)। তো কম্পিউটারের সাথে কথা বলতে গেলে একটা ভাষা তো লাগবেই, তাই না? আচ্ছা, তুমি যখন বাংলাদেশে অন্য একজনের সাথে কথা বলো তখন নিশ্চই বাংলা ভাষায় কথা বলো? কিন্তু তুমি যদি জাপানে গিয়ে কারো সাথে কথা বলতে চাও তাহলে নিশ্চই বাংলা ভাষা ব্যবহার করবে না? এমন একটা ভাষা ব্যবহার করবে যেটা তাঁর বোধগম্য হবে।

সেইরকম, প্রোগ্রামিং করতে গেলেও আমাদেরকে এমন একটা ভাষা ব্যবহার করতে হবে যেটা কম্পিউটারের বোধগম্য হবে। তুমি যদি একটু আধটু আইসিটি নিয়ে ঘাঁটাঘাঁটি করে থাকো তাহলে হয়তো জানো, কম্পিউটার শুধু বোঝে 1 আর 0. কম্পিউটার তার অভ্যন্তরীণ সকল কাজ এই 1 আর 0 ব্যবহার করে পরিচালনা করে। তো তুমি যদি কম্পিউটারকে কোনো কিছু করাতে চাও তাহলে সেটা তাকে 1 আর 0 দিয়ে লিখে/বলে বোঝাতে হবে। ভাবতেই পারছো এটা কত কষ্টের একটা ব্যাপার। এজন্যই কম্পিউটার বিজ্ঞানীরা আমাদের এই কষ্ট লাঘব করার জন্য বিভিন্ন প্রোগ্রামিং ল্যাঙ্গুয়েজ তৈরি করেছেন, যেন মানুষও সেটা বোঝে আর কম্পিউটারও সেটা বোঝে। জনপ্রিয় কয়েকটি প্রোগ্রামিং ল্যাঙ্গুয়েজ হলো:- সি, সি++, জাভা, কটলিন, পাইথন, অ্যাডা, প্যাসকেল, হ্যাসকেল, গো, রাস্ট, রুবি, লুয়া, লিস্প, পার্ল, সুইফট, ডার্ট ইত্যাদি।

Everyone in this country should learn how to program because it teaches you how to think.

– Steve Jobs

কখন প্রোগ্রামিং শেখা শুরু করা উচিত?

প্রোগ্রামিং আসলে ছোট বয়স থেকেই শুরু করা উচিত। তবে এই কথা যখন ছোটদের (১১-১৬ বছর বয়সীদের) বলা হয় তখন তারা বলে, “আমি তো ছোট। আমি কি প্রোগ্রামিং শিখতে পারব?” আচ্ছা বিল গেটসের নাম নিশ্চই শুনেছো? টেক জায়ান্ট মাইক্রোসফটের প্রতিষ্ঠাতা তিনি। ১৩ বছর বয়সে বিল গেটস তাঁর প্রথম কম্পিউটার প্রোগ্রাম তৈরি করেন, যেটি ছিল একটি টিক-ট্যাক-টো গেম। তারপর তিনি যে স্কুলে পড়তেন, সেখানকার ক্লাস শিডিউল তৈরির সফটওয়্যারও বানিয়ে দেন। ফেসবুকের প্রতিষ্ঠাতা মার্ক জাকারবার্গও স্কুলে পড়ার সময় প্রোগ্রামিং শেখা শুরু করেন। স্কুলে যখন তাঁর বন্ধুরা গেম খেলতে ব্যস্ত ছিল সেই সময়টা জাকারবার্গ ব্যস্ত থাকতেন গেম বানানোর কাজে! এরকম আরো অনেক উদাহরণ আছে। তো বিল গেটস যদি সফটওয়্যার তৈরি করেই পৃথিবীর সেরা ধনী হতে পারে, মার্ক জাকারবার্গ যদি ফেসবুক তৈরি করে বিশ্বের কোটি কোটি মানুষকে যুক্ত করতে পারে, তাহলে তুমি কেন পারবে না?

কোন প্রোগ্রামিং ল্যাঙ্গুয়েজ দিয়ে শুরু করা উচিত?

তুমি যদি প্রাইমারি স্কুলের শিক্ষার্থী হও, তোমার প্রোগ্রামিং শেখা শুরু করার জন্য এমআইটি’র স্ক্র্যাচ -ই ঠিক হবে। এটা দিয়ে তুমি মজার মজার গেম, অ্যানিমেশন বানাতে পারবে।

তুমি যদি হাই স্কুলের শিক্ষার্থী হও, তাহলে তোমার জন্য বেশ কয়েকটি অপশন আছে। তুমি সি/সি++, জাভা কিংবা পাইথন দিয়ে প্রোগ্রামিং শুরু করতে পারো। জাভা একটু জটিল। তাই পাইথন দিয়েই শুরু করা সহজ হবে। কিন্তু তুমি যদি কম্পিটিটিভ প্রোগ্রামিং করার জন্য প্রোগ্রামিং শিখতে চাও তবে সি/সি++ শিখতে পারো। আর তুমি যদি অ্যান্ড্রয়েড অ্যাপ/গেম বানানোর জন্য প্রোগ্রামিং শিখতে চাও তবে অবশ্যই জাভা শিখতে হবে। তবে আমার পরামর্শ হবে, তুমি যেটা করার জন্যই প্রোগ্রামিং শিখতে চাও না কেন, সবার আগে সি শেখো। কারণ সি দিয়ে প্রোগ্রামিং শুরু করলে অন্য যেকোনো ল্যাঙ্গুয়েজ শেখা সহজ হয়ে যায়।

তুমি যদি কলেজের শিক্ষার্থী হও, তাহলে অবশ্যই সি শেখো। কারণ কলেজের আইসিটি সাবজেক্টের জন্য এমনিতেই সি শিখতে হবে।

তুমি যদি বিশ্ববিদ্যালয়ের CSE শিক্ষার্থী হও, তাহলেও সি/সি++ দিয়ে শুরু করাটাই ভালো। ভালোমতো সি/সি++ শিখলে বুঝতে পারবে যে কম্পিউটার আসলে কিভাবে কাজ করে।

তুমি যদি CSE শিক্ষার্থী না হও, কিন্তু অন্য কোনো প্রয়োজনে কিংবা শখের বশে প্রোগ্রামিং শিখতে চাও, তাহলে পাইথন শেখো। কারণ একে তো এই ল্যাঙ্গুয়েজ শেখা সহজ আবার এটা দিয়ে অনেক জটিল সব কাজ খুব সহজেই করা যায়। এছাড়া পাইথনের ব্যবহার দিন দিন অত্যন্ত জনপ্রিয় হয়ে উঠছে।

তাহলে? আর বসে আছো কেনো? এখনই যেকোনো একটি প্রোগ্রামিং ল্যাঙ্গুয়েজ সিলেক্ট করে প্রোগ্রামিং শেখা শুরু করে দাও। হয়তো তুমিই হবে ভবিষ্যতের বিল গেটস কিংবা মার্ক জাকারবার্গ।

মন্তব্যসমূহ

এই ব্লগটি থেকে জনপ্রিয় পোস্টগুলি

উইন্ডোজ পিসি থেকে কোনো সফটওয়্যার পুরোপুরি আনইন্সটল করার নিয়ম

উইন্ডোজ পিসির গতি বৃদ্ধি করার উপায়

কম্পিটিটিভ প্রোগ্রামিংয়ের দুনিয়ায় প্রবেশের গল্প