Introduction to Python

00:12:58
https://www.youtube.com/watch?v=cj-tmt_U6j8

Summary

TLDRThis introduction to Python lecture covers Python's brief history, its programming environment, and coding environment details. Developed by Guido van Rossum in the late 1980s in the Netherlands, Python supports multiple programming paradigms including functional, structural, and OOP, and is dynamically typed. It uses late binding and handles type-based errors efficiently. The lecture highlights Python's adaptability for data science and its open-source nature, making it freely distributable. Python's easy syntax is beginner-friendly and works across major platforms, supported by a large community. Several IDEs including PyCharm, Jupyter, and Spyder are explored, each suiting different developer needs, from GUI-focused to narrative documentation. Python's open-source license allows it to be used and distributed commercially, and its environment supports integration with cloud services. A discussion around choosing an appropriate IDE based on specific needs concludes the lecture.

Takeaways

  • 🐍 Python was created by Guido van Rossum in the late '80s in the Netherlands.
  • 💻 It supports multiple programming paradigms and is dynamically typed.
  • 🛠️ Popular Python IDEs include PyCharm, Jupyter, and Spyder.
  • 🔍 Python ensures type safety at runtime and manages errors efficiently.
  • 🔑 The Zen of Python provides principles for writing Python code.
  • 🚀 Python is highly suitable for data science tasks due to supportive libraries.
  • 🌍 It supports Linux, Windows, and Mac, making it versatile.
  • 📚 Python's syntax is easy to learn, especially for beginners.
  • 🎓 Python's large community contributes heavily to its development.
  • 🔧 IDE choice depends on individual needs, like GUI or narrative text support.

Timeline

  • 00:00:00 - 00:05:00

    The lecture introduces Python, covering its history, programming environment, and Integrated Development Environments (IDEs). Python was developed by Guido van Rossum in the late 1980s at the National Research Institute for Mathematics and Computer Science in the Netherlands. The language has gone through significant changes three times, with Python 3 being the latest version. Python supports multiple programming paradigms and is dynamically typed, checking type safety at runtime. It effectively handles type-based errors and deallocates unused objects over time. Python's design is governed by 20 aphorisms known as the Zen of Python, described by Tim Peters.

  • 00:05:00 - 00:12:58

    Python uses the standard C Python interpreter, managed by the Python Software Foundation, and supports various platforms including Linux, Windows, and Mac. It is an open-source language, making it free to use and distribute. Python's syntax is beginner-friendly, and it integrates well with cloud platforms, making it suitable for big data tasks. The lecture also compares Python with Java, highlighting Python's dynamically typed nature versus Java's statically typed, compilation-time safety checks. Python's open-source nature and extensive community support make it a versatile tool for data science. Python's coding environment can be accessed via terminals, command prompts, text editors, or IDEs, with several options available for users.

Mind Map

Video Q&A

  • Where and when was Python developed?

    Python was developed in the late 1980s at the National Research Institute for Mathematics and Computer Science in the Netherlands by Guido van Rossum.

  • What programming paradigms does Python support?

    Python supports multiple programming paradigms like functional, structural, and OOP, and it is dynamically typed.

  • What are some IDEs available for Python?

    Python provides integrated development environments like PyCharm, Jupyter, and Spyder.

  • How does Python handle typing?

    Python is dynamically typed, meaning type checks are performed at runtime instead of compile-time, unlike statically typed languages like Java.

  • What is the Zen of Python?

    The Zen of Python is a set of 20 guiding principles for writing computer programs in Python, described by Tim Peters.

  • Is Python suitable for data science tasks?

    Python can be used for data science, supported well by libraries and tools designed for such tasks.

  • What platforms does Python support?

    Python supports Linux, Windows, and Mac platforms.

  • Is Python beginner-friendly?

    Python's syntax is known for being beginner-friendly, making it easy to code and understand.

  • Are there IDEs specifically developed for Python?

    Some IDEs like PyCharm and Spyder are developed specifically for Python, while others like Jupyter support multiple languages.

  • How should one choose an IDE for Python development?

    Choosing an IDE depends on personal needs, such as narrative text with code or a good GUI.

View more video summaries

Get instant access to free YouTube video summaries powered by AI!
Subtitles
bn
Auto Scroll:
  • 00:00:11
    'ইন্ট্রোডাকশন টু পাইথন' (Introduction to Python)
  • 00:00:15
    বক্তৃতায় স্বাগতম।
  • 00:00:16
    এই বক্তৃতায়, আমরা পাইথনের সংক্ষিপ্ত
  • 00:00:19
    ইতিহাস, পাইথনের প্রোগ্রামিং (programming)
  • 00:00:21
    এনভায়রনমেন্ট (environment) এবং কোডিং (coding) এনভায়রনমেন্ট
  • 00:00:25
    কেমন হয়, তা দেখতে চলেছি।
  • 00:00:28
    আমরা এও দেখব, পাইথনে কোন কোন ইন্টিগ্রেটেড
  • 00:00:33
    ডেভেলপমেন্ট এনভায়রনমেন্ট (Integrated Development Environment) রয়েছে।
  • 00:00:37
    ইভলিউশনের (Evolution) হিসাবে, পাইথন ডেভেলপ করেছিলেন
  • 00:00:41
    গুইডো ভ্যান রসাম (Guido van Rossum), আশির দশকের
  • 00:00:45
    শেষের দিকে, ন্যাশনাল রিসার্চ ইনস্টিটিউট
  • 00:00:49
    ফর ম্যাথমেটিক্স অ্যান্ড কম্পিউটার
  • 00:00:52
    সায়েন্স-এ (National Research Institute for Mathematics and Computer Science)
  • 00:00:57
    একে ডেভেলপ করা হয়েছিল, এটি নেদারল্যান্ডসে
  • 00:01:00
    (Netherlands) অবস্থিত ছিল।
  • 00:01:02
    তারপর, পাইথনের ভার্সনে (version), তিনবার উল্লেখযোগ্য
  • 00:01:05
    পরিবর্তন হয়েছে।
  • 00:01:06
    পাইথন 3 হল, পাইথনের সর্বশেষ এবং বর্তমান
  • 00:01:09
    ভার্সন।
  • 00:01:10
    পাইথনের লেটেস্ট ভার্সন হল, version 3.8।
  • 00:01:12
    এখন, পাইথনকে একটি প্রোগ্রামিং (programming)
  • 00:01:15
    ল্যাঙ্গুয়েজ (language) হিসাবে দেখা যাক।
  • 00:01:17
    সুতরাং, পাইথন, ফাংশনাল (functional), স্ট্রাকচারাল
  • 00:01:19
    (structural) এবং oops-এর মতো একাধিক প্রোগ্রামিং
  • 00:01:22
    প্যারাডিমকে (paradigms) সাপোর্ট করে।
  • 00:01:24
    এটি ডাইনামিক্যালি (dynamically) টাইপ করা (typed)
  • 00:01:27
    হয়।
  • 00:01:28
    যার অর্থ, এটি রানটাইমে (runtime) টাইপ সেফটি (type
  • 00:01:32
    safety) পরীক্ষা করে।
  • 00:01:33
    এখন টাইপ সেফটি হল, টাইপ-বেসড (type-based) এররগুলিকে
  • 00:01:36
    (errors), পাইথন যতটুকু প্রতিরোধ করবে।
  • 00:01:39
    তাই টাইপ-বেসড এররগুলি, প্রোগ্রামের অবাঞ্ছিত
  • 00:01:41
    আচরণ, এগুলি কনস্ট্যান্টস (constants), ভেরিয়েবলস
  • 00:01:44
    (variables), ফাংশনস (functions) বা মেথডের (methods) বিভিন্ন
  • 00:01:47
    ডেটা-টাইপের মধ্যে অসঙ্গতির কারণে ঘটে।
  • 00:01:49
    এবং পাইথন এই টাইপ-বেসড এররগুলি সত্যিই ভালভাবে
  • 00:01:53
    পরিচালনা করে।
  • 00:01:54
    কারণ, এটি ডাইনামিক্যালি টাইপ করা হয়।
  • 00:01:57
    পাইথন সেই অবজেক্টগুলিকেও (objects) ডি-অ্যালোকেট
  • 00:01:59
    (deallocate) করে, যা দীর্ঘ সময়ের জন্য অব্যবহৃত
  • 00:02:02
    রয়েছে।
  • 00:02:03
    এবং পাইথনও ডাইনামিক্যালি বাইন্ডেড (binded)। একে
  • 00:02:06
    লেট (late) বাইন্ডিংও বলা হয়।
  • 00:02:08
    এবং এই পদ্ধতিগুলি রানটাইমে নাম অনুসারে
  • 00:02:11
    দেখা হয়।
  • 00:02:12
    পাইথনের ডিজাইন 20টি aphorisms দ্বারা পরিচালিত
  • 00:02:15
    হয়।
  • 00:02:16
    টিম পিটার্স (Tim Peters) একে পাইথনের জেন
  • 00:02:19
    (Zen) হিসাবে বর্ণনা করেছেন।
  • 00:02:21
    সুতরাং এই রুলগুলি (rules) পাইথনের সমগ্র
  • 00:02:24
    স্ট্রাকচার (structure) ডিজাইন (design) করতে ব্যবহৃত
  • 00:02:26
    হয় এবং এগুলি খুব সহজ নিয়ম এবং এগুলি
  • 00:02:30
    ওয়েবসাইটে (website) দেওয়া আছে।
  • 00:02:32
    সুতরাং কিছু অ্যাফরিজম সিম্পল (simple), কমপ্লেক্সের
  • 00:02:35
    (complex) চেয়ে ভাল, কমপ্লেক্স কমপ্লিকেটেডের (complicated)
  • 00:02:38
    চেয়ে ভাল।
  • 00:02:39
    এখন মোট 19টি অ্যাফরিজম রয়েছে এবং টিম পিটার
  • 00:02:43
    20তম অ্যাফরিজমটি প্রতিষ্ঠাতা গিডো
  • 00:02:45
    ভ্যান রসামের কাছে রেখে গেছেন।
  • 00:02:47
    পাইথন স্ট্যান্ডার্ড C পাইথন ইন্টারপ্রেটার
  • 00:02:50
    (interpreter) ব্যবহার করে।
  • 00:02:51
    এটি পাইথন সফ্টওয়্যার (software) ফাউন্ডেশন (foundation)
  • 00:02:54
    দ্বারা পরিচালিত হয়।
  • 00:02:55
    এছাড়াও অন্যান্য ইন্টারপ্রেটার রয়েছে,
  • 00:02:57
    যেমন Java-র জন্য J Python, C sharp-এর জন্য N Python এবং
  • 00:03:02
    আরও কয়েকটি।
  • 00:03:03
    স্ট্যান্ডার্ড (standard)) লাইব্রেরিগুলিও
  • 00:03:05
    (libraries) পাইথনেই লেখা হয় এবং পাইথন খুব
  • 00:03:08
    উচ্চমানের readability দেয়।
  • 00:03:10
    পাইথন, লিনাক্স (Linux), উইন্ডোজ (Windows) এবং
  • 00:03:13
    ম্যাক (Mac) সহ সমস্ত প্ল্যাটফর্মকে সাপোর্ট
  • 00:03:16
    করে।
  • 00:03:17
    পাইথন কমিউনিটি (community) বেশ বড় এবং তারা
  • 00:03:20
    গ্রুপের জন্য অনেক অবদান রাখে।
  • 00:03:23
    পাইথন প্রকৃতপক্ষে এররগুলি পরিচালনা
  • 00:03:25
    করতে খুব দক্ষ।
  • 00:03:27
    এবং আমরা এই কোর্সে এগিয়ে যাওয়ার সাথে
  • 00:03:30
    সাথে, এই বিষয়গুলি আরও দেখব।
  • 00:03:33
    এখন আপনি Java এবং পাইথনের তুলনা করুন।
  • 00:03:36
    Java স্টাটিক্যালি টাইপ করা হয়।
  • 00:03:39
    যার অর্থ, কম্পাইলেশনের (compilation) সময় সমস্ত
  • 00:03:42
    ধরনের সেফটি চেক করা হয়।
  • 00:03:45
    এটিকে স্ট্যাটিক কম্পাইলেশনও বলা
  • 00:03:47
    হয়।
  • 00:03:48
    কারণ, Java-তে একটি কোড তৈরি করতে আপনার
  • 00:03:51
    বেশি সময়ের প্রয়োজন হবে।
  • 00:03:53
    কিন্তু অন্যথায় পাইথনে ডাইনামিক্যালি
  • 00:03:55
    টাইপ করা হয়।
  • 00:03:57
    যার অর্থ,
  • 00:03:58
    রানটাইমে সমস্ত ধরনের সেফটি চেক করা হয়।
  • 00:04:01
    এখন এটি দীর্ঘমেয়াদী কম্পাইলেশন টাইমকেও
  • 00:04:04
    কিছুটা কমপেনসেট (compensate) করবে, যখন আপনি
  • 00:04:07
    Java-র সাথে তুলনা করবেন।
  • 00:04:09
    এছাড়াও ডাইনামিক্যালি টাইপ করা কোডগুলি,
  • 00:04:11
    কম verbose এবং তারা আরও বেশি রিডেবিলিটি
  • 00:04:15
    অফার করে।
  • 00:04:16
    সুতরাং এটি Java-র তুলনায় পাইথনের একটি গুরুত্বপূর্ণ
  • 00:04:20
    সুবিধা।
  • 00:04:21
    পাইথনের বেশ কয়েকটি বৈশিষ্ট্য রয়েছে,
  • 00:04:23
    যা একে ডেটা সায়েন্স এবং বৈশিষ্ট্যগুলির
  • 00:04:26
    জন্য খুব উপযুক্ত করে তোলে।
  • 00:04:29
    আমি লাইব্রেরি এবং অন্যান্য টুলগুলির
  • 00:04:31
    (tools) কথা বলছি, যা ডেটা সায়েন্স টাস্কগুলির
  • 00:04:35
    (tasks) জন্য বিশেষভাবে ডিজাইন করা হয়েছে।
  • 00:04:38
    পাইথনকে ওপেন সোর্স ইনিশিয়েটিভ লাইসেন্সের
  • 00:04:40
    (open source initiative license) অধীনে ডেভেলপ করা হয়েছিল,
  • 00:04:45
    যার অর্থ, এটি বিনামূল্যে ব্যবহার করা এবং
  • 00:04:48
    এমনকি কমার্শিয়ালি (commercially) ডিস্ট্রিবিউট
  • 00:04:50
    (distribute) করা যাবে।
  • 00:04:52
    এখন পাইথনে ব্যবহৃত সিনট্যাক্সটি (syntax),
  • 00:04:54
    কোড (code) করা এবং বোঝা খুব সহজ।
  • 00:04:58
    এবং এটি খুব বিগিনার ফ্রেন্ডলি (beginner friendly)
  • 00:05:02
    এবং আপনারা যারা পাইথন ব্যবহার শুরু
  • 00:05:05
    করছেন, তাদের জন্য
  • 00:05:06
    আমি মনে করি, লার্নিং কার্ভটি (learning curve) খুব
  • 00:05:10
    সংক্ষিপ্ত হয়ে যাবে।
  • 00:05:12
    এখন পাইথন বেশিরভাগ ক্লাউড (cloud) প্ল্যাটফর্ম
  • 00:05:15
    (platform) সার্ভিসেসের (services) সাথে সত্যিই
  • 00:05:18
    ভালভাবে কম্বাইন করে, যার ফলে এটি এমনকি
  • 00:05:21
    বড় ডেটার জন্যও একটি ভাল টুল।
  • 00:05:24
    এখন কোডিং এনভায়রনমেন্টে নজর দেওয়া যাক।
  • 00:05:27
    এখন সাধারণভাবে যে কোনও সফ্টওয়্যার
  • 00:05:30
    প্রোগ্রাম একটি টার্মিনাল (terminal), একটি কমান্ড
  • 00:05:33
    প্রম্পট (command prompt), একটি টেক্সট এডিটর (editor)
  • 00:05:37
    ব্যবহার করে অথবা একটি ইন্টিগ্রেটেড
  • 00:05:39
    (integrated) ডেভেলপমেন্ট (development) এনভায়রনমেন্টের
  • 00:05:41
    মাধ্যমে লেখা যেতে পারে।
  • 00:05:43
    সুতরাং প্রতিটি প্রোগ্রামকে একটি উপযুক্ত এক্সটেনশনের
  • 00:05:46
    (extension) সাথে সংরক্ষণ করতে হবে এবং সেটি
  • 00:05:50
    সংশ্লিষ্ট এনভায়রনমেন্টে এক্সিকিউট (execute) করতে
  • 00:05:53
    হবে।
  • 00:05:54
    এখন আপনি যদি ইন্টিগ্রেটেড ডেভেলপমেন্ট এনভায়রনমেন্টটি
  • 00:05:56
    দেখেন, তবে এটি মূলত একটি টুল বা একটি
  • 00:06:00
    সফ্টওয়্যার প্রোডাক্ট (product), যা শুধুমাত্র
  • 00:06:03
    সফ্টওয়্যার ডেভেলপমেন্টকে সাপোর্ট করার উদ্দেশ্যে
  • 00:06:06
    ডেভেলপ করা হয়েছে।
  • 00:06:07
    এবং এটি বিভিন্ন প্রোগ্রামিং ল্যাঙ্গুয়েজের
  • 00:06:10
    (language) জন্য।
  • 00:06:11
    সুতরাং এই বক্তৃতার শেষের দিকে আমরা
  • 00:06:14
    দেখতে চলেছি, পাইথনের জন্য কী কী ইন্টিগ্রেটেড
  • 00:06:17
    ডেভেলপমেন্ট এনভায়রনমেন্ট পাওয়া যায়।
  • 00:06:20
    তাই পাইথন version 2-এর জন্য সাপোর্ট 2020 সাল
  • 00:06:24
    পর্যন্ত উপলব্ধ থাকবে এবং 2020-এর পরে, version 3.6
  • 00:06:27
    অনওয়ার্ডস-এর জন্য সাপোর্ট উপলব্ধ থাকবে।
  • 00:06:30
    এখন আপনি পাইথনের বেসিক ভার্সনটি,
  • 00:06:33
    তাদের ওয়েবসাইট থেকে ইনস্টল (install)
  • 00:06:35
    করতে পারেন।
  • 00:06:36
    আমি এখানে ওয়েবসাইটের নাম লিঙ্ক (link) করে
  • 00:06:40
    রেখেছি এবং ডাউনলোড (download) করার আগে আপনি
  • 00:06:44
    যদি ওয়েবসাইটে যান, তবে আপনি আরও দেখতে
  • 00:06:48
    পাবেন যে, তারা একটি টার্মিনাল অফার করে,
  • 00:06:51
    যেখানে আপনি বেসিক কমান্ডগুলি টাইপ
  • 00:06:54
    করতে পারেন।
  • 00:06:55
    যেমন প্রিন্ট (print) স্টেটমেন্ট (statement)
  • 00:06:58
    অথবা একটি ভ্যারিয়েবলকে (variable) একটি ভ্যালু
  • 00:07:01
    (value) অ্যাসাইন (assign) করা এবং বেসিক কন্ডিশনাল
  • 00:07:05
    (conditional) অপারেশনগুলি (operations) দেখা।
  • 00:07:07
    তাই আমরা এখন তাদের মধ্যে কয়েকটি খতিয়ে
  • 00:07:11
    দেখতে চলেছি।
  • 00:07:12
    আমার কাছে কেবল একটি ছোট স্ক্রিনশট (screenshot)
  • 00:07:16
    আছে।
  • 00:07:17
    আমি জুম ইন (zoom in) করছি, যে বিভিন্ন লাইন
  • 00:07:21
    কমান্ডগুলি আমরা টাইপ করেছি, সেগুলি
  • 00:07:24
    আপনাকে দেখানোর জন্য।
  • 00:07:25
    সুতরাং আমার কাছে, 'হ্যালো ওয়ার্ল্ড'
  • 00:07:28
    (Hello World) বলে, একটি ছোট স্টেটমেন্ট রয়েছে
  • 00:07:32
    এবং এটি একটি স্ট্রিং (string)। সুতরাং একটি
  • 00:07:35
    স্টেটমেন্টকে প্রিন্ট করতে, 'print' ব্যবহৃত
  • 00:07:38
    হয়।
  • 00:07:39
    এখন my variable নামক একটি ভ্যারিয়েবলের ভ্যালু
  • 00:07:42
    5 অ্যাসাইন করেছি।
  • 00:07:44
    সুতরাং, my variable হল ভ্যারিয়েবলের নাম এবং পরবর্তী
  • 00:07:47
    লাইনে আপনি দেখতে পাবেন যে, আমি my variable-এর
  • 00:07:51
    সাথে 8 যোগ করেছি এবং আমি এটি b-তে সেভ (save)
  • 00:07:56
    করছি।
  • 00:07:57
    আগের লাইনে আপনি এটিও দেখতে পাবেন
  • 00:07:59
    যে, আমি একটি সেমি-কোলন (semicolon) দিয়ে স্টেটমেন্টটি
  • 00:08:02
    শেষ করেছি।
  • 00:08:03
    এখন এটির প্রয়োজন নেই, তবে এটি করা ঠিক
  • 00:08:07
    আছে।
  • 00:08:08
    কারণ, পাইথন স্পষ্টভাবে আশা করে না যে, আপনি
  • 00:08:11
    একটি লাইন শেষ করবেন।
  • 00:08:13
    সুতরাং আপনি এখানে দেওয়া অন্যান্য
  • 00:08:15
    স্টেটমেন্টগুলিও চেষ্টা করে দেখতে
  • 00:08:17
    পারেন।
  • 00:08:18
    এখন ধরা যাক, আমি টেস্টের একটি ভ্যালু অ্যাসাইন
  • 00:08:21
    করছি।
  • 00:08:22
    এটি একটি ভ্যারিয়েবল d-এর একটি স্ট্রিং।
  • 00:08:25
    আপনি যদি কেবল type of d নেন, তবে আপনি অবজেক্টের
  • 00:08:29
    ডেটা টাইপ পাবেন।
  • 00:08:31
    এখানে অবজেক্ট হল ভেরিয়েবল।
  • 00:08:33
    একবার এটি একটি স্ট্রিং হয়ে গেলে, ডেটা টাইপ
  • 00:08:37
    স্ট্রিং হিসাবে প্রদর্শিত হয়।
  • 00:08:39
    সুতরাং এখন আসুন দেখি, ইন্টিগ্রেটেড
  • 00:08:42
    ডেভেলপমেন্ট এনভায়রনমেন্টগুলি কী কী।
  • 00:08:44
    এখন আমি একে আই.
  • 00:08:46
    ডি.
  • 00:08:47
    ই.
  • 00:08:48
    (IDE) হিসাবে অ্যাবরিভিয়েটেড (abbreviate) করেছি।
  • 00:08:50
    এখন আমি আগে যেমন বলেছি, একটি IDE.
  • 00:08:53
    হল একটি সফ্টওয়্যার অ্যাপ্লিকেশন।
  • 00:08:55
    এটি আপনাকে টুলসের একটি কোহেসিভ (cohesive)
  • 00:08:59
    সেট (set) দেয় এবং এটি সফ্টওয়্যার ডেভেলপমেন্টের
  • 00:09:02
    জন্য প্রয়োজনীয়।
  • 00:09:03
    এই ধরনের IDE থাকার ধারণাটি মূলত সফ্টওয়্যার
  • 00:09:07
    ডেভেলপমেন্টকে সহজতর করা।
  • 00:09:08
    তাই পাইথন শুধুমাত্র টার্মিনাল থেকে কোডিং
  • 00:09:11
    প্রদান করে।
  • 00:09:13
    এখন আপনি যদি টার্মিনালটি ব্যবহার করতে অস্বাচ্ছন্দ্য
  • 00:09:16
    বোধ করেন, তবে আপনি এই ইন্টিগ্রেটেড
  • 00:09:20
    ডেভেলপমেন্ট এনভায়রনমেন্টে আসতে পারেন।
  • 00:09:22
    সুতরাং এই ধারণাগুলি আপনাকে আরও ভাল জি.ইউ.আই
  • 00:09:25
    (GUI) দেয় এবং কম্পাইলিং ডিপ্লয়িং (deploying) এবং
  • 00:09:26
    ডিবাগিং (debugging) পরিচালনার জন্য টুলসও সরবরাহ
  • 00:09:27
    করে।
  • 00:09:28
    সুতরাং IDE একটি দুর্দান্ত ইন্টারফেস (interface) প্রদান
  • 00:09:29
    করে, যদি আপনি পাইথন দিয়ে শুরু করেন।
  • 00:09:33
    টার্মিনাল ভিত্তিক কোডিংয়ের তুলনায়,
  • 00:09:35
    এগুলি বোঝা এবং ব্যাখ্যা করা অনেক সহজ।
  • 00:09:39
    একটি সাধারণ IDE-তে অবশ্যই একটি সোর্স
  • 00:09:43
    কোড এডিটর, একটি কম্পাইলার (compiler) এবং একটি ডিবাগার
  • 00:09:48
    (debugger) থাকা উচিত।
  • 00:09:49
    অতিরিক্ত বৈশিষ্ট্যগুলির মধ্যে সিনট্যাক্স,
  • 00:09:52
    এরর হাইলাইটিং (highlighting) এবং কোড কমপ্লিশন
  • 00:09:55
    (completion) অন্তর্ভুক্ত থাকতে পারে।
  • 00:09:58
    এখন তারা এনভায়রনমেন্ট থেকে কোড ডিবাগিংয়ের
  • 00:10:01
    পাশাপাশি, প্রোগ্রামটি বিল্ড (build) এবং এক্সিকিউট
  • 00:10:05
    (execute) করতেও সাপোর্ট করে।
  • 00:10:07
    সুতরাং এই বৈশিষ্ট্যগুলি একটি IDE-তে অবশ্যই
  • 00:10:10
    থাকা উচিত, তবে অতিরিক্ত বৈশিষ্ট্য, যেমন,
  • 00:10:14
    সিনট্যাক্স, এরর হাইলাইটিং এবং কোড
  • 00:10:17
    কমপ্লিশন থাকলে ভাল হয়।
  • 00:10:19
    এছাড়াও কিছু সেরা IDE-তে ভার্সন কন্ট্রোল
  • 00:10:23
    ফিচার (feature) থাকে।
  • 00:10:24
    এখন সাবলাইম (sublime) টেক্সট এবং অ্যাটম
  • 00:10:28
    (atom) রয়েছে, এগুলি টেক্সট এডিটর এবং
  • 00:10:31
    এগুলি পাইথন সাপোর্ট সহ সাধারণ IDE। তবে
  • 00:10:36
    এগুলি ছাড়াও পাইচার্ম (PyCharm), জুপিটার (Jupyter),
  • 00:10:39
    স্পাইডার (Spyder) বা থর্নি (Thorny), এগুলি পাইথনের
  • 00:10:43
    উদ্দেশ্যে ডেভেলপ করা বিশেষ এডিটর।
  • 00:10:46
    এখন পাইচার্ম এবং স্পাইডার কেবলমাত্র
  • 00:10:49
    পাইথন ব্যবহার করে।
  • 00:10:51
    জুপিটার জুলিয়া (Julia), পাইথন, R সরবরাহ
  • 00:10:54
    করে এবং তারা এখন স্কালাও (Scala) সরবরাহ
  • 00:10:58
    করে।
  • 00:10:59
    সুতরাং পাইথনের প্রথম IDE হল, স্পাইডার।
  • 00:11:02
    এখন স্পাইডার সমস্ত ওএস (OS) প্ল্যাটফর্মেই
  • 00:11:05
    সমর্থিত।
  • 00:11:06
    এগুলি ওপেন সোর্স ভার্সন হিসাবে পাওয়া
  • 00:11:09
    যায়।
  • 00:11:10
    তাই তারা হয় একটি অ্যানাকোন্ডা (Anaconda)
  • 00:11:12
    ডিস্ট্রিবিউশনের সাথে ট্যাগ করে আসে,
  • 00:11:15
    যা আপনি তাদের অ্যানাকোন্ডা ওয়েবসাইট থেকে ইনস্টল
  • 00:11:19
    করতে পারেন অথবা আপনি এগুলি আলাদাভাবেও
  • 00:11:22
    ইনস্টল করতে পারেন।
  • 00:11:23
    সুতরাং সিস্টেমে পাইথন ইনস্টল করার
  • 00:11:26
    পরে, স্পাইডার ইনস্টল করতে 'পিপ (pip) ইনস্টল
  • 00:11:30
    স্পাইডার' করতে পারেন।
  • 00:11:31
    অথবা সরাসরি অ্যানাকোন্ডার ওয়েবসাইটে গিয়ে
  • 00:11:34
    অ্যানাকোন্ডা সেটআপ (setup) ডাউনলোড করতে
  • 00:11:37
    পারেন।
  • 00:11:38
    এখন অ্যানাকোন্ডা সেটআপে প্রচুর IDE
  • 00:11:39
    রয়েছে।
  • 00:11:40
    তারা জুপিটার, R, স্পাইডার, পাইচার্ম এবং অন্যান্য
  • 00:11:43
    বেশ কয়েকটি IDE সরবরাহ করে।
  • 00:11:45
    কিন্তু আবার এগুলি এক ছাদের নিচে আসে,
  • 00:11:47
    তাই এর সাথে কাজ করা আরও সহজ।
  • 00:11:50
    স্পাইডার বিশেষভাবে পাইথনের এবং ডেটা
  • 00:11:52
    সায়েন্সের জন্য তৈরি।
  • 00:11:53
    এর বৈশিষ্ট্যগুলির মধ্যে রয়েছে একটি
  • 00:11:55
    শক্তিশালী সিনট্যাক্স এবং এরর হাইলাইট
  • 00:11:57
    সহ একটি কোড এডিটর।
  • 00:11:58
    এটি কোড কমপ্লিশন, নেভিগেশন (Navigation), ডিবাগিং
  • 00:12:00
    এবং একটি ইন্টিগ্রেটেড ডকুমেন্টও সরবরাহ
  • 00:12:02
    করে।
  • 00:12:03
    এখন স্পাইডারের ইন্টারফেসে আপনি দেখবেন যে, এর
  • 00:12:05
    ইন্টারফেসটি একদম ম্যাটল্যাব (Matlab) এবং
  • 00:12:07
    R-এর মতো।
  • 00:12:08
    তাহলে এখন পাইচার্মের দিকে দেখা যাক।
  • 00:12:10
    এটি আবার সমস্ত OS প্ল্যাটফর্মে সমর্থিত।
  • 00:12:12
    এটি প্রফেশনাল (professional) ভার্সন বা একটি কমিউনিটি
  • 00:12:13
    ভার্সন হিসাবে উপলব্ধ।
  • 00:12:14
    প্রফেশনাল ভার্সনটি একটি পেইড (paid) ভার্সন,
  • 00:12:15
    যেখানে কমিউনিটি ভার্সনটি একটি ফ্রি
  • 00:12:16
    (free) ওপেন সোর্স।
  • 00:12:17
    এটি শুধুমাত্র পাইথন সমর্থন করে এবং আলাদাভাবে
  • 00:12:18
    বা অ্যানাকোন্ডার মাধ্যমে ইনস্টল করা
  • 00:12:19
    যেতে পারে।
  • 00:12:20
    এর বৈশিষ্ট্যগুলির মধ্যে রয়েছে শক্তিশালী
  • 00:12:21
    সিনট্যাক্স এবং এরর হাইলাইটিং-এর সুবিধা
  • 00:12:22
    সহ একটি কোড এডিটর।
  • 00:12:23
    এবং এটি কোড কমপ্লিশন, নেভিগেশন, ডিবাগিং,
  • 00:12:24
    ভার্সন কন্ট্রোল ও ইউনিট টেস্টিং-এর
  • 00:12:25
    সুবিধা দেয়।
  • 00:12:26
    আর এটাই হল পাইচার্মের এনভায়রনমেন্ট।
  • 00:12:27
    যারা ডেভেলপমেন্ট প্ল্যাটফর্ম থেকে
  • 00:12:28
    এসেছেন, তাদের জন্য এটি আরও উপযুক্ত,
  • 00:12:29
    কারণ এর এনভায়রনমেন্ট এবং ইন্টারফেস বোঝার
  • 00:12:30
    জন্য একটু জটিল।
  • 00:12:31
    কিন্তু এটি আবার ডেটা সায়েন্সের
  • 00:12:32
    ক্ষেত্রে একটি দুর্দান্ত টুল হিসাবে প্রমাণিত
  • 00:12:33
    হয়েছে।
  • 00:12:34
    সুতরাং আমরা শেষ IDE, জুপিটার নোটবুক
  • 00:12:35
    (notebook) দেখতে চলেছি।
  • 00:12:36
    এখন আগে দেখা দুটি IDE, স্পাইডার এবং পাইচার্ম
  • 00:12:37
    থেকে, এটি অনেকটা আলাদা।
  • 00:12:38
    এখন জুপিটার নোটবুক একটি ওয়েব অ্যাপ
  • 00:12:39
    (web app)। এটি মূলত আপনাকে নোটবুক নামক ডকুমেন্ট
  • 00:12:40
    ক্রিয়েট এবং ম্যানিপুলেট (manipulate) করার অনুমতি
  • 00:12:41
    দেয়।
  • 00:12:42
    সুতরাং এটি আবার সমস্ত OS প্ল্যাটফর্মে
  • 00:12:43
    সমর্থিত এবং একটি ওপেন সোর্স ভার্সন
  • 00:12:44
    হিসাবে উপলব্ধ।
  • 00:12:45
    সুতরাং এটি জুপিটারের ওয়েবসাইট থেকে নেওয়া
  • 00:12:46
    একটি ছোট স্নিপেট (snippet)। আপনি দেখতে
  • 00:12:47
    পাচ্ছেন যে, এটি ইনপুট এবং আউটপুট সেলের
  • 00:12:48
    একটি অর্ডারড (ordered) কালেকশন (collection) নিয়ে
  • 00:12:49
    গঠিত।
  • 00:12:50
    এখন এই সেলগুলিতে যে কোনও কিছু থাকতে
  • 00:12:51
    পারে।
  • 00:12:52
    এগুলিতে কোড, টেক্সট বা প্লট থাকতে পারে।
  • 00:12:53
    এখন যেহেতু এই সেলগুলিতে টেক্সটও থাকতে পারে,
  • 00:12:54
    তাই এগুলি খুব ন্যারেটিভ (narrative) এবং ডেসক্রিপটিভ
  • 00:12:55
    (descriptive) ধরণের।
  • 00:12:56
    এবং এটি আরও ভাল করে বোঝায়, কারণ এটি
  • 00:12:57
    আপনাকে পিডিএফ (PDF) এবং এইচ,টি,এম,এল-এর
  • 00:12:58
    (HTML) মতো ফরম্যাটের (format) মাধ্যমে কোড এবং
  • 00:12:59
    ন্যারেটিভ টেক্সট শেয়ার করার সুযোগও
  • 00:13:00
    দেয়।
  • 00:13:01
    এবং এটি মূলত এর নেচারের কারণে এডুকেশন (education)
  • 00:13:02
    এবং প্রেজেন্টেশন (presentation) টুলগুলির জন্য
  • 00:13:03
    ব্যবহৃত হয়।
  • 00:13:04
    সুতরাং এটি বেশ ডেসক্রিপটিভ এবং ন্যারেটিভ ধরণের।
  • 00:13:05
    তাই এটি এই ফিল্ডগুলির জন্য খুব ভাল হিসাবে
  • 00:13:06
    বিবেচিত হয়।
  • 00:13:07
    কিন্তু এতে একটি ভাল IDE-এর বেশিরভাগ
  • 00:13:08
    বৈশিষ্ট্যের অভাব রয়েছে।
  • 00:13:09
    কিন্তু এটি সেলে (cell) এই টেক্সট এবং
  • 00:13:10
    প্লটগুলি অ্যাড (add) করার অনুমতি দিয়ে
  • 00:13:11
    সেই অভাব পূর্ণ করে।
  • 00:13:12
    এবং আপনি এই প্লটগুলির সাথে প্লেও (play) করতে
  • 00:13:13
    পারেন।
  • 00:13:14
    ধরুন, একটি প্লট রয়েছে, যেখানে আপনাকে কয়েকটি
  • 00:13:15
    প্যারামিটার (parameter) টিউন (tune) করতে হবে,
  • 00:13:16
    তাহলে আপনি সেই প্যারামিটারগুলি ব্যবহার করে টিউন
  • 00:13:17
    করতে পারেন এবং দেখতে পারেন কিভাবে গ্রাফ
  • 00:13:18
    (graph) পরিবর্তিত হয়।
  • 00:13:19
    এখন জুপিটার অ্যানাকোন্ডার সাথে আসে অথবা আপনি
  • 00:13:20
    এটি আলাদাভাবে ইনস্টল করতে পারেন।
  • 00:13:21
    এখন যেমন আমি আগেই বলেছি, জুপিটার আসলে
  • 00:13:22
    জুলিয়া পাইথন NR-কে বোঝায়।
  • 00:13:23
    এবং এটি এখন স্কালাকেও সমর্থন করে।
  • 00:13:24
    কিন্তু তারা এটিকে নামের মধ্যে অন্তর্ভুক্ত
  • 00:13:25
    করেনি।
  • 00:13:26
    সুতরাং এগুলি নোটবুক।
  • 00:13:27
    মূলত আপনি শুধুমাত্র ডকুমেন্টের একটি
  • 00:13:28
    সেট নিয়ে কাজ করছেন, যেখানে আপনি টেক্সট,
  • 00:13:29
    কোড, প্লট যোগ করতে পারেন।
  • 00:13:30
    এবং এগুলি সবই একটি স্ক্রিপ্টের (script)
  • 00:13:31
    অধীনে।
  • 00:13:32
    এখন এটি আমাদের এই প্রশ্নের দিকে নিয়ে
  • 00:13:33
    আসে।
  • 00:13:34
    অনেকগুলি IDE উপলব্ধ, আমার জন্য কোনটি
  • 00:13:35
    কাজ করবে, তা আমি কীভাবে বেছে নেব?
  • 00:13:36
    এখন কোন IDE আপনার জন্য সত্যিই ভাল কাজ করে,
  • 00:13:37
    তা সম্পূর্ণরূপে প্রয়োজনীয়তার
  • 00:13:38
    উপর নির্ভর করে।
  • 00:13:39
    এখন আপনাকে বিভিন্ন IDE-র সঙ্গে কাজ করতে
  • 00:13:40
    হবে, প্রথমে আপনার প্রয়োজনীয়তা কী
  • 00:13:41
    তা চিহ্নিত করতে হবে।
  • 00:13:42
    কারুর জন্য, কোড সহ একটি ন্যারেটিভ টেক্সট
  • 00:13:43
    ভাল হবে।
  • 00:13:44
    কিন্তু কারোর জন্য, একটি ভাল GUI-ই সবথেকে
  • 00:13:45
    গুরুত্বপূর্ণ।
  • 00:13:46
    সুতরাং আপনার জন্য কী কাজ করে তা বোঝার
  • 00:13:47
    জন্য আপনাকে প্রথমে এগিয়ে যেতে হবে,
  • 00:13:48
    অন্বেষণ করতে হবে, বিভিন্ন IDE চেষ্টা
  • 00:13:49
    করে দেখতে হবে।
  • 00:13:50
    এটি আপনাকে আপনার নিজস্ব প্রয়োজনীয়তাগুলি
  • 00:13:51
    সনাক্ত করতেও সহায়তা করবে।
  • 00:13:52
    সুতরাং, একটি ভাল IDE বা খারাপ IDE বলে কিছুই
  • 00:13:53
    নেই।
  • 00:13:54
    প্রতিটি IDE বৈশিষ্টের দিক থেকে খুব আলাদা।
  • 00:13:55
    এবং এটি আপনার প্রয়োজনীয়তা এবং কাজের স্বাচ্ছন্দের
  • 00:13:56
    উপর নির্ভর করে।
  • 00:13:57
    আপনাকে ধন্যবাদ।
  • 00:13:58
    পরবর্তী বক্তৃতায় দেখা হবে।
Tags
  • Python
  • Development
  • IDEs
  • Dynamic Typing
  • Zen of Python
  • Data Science
  • Programming Paradigms
  • Open Source
  • Beginner Friendly
  • Coding Environment