আমি ওয়েব ডেভেলপার হতে চাই! (পর্ব – ২)

আমি ওয়েব ডেভেলপার হতে চাই! (পর্ব – ২)

ওয়েব ডেভেলপার-আমরা জানি ওয়েব ডেভেলপমেন্টের দুটি অংশ Front End এবং Back End.  আমি পূর্বের ব্লগে ওয়েব ডেভেলপমেন্টের Front End নিয়ে আলোচনা করেছিলাম। আজ Back End নিয়ে আলোচনা করবো।

Back End ডেভেলপার হওয়ার যে কোন একটি Server side Scripting Language ভালো করে শিখতে হবে।

এখন প্রশ্ন হচ্ছে, সার্ভার সাইড স্ক্রিপ্টিং কি ?

স্ক্রিপ্টিং হচ্ছে প্রোগ্রামের আরেকটা সমার্থক শব্দ। এটা হচ্ছে কিছু instruction এর সেট, যেটা run করলে স্বয়ংক্রিয় ভাবে কিছু কাজ হয়। সার্ভার সাইড বলতে বুঝানো হয় এই স্ক্রিপ্ট গুলোকে ইউজারের কম্পিউটার থেকে নিয়ন্ত্রনের বদলে সার্ভার থেকে নিয়ন্ত্রন করা।

যখন কেউ পিএইচপি ওয়েব পেজ ভিজিট করবে তখন ওয়েব সার্ভার পিএইচপি কোডগুলিকে কিছু Process করবে । যেটা দেখানো দরকার (Picture,Content ইত্যাদি) সেটা দেখাবে আর যেটাকে লুকানো দরকার (math calculation,file operation ইত্যাদি) তা লুকাবে এবং শেষে HTML এ রুপান্তর করে ইউজারের ওয়েব ব্রাউজারে পাঠাবে।

বর্তমানে যে সকল Server side Scripting Language সবচেয়ে বেশী জনপ্রিয় এর মধ্যে একটি বাচাই করে নিতে হবে। যেমন PHP, NodeJS, Python etc. আসুন আমরা এই সকল  Language সম্পর্কে জেনে নেই।

পিএইচপিঃ ইন্টারনেটে যত গুলো ওয়েব সাইট রয়েছে, তার মধ্যে 82.6% ওয়েব সাইট তৈরি করতে ব্যবহৃত হচ্ছে পিএইচপি প্রোগ্রামিং ল্যাঙ্গুয়েজ। পিএইচপি ল্যাংগুয়েজটি তৈরী করেছেন Rasmus Lerdorf । পিএইচপি সব প্লাটফর্মে সাপোর্ট আছে অর্থ্যাৎ ক্রস প্লাটফর্ম যেমন উইন্ডোজ, লিনাক্স (সব ইউনিক্স সদৃশ অপারেটিং সিস্টেমে চলবে)। পিএইচপি দিয়ে চাইলে ব্লগ, ইকমার্স থেকে শুরু করে এন্টারপ্রাইজ লেভেলের যেকোন এপ্লিকেশন কিংবা ওয়েবসাইট বানানো যায়। পিএইচপি’র কিছু জনপ্রিয় ফ্রেমওয়ার্ক রয়েছে যেমনঃ Laravel, CodeIgniter, Symfony, CakePHP, Yii, Zend Framework, Phalcon ইত্যাদি। এছাড়াও কিছু সিএমএস রয়েছে, যেমনঃ WordPress, Joomla, Drupal, OctoberCMS, OpenCart, ExpressionEngine, PyroCMS. Magento, Craft CMS ইত্যাদি।

নোড জেএসঃ যারা নতুন তাদের মধ্যে অনেকেই ভাবে নোড জেএস হয়তো কোন প্রোগ্রামিং ল্যাঙ্গুয়েজ বা ফ্রেমওয়ার্ক! কিন্তু এটা সম্পূর্ণ ভুল। নোড জেএস কোন প্রোগ্রামিং ল্যাঙ্গুয়েজ বা ফ্রেমওয়ার্ক নয়। তাহলে নোড জেএস কি? নোড জেএস হচ্ছে একটি জাভাস্ক্রিপ্ট Run-Time Environment। আচ্ছা বুঝলাম কিন্তু এই Run-Time Environment টা আবার কি? Run-Time Environment এর কাজ হচ্ছে নির্দিষ্ট একটি প্রোগ্রামিং ল্যাঙ্গুয়েজ এর কোড গুলোকে রান করা।

আমরা জানি জে জাভাস্ক্রিপ্ট তৈরী করা হয়েছিলো শুধুমাত্র ব্রাউজার এর জন্য। আগে শুধুমাত্র ওয়েবসাইট Interective করার জন্য ব্যবহার করা হতো জাভাস্ক্রিপ্ট। একমাত্র ব্রাউজারই বুঝতে পারতো জাভাস্ক্রিপ্ট কোড। কিন্তু ২০০৯ সালে Ryan Dahl নামে একজন সফটওয়্যার ইঞ্জিনিয়ার বাজারে নিয়ে আসে নোড জেএস আর পাল্টে দেয় সবকিছু! নোড জেএস আসার পর এখন জাভাস্ক্রিপ্ট দিয়ে অনেক কিছু করা যায়! প্রত্যেকটা ব্রাউজার এর মধ্যে একটি করে জাভাস্ক্রিপ্ট ইঞ্জিন থাকে যার কাজ হচ্ছে জাভাস্ক্রিপ্ট কোড কে মেশিন কোডে রূপান্তর করা। Google Chrome এর আছে V8 Engine আর Mozilla Firefox এর আছে SpiderMonkey এবং প্রত্যেকটি ব্রাউজার এর জন্য রয়েছে আলাদা আলাদা জাভাস্ক্রিপ্ট ইঞ্জিন।

পাইথনঃ পাইথন একটা General Purpose High Level প্রোগ্রামিং ল্যাঙ্গুয়েজ । জেনারেল পারপাজ মানে হলো পাইথন দিয়ে আমরা নানা ধরনের এপ্লিকেশন সফটওয়ার বানাতে পারি । যেমন টা আগেই বলেছি, ডেক্সটপ বেসড , ওয়েব, গেমস ইত্যাদি । পাইথনের কোডিং সাইজ ছোট , কম কোড লিখে বেশি কাজ করা যায় । ফলে ডিবাগিং এবং কোড মেইনটেনেন্স অনেক সহজ হয়ে যায় । পাইথন কোড পড়তে অনেক সহজ , অনেক টা ইংলিশ ল্যাঙ্গুয়েজের মত । ফলে রিডেবিলিটি বেশি । সে জন্য প্রোগ্রামিং শেখাও অনেক সহজ হয়ে পড়ে । সহজে মানুষ কোড পড়ে বুঝতে পারে ।

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

ডাটাবেজঃ যেকোন একটি Server side Scripting Language শেখার পর আপনাকে ডাটাবেজ শিখতে হবে। ডাটাবেজের জন্য আপনাকে mySQL শিখতে হবে। এটা আপনি w3schools থেকে শিখতে পারবেন খুব কঠিন কিছু হবে না। ভালো সফটওয়্যার/ওয়েবসাইট ডেভেলপার হওয়ার জন্য ডাটাবেজ ও এসকিউএল শেখা অত্যন্ত গুরুত্বপূর্ণ। কারণ আজকাল যত সফটওয়ার তৈরি করা হচ্ছে বা হবে তার শতকরা ৯৫ ভাগই ডাটা-কেন্দ্রিক। আর ডাইনামিক ওয়েবসাইট ডাটাবেজ ছাড়া কল্পনাই করা যায় না। যদিও আজকাল মংগোডিবির মত NoSQL ডাটাবেজ সিস্টেমে এসকিউএলের জ্ঞান ছাড়াই কাজ করা যায় তবু নানা কারণে SQL-এর প্রয়োজনীয়তা ফুরাবে না।

রিলেশেনাল ডাটাবেজ সিস্টেমগুলোতে ডাটা নিয়ে কাজ করার মূল ভাষা (Language) হচ্ছে SQL. ডাটাবেজ তৈরি, টেবল তৈরি, ডাটা ঢুকানো, ডাটা দেখা, আপডেট করা, ডিলিট করা তথা সব ধরনের ডাটাবেজ অপারেশন চালানোর জন্য ‍SQL অত্যাবশ্যক। SQL ছাড়া এই কাজগুলো করার কথা কল্পনাই করা যায় না। এমনকি আপনি যদি পিএইচপি, জাভা, পাইথন কিংবা সি শার্প দিয়ে কোন ডাটাবেজের সাথে সংযোগ তৈরি করেন এবং উক্ত প্রোগ্রামিং ল্যাংগুয়েজের সাহায্যে ডাটা ইনসার্ট/আপডেট/ডিলিট/ভিউ করতে চান তাহলেও ‍SQL লাগবে। যদিও অনেক প্রোগ্রামিং ল্যাংগুয়েজে ওবজেক্ট রিলেশনাল ম্যাপিং (ORM) ব্যবহার করে SQL ছাড়াই এসব কাজ করা যায় কিন্তু কখনও কোন সমস্যা হলে ‍ SQL জানা না থাকলে অনেক সময় সেটা সমাধান করা অনেক সময় কঠিন হয়ে দাড়ায়।

তাহলে কি শুরু করে দিতে পারি দক্ষ ওয়েব ডেভেলপার হওয়ার মিশন?

 

বাংলাদেশ স্কিল ডেভেলপমেন্ট ইনস্টিটিউট (বিএসডিআই)

ড্যাফোডিল পলিটেকনিক ইনস্টিটিউট