আমরা অনেকেই বুঝে না বুঝে প্রোগ্রামিং এবং ডেভেলপমেন্ট কে একসাথে গুলিয়ে ফেলি।
বিশেষ করে আমাদের দেশে নতুন যারা প্রোগ্রামিং শিখতে আসে তাঁদের মধ্যে হাতে গোনা ১০% মানুষ এই দুইটার মধ্যেকার আসল পার্থক্য জানে। কেউ কেউ ধীরে ধীরে পড়াশোনা করার মধ্যদিয়ে বুঝতে পারে।অন্যদিকে কেউ কেউ বুঝতেই পারেনা।অধিকাংশই এক লাফে গাছে উঠতে চায়।এক লাফে গাছে উঠতে চাইলে কি সেটা ভালো কোন সিদ্ধান্ত হতে পারে? উঠে যেতেই পারলেই কি আপনি সফল হয়ে যাবেন?
না রে ভাই ভিতরে অনেক ব্যাপার স্যাপার আছে।
একটু থামুন!
চিন্তা করুন এই শর্টকার্ট মেথড ব্যবহার করে জীবনে কত ধরনের ভূল করে এখন পর্যন্ত এই এখানে এসেছেন। কি পেয়েছেন, কি স্কিল অর্জন করতে পেরেছেন? যদি এই মেথড ভূল বলে মনে হয় তবে, এখনি সময় নিজেকে পরিবর্তন করা। সঠিক চিন্তা করে লং টার্ম সময় নিয়ে সামনে অগ্রসর হওয়া। সেটা যে কোন ধরনের কেরিয়ার-ই হোক না কেন।। সময় দিয়ে শিখলে কখনোই খারাপ কিছু হবে না। সাকসেস হইতে পারি নাই বলেই তো আজও আমরা সেই পুরনো জায়গাতেই বসত-বাড়ি করে আছি। এভাবে আর কতদিন?
আজকের লেখার টাইটেল ছিলো প্রোগ্রামিং আগে নাকি ডেভেলমেন্ট। মূলত এই লেখাকে কেন্দ্র করেই উপরের কথাগুলো বলা। এখন কি করবো ভাই বলে দ্যান।
আমি আপনাকে কিছুই শেখাতে পারবো না ভাই। আপনাকেই সবকিছুই শিখতে হবে প্রাকটিস করতে হবে। আমি আপনার শেখার যাত্রায় কিছু সময়ের জন্য গেস্ট হতে পারি। শিখাতে পারবো কিনা জানিনা। মানুষকে শেখানো সবচেয়ে কঠিন কাজ। আমি যেহেতু জ্ঞানের নিম্নকক্ষে বাস করি তাই আপনার শেখার পথযাত্রায় আমি হেল্পার হতে পারি।
যাহোক আমরা মূল টপিকে ফেরত আসি এইবার।
আমাদের জন্য কোনটা আগে জানা উচিত?
আমাদের আগে জানা উচিত প্রোগ্রামিং এবং ডেভেলপমেন্ট বিষয়টা আসলে কি?
এই দুইটা বিষয়ে ক্লিয়ার ধারনা নিয়ে তারপর আমাদের উচিত সঠিক গাইডলাইন ফলো করে সামনে আগানো। আমরা যেটা করি কোন কিছু না বুঝেই ডেভেলপমেন্টে ঝাপিয়ে পরি। এটা একটা খুব-ই খারাপ অভ্যাস। বেশিরভাগ মানুষ না জেনেই এই ভূলটা করে থাকে।
আজকে আমি এই দুইটি বিষয়ে ক্লিয়ার একটা ধারনা দিতে চেষ্টা করবো। পুরো লেখাটি মনোযোগ দিয়ে পড়বেন আশা করছি।
প্রথমেই আমরা জানবো প্রোগ্রাম কি?
প্রোগ্রাম ঃ কোন একটি সমস্যা সমাধানের জন্য কম্পিউটারের ভাষায় (0,1) লিখিত নির্দেশের সমষ্টিকে প্রোগ্রাম বলা হয়। ধরুন, আমি একটা সমস্যা দিলাম আপনাকে। দুই আর দুই কত হয়?
আপনি মুখে খুব সহজেই বলে দিতে পারলেন ৪ হয়। যদি এটাকে প্রোগ্রামে লিখা হতো তবে আমরা কিভাবে লিখতাম?
আমরা হয়তো দুইটা ভেরিয়াবলের মধ্যে দুইটা সংখ্যা নিয়ে অপারেটর ব্যবহার করে প্রিন্ট করে ফেলতাম। কিভাবে করতাম, আমি জাভাস্ক্রিপ্ট ভাষায় প্রিন্ট করে লিখে দেখাচ্ছি,
যেমন, var firstNum = 2;
var secondNum = 2;
var result = firstNum + secondNum;
console.log(result);
output = 4;
যদি এই প্রোগ্রামটি সি ভাষায় লেখা হতো তবে, কিভাবে লিখতাম?
আমাদের কে লিখতে হতো,
#include<stdio.h>
int main()
{
int firstNum,secondNum,result;
firstNum = 2;
secondNum = 2;
result = firstNum + secondNum;
printf("%d",result);
return 0;
}
এখানে আমি প্রোগ্রাম কোন ভাষায় লিখলাম সেটা কিন্তু সমস্যা হয়ে দাঁড়ায়নি। একটি সমস্যাকে আমি যে কোন ভাষা দিয়ে সমাধান করতে পেরেছি, এইটাই মূল বিষয়।প্রতিটি সময়ে আমাদেরকে কাজ করতে গেলে সমস্যা নিয়েই কাজ করতে হয়।তাই, প্রোগ্রামিং এ যে সমস্যা গুলো রয়েছে সেই সমস্যার সমাধান করার পূর্বে আপনাকে এর এলগোরিদম ডিজাইন এ মনোযোগ দিতে হয়। আপনি যদি সমস্যাটি নিয়ে চিন্তা করে সমস্যার একটি ভালো এলগোরিদম ডিজাইন করতে পারেন তবে, আপনি সেই সমস্যা যে কোন ভাষা দিয়েই সমাধান করতে সক্ষম হবেন। আপনি যে কোন প্রোগ্রামিং ভাষায় কোড লিখেন না কেন সেটা কিন্তু, শেষে 0,1 রুপান্তরিত হয়েই কম্পিউটারের বোধগম্য ভাষায় হয়ে যাচ্ছে। আর এই যে ছোট ছোট প্রোগ্রামের স্ক্রিপ্ট আপনি লিখতে সক্ষম হলেন এই সমস্ত কেই প্রোগ্রাম অথবা প্রোগ্রামিং বলা হয়।
আরেকটি বিষয় আমাদের কে জানা দরকার সেটা হলো ট্রান্সলেটর।
যে কোন ভাষার-ই একটি ট্রান্সলেটর থাকে। আপনি যে ভাষায় কোড লিখেন সেগুলো কে এই ট্রান্সলেটরের মাধ্যমেই মেশিন কোড বা অবজেক্ট কোড এ রুপান্তরিত করে। তাই, ট্রান্সলেটর সম্পর্কে জ্ঞান থাকাটাও জরুরি।
একজন প্রোগ্রামার কখন ভালো কোন স্ক্রিপ্ট লিখতে সক্ষম হবেন?
যখন তিনি একটা প্রব্লেম ফেইস করবেন, সেই প্রবলেমের জন্য ভালো একটি এলগোরিদম ডিজাইন করে যে কোন ভাষা দিয়ে ইমপ্লিমেন্ট করে ভালো ভাবে উপস্থাপন করতে সক্ষম হবেন তখন।
এখন আসি ডেভেলপমেন্ট নিয়ে ঃ
ডেভেলপমেন্ট হলো উন্নায়ন ঘটানো। আপনি কিসের উন্নায়ন করবেন, কি উন্নতি ঘটাবেন সেটা আগে বুঝতে হবে।
আমি ধরে নিলাম আপনি ওয়েবসাইড মেইক করবেন। একটি ওয়েবসাইড তৈরী করতে অবশ্যই আপনাকে বিভিন্ন ফিচার নিয়ে কাজ করতে হবে।
কি কি ফিচার থাকতে পারে সেটা নির্ভর করবে সেটা কি টাইপের ওয়েবসাইড হবে তার উপর।
প্রত্যেকটি ফিচার তৈরী করার পেছনে হাজার হাজার কোড, লজিক লিখতে হয়। যখন আপনি প্রোগ্রামিং এর কোন প্রবলেম সমাধান করতে না পারবেন তখন কি আপনি এই কোডের লজিক নিয়ে ভাবতে পারবেন?
অবশ্যই পারবেন নাহ। সেই জন্য আপনাকে জানতে হবে ঠিক প্রোগ্রাম কি ওয়েতে কাজ করে। আমরা বর্তমান সময়ে প্রোগ্রামিং কে পছন্দ না করার কারণ হলো অধিকাংশ অন্যর কোড কপি,পেষ্ট করে ব্যবহার করি। পৃথিবীতে লক্ষ লক্ষ ডেভেলপাররা কাজের সুবিধার জন্য তারা বিভিন্ন ফিচার তৈরী করে রেখেছেন। আমরা শুধুমাত্র সেই কোড গুলো ব্যবহার করে একটা ফিচার তৈরী করছি। সেই জন্যই আমরা প্রোগ্রামিং কে বাদ দিয়ে ডিরেক্ট ডেভেলপমেন্টে জার্ম করি। তাতে আমাদের ক্ষতি কি হচ্ছে , আমরা তেমন ভালো কোন কোড লিখতে পারছি না। সারাজীবন অন্যর কোড ব্যবহার করেই জীবন পার করে দিচ্ছি। তাই আমার ব্যক্তিগত মতামত হলো আগে ডেভেলপমেন্ট নয় আগে প্রোগ্রামিং শেখা প্রতি গুরুত্ব দেওয়া উচিত। আমরা যদি প্রোগ্রামিং কে ভালোবাসি তবে, আমরা তৈরী করতে পারবো ভালো কোন ফিচার অথবা ভালো কোন API। তখন অন্যরা আপনার,আমার কোড ব্যবহার করবে;তাদের কোন ওয়েবে। আপনি যদি প্রোগ্রামিং এ খুব বেশি ভালো করতে পারেন,তবে, ডেভেলপমেন্ট আপনার জন্য সহজ ও সরল মনে হবে।
তাই, ডেভেলপমেন্ট নয় প্রোগ্রামিং সমস্যার সমাধান করুন। বেশি বেশি প্রোগ্রাম লিখুন। ভালো কোন এলগরিদম ডিজাইনের চেষ্টা করুন। তখন ডেভেলপমেন্টে এ আপনি এমনিতেই
অনেক ভালো করতে সক্ষম হবেন ইন-শা-আল্লাহ।
আবারো স্বরন করিয়ে দিচ্ছি, মনে রাখা জরুরি;
প্রোগ্রামিং মানে বর্নমালা যা দিয়ে শব্দ,বাক্য তৈরী করা হয়।
আর ডেভেলমেন্ট হলো অনেক গুলো বাক্য,শব্দের গঠন প্রক্রিয়ায় কিছু তৈরী করা। আজ এই পর্যন্তই।
আপনি কি আগে শিখবেন সেটা আপনি-ই ডিসাইড করুন।
সবাই সুস্থ, সুন্দর, ভালো থাকবেন।
পাশের মানুষগুলোকে ভালো রাখবেন।
সবাইকে ধন্যবাদ।


0 comments:
Post a Comment
ধন্যবাদ, আপনার মন্তব্যের জন্য। আমরা আপনার সুস্বাস্থ্য ও সফলতা কামনা করি।