Blog
1 min read

কোডিং কী? যা যা জানা প্রয়োজন

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

 

কোডিং এর মূল ধারণা-

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

একটি অ্যাপ, সাইট কিংবা সফটওয়্যার অর্থাৎ যেকোনো প্রোগ্রামেরই ইন্টারফেস দাঁড় করানো, তাকে তার কাজ সঠিকভাবে বুঝিয়ে দেওয়ার প্রক্রিয়াই হলো কোডিং৷ যেহেতু ডিজিটাল ডিভাইসের মানুষের মতো বুদ্ধিমত্তা নেই, তাই মানুষের ভাষায় সরাসরি নির্দেশনা দেওয়া সম্ভব নয়। যান্ত্রিক ভাষায় ডিভাইসটিকে তার করণীয় কাজ সম্পর্কে বলে দেওয়া হয়। এর জন্য তৈরি করা হয়েছে বিভিন্ন ধরনের কোডিং ল্যাঙ্গুয়েজ। মানুষের ভাষাকে এভাবে যন্ত্রের ভাষায় অনুবাদ করার প্রক্রিয়াই হলো কোডিং।  

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

 

প্রোগ্রামিং ও কোডিং এর পার্থক্য-

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

 

কোডের প্রয়োজনীয়তা– 

এতদূর পড়ার পর কারো মনে প্রশ্ন জাগতেই পারে যে, প্রোগ্রামার কিংবা ডেভেলপাররা সিস্টেমটাকে এত জটিল কেন করে তুললেন? ডিভাইসকে সরাসরি মানুষের ভাষা কিংবা প্রোগ্রামিং ল্যাঙ্গুয়েজ বোঝানো যেত না? 

উত্তর হলো- হয়তো যেত, কিন্তু পদ্ধতিটি হতো আরো অনেক জটিল এবং ত্রুটির সম্ভাবনা বেড়ে যেত। যেকোনো ডিজিটাল ডিভাইসই চলে বিদ্যূতের সাহায্যে। অর্থাৎ আমরা যে ইনপুট দেই, আউটপুট পাই, সবই ইলেকট্রনিক সিগন্যাল ফ্লোর ফলাফল। এককথায় বিদ্যুৎকেই কম্পিউটারের ভাষা বলা চলে। কাজেই মানুষের ভাষা কম্পিউটারকে বোঝানোর জন্য বিদ্যুতের এমন কোনো বৈশিষ্ট্য ব্যবহার করতে হবে যার সাথে তুলনা করে কম্পিউটার তা বুঝতে পারে। এই বৈশিষ্ট্যটি হলো বিদ্যুতের ভোল্টেজ। আর এটার উপর ভিত্তি করেই বাইনারি সিস্টেম গড়ে উঠেছে৷ বাইনারি সংখ্যায় যে দুটি বিট ব্যবহৃত হয় (0 এবং 1), সেগুলো মূলত বৈদ্যুতিক ভোল্টেজের উঠানামা বোঝায়। 1 দ্বারা বোঝানো হয় ভোল্টেজের বৃদ্ধি বা On, এবং 0 দ্বারা ভোল্টেজ কমা বা off বোঝানো হয়।

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

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

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

 

কোডিং এর ক্ষেত্রসমূহ-

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

 

কোডিং শিখবেন কীভাবে?

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

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

 

কোডিং জগতে ক্যারিয়ার ও সম্ভাবনা– 

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

বর্তমান পৃথিবীতে সবচেয়ে বেশি চাহিদাসম্পন্ন পেশার মধ্যে অন্যতম হলো কোডিং ও প্রোগ্রামিং। ভবিষ্যতেও এই ধারা অব্যাহত থাকবে, তাতে কোনো সন্দেহ নেই৷

 

Rate this post