Surrounded by Data

Surrounded by Data The next wave is already here, watching, learning, and growing around us. Are you ready for the next wave?
(1)

salary দেখে চাকরি নিলে, ৬ মাস পরে রিগ্রেট করার সম্ভাবনা ৭০%।Data-র চাকরি evaluate করার সময় যে জিনিসগুলো বেশিরভাগ মানুষ ...
23/05/2026

salary দেখে চাকরি নিলে, ৬ মাস পরে রিগ্রেট করার সম্ভাবনা ৭০%।

Data-র চাকরি evaluate করার সময় যে জিনিসগুলো বেশিরভাগ মানুষ skip করে:

✅ ডেটা কে collect করে?
যদি উত্তর হয় "engineering team" — তুমি সারাদিন dirty data clean করবে, মডেল বানাবে না।

✅ Last data hire কতদিন ছিল?
যদি ৬ মাসের বেশি কেউ থাকেনি, কারণটা জিজ্ঞেস করো। সৎ উত্তর না পেলে সেটাই উত্তর।

✅ Business team কি data দিয়ে সিদ্ধান্ত নেয়, নাকি gut feeling-এ?
যদি dashboards শুধু দেখায়, কেউ পড়ে না — তোমার কাজের কোনো impact হবে না।

✅ তোমার কাজের output কে দেখবে?
যদি শুধু manager দেখে, growth সীমিত। যদি product বা leadership দেখে, তাহলে গল্প আলাদা।

✅ Tools কি তুমি শিখতে চাও?
নাকি ৫ বছর ধরে একই legacy Excel system?

✅ "Data-driven" কথাটা কতবার বললো interview-এ?
বেশি বললে মানে সত্যিকারের culture নেই, buzzword দিয়ে ঢাকছে।

✅ কোনো Data roadmap আছে কিনা?
নাকি তুমিই সেটা "build" করবে — কোনো support ছাড়া, কোনো budget ছাড়া?

Salary negotiation-এর আগে এই ৭টা প্রশ্নের উত্তর খোঁজো।
ভালো offer মানে শুধু বেশি টাকা না — মানে কাজটা তোমাকে ১ বছর পরেও ভালো রাখবে।

তোমার শেষ job switch-এ কোন জিনিসটা আগে বুঝলে ভালো হতো? 👇

Data career-এ একটা trap আছে যেটায় বেশিরভাগ মানুষ পড়ে — কিন্তু কেউ সরাসরি বলে না।তুমি SQL শিখলে। Python শিখলে। Power BI...
22/05/2026

Data career-এ একটা trap আছে যেটায় বেশিরভাগ মানুষ পড়ে — কিন্তু কেউ সরাসরি বলে না।

তুমি SQL শিখলে। Python শিখলে। Power BI dashboard বানাতে পারো। Tableau-তে চমৎকার visualization করো।

কিন্তু কেউ যখন জিজ্ঞেস করে —
"এই analysis দিয়ে business কী করবে?"
"এই metric drop মানে আসলে কী?"
"তুমি কোন decision-টা change করতে চাইছো এই data দিয়ে?"

তখন চুপ হয়ে যাও।

এটাকে বলে Tool Fluency vs Business Thinking gap।

Tool fluency তোমাকে job দেয়।
Business thinking তোমাকে career দেয়।

---

আমি একটা realistic scenario দেখি বারবার:

একজন junior analyst ঘণ্টার পর ঘণ্টা কাজ করে একটা সুন্দর churn analysis তৈরি করলো। Numbers accurate। Visual clean।

কিন্তু রিপোর্টটা দেখে manager জিজ্ঞেস করলো —
"So what should we do about it?"

সে বললো — "সেটা তো আপনারা ঠিক করবেন।"

সেই দিন থেকে সে হয়ে গেলো 'report বানানোর লোক।' Promotion আর হয়নি দুই বছর।

---

ভুলটা কী ছিল?

সে ভেবেছিল তার কাজ হলো সঠিক data দেওয়া।
কিন্তু আসল কাজ ছিল সঠিক প্রশ্নের উত্তর দেওয়া।

---

প্র্যাকটিক্যাল fix:

➊ প্রতিটা analysis শুরু করার আগে লেখো — "এই analysis কোন decision-কে better করবে?"

➋ শুধু কী হচ্ছে (what) বলো না — কেন হচ্ছে (why) এবং এরপর কী করা উচিত (so what) বলো।

➌ Stakeholder যা চেয়েছে তা দেওয়ার পাশাপাশি একটা extra insight add করো যেটা তারা চাননি কিন্তু দরকার।

---

Tools শেখা easy। সেটা করো।
কিন্তু business context বোঝার অভ্যাস না থাকলে, তুমি সবসময় ex*****on layer-এই আটকে থাকবে।

তোমার career-এ এই gap কি কখনো feel করেছো? কীভাবে deal করেছো?

ChatGPT-কে question করো — সে জবাব দেয়।AI Agent-কে একটা goal দাও — সে নিজেই plan করে, tool use করে, কাজ শেষ করে ফেরত আসে...
22/05/2026

ChatGPT-কে question করো — সে জবাব দেয়।
AI Agent-কে একটা goal দাও — সে নিজেই plan করে, tool use করে, কাজ শেষ করে ফেরত আসে।

এই দুটো এক জিনিস না।

২০২৬ সালে সবচেয়ে বেশি যে টার্মটা tech world-এ ঘুরছে সেটা হলো — AI Agent। কিন্তু বেশিরভাগ মানুষ এখনো ভাবছে এটা হয়তো একটু স্মার্ট chatbot।

আসলে পার্থক্যটা অনেক গভীর।

🤖 সাধারণ AI (যেমন chatbot):
— তুমি input দাও
— সে output দেয়
— কাজ শেষ

⚡ AI Agent:
— তুমি একটা goal দাও
— সে নিজে ভাবে: "এই কাজটা করতে আমার কী কী দরকার?"
— নিজে web search করে, code run করে, file পড়ে, email draft করে
— একটা step শেষ হলে পরের step নিজেই ঠিক করে
— তারপর final result নিয়ে আসে

Real example বোঝো:

তুমি বললে — "আমাদের last quarter-এর sales data দেখে একটা executive summary বানাও আর সেটা CFO-কে email করো।"

Chatbot: "অবশ্যই! আপনি data paste করুন, আমি summary লিখে দিচ্ছি।"

AI Agent: নিজে database connect করলো → data pull করলো → analysis করলো → summary draft করলো → CFO-এর email খুঁজে নিলো → send করলো। তুমি শুধু approve করলে।

এই shift টা কেন এত বড়?

কারণ এতদিন AI ছিল একটা smart assistant — তোমাকে সব কিছু বলে দিতে হতো।
এখন AI হয়ে যাচ্ছে একটা autonomous worker — তুমি শুধু outcome চাও।

এই কারণেই Salesforce, SAP, ServiceNow — সবাই এখন "Agentic AI" নিয়ে race করছে। কারণ যে company প্রথমে reliable AI agents deploy করতে পারবে, তাদের operational cost একটা ভিন্ন level-এ নেমে যাবে।

তোমার কাছে প্রশ্ন —
তুমি কি মনে করো AI Agent আসলে job replace করবে, নাকি নতুন ধরনের কাজ তৈরি করবে? Comment-এ বলো। 👇

তুমি ৬ মাস ধরে SQL শিখলে। কিন্তু interview-এ একটা real dataset দেখে blank হয়ে গেলে।এই mistake টা শুধু তুমি করোনি — হাজা...
21/05/2026

তুমি ৬ মাস ধরে SQL শিখলে। কিন্তু interview-এ একটা real dataset দেখে blank হয়ে গেলে।

এই mistake টা শুধু তুমি করোনি — হাজার হাজার data learner করে।

ভুলটা হলো:
➤ Tutorial data-তে practice করা।

Tutorial data মানে কী?
— সব column perfectly filled
— কোনো duplicate নেই
— Date format consistent
— কোনো NULL নেই যেটা logic break করে

Real life data-তে কী থাকে?
— একটা customer_id তিনভাবে লেখা: "C001", "c001", "C-001"
— order_date এর column-এ কোথাও "2024-01-15", কোথাও "15/01/24"
— Revenue column-এ string mixed with numbers
— Join করলে row দ্বিগুণ হয়ে যাচ্ছে কিন্তু কেন বুঝতে পারছো না

Tutorial শেষ করার পরেও যদি Kaggle-এর messy dataset বা government open data নিয়ে কাজ না করো — তুমি আসলে controlled environment-এ সাঁতার শিখেছো, সমুদ্রে নামোনি।

Fix টা simple:
✅ প্রতি সপ্তাহে একটা "ugly" dataset নাও
✅ প্রথম কাজ হবে শুধু data cleaning
✅ কোনো tutorial follow করবে না — নিজে error দেখো, নিজে solve করো
✅ কতগুলো NULL ছিল, কীভাবে handle করলে — সেটা document করো

এই practice টা ৪ সপ্তাহ করলে interview-এ "এই data-তে কী সমস্যা দেখছো?" প্রশ্নটা আর ভয় লাগবে না।

তোমার সবচেয়ে বড় messy data moment কোনটা ছিল? নিচে বলো 👇

তুমি query তিনবার rewrite করেছ। Index দিয়েছ। EXPLAIN ANALYZE দেখেছ। তারপরও query slow। এখন কী করবে?বেশিরভাগ ক্ষেত্রে সম...
30/04/2026

তুমি query তিনবার rewrite করেছ। Index দিয়েছ। EXPLAIN ANALYZE দেখেছ। তারপরও query slow। এখন কী করবে?

বেশিরভাগ ক্ষেত্রে সমস্যাটা query-তে না — সমস্যা database-এর ভেতরের physical health-এ।

─────────────────────────
🔑 আগে key terms বুঝে নাও
─────────────────────────

▸ Dead tuple — PostgreSQL-এ কোনো row UPDATE বা DELETE হলে সেই পুরনো version সাথে সাথে মুছে যায় না। সে জায়গা নিয়ে পড়ে থাকে — এটাই dead tuple।

▸ Table bloat — অনেক dead tuple জমলে table আসলের চেয়ে অনেক বড় হয়ে যায়, কিন্তু কাজের data কম।

▸ Query planner — PostgreSQL execute করার আগে সিদ্ধান্ত নেয়: Seq Scan ভালো, নাকি Index Scan? এই সিদ্ধান্ত নেওয়ার engine হলো planner।

▸ Autovacuum — PostgreSQL নিজে থেকে background-এ VACUUM চালায়। কিন্তু heavy write workload-এ এটা পিছিয়ে পড়ে।

─────────────────────────
⚙️ কী হয় আসলে?
─────────────────────────

ধর তোমার orders table-এ প্রতিদিন ৫০,০০০ row UPDATE হয়। PostgreSQL প্রতিটা UPDATE-এ নতুন version লেখে, পুরনোটা dead হয়ে পড়ে থাকে।

এক সপ্তাহ পর:
• Live rows: ৩,০০,০০০
• Dead tuples: ২,৫০,০০০

Planner statistics এখনো পুরনো — সে ভাবছে table-এ মাত্র ৮০,০০০ row আছে।

তাই planner বলে: "এত কম row? Index scan দরকার নেই, Seq Scan-ই যথেষ্ট।"

কিন্তু আসলে সে ৫,৫০,০০০ row-এর bloated table scan করছে। Query slow হওয়াটা স্বাভাবিক।

─────────────────────────
🔍 Diagnose করবে কীভাবে?
─────────────────────────

এই query চালাও:

SELECT relname, n_live_tup, n_dead_tup, last_vacuum, last_analyze
FROM pg_stat_user_tables
WHERE relname = 'orders';

যদি দেখ n_dead_tup অনেক বেশি এবং last_analyze অনেক পুরনো — তাহলে সমস্যা এখানেই।

Fix:
VACUUM ANALYZE orders;

VACUUM dead tuples সরাবে, ANALYZE planner-কে নতুন statistics দেবে।

─────────────────────────
⚠️ Common mistake
─────────────────────────

অনেকে মনে করেন autovacuum থাকলে ম্যানুয়ালি কিছু করতে হবে না।

কিন্তু heavy write workload-এ autovacuum নিজেই পিছিয়ে পড়ে — dead tuples জমতে থাকে, statistics stale হতে থাকে। Production-এ batch job বা pipeline চালানোর পর manually ANALYZE করার অভ্যাস রাখো।

আর VACUUM FULL সাবধানে — এটা table-এ exclusive lock নেয়, পুরো table rewrite করে। Production চলাকালীন এটা চালালে সব read-write ব্লক হয়ে যাবে।

─────────────────────────
🧩 Mini challenge
─────────────────────────

তোমার planner estimate দেখাচ্ছে 500 rows, কিন্তু actual rows 85,000। Query তে কোনো bug নেই।

এই mismatch-এর সবচেয়ে likely কারণ কী?

(উত্তর নিচে 👇)
...

✅ উত্তর: Stale statistics। ANALYZE অনেকদিন চলেনি, তাই planner ভুল row count দিয়ে ex*****on plan বানিয়েছে। ANALYZE চালালে planner নতুন estimate পাবে এবং সঠিক plan বেছে নেবে।

─────────────────────────
💡 Takeaway
─────────────────────────

▸ Slow query মানেই খারাপ query না — table bloat আর stale statistics-ও দায়ী হতে পারে।
▸ VACUUM মুক্ত করে জায়গা, ANALYZE দেয় planner-কে সঠিক তথ্য — দুটো আলাদা কাজ, দুটোই দরকার।
▸ pg_stat_user_tables দিয়ে আগে diagnose করো, তারপর fix করো।

─────────────────────────

তোমার production database-এ কি কখনো autovacuum failure বা table bloat diagnose করেছ? কীভাবে ধরেছিলে? 👇

তোমার model training-এ ৯৯% accuracy দেখাচ্ছে — কিন্তু production-এ গিয়ে সব গোলমাল।এটা bug না। এটা তোমার feature নিজেই চ...
27/04/2026

তোমার model training-এ ৯৯% accuracy দেখাচ্ছে — কিন্তু production-এ গিয়ে সব গোলমাল।

এটা bug না। এটা তোমার feature নিজেই চিট করছিল।

---

🔴 সমস্যাটা কোথায়?

ধরো তুমি একটা model বানাচ্ছ যে predict করবে — কোনো customer loan default করবে কিনা।

তুমি বুদ্ধি করে একটা feature বানালে:
"এই customer যে city-তে থাকে, সেই city-র সব customer-দের average default rate"

দেখতে নিরীহ। আসলে মারাত্মক।

কারণ যখন তুমি এই average হিসাব করলে, তুমি পুরো dataset ব্যবহার করলে — মানে সেই customer নিজেও ঐ average-এর ভেতরে আছে। Model তখন শিখে নিচ্ছে: "যার target = 1, তার city-র average বেশি" — কারণ সে নিজেই সেই average বাড়িয়েছে!

এটাই Target Leakage through Aggregation।

---

🧩 Key Terms সহজ ভাষায়

▸ Target Leakage — যখন feature-এর ভেতরে answer আগেই ঢুকে যায়
▸ Group Aggregation — city/category ধরে mean, sum, ratio বের করা
▸ Temporal Boundary — কোন সময়ের আগের data ব্যবহার করা যাবে সেই সীমা
▸ Train-Test Split — random split করলেই leakage ধরা যায় না, time-based split দরকার

---

📊 Worked Example

ধরো তোমার dataset:

Row 1: customer_A, city=Dhaka, default=1
Row 2: customer_B, city=Dhaka, default=0
Row 3: customer_C, city=Dhaka, default=1

❌ Leaky Feature:
city_avg_default = mean(সব Dhaka customer-এর default)
= (1+0+1)/3 = 0.67

Row 1-এর জন্য এই feature বানাতে গিয়ে তুমি Row 1-এর নিজের target (default=1) ব্যবহার করলে।
Model এখন জানে — এই feature high মানে default likely। কিন্তু real prediction-এ নতুন customer-এর নিজের future outcome তো জানা নেই!

✅ সঠিক উপায় — Leave-One-Out Encoding:
Row 1-এর জন্য: mean(Row 2, Row 3) = (0+1)/2 = 0.5
Row 2-এর জন্য: mean(Row 1, Row 3) = (1+1)/2 = 1.0
Row 3-এর জন্য: mean(Row 1, Row 2) = (1+0)/2 = 0.5

এখন প্রতিটি row-এর নিজের target বাদ দিয়ে average হচ্ছে।

Time-series data-তে আরও কড়া নিয়ম:
January-র prediction-এ শুধু December পর্যন্তের data ব্যবহার করো। February-র data কখনো না।

---

⚠️ Common Mistake

অনেকে মনে করে: "আমি তো random train-test split করেছি, তাহলে leakage কোথা থেকে আসবে?"

কিন্তু leakage ধরা পড়ে feature বানানোর সময়, split করার সময় না।

পুরো dataset দিয়ে group mean বানিয়ে তারপর split করলে — test set-এর information আগেই training feature-এ ঢুকে গেছে।

সমাধান: আগে split করো, তারপর শুধু training set দিয়ে aggregation feature বানাও। Test set-এ সেই trained statistics apply করো।

---

🧠 Mini Challenge

তোমার কাছে e-commerce order data আছে। তুমি একটা feature বানাতে চাও:
"এই product category-র historical return rate"

কোন ক্ষেত্রে এটা leaky হবে?

উত্তর ভাবো... তারপর নিচে দেখো 👇

উত্তর: যদি তুমি পুরো dataset-এর return rate নাও — তাহলে future return events training-এ ঢুকে যাচ্ছে। সঠিক উপায়: প্রতিটি order-এর prediction date-এর আগের orders থেকে return rate হিসাব করো।

---

💡 Takeaway

▸ Training-এ ভালো metric মানেই model ভালো না — leakage check করো
▸ Group aggregation feature বানানোর সময় জিজ্ঞেস করো: "এই row-এর নিজের target কি এই feature-এ আছে?"
▸ Time-series হলে temporal boundary মানো, random split যথেষ্ট না

---

তোমার কাজে কি কখনো এমন হয়েছে — training metric দারুণ ছিল কিন্তু real data-তে কাজ করেনি? কারণটা কি ছিল বলো তো। 👇

Retrieval ঠিকঠাক কাজ করছে — তবু উত্তর ভুল আসছে। এটা RAG-এর সবচেয়ে বিপজ্জনক failure, কারণ এটা চোখে পড়ে না।তুমি vector s...
26/04/2026

Retrieval ঠিকঠাক কাজ করছে — তবু উত্তর ভুল আসছে। এটা RAG-এর সবচেয়ে বিপজ্জনক failure, কারণ এটা চোখে পড়ে না।

তুমি vector search দিয়ে সঠিক chunk খুঁজে পেলে। Embedding quality ভালো। Chunk size ঠিক আছে। কিন্তু user যখন answer পাচ্ছে, সেটা আংশিক ভুল, অথবা confident tone-এ সম্পূর্ণ ভুল। Production-এ এই ধরনের failure সবচেয়ে কঠিন — কারণ retrieval metrics দেখলে মনে হয় সব ঠিক আছে।

━━━━━━━━━━━━━━━━
🔑 আগে কিছু terms বুঝে নিই

▪ RAG (Retrieval-Augmented Generation) — LLM-কে শুধু তার training data-র উপর নির্ভর না করিয়ে, বাইরে থেকে relevant document খুঁজে এনে answer তৈরি করা।
▪ Vector search — text-কে number-এ convert করে similarity দিয়ে কাছের chunk খোঁজা।
▪ Prompt grounding — LLM-কে বলে দেওয়া যে শুধু দেওয়া context থেকে উত্তর দাও, নিজে থেকে কিছু বানিও না।
▪ LLM hallucination — model যখন context-এ না থাকা তথ্য confident ভাবে বলে দেয়।

━━━━━━━━━━━━━━━━
⚙️ তিনটা failure zone — একটা example দিয়ে দেখি

ধরো তোমার একটা HR policy chatbot আছে। User জিজ্ঞেস করলো:
"বার্ষিক leave কতদিন?"

Retrieval দুটো chunk ফেরত দিল:
• Chunk A (2022 policy): "Annual leave: 18 days"
• Chunk B (2024 updated policy): "Annual leave: 15 days (revised)"

দুটো chunk-ই relevant। Retrieval সফল।

কিন্তু এরপর তিনটা জায়গায় problem হতে পারে:

🔴 Zone 1 — Context Assembly Failure
দুটো chunk একসাথে LLM-এ পাঠানো হলো, কিন্তু কোনটা latest সেটা বলা হলো না। LLM এখন conflicting information পাচ্ছে। সে নিজে সিদ্ধান্ত নিলো — বেশিরভাগ সময় ভুলটাই বেছে নেয়।

🔴 Zone 2 — LLM Grounding Failure
Prompt-এ clearly বলা নেই যে "শুধু context থেকে উত্তর দাও।" তখন model নিজের training থেকে একটা সংখ্যা বানিয়ে দেয় — হয়তো বলে "20 days।" Context-এ এই সংখ্যা নেই।

🔴 Zone 3 — Answer Faithfulness Failure
Chunk ঠিক পেয়েছে, grounding আছে, কিন্তু model summary করতে গিয়ে important condition বাদ দিয়ে দিলো। যেমন বললো "15 days" — কিন্তু বললো না যে এটা শুধু permanent employees-এর জন্য।

━━━━━━━━━━━━━━━━
⚠️ সবচেয়ে common mistake

Team retrieval accuracy measure করে খুশি হয়ে বসে থাকে। ভাবে retrieval ভালো মানে system ভালো।

কিন্তু retrieved chunk আর final answer আলাদাভাবে evaluate করতে হয়। একটা দিয়ে আরেকটা judge করা যাবে না।

Fix: প্রতিটা stage আলাদাভাবে log করো — কোন chunk retrieve হলো, কী context assemble হলো, final answer কী এলো। তারপর manually বা LLM-as-judge দিয়ে faithfulness check করো।

━━━━━━━━━━━━━━━━
🧩 Mini Challenge

তোমার RAG system user-এর প্রশ্নের জন্য সঠিক chunk retrieve করেছে। কিন্তু answer-এ একটা extra condition আছে যেটা chunk-এ ছিলো না।

এটা কোন zone-এর failure?
— Context Assembly?
— LLM Grounding?
— Answer Faithfulness?

উত্তর নিচে 👇
...

✅ এটা Zone 2 — LLM Grounding Failure। Model নিজের training থেকে extra কিছু যোগ করেছে কারণ prompt তাকে সেটা থেকে বিরত রাখেনি।

━━━━━━━━━━━━━━━━
💡 Takeaway

▪ Retrieval success ≠ Answer correctness — এই দুটো আলাদা metric।
▪ RAG pipeline-এ তিনটা আলাদা failure zone আছে: context assembly, LLM grounding, answer faithfulness।
▪ প্রতিটা zone আলাদাভাবে debug করতে শেখো — একসাথে দেখলে কোনটা ভাঙছে বোঝা যাবে না।

━━━━━━━━━━━━━━━━
💬 তোমার RAG system-এ কি এই তিনটার মধ্যে কোনো layer আলাদাভাবে evaluate করার কোনো mechanism আছে? নাকি শুধু end-to-end accuracy দেখো?

২০২৬ সালে একটা চাকরির চাহিদা হঠাৎ করে অনেক বেড়ে গেছে — Chief Data Officer (CDO)।MIT-এর সাম্প্রতিক একটা সার্ভেতে দেখা গে...
26/04/2026

২০২৬ সালে একটা চাকরির চাহিদা হঠাৎ করে অনেক বেড়ে গেছে — Chief Data Officer (CDO)।

MIT-এর সাম্প্রতিক একটা সার্ভেতে দেখা গেছে, বড় কোম্পানিগুলোতে CDO পদ ৭০%-এ পৌঁছেছে — গত বছরের চেয়ে ২০% বেশি। কারণটা সহজ: AI-তে টাকা ঢালা শুরু হয়েছে, কিন্তু data ঠিকমতো গোছানো না থাকলে সেই টাকা পানিতে যাবে।

এখানে একটা জিনিস বুঝতে হবে:
AI model কিনে ফেলা সহজ।
কিন্তু সেই model-এ কোন data দেবে, কতটুকু বিশ্বাস করবে, output দিয়ে কী decision নেবে — এটা ঠিক করার জন্য একজন দরকার যে data আর business দুটোই বোঝে।

এই কারণেই CDO-দের কদর বাড়ছে। তারা শুধু dashboard বানায় না — তারা পুরো কোম্পানির "data কীভাবে সিদ্ধান্ত নেবে" সেই কাঠামোটা তৈরি করে।

GenAI নিয়ে যত興উৎসাহ, তার পেছনে একটা boring কিন্তু জরুরি সত্য আছে:
$4.4 trillion productivity gain তখনই আসবে, যখন data গভর্নেন্স ঠিক থাকবে।

তোমরা যারা data career নিয়ে ভাবছো — শুধু model চালাতে শেখা এখন যথেষ্ট না। Business context বোঝা, data কোথা থেকে আসছে সেটা trace করতে পারা, আর decision-maker-দের ভাষায় কথা বলতে পারাটাই এখন আসল edge।

তোমার কাছে যদি প্রশ্ন করি — তোমার কোম্পানিতে বা তুমি যে কোম্পানিতে কাজ করতে চাও, সেখানে data নিয়ে কে সিদ্ধান্ত নেয়? নাকি সেটা এখনো কেউ ঠিকমতো করছেই না?

Netflix একটা শো cancel করে — কিন্তু সেটা কখনো view count দেখে না।অনেকেই ভাবে, যে শো বেশি মানুষ দেখে, সেটাই টিকে থাকে। ব্...
25/04/2026

Netflix একটা শো cancel করে — কিন্তু সেটা কখনো view count দেখে না।

অনেকেই ভাবে, যে শো বেশি মানুষ দেখে, সেটাই টিকে থাকে। ব্যাপারটা আসলে অনেক বেশি চালাক।

Netflix দেখে — কতজন শো শুরু করেছে, আর কতজন শেষ করেছে।

ধরো "Squid Game" — শুরু করেছে কোটি কোটি মানুষ। কিন্তু Netflix এর কাছে আসল প্রশ্ন ছিল:
➡️ কতজন episode 1 থেকে episode 9 পর্যন্ত গেছে?
➡️ কোন episode-এ মানুষ drop off করছে?
➡️ কোন দেশে শেষ পর্যন্ত টানছে?

এই completion rate আর drop-off point — এই দুইটা metric দিয়ে তারা বোঝে একটা শো কতটা "sticky"।

একটা শো যদি 80 মিলিয়ন মানুষ শুরু করে, কিন্তু 60% episode 2-তেই ছেড়ে দেয় — সেটা আসলে একটা expensive failure।

আর একটা শো যদি 20 মিলিয়নও দেখে, কিন্তু 90% শেষ পর্যন্ত যায় — সেটা renewal পায়।

Data science-এ এটাকে বলে **engagement funnel analysis**।

বড় সংখ্যা দিয়ে impress হওয়া সহজ।
কিন্তু আসল insight লুকিয়ে থাকে — মানুষ কোথায় বেরিয়ে যাচ্ছে, সেটায়।

তোমার business বা product-এও এই একই প্রশ্ন করো:
"মানুষ কোথায় এসে আগ্রহ হারাচ্ছে?"

তোমার কাছে কি এরকম কোনো real example আছে যেখানে surface-level number দেখে ভুল decision হয়েছে? 👇

আজকে আমরা শিখবো SQL-এর একটা খুবই গুরুত্বপূর্ণ বিষয় — JOIN! 🎯ধরো, তোমার কাছে দুইটা টেবিল আছে। একটায় আছে কাস্টমারদের নাম...
25/04/2026

আজকে আমরা শিখবো SQL-এর একটা খুবই গুরুত্বপূর্ণ বিষয় — JOIN! 🎯

ধরো, তোমার কাছে দুইটা টেবিল আছে। একটায় আছে কাস্টমারদের নাম আর ID, আরেকটায় আছে তাদের অর্ডারের তথ্য। এখন তুমি যদি জানতে চাও — "কোন কাস্টমার কোন পণ্য কিনেছে?" — তাহলে তোমাকে এই দুই টেবিলকে একসাথে জোড়া লাগাতে হবে। এটাই হলো JOIN!

🔗 JOIN কত প্রকার?

✅ INNER JOIN — সবচেয়ে বেশি ব্যবহার হয়। শুধুমাত্র সেই row গুলো দেখাবে যেগুলো দুই টেবিলেই আছে। যেমন — শুধু সেই কাস্টমাররা যাদের অর্ডার আছে।

✅ LEFT JOIN — বাম দিকের টেবিলের সব row দেখাবে, ডানের সাথে মিললে ভালো, না মিললে NULL দেখাবে। যেমন — সব কাস্টমারের তালিকা, অর্ডার না থাকলেও।

✅ RIGHT JOIN — ঠিক উল্টো। ডান টেবিলের সব row দেখাবে।

✅ FULL OUTER JOIN — দুই টেবিলের সব row দেখাবে, মিলুক বা না মিলুক।

একটু উদাহরণ দিই 🛒
ধরো তোমার একটা ই-কমার্স সাইট আছে ঢাকায়। Customers টেবিলে ৫ জন কাস্টমার আছে, কিন্তু Orders টেবিলে মাত্র ৩ জনের অর্ডার আছে।

👉 INNER JOIN করলে পাবে → ৩ জন (যাদের অর্ডার আছে)
👉 LEFT JOIN করলে পাবে → ৫ জন (বাকি ২ জনের অর্ডার কলামে NULL)

SQL লেখার নিয়ম:
SELECT c.name, o.product
FROM Customers c
INNER JOIN Orders o ON c.id = o.customer_id;

এখানে ON দিয়ে বলছি — কোন কলাম দিয়ে দুই টেবিল মেলাবো।

💡 মনে রাখার টিপস:
- INNER = দুইজনেরই থাকতে হবে
- LEFT = বাম জনের সব লাগবেই
- RIGHT = ডান জনের সব লাগবেই
- FULL = দুইজনের সবই চাই

JOIN শিখলে যেকোনো real-world database-এর সাথে কাজ করা অনেক সহজ হয়ে যায়। Data Analyst বা Data Engineer হতে চাইলে এটা মাস্ট! 💪

নিচের flowchart দেখো — JOIN-এর পুরো logic এক নজরে বুঝে নাও! 👇

Address

Dhaka

Website

Alerts

Be the first to know and let us send you an email when Surrounded by Data posts news and promotions. Your email address will not be used for any other purpose, and you can unsubscribe at any time.

Share