প্রোগ্রামিং শিখতে গেলে কতটুকু ম্যাথ লাগে।

১. প্রাথমিকভাবে যোগ, বিয়োগ, গুণ, ভাগফল, ভাগশেষ, শতকরা, সমষ্টি, গড় বের করার সিস্টেম তোমাকে জানতে হবে। পূর্ন সংখ্যা আর ভগ্নাংশ কোনগুলা সেটা তোমাকে জানতে হবে। এছাড়াও কোনটা ধনাত্বক সংখ্যা কোনটা ঋণাত্মক সংখ্যা সেটা না বুঝলে প্রোগ্রামিং তো দূরেই থাক। বেঁচে থাকা ই ডিফিকাল্ট।
২. সংখ্যার তুলনা: কোন একটা সংখ্যা আরেকটা সংখ্যার চাইতে বড়, ছোট, সমান, বা সমান না এইগুলা জানতেই হবে। সমান অথবা ছোট। সমান অথবা বড়। সেটা বুঝতে হবে। অর্থাৎ আলুর দাম টমেটোর দামের সমান অথবা বেশি। সেটা কি বুঝতে পারো? কিংবা এই মোবাইল এর দাম অন্য মোবাইলের কম না। সেটা কি বুঝতে পারো। না বুঝতে পারলে প্রোগ্রামিং না। বাস্তব জীবনেও তোমার খবর আছে।
.
৩. ঐকিক অংক: এক ডজন কমলার দাম ২০০ টাকা। এক কেজি আপেলের দাম ২৫০ টাকা। আমি যদি ৩ ডজন কমলা কিনি আর ২ কেজি আপেল কিনি। মোট কত টাকা দিতে হবে। এইটা কি তুমি হিসাব করতে পারো। যদি করতে না পারো বাস্তব দুনিয়াতে তোমার খবর আছে। প্রোগ্রামিং এর দুনিয়াতেও খবর আছে।
.
৪. প্রোগ্রামিং শেখার জন্য না বরং এপ্লাই করার জন্য কিছু ম্যাথ লাগবে। এইগুলা প্রোগামিং এর অংশ না। কিন্তু তুমি যে প্রোগ্রামিং শিখতেছো সেগুলা বুঝার জন্য, প্রোগ্রামিং এর কনসেপ্টগুলো এপ্লাই করার জন্য কিছু কিছু ম্যাথ রিলেটেড সমস্যা প্রোগ্রামিং দিয়ে সল্ভ করার ক্ষেত্রে কিছু গণিতের উদাহরণ চলে আসবে। এতে, তুমি যদি গণিতের বিষয়গুলা আগে থেকে জেনে থাকো তোমার জন্য একটু সুবিধা হবে। আর যদি আগে থেকে জেনে না থাকো। তাহলেও বিন্দাস থাকতে পারো। কারণ এই সব জিনিসগুলা ম্যাথ রিলেটেড প্রব্লেম সলভিং এর আগে বলে দেয়া হয়। বুঝিয়ে দেয়া হয়। তারপর প্রোগ্রামিং দিয়ে সেগুলা করতে বলা হয়।
বুঝতেছো না। কি বলতেছি। দাড়াও কয়েকটা উদাহরণ দেই। যেমন ধরো,
৫. কয়েকটা সংখ্যার লসাগু, গসাগু বের করতে হবে। এইটা প্রোগ্রামিং দিয়ে বের করতে হবে। তো, প্রোগ্রামিং দিয়ে শুরু করার আগে। অর্থাৎ কোডিং শুরু করার আগে বলে দেয়া হবে লসাগু, গসাগু কি জিনিস কিভাবে কাজ করে। তারপর এইটা কোডিং দিয়ে কিভাবে করতে হয়। সেটা বলা হবে। তো, কেউ আগে থেকে লসাগু, গসাগু, এর সিস্টেম জানলে তারজন্য প্যারা কম। আর কেউ আগে থেকে লসাগু, গসাগু জেনে না থাকলে তাকে একটু বাড়তি সময় নিয়ে। আরো দুই একটা ভিডিও দেখে লসাগু, গসাগু সম্পর্কে ধারণা নিতে হবে। বা আটকে গেলে হেল্প চাইতে হবে।
এমন আরো অনেকগুলা জিনিস চলে আসবে। যেখানে সিম্পল ম্যাথ এর বেশ কিছু জিনিস ইউজ করা হবে। প্রোগ্রামিং এর বিষয়গুলা এপ্লাই করে দেখানোর জন্য। এইগুলা প্রোগ্রামিং এর বিষয় না। কিন্তু প্রোগ্রামিং বুঝার জন্য বা প্রোগ্রামিং এপ্লাই করার জন্য মাঝে মধ্যে লেগে যেতে পারে।
.
৬. ধারার যোগফল। স্বাভাবিক সংখ্যার যোগফল (১ থেকে ১০ পর্যন্ত যোগফল) । ১ থেকে ২০ পর্যন্ত সবগুলা জোর সংখ্যার যোগফল। ১ থেকে ৫০ পর্যন্ত সব বিজোড় সংখ্যার যোগফল। এই রকম সিম্পল কিছু যোগ করতে হলে কিভাবে করবে। বা লুপ চালিয়ে কিভাবে করতে হবে। সেগুলা আগে থেকে জানলে অবশ্যই ভালো। আর কোন কারণে আগে থেকে জানতে না পারলে এখন জেনে নিবে। সেই মাইন্ডসেট রাখতে হবে।
৭. বাইনারি থেকে ডেসিমাল এর কনভার্শন এর কাজ করতে হবে। এইটা করতেই হবে এমন কোন কথা নাই। কিন্তু বেশিরভাগ পোলাপান প্রোগ্রামিং শিখতে গেলে এই উদারহণটা দিয়ে কোডিং এর জিনিস ট্রাই করে। না পেরে মাথা গরম করে। অথচ এইটা না পারলে এমন আরো অনেক উদাহরণ আছে সেগুলা ট্রাই করতে পারে। কারন এমনিতেই এইটা একটু ভেজাইল্লা গণিত। তাই এইটার কোডিং করতে গেলে প্রথম প্রথম একটু বেখাপ্পা লাগে। তবে এইখানেও ম্যাথ জানার চাইতে বেশি গুরুত্ব হচ্ছে ম্যাথ এর জিনিসটা এর কোডিং কেমনে করে সেটা বুঝতে পারা।
.
৮. মৌলিক সংখ্যা (prime), মৌলিক উৎপাদক (prime factor) এইগুলাও সেইম। তবে সত্যি কথা বলতে-- গণিতের অংশ হিসেবে যখন এইগুলা করছিলাম। আমি বুঝি নাই জিনিসগুলা কি। যখন বেশ কয়েকবার প্রোগ্রামিং করার সময় এইগুলা দিয়ে প্রাকটিস করা লাগছে। তখন বুঝতে পারছে। মাম্মা, তুমি তাইলে এই কাহিনী।
.
৯. একইভাবে কোডিং এর কিছু জিনিস বুঝার জন্য বা বুঝানোর জন্য উদাহরণ হিসেবে ফ্যাক্টরিয়াল (factorial) চলে আসে। মাঝে মধ্যে বিন্যাস (permutation), ফিবোনাচ্চি(fibonacci) ধারা চলে আসে। বিশ্বাস করো। কোডিং না করলে আমি গণিত দিয়ে কখনোই ফিবোনাচ্চি ধারা বা আর্মস্ট্রং নাম্বার কি সেটা জানতাম না।
তো, বিষয়টা বুঝতে পারছো। গণিত আগে থেকে জানতেই হবে এমন কোন কথা নাই। তবে কোডিং করতে গেলে যদি কোন ম্যাথ চলে আসে তখন সময় নিয়ে সেটা জানার চেষ্টা করবে। এই মাইন্ডসেট থাকতে হবে।
.
১০. জ্যামিতির কিছু জিনিসও মাঝে মধ্যে চলে আসে। যেমন বলে দিলো ত্রিভুজের তিন বাহু দেয়া থাকলে ত্রিভুজের ক্ষেত্রফল বের করার ফর্মুলা এইটা। অর্থাৎ ফর্মুলা দেয়া আছে। এখন তোমাকে তিনটা বাহুর দৈর্ঘ্য দেয়া হলো তুমি সেটা ক্ষেত্রফল প্রোগ্রামিং করে বের করো। অর্থাৎ ফর্মুলা যেটা দেয়া আছে সেটা কোডিং এর মধ্যে বসাতে পারতেছো কিনা। এবং চেক করতে পারতেছো কিনা। যে তুমি যে ফর্মুলা প্রোগ্রামিং করে লিখছো সেটা ঠিক আছে কিনা। একইভাবে কেউ কেউ বৃত্তের ব্যাস বা ব্যাসার্ধ দিয়ে দিলে ক্ষেত্রফল বের করার ফর্মুলা ইউজ করে প্রোগ্রামিং প্রাকটিস করতে পারতেছো কিনা।
.
সামারি হচ্ছে, প্রোগ্রামিংয়ের জগতে কিছুটা গণিত লাগবেই। সেটা প্রোগ্রামিং শিখতে গেলে, বুঝতে গেলে, এপ্লাই করতে গেলে, গণিত রিলেটেড কিছু জিনিস চলেই আসবে। সেগুলা আগে থেকে জেনে আসলে ভালো। যদি আগে থেকে না জেনে আসো। তাহলে যখন লাগবে তখন একটু বাড়তি সময় নিয়ে শিখে ফেলবো সেই চেষ্টা থাকতে হবে। তাহলে ঘাটতিগুলোকে বাড়তি সময় দিয়ে পুষিয়ে নিবে। এই মাইন্ডসেট থাকলেও প্রোগ্রামিং এর জন্য যতটুকু গণিত লাগবে সেটা ম্যানেজ করা পসিবল।