প্রোগ্রামিং এর হাতেখড়ি (পর্ব-১) –
আজকে হঠাৎ মোবাইলে একটি গেম খেলার সময় মনে হল আমরা কেন প্রোগ্রামিং শিখব সেটা নিয়ে কিছু লিখা যায়। মূলত যাদের প্রোগ্রামিং নিয়ে খুব সামান্য ধারণা আছে এবং যারা শিখতে চাও তাদের প্রোগ্রামিং সম্পর্কে আগ্রহী করে তোলার জন্যই এ লেখাটি।
এক কথায় প্রোগ্রামিং মানে হল প্রোগ্রাম বা সফটওয়্যার বানানো। আমরা কম্পিউটারে যা ব্যবহার করি সবই একেকটা প্রোগ্রাম। একটি নির্দিষ্ট ভাষা ব্যবহার করে এগুলো লেখা হয়। যে ভাষা ব্যবহার করে এগুলো লিখা হয় তাকে প্রোগ্রামিং ল্যাংগুয়েজ বলে।
প্রোগ্রামিং শিখতে গেলে প্রথমে যেই প্রশ্নটা আসবে সেটা হল কেন আমরা প্রোগ্রামিং শিখব? উত্তর খুব সোজা! কম্পিউটারকে চালানোর জন্য প্রোগ্রামিং শিখব! তুমি হয়ত বলতে পার এই যে মিডিয়া প্লেয়ারে দুইটা ক্লিক করলেই গান চালু হয়ে যাচ্ছে অথবা মাউসের দুটো ক্লিকেই যে কোন গেমস আমি খেলতে পারছি কিন্তু প্রোগ্রামটা কোথায়?
কিন্তু সত্যি কথা হল কম্পিউটার একটা বোকা যন্ত্র। নিজে কিছু করার ক্ষমতা এর নেই। একে দিয়ে কাজ করিয়ে নিতে হয়। তুমি চাইলে ১০০ মানুষের কাজ এই কম্পিউটার দিয়ে করিয়ে নিতে পার। আর করিয়ে নেওয়াটাই হল প্রোগ্রামিং। অর্থাৎ একটি নির্দিষ্ট প্রোগ্রাম সেট করে দেওয়ার পরই তুমি যে কোন কাজ করতে পারছ। যেমন তুমি গান শুনতে পারছ, এনিমেশন বানাতে পারছ অথবা গেমস খেলতে পারছ। তাহলে কেমন হয় যদি তুমি নিজেই একটা প্রোগ্রাম বানিয়ে ফেলো? হতে পারে সেটা গেমস অথবা অন্য কিছু।
একটা কথা সহজেই বোঝা যাচ্ছে যে কম্পিউটারকে চালানো প্রোগ্রামিং ছাড়া অসম্ভব। তাছাড়া এটা অসম্ভব মজার একটি জিনিস। একবার তুমি করা শুরু করলেই বুঝতে পারবে। আমি একথা মোটামোটি নিশ্চিতভাবেই বলতে পারি একবার তুমি প্রোগ্রামিং করা শুরু করলে হয়ত দেখা যাবে গেমস খেলার চেয়ে গেমস বানানোতেই তোমার আগ্রহ বেশি হয়ে যাচ্ছে।
অনেকে হয়ত বলে থাকে যে প্রোগ্রামিং শেখার জন্য কম্পিউটার সায়েন্সেই পড়া লাগে। বিষয়টাকে আমি একটু অন্যভাবে দেখি। কম্পিউটার সায়েন্সে পড়ার জন্য প্রোগ্রামিং শেখাটা “মাস্ট” কিন্তু প্রোগ্রামিং শিখতে হলে কম্পিউটার সায়েন্সে পড়তে হবে এরকম কোন কথাই নেই। যদি থাকত তাহলে বিল গেটস থেকে শুরু করে মার্ক জাকারবার্গ বা বিভিন্ন প্রোগ্রামাররা কিন্তু কম্পিউটার সায়েন্সে গ্রাজুয়েটই থাকতেন। পড়ালেখা ছেড়ে প্রোগ্রামিং করতেন না! এমনকি বিভিন্ন প্রোগ্রামিং কন্টেস্টের হাই রেটেড কোডারদের অনেকেই হাই স্কুল পর্যন্ত শেষ করে নি! মূলত বিষয়টা হল তুমি আগ্রহ পাচ্ছ কি না। হয়ত দেখা গেল আর্টসে পড়ার পরও তোমার প্রোগ্রামিং ভাল লেগে যেতে পারে। একবার ভাল লাগলেই হল। বাকি কাজ তুমি নিজেই করে ফেলবে।
তোমার ব্রেইনের চিন্তা শক্তি বাড়িয়ে দিবে প্রোগ্রামিং!
অনেকে হয়ত আবার বলে বসতে পারে আর্টসে পড়ে প্রোগ্রামিং এর মত কাজ করে টাইম লস করার মানে কি? কিন্তু প্রোগ্রামিং মানে হল লজিক ধরে ধরে সমস্যার সমাধান করা। ধর, তুমি একটা সমস্যায় পড়েছ। এখন সমস্যা সমাধান করতে হবে। একের পর এক বিভিন্ন স্টেপ অনুসরণ করেই তুমি সলিউশনে পৌঁছাবে। অর্থাৎ তোমাকে চিন্তা করতে হবে। যে কোন সমস্যার একদম মূলে গিয়ে ভাবতে হবে। কোন লজিকে গেলে সমস্যা দ্রুত সমাধান করা যাবে তা নিয়ে তোমার মস্তিষ্ক ভাববে। এতে করে যেটা হবে সেটা হল তোমার মস্তিষ্ক অধিক সক্রিয় হবে। ব্রেইনের লজিক্যাল পার্ট আরও বেশি ভাবতে শিখবে। ফলে সেটা শুধু প্রোগ্রামিং এর সমস্যা সমাধানেই কাজে লাগবে তা না বরং অন্য যে কোন কিছু মনে রাখা বা শেখার ক্ষেত্রে দ্রুত আয়ত্ত্ব করতে সাহায্য করবে। বলতে গেলে তোমার ব্রেইনের চিন্তা শক্তি বাড়িয়ে দিবে প্রোগ্রামিং।
হয়ত অনেকে কম্পিউটার সায়েন্সে ভর্তি হয়ে গ্রেড তোলার জন্য প্রোগ্রামিং এর থিওরি পড়ে থাকে। এর উপর কোন আগ্রহ রাখে না। ফলে দেখা যায় যে প্রোগ্রামিং সাবজেক্টটা তার কাছে অনেক কঠিন লাগছে। সত্যি কথা হল এটা অন্য দশটা বিষয়ের মত না। আমি বলব, অন্য বিষয়গুলো থেকে এটা খুবই সহজ কিন্তু আগ্রহ না থাকলে এর মত জটিল সাবজেক্ট আর হতে পারে না। তো, তোমরা প্রোগ্রামিং করা শুরু করলে এক দুই সপ্তাহের মধ্যেই বুঝে ফেলবে ভাল লাগছে কি না। যদি ভাল না লাগে তাহলে এটা নিয়ে অনর্থক টাইম নষ্ট করার মানে নেই। তবে একবার যদি ভাল লেগে যায়, আমি হলফ করে একটা কথাই বলতে পারি যে তুমি খাওয়ার সময় পর্যন্ত ভুলে যাবে প্রোগ্রামিং করতে করতে।
প্রোগ্রামিং শেখার আরেকটা সুফলের কথা জানিয়ে রাখি। আমরা পড়ালেখা করি জানার জন্য সত্য কিন্তু এখন সমাজের অবস্থাটা অনেকটা এমন হয়ে গেছে তোমার পড়া-লেখার উপর নির্ভর করছে চাকরীর ভবিষ্যৎ! তো একটা কথাই শুধু বলব- তুমি যদি ভাল প্রোগ্রামার হও তাহলে তোমাকে কষ্ট করে চাকরী খুঁজতে হবে না বরং চাকরীই তোমাকে খুঁজে বের করে নিবে। তবে শুধুমাত্র গুগল-মাইক্রোসফট বা ভাল সফটওয়্যার ফার্মে চাকরী করার জন্যই নয় শেখার জন্য বা মজা পাওয়ার জন্যই প্রোগ্রামিং শেখাটা উচিত।
আরেকটা কথা বলে রাখা ভাল, কয়েকদিন চেষ্টা করলেই তুমি যে কোন প্রোগ্রামিং ল্যাংগুয়েজ শিখে ফেলতে পারবে। তবে ভাল প্রোগ্রামার হতে গেলে শুধুমাত্র প্রোগ্রামিং ল্যাঙ্গুয়েজে শিখলেই হবে না বরং লজিক ডেভেলপ করে সমস্যা সমাধান করা জানতে হবে। আর তা করতে হলে গণিত খুব ভাল মত জানতে হবে কিংবা এলগরিদম বুঝতে হবে। অর্থাৎ যেই বিষয়টা বুঝাতে চাইছি তা হল এক সপ্তাহ বা দুই সপ্তাহ চেষ্টা করেই তুমি প্রোগ্রামিং শিখতে পারবে না বরং কয়েক মাস চেষ্টার ফলেই যে কোন ল্যাংগুয়েজ এবং তার এপ্লিকেশন তুমি ব্যবহার করে ফেলতে পারবে। সুতরাং একটাই কথা, প্রোগ্রামিং এর উপর সময় দিতে হবে।
আর প্রোগ্রামিং শিখতে হলে প্রথমেই যেটা আসবে সেটা হল সি প্রোগ্রামিং। তো পরের পর্বগুলোতে সি প্রোগ্রামিং সম্পর্কে একদম বেসিক কিছু ধারণা দিতে চেষ্টা করব।
তো একবার চেষ্টা করেই দেখ না প্রোগ্রামিং খুব সোজা নাকি একটু কঠিন?
© The 10-Minute School Blog
আজকে হঠাৎ মোবাইলে একটি গেম খেলার সময় মনে হল আমরা কেন প্রোগ্রামিং শিখব সেটা নিয়ে কিছু লিখা যায়। মূলত যাদের প্রোগ্রামিং নিয়ে খুব সামান্য ধারণা আছে এবং যারা শিখতে চাও তাদের প্রোগ্রামিং সম্পর্কে আগ্রহী করে তোলার জন্যই এ লেখাটি।
এক কথায় প্রোগ্রামিং মানে হল প্রোগ্রাম বা সফটওয়্যার বানানো। আমরা কম্পিউটারে যা ব্যবহার করি সবই একেকটা প্রোগ্রাম। একটি নির্দিষ্ট ভাষা ব্যবহার করে এগুলো লেখা হয়। যে ভাষা ব্যবহার করে এগুলো লিখা হয় তাকে প্রোগ্রামিং ল্যাংগুয়েজ বলে।
প্রোগ্রামিং শিখতে গেলে প্রথমে যেই প্রশ্নটা আসবে সেটা হল কেন আমরা প্রোগ্রামিং শিখব? উত্তর খুব সোজা! কম্পিউটারকে চালানোর জন্য প্রোগ্রামিং শিখব! তুমি হয়ত বলতে পার এই যে মিডিয়া প্লেয়ারে দুইটা ক্লিক করলেই গান চালু হয়ে যাচ্ছে অথবা মাউসের দুটো ক্লিকেই যে কোন গেমস আমি খেলতে পারছি কিন্তু প্রোগ্রামটা কোথায়?
কিন্তু সত্যি কথা হল কম্পিউটার একটা বোকা যন্ত্র। নিজে কিছু করার ক্ষমতা এর নেই। একে দিয়ে কাজ করিয়ে নিতে হয়। তুমি চাইলে ১০০ মানুষের কাজ এই কম্পিউটার দিয়ে করিয়ে নিতে পার। আর করিয়ে নেওয়াটাই হল প্রোগ্রামিং। অর্থাৎ একটি নির্দিষ্ট প্রোগ্রাম সেট করে দেওয়ার পরই তুমি যে কোন কাজ করতে পারছ। যেমন তুমি গান শুনতে পারছ, এনিমেশন বানাতে পারছ অথবা গেমস খেলতে পারছ। তাহলে কেমন হয় যদি তুমি নিজেই একটা প্রোগ্রাম বানিয়ে ফেলো? হতে পারে সেটা গেমস অথবা অন্য কিছু।
একটা কথা সহজেই বোঝা যাচ্ছে যে কম্পিউটারকে চালানো প্রোগ্রামিং ছাড়া অসম্ভব। তাছাড়া এটা অসম্ভব মজার একটি জিনিস। একবার তুমি করা শুরু করলেই বুঝতে পারবে। আমি একথা মোটামোটি নিশ্চিতভাবেই বলতে পারি একবার তুমি প্রোগ্রামিং করা শুরু করলে হয়ত দেখা যাবে গেমস খেলার চেয়ে গেমস বানানোতেই তোমার আগ্রহ বেশি হয়ে যাচ্ছে।
অনেকে হয়ত বলে থাকে যে প্রোগ্রামিং শেখার জন্য কম্পিউটার সায়েন্সেই পড়া লাগে। বিষয়টাকে আমি একটু অন্যভাবে দেখি। কম্পিউটার সায়েন্সে পড়ার জন্য প্রোগ্রামিং শেখাটা “মাস্ট” কিন্তু প্রোগ্রামিং শিখতে হলে কম্পিউটার সায়েন্সে পড়তে হবে এরকম কোন কথাই নেই। যদি থাকত তাহলে বিল গেটস থেকে শুরু করে মার্ক জাকারবার্গ বা বিভিন্ন প্রোগ্রামাররা কিন্তু কম্পিউটার সায়েন্সে গ্রাজুয়েটই থাকতেন। পড়ালেখা ছেড়ে প্রোগ্রামিং করতেন না! এমনকি বিভিন্ন প্রোগ্রামিং কন্টেস্টের হাই রেটেড কোডারদের অনেকেই হাই স্কুল পর্যন্ত শেষ করে নি! মূলত বিষয়টা হল তুমি আগ্রহ পাচ্ছ কি না। হয়ত দেখা গেল আর্টসে পড়ার পরও তোমার প্রোগ্রামিং ভাল লেগে যেতে পারে। একবার ভাল লাগলেই হল। বাকি কাজ তুমি নিজেই করে ফেলবে।
তোমার ব্রেইনের চিন্তা শক্তি বাড়িয়ে দিবে প্রোগ্রামিং!
অনেকে হয়ত আবার বলে বসতে পারে আর্টসে পড়ে প্রোগ্রামিং এর মত কাজ করে টাইম লস করার মানে কি? কিন্তু প্রোগ্রামিং মানে হল লজিক ধরে ধরে সমস্যার সমাধান করা। ধর, তুমি একটা সমস্যায় পড়েছ। এখন সমস্যা সমাধান করতে হবে। একের পর এক বিভিন্ন স্টেপ অনুসরণ করেই তুমি সলিউশনে পৌঁছাবে। অর্থাৎ তোমাকে চিন্তা করতে হবে। যে কোন সমস্যার একদম মূলে গিয়ে ভাবতে হবে। কোন লজিকে গেলে সমস্যা দ্রুত সমাধান করা যাবে তা নিয়ে তোমার মস্তিষ্ক ভাববে। এতে করে যেটা হবে সেটা হল তোমার মস্তিষ্ক অধিক সক্রিয় হবে। ব্রেইনের লজিক্যাল পার্ট আরও বেশি ভাবতে শিখবে। ফলে সেটা শুধু প্রোগ্রামিং এর সমস্যা সমাধানেই কাজে লাগবে তা না বরং অন্য যে কোন কিছু মনে রাখা বা শেখার ক্ষেত্রে দ্রুত আয়ত্ত্ব করতে সাহায্য করবে। বলতে গেলে তোমার ব্রেইনের চিন্তা শক্তি বাড়িয়ে দিবে প্রোগ্রামিং।
হয়ত অনেকে কম্পিউটার সায়েন্সে ভর্তি হয়ে গ্রেড তোলার জন্য প্রোগ্রামিং এর থিওরি পড়ে থাকে। এর উপর কোন আগ্রহ রাখে না। ফলে দেখা যায় যে প্রোগ্রামিং সাবজেক্টটা তার কাছে অনেক কঠিন লাগছে। সত্যি কথা হল এটা অন্য দশটা বিষয়ের মত না। আমি বলব, অন্য বিষয়গুলো থেকে এটা খুবই সহজ কিন্তু আগ্রহ না থাকলে এর মত জটিল সাবজেক্ট আর হতে পারে না। তো, তোমরা প্রোগ্রামিং করা শুরু করলে এক দুই সপ্তাহের মধ্যেই বুঝে ফেলবে ভাল লাগছে কি না। যদি ভাল না লাগে তাহলে এটা নিয়ে অনর্থক টাইম নষ্ট করার মানে নেই। তবে একবার যদি ভাল লেগে যায়, আমি হলফ করে একটা কথাই বলতে পারি যে তুমি খাওয়ার সময় পর্যন্ত ভুলে যাবে প্রোগ্রামিং করতে করতে।
প্রোগ্রামিং শেখার আরেকটা সুফলের কথা জানিয়ে রাখি। আমরা পড়ালেখা করি জানার জন্য সত্য কিন্তু এখন সমাজের অবস্থাটা অনেকটা এমন হয়ে গেছে তোমার পড়া-লেখার উপর নির্ভর করছে চাকরীর ভবিষ্যৎ! তো একটা কথাই শুধু বলব- তুমি যদি ভাল প্রোগ্রামার হও তাহলে তোমাকে কষ্ট করে চাকরী খুঁজতে হবে না বরং চাকরীই তোমাকে খুঁজে বের করে নিবে। তবে শুধুমাত্র গুগল-মাইক্রোসফট বা ভাল সফটওয়্যার ফার্মে চাকরী করার জন্যই নয় শেখার জন্য বা মজা পাওয়ার জন্যই প্রোগ্রামিং শেখাটা উচিত।
আরেকটা কথা বলে রাখা ভাল, কয়েকদিন চেষ্টা করলেই তুমি যে কোন প্রোগ্রামিং ল্যাংগুয়েজ শিখে ফেলতে পারবে। তবে ভাল প্রোগ্রামার হতে গেলে শুধুমাত্র প্রোগ্রামিং ল্যাঙ্গুয়েজে শিখলেই হবে না বরং লজিক ডেভেলপ করে সমস্যা সমাধান করা জানতে হবে। আর তা করতে হলে গণিত খুব ভাল মত জানতে হবে কিংবা এলগরিদম বুঝতে হবে। অর্থাৎ যেই বিষয়টা বুঝাতে চাইছি তা হল এক সপ্তাহ বা দুই সপ্তাহ চেষ্টা করেই তুমি প্রোগ্রামিং শিখতে পারবে না বরং কয়েক মাস চেষ্টার ফলেই যে কোন ল্যাংগুয়েজ এবং তার এপ্লিকেশন তুমি ব্যবহার করে ফেলতে পারবে। সুতরাং একটাই কথা, প্রোগ্রামিং এর উপর সময় দিতে হবে।
আর প্রোগ্রামিং শিখতে হলে প্রথমেই যেটা আসবে সেটা হল সি প্রোগ্রামিং। তো পরের পর্বগুলোতে সি প্রোগ্রামিং সম্পর্কে একদম বেসিক কিছু ধারণা দিতে চেষ্টা করব।
তো একবার চেষ্টা করেই দেখ না প্রোগ্রামিং খুব সোজা নাকি একটু কঠিন?
© The 10-Minute School Blog