প্রোগ্রামিং ভাষা কি? কেন আপনার এই ভাষা শেখা উচিত? এবং প্রোগ্রামিং ভাষা শেখার পর আপনি কী কী করতে পারবেন? সাধারণত, Programming শেখার শুরুতে আমাদের মনে এই প্রশ্নগুলো জেগে ওঠে।
তাই চিন্তা করে দেখলাম, এই সব প্রশ্নের উত্তর একত্র করে একটি নতুন আর্টিকেল লেখার, যাতে একটি আর্টিকেল থেকেই এসব বিষয়ে পরিপূর্ণ ধারণা পাওয়া যায়।
যদি আপনি প্রোগ্রামিং ভাষা শিখতে চান, তাহলে আজকের এই আর্টিকেলটি আপনার জন্য একটি বোনাস টিপস হতে পারে।
কারণ আজকের আর্টিকেলে Programming Language সম্পর্কিত সমস্ত খুঁটিনাটি বিষয়গুলোর স্টেপ বাই স্টেপ ধারণা পাবেন।
আর্টিকেলের শেষে আপনার জন্য কিছু বোনাস টিপসও থাকবে, যেগুলো থেকে আপনি জানতে পারবেন, প্রোগ্রামিং ভাষাকে সঠিকভাবে আয়ত্ত করলে আপনি কী ধরনের কাজ করতে পারবেন এবং সেই কাজের বিনিময়ে কতটুকু আয় করতে পারেন।
তাই, অল্প কিছু সময় নিয়ে আর্টিকেলের শুরু থেকে শেষ পর্যন্ত মনোযোগ দিয়ে পড়ুন। আর দেরি কেন? চলুন, একেবারে মূল আলোচনায় প্রবেশ করি।
প্রোগ্রামিং ভাষা কি (What is Programming Languages)
বাংলা ব্যাকরণে আমরা জেনেছি, মানুষের ভাব আদান-প্রদানের জন্য যা বলা হয়, তাকে ভাষা বলা হয়। কিন্তু যখন আপনি কোনো রোবটের সাথে এই সংজ্ঞার তুলনা করবেন, তখন এর মধ্যে একটু পরিবর্তন আসবে।
সেখানে বলতে হবে, যখন আপনি কোনো রোবটকে পরিচালনা করার জন্য যে নির্দেশনা দিবেন, তাকে বলা হয় প্রোগ্রাম।
আর এই প্রোগ্রামের মধ্যে যে সমস্ত Command, Syntax থাকে, মূলত সেগুলোকেই বলা হয় প্রোগ্রামিং ভাষা।
আরোও সহজভাবে বলা যায়, প্রোগ্রামিং ভাষা হল এমন একটি কোডিং সিস্টেম যা কম্পিউটার বা রোবটের মতো যন্ত্রকে কমান্ড বা নির্দেশনা দেয় কীভাবে কাজ করতে হবে।
এই ভাষাকে আবার দুইভাগে ভাগ করা যায়। একটি হলো High Level Language এবং অন্যটি হলো Low Level Language. বেশিরভাগ ক্ষেত্রে হাই লেভেল ল্যাঙ্গুয়েজকে কম্পাইল করে লো লেভেল ল্যাঙ্গুয়েজে কনভার্ট করা হয়, যা কম্পিউটারের হার্ডওয়্যার দ্বারা প্রত্যক্ষভাবে স্বীকৃত।
প্রোগ্রামিং এ কোন কোন ভাষা ব্যবহার করা হয়?
এবার আমরা Programming Language এ কোন কোন ভাষার ব্যবহার করা হয় তা জানব। সাধারণত একটি প্রোগ্রাম সম্পন্ন করার জন্য আপনি মোট ৩টি ভাষা ব্যবহার করতে পারেন। যথা:
- Machine Language (মেশিন ল্যাঙ্গুয়েজ)
- Assembly Language (এ্যাসেম্বলি ল্যাঙ্গুয়েজ)
- High Level Language (হাই লেভেল ল্যাঙ্গুয়েজ)
চলুন, এবার প্রতিটি ভাষার সম্পর্কে বিস্তারিত জানি।
Machine Language কাকে বলে?
শুরুর দিকের কথা, যখন প্রোগ্রামিং শুরু হয়েছিল, তখন এই Machine Language-ই বেশি ব্যবহৃত হতো। তখন মানুষ প্রোগ্রাম বলতে শুধু মেশিন ল্যাঙ্গুয়েজকেই বুঝত। তাই একে বলা হয় “First Generation Language”।
মেশিন ল্যাঙ্গুয়েজকে পুরোপুরি বাইনারি প্যাটার্ন (০ ও ১) দিয়ে গঠিত করা হয়, যেটা কম্পিউটারের হার্ডওয়্যারকে পরিচালনা করার জন্য ব্যবহৃত হয়।
মেশিন ল্যাঙ্গুয়েজের সবচেয়ে বড় সুবিধা হলো, কম্পিউটার এটি দ্রুত বুঝতে পারে এবং সহজেই Execute করতে পারে। এছাড়াও, এই প্রোগ্রামগুলোকে সরাসরি Run করা যায়, অর্থাৎ কোনো প্রকার কম্পাইল বা কনভার্ট করার প্রয়োজন হয় না।
তবে অসুবিধা হলো, মেশিন ল্যাঙ্গুয়েজে প্রচুর পরিমাণে বাইনারি কোড মনে রাখতে হয়, যা খুবই জটিল। তাই বর্তমানে আধুনিক প্রোগ্রামিং ভাষাগুলোকে বেশি গুরুত্ব দেওয়া হচ্ছে।
Assembly Language কাকে বলে?
Machine Language-এর প্রধান সমস্যা ছিল যে, প্রচুর পরিমাণে বাইনারি কোড (০ এবং ১) মনে রাখতে হতো। এই সমস্যার সমাধান করতে Assembly Language তৈরি করা হয়।
এই ভাষায় প্রোগ্রাম লেখার জন্য Mnemonics ব্যবহার করা হয়, যেমন “MOV,” “SUB,” “ADD” ইত্যাদি। এগুলো সহজে মনে রাখা এবং ব্যবহার করা যায়।
যদিও Assembly Language মেশিন ল্যাঙ্গুয়েজের চেয়ে বেশি সুবিধাজনক, তবে শেষ পর্যন্ত এটিকে মেশিন ল্যাঙ্গুয়েজে রূপান্তর করতে হয়, কারণ কম্পিউটার শুধুমাত্র বাইনারি ভাষাই বুঝতে পারে।
এই রূপান্তরের জন্য Assembler নামক একটি বিশেষ অনুবাদক ব্যবহৃত হয়, যা Assembly Language-এর কোডগুলোকে মেশিন ল্যাঙ্গুয়েজে পরিণত করে।
Assembly Language প্রোগ্রামিংকে কিছুটা সহজ করেছে, তবে এখনও মেশিন ল্যাঙ্গুয়েজের প্রয়োজনীয়তা রয়েছে, কারণ কম্পিউটারের হার্ডওয়্যার কেবল বাইনারি ভাষা বুঝতে পারে।
High Level Language কাকে বলে?
সবচেয়ে আধুনিক প্রোগ্রামিং ভাষাকে বলা হয় High Level Language। মানুষ যেন সহজে প্রোগ্রামিং ভাষা বুঝতে পারে, মূলত সে উদ্দেশ্যেই এই ভাষার উদ্ভব।
কারণ, হাই লেভেল ল্যাঙ্গুয়েজ কয়েকটি ভাষার সমন্বয়ে গঠিত। যেমন, C, C++, Java, Python ইত্যাদি। এই ভাষাগুলো অনেকটা ইংরেজির মতোই ব্যবহৃত হয়, যা শেখা ও ব্যবহার করা সহজ।
অর্থাৎ, আপনি যদি High Level Language-এ প্রোগ্রামিং করতে চান, তাহলে মেশিন ল্যাঙ্গুয়েজের মতো কোনো বাইনারি কোড মনে রাখতে হবে না।
এখন হয়ত আপনার মনে প্রশ্ন জাগতে পারে, “কম্পিউটার বাইনারি কোড ছাড়া অন্য কোনো ভাষা বুঝতে পারে না, তাহলে ইংরেজির মতো ভাষা বুঝবে কীভাবে?”
তাহলে শুনুন, কম্পিউটার বাইনারি ভাষা ছাড়া অন্য কোনো ভাষা বুঝতে পারে না। তবে আপনি High Level Language-এর মাধ্যমে প্রোগ্রাম তৈরি করলে সেই প্রোগ্রাম কম্পাইল হয়ে মেশিন ল্যাঙ্গুয়েজে কনভার্ট হয়।
এজন্য বিভিন্ন ধরনের Compiler ব্যবহার করা হয়, যার কাজ হলো আপনার প্রোগ্রামকে Machine Language-এ রূপান্তর করা।
প্রোগ্রামিং ল্যাঙ্গুয়েজ কত প্রকার (Types of Programming Language)
প্রোগ্রামিং ভাষাকে সাধারণত দুটি প্রধান শ্রেণিতে ভাগ করা হয়:
- High Level Language
- Low Level Language
এই দুই ধরনের ভাষার মধ্যে পার্থক্য মূলত তাদের বোধগম্যতা এবং কম্পিউটার দ্বারা বোঝার ক্ষমতার উপর নির্ভর করে।
What is High Level Language?
সাধারণ অর্থে যে ল্যাঙ্গুয়েজগুলো মানুষের কাছে সহজে বোধগম্য হয়, সেগুলোকে High Level Language বলা হয়। এই ভাষার মধ্যে বেশ কিছু জনপ্রিয় ভাষা অন্তর্ভুক্ত রয়েছে, যেমন:
- Java
- Python
- C
- C++
মূলত প্রোগ্রামিং সেক্টরটি অনেক কঠিন হয়ে থাকে, তাই অনেকেই প্রোগ্রামিং শিখতে ভয় পান। আর সেই কারণেই এই ভাষাগুলো তৈরি করা হয়েছে।
What is Low Level Language?
হাই লেভেল ল্যাঙ্গুয়েজের বিপরীত হলো Low Level Language। আর এই ধরনের ভাষাকে কম্পিউটার খুব সহজেই বুঝতে পারে। এই ল্যাঙ্গুয়েজটি মূলত Machine Language এবং Assembly Language-এর সমন্বয়ে গঠিত।
এই প্রোগ্রামিং ভাষাগুলোকে কম্পিউটার খুব সহজেই বুঝে উঠতে পারে। কিন্তু সবচেয়ে বড় অসুবিধা হলো, এই ভাষাগুলোকে কম্পিউটার সহজে বুঝতে পারলেও মানুষের পক্ষে এই ভাষাগুলোকে বুঝতে কষ্টসাধ্য হয়ে পড়ে।
আর সে কারণেই এই প্রোগ্রামিং ভাষাগুলো শেখার চাহিদা ধীরে ধীরে হ্রাস পাচ্ছে। তবে আপনার কাছে যদি এই ভাষাগুলোকে সহজ মনে হয়, তাহলে আপনি শিখতে পারবেন।
কেন প্রোগ্রামিং ভাষা শিখবেন?
কোনো কিছু শেখার আগে তার উদ্দেশ্য সম্পর্কে ধারণা থাকা ভালো। ঠিক তেমনি, আপনি যদি প্রোগ্রামিং ল্যাংগুয়েজ শিখতে চান, তাহলে আপনাকে ভাবতে হবে যে, “কেন আপনার Programming Language শেখা উচিত?”
আপনি যদি এই ভাষাকে রপ্ত করতে পারেন, তাহলে আপনি কী কী বেনিফিট পাবেন।
তো, যদি আপনি এই ভাষাকে সঠিকভাবে বুঝতে পারেন, তাহলে আপনি অনেক দিক থেকে বেনিফিট পাবেন। চলুন এবার সেই দিকগুলো সম্পর্কে স্বল্প আকারে আলোকপাত করা যাক।
#1- নতুন কিছু তৈরি করা
দেখুন, আমরা বর্তমানে ডিজিটাল যুগে বসবাস করছি। আর সেই সুবাদে আমরা ক্রমে ক্রমে সম্পূর্ণভাবে প্রযুক্তি নির্ভর হয়ে পড়ছি।
তার বাস্তব উদাহরণ হলো, আপনার হাতে থাকা স্মার্টফোন। ঘুম থেকে উঠার পর সেই সকাল থেকে এখন পর্যন্ত মোট কতবার আপনার ফোনটি ব্যবহার করছেন, তা একবার হিসেব করে দেখুন তো।
তো, যদি আপনি এই প্রোগ্রামিং ভাষাকে শিখতে পারেন, তাহলে আধুনিক যুগে সবচেয়ে বেশি ব্যবহৃত মোবাইল অথবা কম্পিউটারের জন্য অনেক ধরনের Apps বা Software তৈরি করতে পারবেন।
যেমন ধরুন, আপনার ফোনে প্রয়োজন অনুসারে নানা ধরনের Apps ব্যবহার করতে হয়। কিন্তু আপনি যদি একজন প্রোগ্রামার হতে পারেন, তাহলে আপনি তখন নিজেই নিজের ফোনের জন্য প্রয়োজনীয় Apps তৈরি করতে পারবেন।
#2- কর্মসংস্থানের সুযোগ
যেহেতু সম্পূর্ণ পৃথিবীটা প্রযুক্তি নির্ভর হয়ে পড়ছে, সেহেতু প্রযুক্তি-সংক্রান্ত কর্মসংস্থানেরও প্রসার বেড়েই চলেছে। আর সেই সুবাদে একজন দক্ষ প্রোগ্রামের বিপুল পরিমাণে চাহিদা রয়েছে।
দেখুন, আমরা যেমন লেখাপড়া করছি চাকরির উদ্দেশ্যে। কিন্তু চাকরির স্বল্পতা ক্রমেই বেড়ে চলেছে, যার কারণে এই জীবিকা নির্বাহ করার প্রতিযোগিতায় টিকে থাকা বেশ কষ্টকর হয়ে পড়ছে।
কিন্তু আপনি যদি প্রোগ্রামিং ল্যাংগুয়েজে দক্ষতা অর্জন করতে পারেন, তাহলে কিন্তু আপনি অনেক উপায়ে ইনকাম করতে পারবেন। তার মানে আমি এটা বলছি না যে, লেখাপড়া করা খারাপ। হ্যাঁ, লেখাপড়া অবশ্যই করতে হবে।
কিন্তু পড়াশোনা শেষ করার পর যেমন চাকরির পিছনে বছরের পর বছর ছুটতে হয়, অপরদিকে আপনি যদি লেখাপড়ার মতো প্রোগ্রামিংকে জোর দিয়ে শিখতে পারেন, তাহলে আপনার চাকরির পিছনে না ছুটলেও চলবে।
বরং আপনি এই দক্ষতার মাধ্যমে অনেকভাবে ইনকাম করতে পারবেন। আপনি চাইলে নিজে থেকেই কিছু তৈরি করে সেখান থেকে ইনকাম করতে পারবেন অথবা কোনো প্রতিষ্ঠানে সরাসরি যুক্ত হয়ে জীবিকা নির্বাহ করতে পারবেন।
#3- মানসিক বিকাশে সহায়তা
এই বিষয়টি একটু মজার! আসলে যারা দক্ষ প্রোগ্রামার, তারা কিন্তু ঠান্ডা মাথায় বড় বড় সমস্যার সমাধান করার কৌশলগুলো রপ্ত করতে পারে।
যদি আপনার পরিচিত কেউ এই পেশায় যুক্ত থাকে, তাহলে তাকে কোনো সমস্যায় পড়লে লক্ষ্য করবেন। সে কিন্তু ঠান্ডা মাথায় সেই সমস্যার সমাধান করতে পারবে।
এর কারণ কি জানেন? এর প্রধান কারণ হলো, প্রোগ্রামিং করার সময় অনেক বড় বড় সমস্যা হয়ে থাকে। এবং সেই সমস্যা গুলোকে সমাধান করতে হলে গভীরভাবে ভাবতে হয়। এরপর কোথায় সমস্যা আছে, তা খুঁজে নিয়ে সমাধান করতে হয়।
তো যখন আপনি প্রোগ্রামিং শেখার কয়েকটা ধাপ অতিক্রম করতে পারবেন, তখন আপনার মধ্যেও এই গুণটি লক্ষ্য করতে পারবেন।
প্রোগ্রামিং ভাষা শিখে কি কি তৈরি করা যায়?
তো যখন আপনি এই Programming Language (প্রোগ্রামিং ভাষা) এ দক্ষ হতে পারবেন। তখন আপনি মূলত ৩ টি কাজ খুব ভালোভাবে তৈরি করতে পারবেন। যথাঃ
- Apps Making & Development
- Software Making & Development
- Website Making & Development
- Web Security Expert
হ্যাঁ, আপনি প্রোগ্রামিং শিখতে পারলে উপরোক্ত কাজগুলো খুব সহজেই করতে পারবেন। তাই চলুন এবার সে সম্পর্কে একটু আলোচনা করা যাক।
যেমন, আমরা আমাদের স্মার্টফোনগুলোতে বর্তমানে অনেক ধরনের Apps ব্যবহার করে থাকি। অনেক সময় কিছু কিছু অ্যাপস নিজের পছন্দের তালিকাতে না থাকলেও সেগুলোকে ব্যবহার করতে হয়।
কিন্তু আপনার যদি প্রোগ্রামিং সম্পর্কে দক্ষতা থাকে, তাহলে আপনি তখন মোবাইলে ব্যবহার করা সেই অ্যাপস গুলো নিজে থেকেই তৈরি করতে পারবেন। এর পাশাপাশি সেই অ্যাপস গুলো বিক্রি করে ইনকামও করতে পারবেন।
আপনি আরো দেখুন…
মোবাইলের মতো ঠিক একইভাবে কম্পিউটারে ব্যবহার করা সফটওয়্যারগুলো তৈরি করতে পারবেন।
এবং সেই সফটওয়্যারগুলো বিভিন্ন অনলাইন মার্কেটপ্লেসে পাবলিশ করতে পারবেন। এবং তার বিনিময়ে প্রচুর পরিমানে অর্থ ইনকাম করতে পারবেন।
শুধু তাই নয়, এই কাজগুলোর পাশাপাশি আপনি আপনার মনের মতো ওয়েবসাইট তৈরি করতে পারবেন। এবং সেই ওয়েবসাইটকে প্রয়োজন অনুসারে ডেভেলপ করতে পারবেন।
এই কাজগুলো মূলত, একজন দক্ষ প্রোগ্রামারের জন্য হাতের খেলা। অর্থাৎ, এগুলো তারা ইচ্ছে করলেই তৈরি করতে পারবে এবং সেগুলো নিজের ইচ্ছামতো ডেভেলপ করতে পারবে।
কিভাবে প্রোগ্রামিং ল্যাঙ্গুয়েজ শিখবেন?
তো যদি আপনি একজন দক্ষ Programmer হতে চান, তাহলে এই কোডিং সেক্টরে আপনাকে সুস্বাগতম। আপনার মধ্যে যদি শেখার ইচ্ছা এবং নিয়মিত অনুশীলন করার আপ্রাণ চেষ্টা থাকে, তাহলে আপনি খুব সহজেই নিজেকে একজন দক্ষ প্রোগ্রামার হিসেবে তৈরি করতে পারবেন।
তো সবার আগে আপনাকে নির্বাচন করতে হবে আসলে আপনি কোন ভাষায় প্রোগ্রামিং শিখতে চান।
কারণ (কারন) প্রোগ্রামিংয়ে যে অনেক ধরনের ভাষা আছে, এতোক্ষনে আপনি সে সম্পর্কে জেনে গেছেন।
তবে আমার দৃষ্টিকোন থেকে আপনার সেই ভাষাকে নির্বাচন করা উচিত, যে ভাষাটি আপনার কাছে সহজেই বোধগম্য হয়। অন্যের দেখে হুট করে কোনো ভাষাকে নির্বাচন করা নিছক বোকামি ছাড়া আর কিছুই নয়।
এরপর আপনি যে ভাষাকে নির্বাচন করবেন, সেই ভাষা সম্পর্কে বিস্তারিত জানার জন্য Google কিংবা YouTube এর সাহায্য নেবেন।
যখন আপনি এই সোর্সগুলো থেকে আপনার নির্বাচিত ভাষা সম্পর্কে টুকিটাকি ধারণা (ধারনা) নেবেন, তখন যদি আপনার মনে হয় যে, হ্যাঁ! আপনি সেই Programming Language রপ্ত করতে পারবেন, ঠিক সেই সময়ে ভালো দেখে কোনো আইটি ইনস্টিটিউটে নিজেকে যুক্ত করবেন।
এর পাশাপাশি আপনাকে বাড়তি কিছু সময় বের করতে হবে প্রোগ্রাম প্রাকটিস করার জন্য। মনে রাখবেন, “Practice makes a man perfect“.