পাঠ ০১ · ২৫-এর মধ্যে · মডিউল ১

Python সেটআপ ও Hello World

Python setup & first program
৫ মিনিট পড়া শুরু · Beginner ব্রাউজারে কোড চালান

এই পাঠে যা শিখবেন

  • AI জগতে Python-এর অবস্থান কেন এত শক্তিশালী
  • Python চালানোর তিনটি উপায় — Anaconda, VS Code, Google Colab
  • প্রথম Python প্রোগ্রাম — print() ও comment
  • ব্রাউজারেই Pyodide দিয়ে কোড চালানোর অভ্যাস

১ · Python কেন AI-এর প্রথম পছন্দ?

যেকোনো AI কোর্স, paper, GitHub repo, বা production system খুললে — দেখবেন PythonPythonGuido van Rossum কর্তৃক ১৯৯১-এ তৈরি একটি interpreted, dynamically-typed, general-purpose ভাষা। সরল syntax-এর কারণে scientific computing, data analysis, AI/ML-এ প্রভাবশালী।। ChatGPT-র গবেষণা Python-এ। PyTorch, TensorFlow — দু'টিই Python-প্রথম। Kaggle-এর ৯০%+ notebook Python-এ। কেন?

Python-এর তিনটি জিতে যাওয়া বৈশিষ্ট্য

১) সহজ syntax: print("hi") — ইংরেজি বাক্যের মতো পড়া যায়।
২) বিশাল ecosystem: NumPy, Pandas, PyTorch — গবেষণা ও production একই ভাষায়।
৩) Glue language: উপরে Python, ভিতরে C/C++/CUDA — দ্রুত গণনা, সহজ ইন্টারফেস।

Python ধীর ভাষা — এটা সত্য। কিন্তু NumPy-র মতো লাইব্রেরি ভেতরে C-তে চলে। আপনি Python লেখেন, কিন্তু গণনা C-তে হয়। ফলে speed পান C-র, কিন্তু লেখেন Python-এর সরলতায়।

একটি গাড়ি ভাবুন — চালকের আসনে আপনি, তবে engine শক্তিশালী। Python = চালকের সরল আসন। NumPy/PyTorch = ভেতরের C-engine। আপনাকে engine বানাতে হয় না — শুধু চালাতে জানলেই হলো।

২ · Python চালানোর তিনটি পথ

নতুনদের জন্য তিনটি বিকল্প — কোনটা বাছবেন তা নির্ভর করে আপনার লক্ষ্য ও মেশিনের ওপর।

২.১ · AnacondaAnacondaPython + ৩০০-এর বেশি data science package-এর ফ্রি distribution. একটি install-এ NumPy, Pandas, Jupyter — সব পাওয়া যায়। ML/DS-এর de facto setup. (লোকাল মেশিন)

কাদের জন্য: যারা নিজের ল্যাপটপে বড় প্রজেক্ট করবেন, internet ছাড়া কাজ চান।
ইনস্টল: anaconda.com/download → প্ল্যাটফর্ম বাছুন (Windows/macOS/Linux) → ডাউনলোড → next-next-finish।
সাইজ: ~৪ GB। ধৈর্য লাগবে।

২.২ · VS Code + Python extension

কাদের জন্য: যারা একটি লাইট, কাস্টমাইজযোগ্য editor চান।
ইনস্টল: code.visualstudio.com → Python extension যোগ করুন → আলাদা করে Python ইনস্টল করতে হবে (python.org)।

২.৩ · Google ColabGoogle ColabGoogle-এর ফ্রি ক্লাউড-ভিত্তিক Jupyter Notebook সার্ভিস — শুধু Gmail অ্যাকাউন্ট লাগে। ফ্রি GPU/TPU access, কিছু install লাগে না, share করা সহজ। গবেষক ও ছাত্রদের জন্য আদর্শ। (ব্রাউজার)

কাদের জন্য: পুরোপুরি নতুন, পুরনো ল্যাপটপ, বা যাঁরা GPU চান বিনা মূল্যে।
সেটআপ: colab.research.google.com → Gmail-এ লগইন → New Notebook → কোড লিখুন → Run।
ফায়দা: NumPy, Pandas, PyTorch — সব pre-installed। ফ্রি GPU ১২ ঘণ্টা/সেশন।

আমাদের সুপারিশ: এই কোর্সের জন্য Google Colab সবচেয়ে সহজ — কিছু install করতে হবে না। এই পাঠের নিচের কোড সেলগুলো ব্রাউজারেই Pyodide দিয়ে চলবে — Colab-ও লাগবে না।
Python চালানোর তিন পথ Choose your environment 🐍 Anaconda লোকাল ডেস্কটপ ✓ Offline কাজ ✓ Jupyter সাথে ✓ ৩০০+ package ✗ ৪ GB ডিস্ক বড় প্রজেক্ট 💻 VS Code লাইট editor ✓ দ্রুত, কাস্টমাইজযোগ্য ✓ extension অসংখ্য ✓ Git integrated ✗ Python আলাদা ডেভেলপমেন্ট ☁️ Google Colab ব্রাউজার, ফ্রি ✓ Zero install ✓ Free GPU/TPU ✓ shareable ✗ Internet লাগে শেখার জন্য সেরা এই কোর্সে — Colab বা ব্রাউজারের কোড সেল-ই যথেষ্ট
তিন পরিবেশ — তিন কাজে। নতুনদের জন্য Colab; পেশাদারদের জন্য VS Code; offline কাজে Anaconda।

৩ · প্রথম Python প্রোগ্রাম

প্রতিটি ভাষা শেখার ঐতিহ্য — "Hello, World!" দিয়ে শুরু। Brian Kernighan ১৯৭৪-এ প্রথম এই উদাহরণ লেখেন। Python-এ এটি মাত্র এক লাইন।

Python
# আমার প্রথম Python প্রোগ্রাম
print("Hello, AI!")
print("আমি Python শিখছি — ABCL TECH-এ")

    
Run চাপলে ব্রাউজারের ভেতরেই Python চলবে — output আসবে: Hello, AI! ও পরের লাইন। # দিয়ে শুরু লাইনগুলো commentCommentমানুষের জন্য নোট — Python এই লাইন উপেক্ষা করে। কোডের কেন বোঝাতে ব্যবহার হয়, কী বোঝাতে নয়। — কম্পিউটার এগুলো পড়ে না।

৪ · একটু এগিয়ে — সংখ্যা ও যোগ

Python একটি ক্যালকুলেটরও বটে। নিচের কোডে সংখ্যা যোগ করি ও print করি।

Python
# সংখ্যা ও গণনা
a = 7
b = 5

print("যোগফল:", a + b)
print("গুণফল:", a * b)
print("ভাগফল:", a / b)
print("ভাগশেষ:", a % b)

    
= চিহ্ন assignment — মানে "ডান দিকের মান বাঁ দিকের নামে রাখো"। a = 7 মানে a নামক একটি বাক্সে ৭ রেখে দাও।

৫ · Python-এর সাথে AI-র সংযোগ

AI-র যেকোনো প্রজেক্টের রান্নাঘরে যা যা থাকে — সব Python-এ লেখা:

  • NumPy: অ্যারে ও গাণিতিক কাজ — Travis Oliphant, ২০০৬।
  • Pandas: টেবিল-আকারের ডেটা — Wes McKinney, ২০০৮।
  • Matplotlib: গ্রাফ ও চার্ট — John Hunter, ২০০৩।
  • scikit-learn: classical ML — David Cournapeau, ২০০৭।
  • PyTorch: deep learning — Meta AI, ২০১৬।
  • HuggingFace Transformers: LLM-এর জন্য — ২০১৮।
Python-এর syntax জানাটা শুরু — কিন্তু আসল কাজ এই লাইব্রেরিগুলোতে। এই কোর্সের বাকি ২৪টি পাঠে আমরা ধাপে ধাপে এদের শিখব।

ভাবনার প্রশ্ন

প্রতিটি প্রশ্ন নিজে কিছুক্ষণ ভাবুন — তারপর "→ উত্তর" চাপুন।

প্র ০১ Python "ধীর" ভাষা — তবু AI-তে এটিই সবচেয়ে জনপ্রিয়। C++ বা Rust-এর মতো দ্রুত ভাষা থাকতে কেন Python? এই বিরোধাভাস কীভাবে সমাধান হলো?

এই প্রশ্নটি AI ইঞ্জিনিয়ারিং-এর সবচেয়ে গভীর architectural সিদ্ধান্তগুলোর একটি ব্যাখ্যা করে। হ্যাঁ — Python পিউর Python কোড চালালে C++-এর চেয়ে ১০০× ধীর হতে পারে। কিন্তু কেউ AI-র গণনা পিউর Python-এ করে না।

"Two-language problem" ও তার সমাধান:

  • সমস্যা: গবেষকরা সরল ভাষা চান (Python)। কিন্তু GPU-তে দ্রুত গণনা চান (C++/CUDA)।
  • সমাধান: Python-এর সব heavy কাজ C/C++/CUDA-তে লেখা — Python শুধু "নির্দেশ পাঠায়"।
  • NumPy-র np.array — ভেতরে C struct। a + b লিখলে — Python-এর মধ্যে পার হয় না, সরাসরি C লুপ চালায়।
  • PyTorch-এর tensor operations — CUDA kernel-এ যায়, GPU-তে চলে।

প্রমাণ: বিশুদ্ধ Python-এ ১০ লক্ষ সংখ্যা যোগ — ~০.৫ সেকেন্ড। NumPy-তে — ~০.০০৫ সেকেন্ড (১০০×)। কারণ NumPy ভিতরে SIMD-optimized C লুপ চালায়।

Python-এর প্রকৃত শক্তি:

  • Glue ভাষা: NumPy (C), TensorFlow (C++), PyTorch (C++), JAX (XLA) — সব Python থেকে একই ভাষায় access।
  • Iteration speed: গবেষণায় বার বার পরীক্ষা করতে হয় — Python-এর REPL ও notebook এই কাজে অতুলনীয়।
  • Community ও ecosystem: ৪ লাখ+ package PyPI-তে। যেকোনো paper আজ-ই Python-এ implement।

প্রতিদ্বন্দ্বী যাঁরা চেষ্টা করেছেন:

  • Julia (২০১২): "Python-এর সরলতা + C-র দ্রুততা" দাবি। গবেষকদের পছন্দ। তবে ecosystem ছোট, jobs কম।
  • Mojo (২০২৩): Python-এর superset দাবি Modular AI-র। প্রতিশ্রুতি বড়, এখনো নবজাতক।
  • Rust (production-এ): Hugging Face-এর tokenizer Rust-এ লেখা। কিন্তু interface Python-এ।

মূল উপলব্ধি: Python "ধীর" নয় — Python-এর interface "ধীর" হলেও — তার ecosystem-এর performance C/C++/CUDA-র সমান। AI-তে Python = "fast where it matters, simple where it matters." এই combination অন্য ভাষা match করতে পারেনি — এখনো।

প্র ০২ Anaconda, VS Code, ও Colab — তিনটিই বৈধ পথ। আপনি একটি ML কোম্পানিতে নতুন ইঞ্জিনিয়ার যোগ দিলে — কোনটা শুরু করবেন? Production ও research-এ পার্থক্য কী?

এই সিদ্ধান্ত উপরিভাগে "tool choice" — কিন্তু গভীরে workflow philosophy-র প্রশ্ন। সঠিক tool বাছাই = ১০ গুণ productivity।

Research vs Production — বিভাজন রেখা:

  • Research/exploration: দ্রুত পরীক্ষা, visualization, একই কোষ বার বার চালানো। Tool: Jupyter/Colab।
  • Production: reproducible, version-controlled, scalable, tested কোড। Tool: VS Code + Git + Docker।

নতুন কোম্পানিতে যোগ দিলে — দিন-১:

  • প্রথমে কোম্পানির README.md ও setup.sh দেখুন।
  • Python virtualenv বা conda environment সেটআপ — version দরকার তাঁদেরটা।
  • VS Code + Python extension — সবচেয়ে portable। তাই default এটা।
  • Jupyter chunked exploration-এর জন্য — কিন্তু production কোড .py ফাইলে।

Notebook-এর সমস্যা production-এ:

  • Cell execution order matters — out-of-order চালালে hidden bug।
  • Git diff ভয়ানক — JSON format।
  • Code reuse কঠিন — function এক notebook থেকে অন্যে।
  • Test লেখা practical না।

হাইব্রিড best practice (2024-পরবর্তী):

  • VS Code-এ Notebook: Jupyter-র সুবিধা + Git-friendly।
  • Jupytext: notebook ↔ .py auto-sync।
  • nbdev/Quarto: notebook থেকে production package generate।
  • uv/poetry: dependency management — pip-এর চেয়ে দ্রুত।

Anaconda কেন কম জনপ্রিয় হচ্ছে?

  • Disk-heavy (৪+ GB), slow updates।
  • Container era-তে (Docker) bundled distribution গুরুত্ব হারিয়েছে।
  • License পরিবর্তন (২০২০) — বড় কোম্পানি commercial license চায়।
  • আজকাল miniconda বা uv বেশি ব্যবহৃত।

মূল কথা: Tool কখনো শেষ লক্ষ্য নয়। Research-এ — speed of iteration। Production-এ — reproducibility ও observability। দু'টোই Python-এ পারা যায় — কিন্তু আলাদা workflow-এ।

প্র ০৩ Python ২ ও Python ৩ — পার্থক্য কী এবং কেন migrate হলো? print "hi" বনাম print("hi") ছাড়া আর কী changed? নতুনদের কেন এটা জানা দরকার?

Python ২ → Python ৩ migration — সফটওয়্যার ইতিহাসের সবচেয়ে দীর্ঘ ও বেদনাদায়ক transitions-এর একটি (২০০৮–২০২০)। এটা থেকে software engineering-এর গভীর শিক্ষা।

মূল breaking changes:

  • print statement → function: print "hi" → print("hi")। কেন? consistency — সবকিছু expression।
  • Unicode by default: Python ২-এ string ছিল ASCII bytes। Python ৩-এ str সবসময় Unicode। বাংলা টেক্সট processing — Python ৩-এ অনায়াসে।
  • Integer division: 5 / 2 Python ২-এ → ২ (int)। Python ৩-এ → ২.৫ (float)। গাণিতিকভাবে সঠিক।
  • Iterators: range(), map(), filter() — Python ৩-এ memory-efficient iterator।
  • Dict ordering: Python 3.7+ থেকে insertion order সংরক্ষিত (২০১৮)।

কেন এত সময় লাগল?

  • Python ২ ২০০০-এর আগে থেকে চলছিল — millions of lines of legacy code।
  • Backwards-incompatible — গ্রন্থাগারগুলো সব update করতে হলো।
  • NumPy, Pandas, Django — সবাই dual support বছরের পর বছর।
  • End of life: Python 2.7 — January ১, ২০২০।

আজকের জন্য কেন গুরুত্বপূর্ণ?

  • Stack Overflow পুরনো উত্তর: Python ২-র syntax প্রায়ই copy করেন নতুনরা — error পান।
  • Legacy systems: কিছু পুরনো enterprise এখনো Python ২ চালাচ্ছে — বিপজ্জনক।
  • String handling: Bangla/Unicode-এ Python ৩ ছাড়া অর্থহীন।

চলমান version evolution (Python ৩-এর ভেতরেও):

  • ৩.৫ (২০১৫): type hints (def f(x: int) -> int)।
  • ৩.৬ (২০১৬): f-strings (f"value is {x}") — game-changer।
  • ৩.৮ (২০১৯): walrus operator (:=)।
  • ৩.১০ (২০২১): structural pattern matching (match/case)।
  • ৩.১২+ (২০২৩+): faster Python initiative — performance ১০-৬০% improvement।

মূল উপলব্ধি: Python ২ → ৩ — ১২ বছরের transition story বলে যে breaking change ভয়ানক costly। তাই Python core team আজও খুব সাবধানে নতুন feature যোগ করে। নতুন developer-এর জন্য — সবসময় Python 3.10+ দিয়ে কাজ করুন।

প্র ০৪ Comment লেখার কী দর্শন থাকা উচিত? "ভালো কোডে comment লাগে না" বনাম "সব লাইনে comment চাই" — দু'টিই extreme। মাঝামাঝি কী?

Comment নিয়ে software engineering-এ এক ধরনের বিতর্ক চলছে কয়েক দশক ধরে। Robert Martin ("Clean Code") বলেন: "comments are failures." আবার অনেকে বলেন comment ছাড়া কোড অপাঠ্য।

সঠিক দর্শন: comment "কী করে" নয়, "কেন করে" বলে।

খারাপ comment-এর উদাহরণ:

  • # i কে ১ বাড়াও
    i = i + 1
    — কোড নিজেই বলছে।
  • # total খুঁজে বের করো
    total = sum(items)
    — function name যথেষ্ট।
  • পুরনো comment যা কোডের সাথে miss-match — ভুল তথ্য বিপজ্জনক।

ভালো comment-এর উদাহরণ:

  • # API ৫xx ফিরালে retry — ৩বার পর্যন্ত (rate-limit থেকে বাঁচতে) — কেন।
  • # BUG: Pandas 1.5-এ groupby NaN keep করে — explicit dropna। — workaround কারণ।
  • # অর্ডার গুরুত্বপূর্ণ: feature scaling-এর আগে imputation। — non-obvious dependency।

Comment-এর তিন উদ্দেশ্য:

  1. Why: এই অদ্ভুত কোড কেন। (most valuable)
  2. Warning: এই function-এ এই side-effect আছে।
  3. TODO/FIXME: ভবিষ্যতের কাজ চিহ্নিত।

Docstring বনাম comment:

  • Docstring: function/class-এর "API contract" — উদাহরণ, parameter, return। মেশিন-পাঠযোগ্য।
  • Comment: implementation-এর reasoning। reader-এর জন্য।

Notebook-এর বিশেষ ক্ষেত্র:

  • Markdown cell — narrative-এর জন্য। কোডের ভেতর comment নয়।
  • Tutorial-এ comment বেশি — পাঠক শিখছে।
  • Production code-এ comment কম — clean code self-documenting।

Self-documenting কোডের বৈশিষ্ট্য:

  • Variable name অর্থবহ — i নয়, customer_count।
  • Function name action+object — calculate_average_order_value()।
  • Magic number-এর constant — 3 নয়, MAX_RETRY_COUNT = 3।
  • Boolean — x নয়, is_valid বা has_permission।

মূল উপলব্ধি: Comment হলো "code-reviewer ভবিষ্যতে আমিই" — এই কথা ভেবে লিখুন। ৬ মাস পরে নিজে যা বুঝতে চাইবেন — শুধু সেটাই comment-এ। বাকি সব কোডের নামকরণে।

অনুশীলন

  1. চালু করুন: উপরের কোড সেলে নিজের নাম যোগ করে নতুন output দিন। যেমন: print("আমার নাম রহিম")।
    print("আমার নাম রহিম")
    print("আমি Python শিখছি")
    print("আজ থেকে AI-র যাত্রা শুরু")

    প্রতিটি print() একটি নতুন লাইনে output দেবে। বাংলা ইউনিকোড সরাসরি কাজ করে — Python ৩-এর সুবিধা।

  2. ক্যালকুলেটর: Python দিয়ে হিসাব করুন — ১০০ টাকার জিনিসে ১৫% ভ্যাট লাগলে মোট কত? কোড লিখে যাচাই করুন।
    price = 100
    vat_percent = 15
    vat = price * vat_percent / 100
    total = price + vat
    print("মূল্য:", price)
    print("ভ্যাট:", vat)
    print("মোট:", total)
    # Output: 100, 15.0, 115.0
  3. ভাবুন: আপনি কোন পরিবেশে কাজ করবেন — Anaconda, VS Code, না Colab? কেন? নিজের অবস্থা (laptop, internet, লক্ষ্য) মাথায় রেখে সিদ্ধান্ত নিন।

    সাধারণ সুপারিশ:

    • সম্পূর্ণ নতুন → Colab (zero install, ফ্রি GPU)।
    • ডেভেলপার, কোড লেখায় অভিজ্ঞ → VS Code + Python।
    • বড় ML প্রজেক্ট, offline → Anaconda/Miniconda।

    প্র ০২-এর উত্তরে বিস্তারিত trade-off আছে।

আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ

কোড রানার কাজ না করলে? ব্রাউজারে কাজ না করলে Google Colab ব্যবহার করুন — Google-এর ফ্রি অনলাইন Python পরিবেশ, শুধু Gmail অ্যাকাউন্ট লাগে।
কোর্স হোম
Python for AI · ২৫টি পাঠ