এই লেখাটি লিখেছেন একজন কন্ট্রিবিউটর।চাইলে আপনিও লিখতে পারেন আমাদের কন্ট্রিবিউটর প্ল্যাটফর্মে।

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

এই লেখায় আলোচনা করা হবে পাইথনের মৌলিক ধারণাগুলো নিয়ে। কেন পাইথন শেখা প্রয়োজন, এর ক্ষেত্রসমূহ এবং আরও সংশ্লিষ্ট বিষয়াদি যা এই প্রোগ্রামিং ভাষা সম্পর্কে স্পষ্ট ধারণা তৈরি করার জন্য জরুরী।

পরিচয়

প্রোগ্রামিং ভাষার কাজই হচ্ছে কোনো প্রোগ্রাম তৈরি করে সেটি দিয়ে কাজ করিয়ে নেওয়া। ১৯৯১ সালে গুইদো ভ্যান রজাম পাইথন তৈরি করেন। কমেডি শো ‘মনটি পাইথন’ থেকে এর নামকরণ করেন তিনি।

তার সৃষ্টির পর থেকে পাইথন বর্তমানে তার তৃতীয় সংস্করণে রয়েছে। প্রথমটি আর ব্যবহৃত হয় না। পাইথন২ এর ব্যবহারও দিন দিন কমে যাচ্ছে। শুরু করার জন্য উত্তম পছন্দ হবে পাইথন৩। পাইথনের জনপ্রিয়তার অন্যতম কারণ হচ্ছে এর সহজ কাঠামো। প্রোগ্রামিং শব্দটি শুনলে অনেকের মনে যা আসে টা হলো হিজিবিজি লেখার সমাহার। পাইথনের সিনট্যাক্স অন্যান্য প্রোগ্রামিং ভাষার চেয়ে সহজবোধ্য যার ফলে যারা নতুন প্রোগ্রামিং শুরু করেন তাদের কাছে পাইথন অনেক জনপ্রিয়। শুরুর দিকে পাইথন ব্যবহৃত হত শুধু স্ক্রিপ্ট তৈরি ক্ষেত্রে। কিন্তু এর সহজ কাঠামো ও বিচিত্রতার জন্য আধুনিক যুগে এটি জায়গা করে নিয়েছে বড় বড় সব ক্ষেত্রে। এসবের মধ্যে উল্লেখযোগ্য হচ্ছে ডাটা সায়েন্স, ওয়েব ডেভেলপমেন্ট, মেশিন লার্নিং ইত্যাদি।

পাইথনের প্রতিষ্ঠাতা; Image source: Slideplayer

প্রোগ্রামিংয়ের প্রকারভেদে পাইথন

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

এটি একটি হাই লেভেল প্রোগ্রামিং ভাষা। এটির অর্থ হচ্ছে বিভিন্ন ধরনের অপারেশন এটির মাঝে বিল্ট ইন রয়েছে। নিম্নতর প্রোগ্রামিং ভাষায় কম্পিউটার কীভাবে চিন্তা করে, মেমোরি ম্যানেজমেন্ট এসব দিক বিবেচনায় রাখতে হয় যার ফলে সময় বেশি লাগে। যেমন বলা হলো ASDQWF শব্দগুলো অ্যালফাবেটিক্যালি সাজানোর জন্য। একটি উচ্চতর প্রোগ্রামিং ভাষায় একটি কমান্ড ইউজ করলেই তা হয়ে যাবে। কিন্তু নিম্নতর ভাষায় বলে দিতে হবে যে A এর পর B তারপর C আসে। পাইথনে এসব ঝামেলা নেই বলে প্রোগ্রামার সহজেই কম সময়ে তার লক্ষ্যে পৌঁছাতে পারেন।

পাইথনের বৈশিষ্ট্য সমুহ; Image Source: Data Flair

পাইথন পদ্ধতিগত, অবজেক্ট-ওরিয়েন্টেড এবং ফাংশনাল প্রোগ্রামিং সমর্থন করে। এগুলো একটু গভীর ব্যাপার, তাই বেশি আলোচনা করব না। আপনি যখন প্রোগ্রামিং করা শুরু করবেন তখন এই ব্যাপারগুলি বুঝতে পারবেন। এখন শুধু সামান্য ধারণা দেয়া যাক। Procedural, Object Oriented, Functional এসব ভিন্ন ভিন্ন প্রোজেক্টের জন্য প্রযোজ্য। যেহেতু পাইথন একটি Multi-Paradigm (বৈচিত্র্যময়) প্রোগ্রামিং ভাষা, তাই এর অর্থ হচ্ছে যে উক্ত তিনটি বিষয় পাইথন সমর্থন করে। যার ফলে পাইথনের তৈরি অ্যাপ্লিকেশন ডাটাবেজ অনেক বৃহৎ।

পাইথন একটি ইন্টারপ্রেটেড প্রোগ্রামিং ভাষা। অর্থাৎ পাইথন কোড যদি কোনো ইন্টারপ্রেটারের (অনুবাদক) মধ্যে চালনা করা হয় তখন এটি মেশিন ভাষায় লাইন বাই লাইন রূপান্তর করে। অন্যান্য কম্পাইল্ড প্রোগ্রামিং ভাষাকে চালনা করার আগে সম্পূর্ণ কোডটি আগে রূপান্তর করতে হয়। কোনো সাধারন মানুষ পাইথন কোড পড়ে বুঝতে পারবে, এটি এতটাই সহজ করে বানানো।

পাইথন কীসে ব্যবহার করা হয় এবং আপনার আগ্রহের ক্ষেত্র কোনটি হবে?

দিন দিন পাইথনের জনপ্রিয়তার হার বাড়ছে। প্রতিনিয়ত এর ব্যবহারকারী এবং ক্ষেত্র বাড়ছে। কেন এটি এত জনপ্রিয়? চলুন দেখে নেওয়া যাক এর সুবিধা এবং কিছু বৈশিষ্ট্য।

সর্বসাকুল্যের ব্যবহারের উদ্দেশ্যেঃ এটি কয়েক প্রকারের প্রোগ্রামিং প্যারাডাইম সমর্থন করায় বিভিন্ন ধরনের প্রজেক্টে পাইথন ব্যবহার করা সম্ভব।

সহজে শেখা যায়ঃ পাইথনের সিনট্যাক্স তুলনামূলক কম জটিল এবং সহজেই আয়েত্তে আনা যায়। যার ফলে নতুন কিংবা অভিজ্ঞতাসম্পন্ন যেকেউই এর সাথে নিজেকে সাবলীলভাবে পরিচিত করে তুলতে পারে।  

যেকোনো প্লাটফর্মে চালানো যায়ঃ পাইথন কোড যেকোনো অপারেটিং সিস্টেমে চালানো সম্ভব। কিছু কিছু ক্ষেত্রে সামান্য সেটিংস করে নিলেই হয়।

দ্রুত কোডিং করার সুবিধাঃ পাইথনে ইজি ডিবাগিং (ত্রুটি মুক্তকরন) সম্ভব। দ্রুত কোনো এপ্লিকেশন ডেভেলপ করার জন্য এটি ব্যবহার করা সুবিধাজনক।

বিশাল বড় লাইব্রেরিঃ পাইথনের অন্যতম বড় বৈশিষ্ট্য হচ্ছে এর বিশালকার লাইব্রেরি। এতে রয়েছে বিভিন্ন ধরনের ডকুমেন্টেশন, সিনট্যাক্স গাইড ও মডিউল। যার ফলে দ্রুত সমাধান, জটিলতাবিহীন প্রোগ্রাম তৈরি করা সম্ভব।

থার্ড পার্টি লাইব্রেরির সমাহারঃ পাইথনের ব্যবহার এতো জনপ্রিয় হয়ে উঠেছে যে বড় প্রোগ্রামাররা সমস্যা সমাধানের জন্য তাদের নিজেদের টুল তৈরি করে রেখেছেন। এতে করে আপনাকে একই ধরনের কোড বারবার লেখার প্রয়োজন পড়বে না। তাদের করা কোডের অংশ কিংবা মডিউল ব্যবহার করে সময় বাঁচিয়ে নিতে পারবেন।

পাইথনের ফিচার এবং ক্ষেত্র; DjangoStars

এবার এর ক্ষেত্র সমুহ নিয়ে আলোচনা করা যাক।

১। সিস্টেম স্ক্রিপ্ট এবং অটোমেশনঃ পাইথন মুলত তৈরি করা হয়েছিলো ব্যাক-এন্ড ডেভেলপমেন্টের জন্য। স্ক্রিপ্টের ব্যবহার যেমন দিন দিন প্রশংসনীয় হয়ে উঠছে তেমন পাইথনও। জটিল ভাষার স্ক্রিপ্টের চেয়ে পাইথন স্ক্রিপ্ট প্রচুর সময় বাঁচায়। আজকের সময়ে ওয়েব সার্চ থেকে শুরু করে কন্টেন্ট ডাউনলোড, অনলাইন ফর্ম, ইমেইল সেন্ড সবক্ষেত্রে পাইথনের অটোমেশন ব্যবহার হচ্ছে। ইথিক্যাল হ্যাকিংয়ে এর ব্যবহার রয়েছে। 

২। ওয়েব এবং অ্যাপ ডেভেলপমেন্টঃ ওয়েব ডেভেলপারদের কাছে একটি জনপ্রিয় প্রোগ্রামিং ভাষা এটি। গুগল, ইন্সটাগ্রাম, রেডিট এসব সাইট তৈরি হয়েছে পাইথনের সাহায্যে। Django ও Flask হচ্ছে পাইথনের ওয়েব ফ্রেমওয়ার্ক (যেটির উপর ভিত্তি করে সফটওয়্যার তৈরি করা হয়)। পাইথন দিয়ে ওয়েব ডেভেলপমেন্ট একটি সাধাসিধা প্রসেস। Django ব্যবহার করে আপনি সহজেই বিভিন্ন ধরনের ওয়েব অ্যাপ তৈরি করতে পারবেন।

সায়েন্টিফিক কম্পিউটিং এবং ডাটা এনালাইসিসঃ অ্যাস্ট্রোনোমার, বায়লজিস্ট, নিওরোসায়েন্টিস্ট সবাই পাইথন ব্যবহার করে। এমনকি CERN, NASA-র মতো বৃহৎ সংস্থাতেও পাইথন ব্যবহার করা হয়। পাইথনের উদ্যমশীল কমিউনিটির ফলেই এটি সম্ভব হয়েছে। এছাড়া আরও রয়েছে ডাটা মেনুপুলেসন টুলস যেমন pandas, এক্সেপেরিমেন্টাল সাইকোলজির জন্য রয়েছে PsychoPy। পাইথন দিয়ে সংগ্রহ করা তথ্যকে সহজেই মাপযোগ্য করা যায়। যার ফলে এটি নিয়ে কাজ করতে সুবিধা হয়।

মেশিন লার্নিং এবং আর্টিফিশিয়াল ইন্টেলিজেন্সঃ আজকের যুগে এই দুটি জিনিস ছাড়া দুনিয়া প্রায় অচল হয়ে পড়বে। মূলত আর্থিক বিষয়াদির সাথে এগুলো ভালোভাবে জড়িয়ে গেছে। ভয়েস, ছবি রিকগনিশন থেকে শুরু করে নেটফ্লিক্সের অ্যালগরিদম। সবক্ষেত্রে রয়েছে ব্যবহার। নিউ ইয়র্ক স্টক এক্সচেঞ্জের স্থাপত্যে রয়েছে পাইথন। অন্যসব লাইব্রেরির মতো এখানেও পাইথনের বিশাল লাইব্রেরি রয়েছে। TensorFlow হচ্ছে একটি উচ্চতর নিউরাল নেটওয়ার্ক লাইব্রেরি। কৃত্রিম বুদ্ধিমত্তায় পাইথনের পরিসর বাড়তেই থাকবে। 

গেম ডেভেলপমেন্টঃ অনেক সময় ধরেই  গেম ডেভেলপারেরা পাইথন দিয়ে GUI (Graphical User Interface) অ্যাপ্লিকেশন তৈরি করছেন। পাইথনের অনেক থ্রিডি এনিমেশন প্যাকেজ রয়েছে। কম্পিউটার গেমিং, স্পেশাল ইফেক্টে এর ব্যবহার রয়েছে। PyGame,PySoy, Pykara লাইব্রেরির সাহায্যে তৈরি করা হয় গেম। এছাড়া সাম্প্রতিক মারভেল সিনেমা গুলোর স্পেশাল ইফেক্টেও পাইথন ব্যবহার করা হয়েছে।

পাইথনে পারদর্শী হয়ে গেলে যে চাকুরী নিয়ে আপনাকে ভাবতে হবে না তা এ থেকেই বোঝা যায়। আর ফ্রিল্যান্সিং তো আছেই। 

ইউ এস ডলারে পাইথন প্রোগ্রামারের মূল্য Image Source: Coding Dojo

পাইথনের বিভিন্ন সেক্টর নিয়ে আলোচনা করা হল। এখন আপনাকে বেছে নিতে হবে আপনি কোনটিতে যেতে চান। একটি আগ্রহের ক্ষেত্র তৈরি করতে পারলে শিখতে শিখতে একঘেয়েমি লাগবে না।

কীভাবে পাইথন শিখব

নতুন হিসেবে পাইথন শেখার সর্বোত্তম পন্থা হচ্ছে পাইথন ডাউনলোড করে কোড নিয়ে নাড়াচাড়া করা। পাইথনের অফিসিয়াল পেজে যে ডকুমেন্টেশন রয়েছে তা ভালোভাবে পড়ে নেওয়া। কোনো ক্ষেত্র নিয়ে শুরু করার আগে পাইথন বেসিক জানতে হবে। এর জন্য Python.org, Pynative, learn Python, Sololearn এসব সাইটে গিয়ে টিউটোরিয়াল কোর্স শুরু করতে পারেন। কোর্স কমপ্লিট হয়ে গেলে আপনাকে প্র্যাকটিস শুরু করতে হবে। কোডিংয়ে প্র্যাক্টিসের বিকল্প কিছু নেই। প্র্যাকটিস না করলে ভুলে যাবেন নয়তো।

প্রোগ্রামিং করার জন্য আহামরি কোনো ডিভাইসের প্রয়োজন হয় না। আজকাল স্মার্টফোনের জন্যও অনেক ভালো IDE বের হয়েছে। যেমন Pydroid। কম্পিউটারে কোডিং করার জন্য পাইথনের ওয়েবসাইট থেকে প্রথমে পাইথন ডাউনলোড করুন। বেসিক শেখার জন্য অফিসিয়াল পাইথন IDLE ব্যবহার করতে পারবেন যা ইন্সটল করার পরই পাওয়া যাবে। এছাড়া Sublime Text একটি সুন্দর এবং ফ্রি টেস্ট ইডিটর যা দিয়ে সাচ্ছ্যন্দে কোডিং করতে পারবেন। সেখার কাজে আরও অগ্রসর হবার পরে Pycharm ব্যবহার করতে পারেন। এটি সবচেয়ে জনপ্রিয় পাইথন IDE (ফ্রি নয়)।

পাইথন শেখার কিছু ধাপ; Image Source: Unwiredlearning

শেখার সময় মনোযোগ দিয়ে বুঝে করতে হবে। নিম্নোক্ত বিষয়গুলো যত বেশি সম্ভব অনুশীলন করতে হবে।

১। ডাটা টাইপস নিয়ে যতটা সম্ভব সমস্যা সমাধান

২। কোডে ফাংশনের ব্যবহার বেশি বেশি করা শিখতে হবে।

৩। অবজেক্ট ওরিয়েন্ট এর ধারণা পরিষ্কার রাখতে হবে।

৪। কোড সংক্ষিপ্ত বা অথবা গোছালো রাখা এসব নিজের ব্যাপার। তবে সাজানো, গোছানো কোড সবাই সমাদর করে এবং ডিবাগিং করতে ঝামেলা পোহাতে হয় না।

Automate the Boring Stuff একটি অনলাইন পাইথন কোর্সবুক। পাইথন নিয়ে Udemy-র নানা কোর্স রয়েছে তবে আমার সবচেয়ে ভালো লেগেছে The Modern Python3 Bootcamp। এছাড়া Zero to hero in Python3 কোর্সটিও দেখতে পারেন। শিখতে শিখতে HackerRank, Codechef এ গিয়ে সমস্যা সমাধান করতে থাকবেন। প্রোগ্রামিং ভাষা দ্রুত সেখার জন্য গাইড প্রয়োজন হয় একটু হলেও। তাই আপনার জানাশোনা কেউ প্রোগ্রামিং করলে তার থেকে হেল্প নিয়েও কিছু কনসেপ্ট ক্লিয়ার করে নিতে পারেন।

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

This Bangla article is about Python programming.

To know more:

1. https://www.infoworld.com/article/3204016/what-is-python-powerful-intuitive-programming.html

2. https://data-flair.training/blogs/how-to-become-a-python-developer/

3. https://www.coursereport.com/blog/what-is-python-programming

Featured Image: Cheap price