হিস্টোগ্রাম নাকি বার চার্ট?

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

দেখতে একই রকম হলেও দুটোর মধ্যে রয়েছে মৌলিক পার্থক্য । হিস্টোগ্রাম টা আমরা রেন্জ বা ডিস্ট্রিবিউশানের ক্ষেত্রে ব্যবহার করি । যেমন নিচের হিস্টোগ্রামটা দেখি:

এখানে আমরা দেখছি বিভিন্ন বয়সের মানুষ, যারা ছুটি কাটাতে যায় তাদের মধ্যে কতজন হোটেলে থাকে । আমরা খেয়াল করলে দেখবো, এখানে ২০ বছরের নিচে যারা, তাদের মধ্যে ৫ জন হোটেলে থাকে, ২১-৩০ এর মধ্যে ১৫ জন, ৩১-৪০ এর মধ্যে আছে ১০ জন এবং ৪১-৫০ বয়সীদের মধ্যে ৫ জন এর কম ।

লক্ষ্য করি, এখানে আমাদের ডাটা নিউমেরিক্যাল এবং আমরা রেন্জ নিয়ে কাজ করছি – বয়সের রেন্জ । বিভিন্ন বয়সের মানুষকে নির্দিষ্ট কিছু রেন্জে আমরা ডিস্ট্রিবিউট করেছি । এখানে ডাটার এই রেন্জে কোন গ্যাপ নেই । এবং হিস্টোগ্রামের পার্টগুলোকে বা বার গুলোকে অন্য কোন অর্ডারে রি-এ্যারেন্জ করার সুযোগ নেই ।

এবার দেখি একটি বার চার্ট:

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


TL;DR – হিস্টোগ্রাম একটা ভ্যারিয়েবলের ডিস্ট্রিবিউশান রিপ্রেজেন্ট করার জন্য ব্যবহার করা হয়, বার চার্ট বিভিন্ন ভ্যারিয়েবলের মধ্যে তুলনা করার জন্য ব্যবহার করা হয় ।

কো-রিলেশন (Correlation), কজেশন (Causation) ও ফেইসবুকের গল্প

স্ট্যাটিস্টিক্স – ১০১ কিংবা বিজনেস রিসার্চ – ১০১ কোর্স গুলোতে একটা প্রশ্ন খুবই কমন – “কো-রিলেশনই কি কজেশন? উদাহরন সহ ব্যখ্যা করো” । কো-রিলেশন থেকে আমরা জানতে পারি দুটো ভ্যারিয়েবল এর মধ্যে কোন “কো-রিলেশনশিপ” আছে কিনা ।

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

সমস্যা হলো, এই ঘটনার পিছনে ৩ ধরনের কারন থাকতে পারে:

(১) যাদের ফ্রেন্ড সংখ্যা বেশী, তারা ফ্রেন্ডদের পোস্ট, ছবি, কমেন্ট পড়ার জন্য ফেইসবুকে বেশী সময় ব্যয় করে (“num_friends” causes “time_spent”)

(২) যারা ফেইসবুকে বেশী সময় কাটায় তারা ফটোগ্রাফি গ্রুপ, ফুডিজ গ্রুপ, নিজের ক্লাসের গ্রুপ, ডিসিপ্লিনের গ্রুপ – নানা গ্রুপে মতামত শেয়ার করে । এরফলে সমমনা অনেক মানুষের সাথে বন্ধুত্ব হয় । (“time_spent” causes “num_friends”)

(৩) এরা ফেইসবুকে বেশী সময় কাটান বয়ফ্রেন্ড বা গার্লফ্রেন্ডের সাথে চ্যাট করে আর ফ্রেন্ড এ্যাড করেন ডিসিপ্লিনের সিনিয়র জুনিয়র সবাইকে । (none causes the other)

এখন যেহেতু আমরা নিশ্চিত না এই ৩টি ঘটনার কোনটি ঘটছে । তাই কোরিলেশন মানেই যে কজেশন – এই ধারনা আমাদের নাকচ করে দিতে হয় । এবং এটা আমরা সুন্দর করে পরীক্ষার খাতায় ব্যখ্যা করে নাম্বার পাই । তাই এর বেশী আমাদের চিন্তা করা হয়ে উঠে না ।

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

(১) কিছু লোকজনকে ব্যাড এর নেটওয়ার্ক থেকে পোস্ট দেখানো কমিয়ে দেয় । কিছু লোকজনকে বেশী পোস্ট দেখানো শুরু করে ।

(২) কিছু লোকজনকে বেশী বেশী ব্যাড এর সিনিয়র, জুনিয়রদের ফ্রেন্ড রিকুয়েস্ট সাজেস্ট করতে থাকে, কিছু লোকজনকে কমিয়ে দেয় ।

যেহেতু এটি একটি কল্পিত ঘটনা সেহেতু এই টেস্টের ফলাফল আমার জানা নেই । তবে প্রথম এবং দ্বিতীয় টেস্ট থেকে কিছুটা “কনফিডেন্স” পাওয়া যেতে পারে । যদি প্রথম টেস্টে দেখা যায় যে বেশী পোস্ট দেখানোর কারনে লোকজন বেশী সময় কাটাচ্ছে, আর পোস্ট কমিয়ে দেওয়ার কারনে কম সময় কাটাচ্ছে তাহলে আমরা কিছুটা আইডিয়া পাই যে আসলে num_friends causes time_spent অন্যদিকে দ্বিতীয় টেস্ট থেকে আমরা এর উল্টোটা জানতে পারি । আর দুটো টেস্টেই যদি নেগেটিভ রেজাল্ট পাই, তাহলে ফেইসবুকের রিসার্চ টীমের কাজ আরও বেড়ে গেলো । ৩য় কি ঘটনা ঘটতে পারে এটা নিয়ে এখন তাদের চুলচেরা বিশ্লেষন করতে হবে ।

সহজ কথায়, কোরিলেশন নিশ্চিতভাবে কজেশন মিন করে না, তবে টোটাল পপুলেশনের র‍্যান্ডম সাবসেট নিয়ে কিছু টেস্ট করে কোরিলেশনের পাশাপাশি কজেশনও আছে কিনা সে ব্যাপারে আইডিয়া পাওয়া যেতে পারে ।

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

রেফারেন্স: http://www.nytimes.com/2014/06/30/technology/facebook-tinkers-with-users-emotions-in-news-feed-experiment-stirring-outcry.html?_r=1

কোথায়, কিভাবে খুজঁবেন রিমোট জব?

প্রচলিত ফ্রী-ল্যান্স মার্কেটপ্লেইস (আপওয়ার্ক কিংবা ফ্রী-ল্যান্সার ডট কম) এর বাইরেও প্রচুর রিমোট জব পাওয়া যায় যেগুলোর কথা হয়তো আমরা জানি না । আজকে আমি আমার পরিচিত কিছু সোর্স উল্লেখ করবো ।

শুরুতেই কিছু কথা বলে রাখা জরুরী:

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

জেনেরিক জব বোর্ড

এই সাইটগুলোতে পিএইচপি, পাইথন, জাভাস্ক্রীপ্ট, সিস্টেম এ্যাডমিন, মোবাইল এ্যাপ্লিকেশন ডেভেলপার – মোটামোটি সব ধরনের স্কিলসেটের জবই পাওয়া যায় ।

স্পেশালাইজড জব বোর্ড

এই লিস্টের সাইটগুলো কোন বিশেষ টেকনোলজি ফোকাসড ।

  • Django Jobs | Django Gigs | Django Jobbers | (আরেকটা) Django Jobs – জ্যাঙ্গোর জন্য বেশ কয়েকটা জব সাইটে নজর রাখতে হবে আপনাকে ।
  • Larajobs – নাম শুনেই আন্দাজ করতে পারছেন হয়তো, এখানে শুধু লারাভেল স্পেসিফিক জব পাওয়া যায় ।
  • WordPress Jobs – এখানে পাবেন ওয়ার্ডপ্রেস এর জন্য ডিজাইন ও ডেভেলপমেন্ট এর কাজ
  • Nodejobs – নোডজেএস রিলেটেড জব খুজঁতে চাইলে ঢু মারুন এখানে ।
  • Golang Jobs – গুগলের গো ল্যাঙ্গুয়েজ নিয়ে কাজ করতে চাইলে এই ওয়েব সাইটটি হতে পারে ভালো রিসোর্স ।

কমিউনিটি, ফোরাম, আইআরসি

  • চোখ রাখুন রেডিটে – Remote Python | Remote Javascript | For Hire
  • হ্যাকার নিউজের জব লিস্টিং ছাড়াও প্রতিমাসে একটা মাসিক জব থ্রেডও পাবলিশ করা হয়, যেমন: April, 2015
  • আপনি যেই স্কিলসেট নিয়ে গর্বিত, সেই সব স্কিল সংশ্লিষ্ট কমিউনিটি গুলোতে খোজঁ খবর রাখুন । ফেইসবুক এবং লিংকইন গ্রুপগুলোতে মাঝে মাঝেই ঘুরে আসুন ।
  • আইআরসি এবং স্ল্যাকেও মিলবে জবের খোজঁ ।

কিভাবে এ্যাপ্লাই করবেন?

  • প্রথমেই আপনার নিজের সিভি আপডেইট করে নিন । সুন্দর করে সিভি প্রস্তুত করুন । শত শত এ্যাপ্লিকেশনের ভিতর থেকে আপনাকে যেন আলাদা করা যায় এমন কিছু থাকতে হবে আপনার সিভিতে । গুগল ঘেটে আকর্ষনীয় সিভি কিভাবে তৈরি করা যায় সেটা নিয়ে পড়াশুনা করুন । সময় দিন, পরিশ্রম করে সিভি বানান । আপনার স্কিল সেট সহজ, সাবলীল ভাষায়, সংক্ষিপ্ত আকারে টু-দ্যা-পয়েন্ট তুলে ধরুন । গতানুগতিক সিভির ফরম্যাট থেকে বাইরে আসুন, নতুন কিছু করার চেষ্টা করুন ।
  • অন্যদের সিভি পড়ুন, তাদের সিভির সাথে তাদের ব্যক্তিত্ব মিলিয়ে দেখুন, দেখবেন নিজের সিভির উপস্থাপনার ব্যাপারে মাথায় নতুন নতুন আইডিয়া আসছে ।
  • ওয়ার্ড ডকুমেন্ট হিসেবে সিভি পাঠানো খুবই আনপ্রফেশনাল । অবশ্যই পিডিএফ পাঠানো উচিৎ! আরও ভালো হয় পিডিএফ এর সাথে যদি একটা অনলাইন ভার্সন পাঠানো যায় । যেমন আমি সব সময় এ্যাপ্লাই করার সময় ইমেইল বা কাভার লেটারে এই লিংকটি দেই: http://masnun.me
  • কাভার লেটার বা ইমেইলটা প্রফেশনাল হওয়া খুবই জরুরী । এটাই আপনার ফার্স্ট ইমপ্রেশন তৈরি করবে । কথায় বলে – “You will never get the second chance to make a first impression.” । জব পোস্টিং টা পড়ুন, ভালো করে এ্যনালাইজ করুন, চিন্তা করুন এই জবে আপনি কেন পারফেক্ট, জব রিকোয়্যারমেন্টগুলোর কোন গুলোয় আপনার স্ট্রং পয়েন্ট আছে সেগুলো আইডেন্টিফাই করে সেগুলোর উপর জোর দিন । যে জিনিসগুলো পারেন না, সেগুলো শেখার জন্য আগ্রহ প্রকাশ করুন ।
  • আপনার ব্লগ, গিটহাব, পোর্টফোলিও – এগুলোর উপর জোর দিন । এগুলো যেন সহজে নজরে পড়ে সেভাবে উপস্থাপন করুন । আর হ্যা, অবশ্যই সময় করে নিজের ব্লগে লেখালেখি করুন (ইংরেজীতে অবশ্যই), গিটহাবে নিজের কিছু ওপেন সোর্স প্রজেক্ট রাখুন, ডিজাইনাররা পোর্টফলিও রেডী করুন । আমি গিটহাব এবং আমার ব্লগ থেকে ৩-৪ টি জবের অফার পেয়েছি । সুতরাং এই জিনিসগুলো খুবই জরুরী ।
  • আপনার কাভার লেটার, ইমেইল বা সিভির পিছনে কেউই দুই মিনিটের বেশী সময় দিবে না শুরুতে । তাই প্রাইমারি স্ক্রীনিং এ টিকতে চাইলে সংক্ষেপে সুন্দর করে উপস্থাপন করুন সব কিছু ।
  • রংঢং কিংবা আকাঁবাকা ফন্ট ব্যবহার করেছেন তো মরেছেন । আপনার ইমেইল এডিটরের ডিফল্ট ফন্ট ব্যবহার করার চেষ্টা করুন । অথবা রুচিশীল কোন প্রফেশনাল ফন্ট ব্যবহার করুন । প্রয়োজন হলে বোল্ড হরফ ব্যবহার করতে পারেন তবে সেটা অবশ্যই পরিমিত মাত্রায় ।
  • নেগেটিভিটি পরিহার করুন । নেগেটিভ কোন কথা না বলে ওভার অল পজিটিভিটি মেইনটেইন করুন । যেমন ধরুন: “I am not available full time right now” এ কথা বলার চাইতে “Part time would work better for me now, I would definitely look forward to working full time in the future” বললে একটা পজিটিভ টোন কাজ করে । পজিটিভিটিটা জবের ক্ষেত্রে খুবই গুরুত্বপূর্ন ।
  • রিসেন্টলি পাবলিশ হওয়া জব পোস্টগুলোর উপর বেশী ফোকাস করুন ।
  • ইন্টারভিউতে ডাক না পেলে হতাশ হবেন না, চেষ্টা চালিয়ে যান । অধ্যাবসায়ের কোন বিকল্প নেই!

বাংলা স্ক্রীনকাস্ট – S.O.L.I.D ডিজাইন প্রিন্সিপলস

The Video is available in HD

বিদ্র: হঠাৎ লোড শেডিং এর কারনে 00:29 এর কাছাকাছি থেকে 5:20 এর কাছাকাছি পর্যন্ত সময়ে সাউন্ড কোয়ালিটি খারাপ হওয়ার পাশাপাশি একটি বিরক্তিকর নয়েজ তৈরি হয়েছে । এই সমস্যার জন্য আমি আন্তরিক ভাবে দু:খিত