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
পরবর্তী বক্তৃতায়
দেখা হবে।