মার্ন স্ট্যাক ওয়েব ডেভেলপার ক্যারিয়ার গাইডলাইন

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

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

ফুলস্ট্যাক ওয়েব ডেভেলপমেন্ট আসলে কি এবং ফুলস্টাক ডেভেলোপার কারা ?

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

একজন সফল ফুলস্ট্যাক ডেভেলপার হতে হলে আপনাকে এই ২টি পার্ট এই সমান ভাবে দক্ষ হতে হবে। একজন ফুলস্ট্যাক ডেভেলপার হিসেবে আপনার কাজ হবে সফল ভাবে একটি ওয়েবসাইট বিল্ড করতে শিখা।বর্তমানে ডেভেলপার ওয়ার্ল্ডে  বিভিন্ন টেকনোলোজি স্ট্যাক আছে ফুলস্ট্যাক ডেভেলপারের জন্য। শুরুতে আপনাকে ঠিক করতে হবে আপনি কোনটা শিখবেন এবং কেনো শিখবেন?

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

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

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

মার্ন স্টাক ডেভেলোপার হওয়ার জন্য যা যা শেখা প্রয়োজনঃ

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

এর পরবর্তীতে আপনাকে সিএসএস শিখতে হবে । HTML কে CSS দিয়েই ডিজাইন করা হয়। অর্থাৎ একটা ওয়েবসাইটের বাটন কি রঙের হবে, ফ্রন্ট সাইজ কি রঙের হবে এইসব আমরা লিখে থাকি CSS দিয়ে। CSS এর বেসিক জ্ঞান থাকলেই আপনি পারবেন একটা ওয়েবসাইট ডিজাইন করতে। HTML এবং CSS শেখার পর আপনার কাজ হবে ২-৩টা ওয়েবসাইট ডিজাইন করে ফেলা।যেমন-নিজের জন্য একটি পোর্টফোলিও ওয়েবসাইট

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

HTML, CSS, Tailwind এর পর আপনাকে শিখতে হবে জাভাস্ক্রিপ্ট। জাভাস্ক্রিপ্টটি আপনাকে খুব ভালোভাবে শিখতে হবে। কারণ দিন শেষে আপনি কিন্তু একজন জাভাস্ক্রিপ্ট ডেভেলপারই (MERN Stack). JS টা আপনার কাছে যত ক্লিয়ার হবে আপনি JS ডেভেলপার হিসেবে তত ভালো করতে পারবেন। আপনি JS যদি MDN ডকুমেন্টেশনটা পড়ে শিখতে পারেন তাহলে আপনি খুব উপকৃত হবেন।

কি কি শিখতে হবে JS এ?

 Basic JS Syntax+variable ,Operator , If-Else ,Array Methods , String Methods , Function , Loop (for , for of, for in) , Object,Asynchronous JS, DOM, ES6 (find, filter,reduce,etc)

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

MongoDB এর পর চলে আসবেন ফ্রন্ট এন্ড টেকনোলোজিতে, অর্থাৎ রিএক্টে। রিএক্ট কে আমরা ব্যবহার করবো ফ্রন্ট এন্ড টেকনোলোজি হিসেবে। আমরা আগে যে HTML,CSS, Tailwind এবং JS শিখলাম তার সবকটাই লাগবে এই রিএক্টে। রিএক্টের সিনট্যাক্স হিসেবে ব্যবহার করা হয় JSX যা অনেকটা HTML এর মতো দেখতে কিন্তু HTML না।

রিএক্টে আপনার শিখতে হবে-

JSX,rendering,Components,Props,State,Life cycle,Events,Conditional Rendering ,List and Keys ,

Redux [স্টেট ম্যানেজমেন্ট লাইব্রেরী]

এর পরবর্তীতে আপনি ব্যাকেন্ডের জন্য নোড এবং এক্সপ্রেস জেএস শিখবেন । শুরুতেই আপনার কাজ হবে এটা জেনে ফেলা যে Node.Js কীভাবে কাজ করে। শিখে ফেলবেন কীভাবে Node দিয়ে একটা সার্ভার রান করতে হয়। আমরা যদি সিরিয়াল করে বলি-

Server Setup,Modules,HTTP req Handle/ Routing,File,URL,Database Handle,NPM

এই অল্প কটি টপিক জানলেই আপনি বুঝতে পারবেন যে কীভাবে Node.Js কাজ করে। এখন আপনি একটা জিনিস বুঝতে পারবেন যে ১-২টা ফিচারের কাজ যদি  র Node.Js এ করেন তাহলে তা মেন্টেইন করা অনেক কষ্টসাধ্য হয়ে যাচ্ছে।আর এই কাজটিকে একটি ফরমেটে নেয়ার ভালো উপায় হচ্ছে একটা ফ্রেমওয়ার্ক ব্যবহার করা। আমরা এইজন্য একটি ফ্রেমওয়ার্ক ব্যবহার করি Node.Js এর, যেটা হচ্ছে Express.Js।

Express.JS এ আপনি Node.JS এ যা শিখে আসছেন তাই শিখবেন কিন্তু এখন ফরমেটেড ওয়েতে। আপনি একটা কোড ছোট ছোট পার্টে লিখবেন যেন আপনার একটি বড় প্রোজেক্ট হ্যান্ডেল করতে সুবিধা হয়।

Express Js যা যা শিখবেন 

Express Setup,Request,Response,GET/POST method,Routing,Cookies,Database Handle,Sessions,File Upload, Middleware

এই টেকনোলজি গুলো যদি আপনি ভালো করে শিখে ফেলতে পারেন তাহলে নিজেকে একজন জুনিয়র মার্ন স্টাক ডেভেলোপার বলতে পারবেন ।