প্রোগ্রামিং শিখতে আপনার যা জানা দরকার

Arnob Das
6 min readJul 20, 2020

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

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

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

প্রোগ্রামিং দিয়ে আপনি কি করতে পারবেন ???

এইটাও যদি খুব সহজে বলতে চাই তাহলে বলবো যে প্রোগ্রামিং দিয়ে আপনি সব কাজ করতে পারবেন। সব কাজ বলতে কি আসলেই সব কাজ? বিষয়টা একটু চিন্তা করা যাক। মনে করেন প্রতিদিন আপনার বাসার পানির ট্যাংকিতে পানি তোলার জন্যে দিনে দুইবার মোটর চালু করতে হই এবং আপনি এটাও জানেন যে মোটরটা প্রতিবারে ১৫ মিনিট করে চলার পর ট্যাংকি পূর্ণ হয়। এখন আপনার এই কাজটা দিনে দুইবার করতে হই এভাবে — আপনি সকালে ঘুম থেকে উঠে একটা নির্দিষ্ট সময়ে মোটর চালু করেন তারপর আবার নির্দিষ্ট সময় পরে তা বন্ধ করেন এবং এই কাজ টা আপনাকে প্রতিদিন করতে হই দুইবার করে। কিন্তু আপনার কাছে যদি এমন একটা মেশিন থাকতো যে মেশিন এর সাথে আপনি কথা বলতে পারেন এবং তাকে বলে দিলেন যে তুমি প্রতিদিন সকাল ৬টা এবং রাত ৮টায় ১৫ মিনিটের জন্যে মোটর চালু করবে এবং ১৫ মিনিট পর বন্ধ করবে। তাহলে কি হতো একবার ভাবুন। এই কাজটা আপনার আর নিজে করা লাগতো না ।কোনো একটা মেশিন আপনার হয়ে কাজটা প্রতিদিন করে দিতো। এখন আপনি যে এই মেশিনকে বলবেন কাজটা তুমি প্রতিদিন করো এইটা বলার জন্যে আপনি মেশিন এর সাথে যে ল্যাঙ্গুয়েজ দিয়ে কথা বলবেন সেটাই হলো প্রোগ্রামিং ল্যাঙ্গুয়েজ। অর্থাৎ আপনি যদি প্রোগ্রামিং ল্যাঙ্গুয়েজ জানেন এবং প্রোগ্রামিং ল্যাঙ্গুয়েজ ব্যবহার করার জন্যে আপনার যদি প্রয়োজনীয় রিসোর্স থাকে তাহলে আপনি আপনার কাঙ্খিত কাজ করে ফেলতে পারবেন অনেক সহজে। এই উদাহরণে আমাদের রিসোর্স হলো মেশিন, যার সাথে কথা বলে আমরা মোটর চালু এবং বন্ধের নির্দেশ দেই।

প্রোগ্রামিং এর বাস্তব ব্যবহার

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

প্রোগ্রামিং ল্যাঙ্গুয়েজের উদাহরণ

জনপ্রিয় কিছু প্রোগ্রামিং ল্যাঙ্গুয়েজ হলো:

• C

• C++

• C#

• Python

• Javascript

• Java

• Php

• Ruby

• Swift

• Kotlin

• Dart

• Golang

প্রোগ্রামিং ল্যাঙ্গুয়েজের ব্যবহার

প্রোগ্রামিং ল্যাঙ্গুয়েজের সবচেয়ে জনপ্রিয় ব্যবহারগুলো হচ্ছে :

• Website Development

• Web App development

• Mobile App Development

• Desktop App Development

• Game Development

• Machile Learning

• Deep Learning

• Artificial Intelligence

• Data Science

সফটওয়্যার ডেভেলপমেন্টের জন্যে প্রোগ্রামিং

একটা সফটওয়্যার শুরু থেকে শেষ পর্যন্ত তৈরি করাকে বলা হয় সফটওয়্যার ডেভেলমেন্ট এবং যারা তৈরি করেন তাদেরকে বলা হই ল্যাঙ্গুয়েজ ডেভেলপার। সফটওয়্যার ডেভেলপ করা হয় প্রোগ্রামিং করে।

এখন আপনি যদি সফটওয়্যার ডেভেলপার হতে চান তাহলে আপনাকে বুঝতে হবে যেকোনো সফটওয়্যার কয়েকটা ভাগে বিভক্ত। এগুলো হলো Front End, Back-End, Database Connection, API(Application Programming Interface), Server । Front End বলতে বোঝায় আপনি কোনো ওয়েবসাইট বা অ্যাপ সামনে থেকে যেটা দেখতে পারেন সেটা।অর্থাৎ আমরা কোনো একটা ওয়েবসাইট বা অ্যাপ এর যে ইউজার ইন্টারফেস দেখতে পাই সেটাই হলো Front End। Back End বলতে বোঝায় কোনো একটা ওয়েবসাইট বা অ্যাপ এর সার্ভার এর সাথে যেভাবে কানেকশন ঘটানো হই সেটাই Back End। Back End এর উদাহণস্বরূপ বলতে পারি আপনি যখন ফেসবুক অ্যাকাউন্ট লগইন করতে যান তখন সার্ভার আপনার লগইন ইনফরমেশনগুলো চেক করে এবং সঠিক হলে আপনাকে লগইন এর অনুমতি দেই এবং তখন আপনার সামনে লগইন ইউজার ইন্টারফেস টা পরিবর্তন হয়ে ফেসবুকের হোমপেজ দেখতে পারেন আপনি। এটাই হলো Back End। এখন আসি Database Connection নিয়ে।ফেসবুক আপনার সমস্ত ডাটা database এর মাধ্যমে সংরক্ষিত আছে। ডাটাবেজ হলো ডাটা রাখার একটা জায়গা। Back End এর সাথে Database যুক্ত করাকেই Database Connection বলা হই। এরপর আসি API নিয়ে।API এর Full Form হলো Application Programming Interface।বর্তমান সময়ে API খুব বেশি ব্যবহার হচ্ছে। মনে করুন আপনি একটি Weather App develop করবেন। এখন আপনার একার পক্ষে পৃথিবীর সমস্ত জায়গার আবহাওয়ার খবর সবসময় রাখা সম্ভব না। এজন্য অনেক বড় বড় কিছু প্রতিষ্ঠান বিশ্বের সমস্ত জায়গার আবহাওয়ার ইনফরমেশন তাদের সার্ভারে সবসময় আপডেট করে রাখেন এবং সেই ইনফরমেশন পাওয়ার জন্যে তারা তাদের API develop করেন। এরপর আমরা যদি কেউ Weather Application Develop করতে চাই তাহলে আমরা তাদের ডেভেলপ করা সেই API আমাদের অ্যাপের মধ্যে ব্যবহার করে সমস্ত জায়গার আবহাওয়ার আপডেট আমাদের অ্যাপ থেকে দিতে পারবো। এই সমস্ত কাজগুলো করার জন্যে আমাদের প্রোগ্রামিং জানতে হবে।

নির্দিষ্ট কাজে নির্দিষ্ট প্রোগ্রামিং ভাষা

• Web Development => HTML,CSS,Javascript

• Mobile App Development => Java, Kotlin, Swift, Dart

• Desktop Application Development => C#

• Game Development => C#

• Artificial Intelligence => Python, R

আপনি এখনো যদি নিশ্চিত না হয়ে থাকেন যে কোন প্রোগ্রামিং ল্যাঙ্গুয়েজ শিখবেন ??? তাহলে আপনি এদিক সেদিক না ভেবে Python দিয়ে শুরু করেন । কারণ Python বর্তমানে সবচেয়ে সহজ এবং সবচেয়ে বহুল ব্যবহৃত প্রোগ্রামিং ল্যাঙ্গুয়েজ।

প্রোগ্রামিং কোথায় থেকে শিখবেন ???

বাংলা ভাষায় সুবিন ভাইয়ের সি প্রোগ্রামিং বইটি দিয়ে শুরু করতে পারেন প্রোগ্রামিং শেখা। এই বইটি অনলাইনে ফ্রি পাওয়া যায় । এছাড়াও সুবিন ভাইয়ের “পাইথন দিয়ে প্রোগ্রামিং শেখা” , ঝংকার মাহবুব ভাইয়ের “হাবলুদের জন্যে প্রোগ্রামিং” বইটি দিয়েই শুরু করতে পারেন। আপনি যদি কোনো ওয়েবসাইট থেকে শিখতে চান তাহলে “freecodecamp.org” থেকে শিখতে পারবেন। আপনি যদি ওয়েব ডেভেলপমেন্ট শিখতে চান তাহলে “w3schools”, “freecodecamp” ওয়েবসাইট দুটি খুব ভালো। অ্যান্ড্রয়েড অ্যাপ ডেভেলপ করার জন্যে আপনাকে যেহেতু Java জানতে হবে, তাই বাংলাতে আ ন ম বজলুর রহমান এর জাভা প্রোগ্রামিং বইটি পড়ে “developers.android.com” ওয়েবসাইট থেকে শিখতে পারেন অ্যান্ড্রয়েড অ্যাপ ডেভেলপমেন্ট।

প্রোগ্রামিং প্রতিযোগিতা

প্রতিবছর আমাদের দেশে প্রোগ্রামিং প্রতিযোগিতা অনুষ্ঠিত হয়। এগুলোর মধ্যে রয়েছে Inter School and College Programming Contest, National Programming Contest etc. এছাড়াও ACM ICPC Programming Contest আমাদের দেশে অনুষ্ঠিত হয়। এসব প্রতিযোগিতায় সাধারনত সি, সি++, জাভা, পাইথন প্রোগ্রামিং ল্যাঙ্গুয়েজ ব্যবহৃত হয়। তবে সি প্রোগ্রামিং ল্যাঙ্গুয়েজ মোটামুটি সব প্রোগ্রামিং প্রতিযোগিতায় ব্যবহার হতে দেখা যায়।

অনলাইন জাজ

অনলাইন জাজে নিজের প্রোগ্রামিং দক্ষতা যাচাই এর জন্যে প্রোগ্রামাররা প্রোগ্রামিং প্রবলেম সলভ করে থাকেন। আমাদের দেশের সব চেয়ে জনপ্রিয় অনলইন জাজ হলো দ্বিমিক অনলাইন জাজ। জনপ্রিয় কিছু অনলাইন জাজ এর মধ্যে রয়েছে Topcoder, Coderbyte, HackerRank, CodeChef, Leetcode এই ওয়েবসাটগুলো। বিশ্বের টপ প্রোগ্রামাররা এইসব সাইটে গিয়ে প্রোগ্রামিং প্রবলেম সলভ করে থাকেন।

প্রোগ্রামিং এর ক্যারিয়ার এবং ভবিষ্যৎ

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

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

--

--