প্রোগ্রামিং নিয়ে প্রচলিত কিছু ভুল ধারণা

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

প্রোগ্রামার হতে হলে আপনার IQ ১৬০+ হতে হবে:

অবশ্যই না। প্রোগ্রামার হতে হলে আপনার দরকার ধৈর্য, ভালো রিসোর্স, লেগে থাকার মানসিকতা আর প্রোগ্রামিংয়ের প্রতি ভালোবাসা। এসব কিছুতে আইকিউ (IQ) খুব হাই হতে হয় না। সুতরাং, আপনি প্রোগ্রামার হতে চাইলে আইকিউ নিয়ে মাথা ঘামাতে হবে না।

শুধু বয়স্করাই প্রোগ্রামিং করতে পারেন:

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

একটি প্রোগ্রামিং ল্যাঙ্গুয়েজ শিখতে এক সপ্তাহই যথেষ্ট:

দাঁড়ান! আপনি অনন্ত জলিল নন। মানে একটু চিন্তা করলেই বুঝতে পারবেন যে এটা কত বড়ো ভাঁওতাবাজি। হাজার হাজার অত্যন্ত দক্ষ প্রোগ্রামার তাহলে প্রতিনিয়ত নিজেকে ভাষা শেখায় নিয়োজিত রাখতেন না। তাছাড়া একটি ভাষার লাইব্রেরি অনেক বড়ো। আপনি ২৪ ঘণ্টা শিখতে থাকলেও তা এক সপ্তাহে শিখতে পারবেন না। আর এই জার্নির আসলে শেষ নেই সেরকম। তো এক সপ্তাহে আসলে একটি পুরো প্রোগ্রামিং ভাষা শেখার চিন্তা কীভাবে আসতে পারে তা আমার জানা নেই।

ভালো প্রোগ্রামার হওয়ার জন্য সব syntax মুখস্থ করা লাগে:

এটা ভাবাও হাসির কাজ। তবে বাংলাদেশের প্রেক্ষাপটে চিন্তা করলে এই গুজবটি সৃষ্টি হওয়ার বা ছড়ানোর কারণ বেশ যৌক্তিক মনে হয়। এর একটি যথার্থ কারণ হিসেবে উপস্থাপন করা যায়, এখানকার উচ্চ মাধ্যমিকের তথ্য ও যোগাযোগ প্রযুক্তি বই বা এর পরীক্ষা পদ্ধতিকে। এক্ষেত্রে পরীক্ষায় কোড লিখতে হয় পরীক্ষার খাতায়। যারা প্রোগ্রামিং করেন তারা জানেন ব্যাপারটা কতটুকু হাস্যকর। এক্ষেত্রে পরীক্ষায় তারাই ভালো করবে যারা ভালো করে কোডগুলো মুখস্থ করে ও খাতায় লিখতে পারবে। এক্ষেত্রে কোড সে বুঝে লিখল না কি, তা আসলে খুব একটা প্রভাব ফেলবে না এবং ফলস্বরূপ ব্যাপারটা খুব বাজে হচ্ছে। শিক্ষার্থীদের একটা বড়ো অংশ না বুঝেই মুখস্থ করছে যে বেশি ভালোভাবে মুখস্থ করতে পারবে তাকে বলা হবে প্রোগামিং অংশে সে ভালো। ব্যাপারটা মারাত্মক ক্ষতিকর। যার ফলস্বরূপ এরকম গুজবের সৃষ্টি হচ্ছে যে syntax মুখস্থ করতে পারলেই প্রোগ্রামার ভালো। আদতে syntax মুখস্থ করা এখন অকাজ। প্রোগ্রামিংয়ের মূল লক্ষ্য হলো প্রবলেম সলভ করা। Syntax এর জন্য তো ইন্টারনেট আছেই; কোনো জায়গায় আটকে গেলে সেখান থেকে সাহায্য নেওয়া যাবে।

পাইথন (বা X) বেস্ট প্রোগ্রামিং ল্যাঙ্গুয়েজ:

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

বেস্ট বা শ্রেষ্ঠ তকমা লাগানোর হিড়িক আজকাল বেশ দেখা যায়। আচ্ছা, বলুন তো Asus না কি Samsung শ্রেষ্ঠ? আপনি হয়তো আপনার অভিজ্ঞতা ও পছন্দ থেকে যেকোনো একটা বলে দেবেন। কিন্তু Asus এর মতো Samsung এর কি Laptop/PC আছে? আর Samsung এর মতো ফোন মার্কেট কি Asus এর আছে? তার মানে আসলে একনিষ্ঠভাবে কোনো জিনিসকে শ্রেষ্ঠ বলা যায় না। তবে কোনো নির্দিষ্ট প্যারামিটার বা মানদণ্ড বিবেচনা করে শ্রেষ্ঠ বলা যায়। সেক্ষেত্রেও আসলে প্রথমটাই শ্রেষ্ঠ আর দ্বিতীয়টা ভালো না এমন নয়।

প্রোগ্রামিং ল্যাঙ্গুয়েজ এর ক্ষেত্রেও আসলে ব্যাপারটা এরকমই। প্রোগ্রামিং ল্যাঙ্গুয়েজ এর বিচারের ক্ষেত্রে কোনটা কীসে লাগবে, কোনটার ধরন কী, কোনটা আপনি ব্যবহার করতে স্বাচ্ছন্দ্যবোধ করেন ইত্যাদি মানদণ্ড হিসেবে কাজ করে। উদাহরণস্বরূপ, আপনার কাজের পছন্দের ক্ষেত্র যদি হয় Data Science, AI, framework তাহলে most preferable language হলো Python. আর যদি আপনার ইচ্ছা থাকে Web Developer হিসেবে কাজ করার তাহলে most preferable language হলো JavaScript.

আবার, উল্লিখিত দুটি ভাষাই অপেক্ষাকৃত সহজ। তাই আপনি যদি প্রোগ্রামিং শেখা শুরু করতে চান, সেক্ষেত্রেও এইদুটো ভাষার কোনো একটি দিয়ে শুরু করতে পারেন। এখন আপনি যদি কাজ করতে চান ওয়েবসাইট নিয়ে, তাহলে Python যত জনপ্রিয়ই হোক না কেন সেটা পারফেক্ট না, যদিও অনেক web framework দিয়ে ডেভেলপ করা।

তাহলে দেখা যাচ্ছে যে আপনার পরিস্থিতি অর্থাৎ আপনার পছন্দ, কাজের ধরন, এফিশিয়েন্সি ইত্যাদি ফ্যাক্টর আপনাকে ভাষা চুজ (choose) করতে সাহায্য করে। ওই পরিস্থিতিতে কোনটা বেস্ট তা আসলে ওইসব ফ্যাক্টর বলে দেয়।

সব কোডিংই প্রোগ্রামিং কিন্তু সব প্রোগ্রামিং কোডিং নয়:

কোডিং করা প্রোগ্রামিং এর বড়ো একটি অংশ, তবে পুরোটা নয়। ব্যাপারটা এরকম যে প্রোগ্রামিং নামক

বিষয়ের ফলিত শাখা হচ্ছে কোডিং। কোনো একটি প্রবলেম সলভ করতে ভাবতে হয়, অ্যালগরিদম দাঁড় করাতে হয়, ডাটা স্ট্রাকচার তৈরি করতে হয় ইত্যাদি। তারপর শেষে এই সলিউশনকে কাজে লাগাতে কোডিং করতে হয়।

যত বেশি প্রোগ্রামিং ভাষা জানা থাকবে তত ভালো প্রোগ্রামার:

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

একটা প্রোগ্রামিং ল্যাঙ্গুয়েজে দক্ষতা অর্জন করলেই যথেষ্ট:

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

প্রোগ্রামার হওয়ার জন্য গণিতবিদ হওয়া লাগে:

অবশ্যই প্রোগ্রামিং এর বেশ বড়ো একটা অংশ ক্যালকুলেশন, প্রবলেম সলভিং ইত্যাদি। গণিতে ভালো হলে তা অবশ্যই আপনাকে প্রোগ্রামিং জার্নিতে সাহায্য করবে। কিন্তু প্রোগ্রামিংয়ে ভালো করতে হলে গণিতে অনেক বেশি ভালো হওয়া লাগবে এমন কিছু নয়। মানে হলে ভালো, না হলে সমস্যা নেই। কিন্ত হবেই হবে, এমন কোনো পূর্বশর্ত নেই।

প্রোগ্রামার মানেই সারাদিন কম্পিউটারের সামনে বসে থাকা:

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

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

প্রোগ্রামিং পারলেই গেইম তৈরি করা যাবে:

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