Blog

পাইথন প্রোগ্রামিং কি? কেন পাইথন শিখা উচিৎ? এবং ক্যারিয়ার টিপস

Python bangla blog

কেন পাইথন শিখা উচিত?

আপনি যদি কম্পিউটার সাইন্স সাবজেক্টের শিক্ষার্থী হয়ে থাকেন তাহলে পাইথন প্রোগ্রামিং (Python Programming) বা পাইথন ল্যাঙ্গুয়েজ (Python Language) শব্দটি অবশ্যই শুনে থাকবেন। CS বা CSE সাবজেক্টের শিক্ষার্থী ছাড়াও আরোও অনেক সাবজেক্ট রয়েছে যেখানে একাডেমিক কাজে প্রোগ্রামিং করতে হয়। যে কোনো ল্যাঙ্গুয়েজ দিয়ে প্রোগ্রামিং করা হলেও, অন্য দশটি ল্যাঙ্গুয়েজের তুলনায় পাইথন দিয়ে প্রোগ্রামিং করা অধিক জনপ্রিয়। পাইথন ল্যাঙ্গুয়েজ নিয়ে ভালোভাবে জানতে হলে পড়তে হবে পুরো ব্লগটি।

পাইথন কি?

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

পাইথন নামকরণ কিভাবে হলো?

১৯৯১ সালে নেদারল্যান্ডের Guido Van Rossum একটি কমেডি সিরিজ Monty Python’s Flying Circus থেকে অনুপ্রাণিত হয়ে নিজের বানানো প্রোগ্রামিং ল্যাঙ্গুয়েজের নাম Python রাখেন।

Guido Van Rossum Python Bangla

পাইথন কেমন ধরণের প্রোগ্রামিং ল্যাঙ্গুয়েজ?

প্রোগ্রামিং ল্যাঙ্গুয়েজ সাধরণত দুই ধরণের হয়ে থাকে। ইন্টারপ্রেটেড ল্যাঙ্গুয়েজ (Interpreted Language) এবং কম্পাইলড ল্যাঙ্গুয়েজ (Compiled Language) । পাইথন একটি ইন্টারপ্রেটেড ল্যাঙ্গুয়েজ। কম্পাইলড ল্যাঙ্গুয়েজগুলো পুরা সোর্স কোড কম্পাইল করা শেষ দিয়ে তারপর এক্সিকিউট করে। যেমন- জাভা, সি++। আর ইন্টারপ্রেটেড ল্যাঙ্গুয়েজগুলো একটি একটি করে লাইন এক্সিকিউট করে। যেমন- পাইথন।

কেন পাইথন এত জনপ্রিয়?

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

পাইথন ল্যাঙ্গুয়েজ ও পাইথন প্রোগ্রামিং এর মধ্যে পার্থক্য কি?

আমি বাংলা ভাষায় বললাম এক, দুই, তিন, চার। আরেকজন ইংরেজি ভাষায় বলল one, two, three, four । এখানে মূল উপাদান একই, শুধুমাত্র ভাষাটাই ভিন্ন।

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

কোন কোন ফিল্ডে পাইথন ব্যবহার হচ্ছে?

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

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

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

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

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

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

পাইথন প্রোগ্রামিং ল্যাঙ্গুয়েজের সুবিধা কি কি?

  • পাইথনের সিনটেক্স ছোট ছোট
  • সিনটেক্সগুলো পড়লেই কি প্রোগ্রাম করা হয়েছে তা সহজেই বুঝে ফেলা যায়
  • একই সোর্স কোড সকল প্লাটফর্মে কাজ করে
  • ডেটা টাইপ কাস্টিং করে প্রোগ্রাম করা খুবই সহজ
  • পাইথন একটি ওপেন সোর্স ল্যাঙ্গুয়েজ
  • প্রচুর পরিমাণে লাইব্রেরী এবং বিল্ট-ইন ফাংশন থাকায় বড় বড় প্রোগ্রামকে অল্প প্রোগ্রামিং-এ শেষ করা যায়
  • ভুল হলে সহজেই ডিবাগিং করা যায়

python bangla tutorial

পাইথন প্রোগ্রামিং ল্যাঙ্গুয়েজের অসুবিধা কি কি?

  • এটি সি, সি++ এর মত ফাস্ট ল্যাঙ্গুয়েজ নয়, প্রোগ্রাম রান হতে সময় লাগে
  • মোবাইল এপ্লিকেশন বানানোর জন্য Kivy থাকলেও ভালো মানের App বানানো যায় না
  • মাত্রাতিরিক্ত মেমোরি খরচ হয়। তাই প্রোগ্রাম তৈরি করার সময় অপটিমাইজেশন করে নিতে হয়
  • পাইথন ল্যাঙ্গুয়েজ দিয়ে সিস্টেম তৈরি করতে প্রচুর ইনভেস্টমেন্টের দরকার হয়

পাইথনের জয়প্রিয় কিছু ফ্রেমওয়ার্কঃ

ওয়েব ডেভেলপমেন্ট করার জন্য জ্যাঙ্গো (Django) এবং ফ্লাস্ক (Flask) এই দুটি জনপ্রিয় ফ্রেমওয়ার্ক রয়েছে। ছোট ছোট কাজের জন্য ফ্লাস্ক ব্যবহার করা হয়। আর বড় এপ্লিকেশন ডেভেলপমেন্ট এর জন্য জ্যাঙ্গো ফ্রেমওয়ার্ক ব্যবহার করা হয়। এছাড়াও Bottle, CherryPy, Web2Py, Pyramid, Hug এইসব ফুল স্ট্যাক ফ্রেমওয়ার্ক রয়েছে।

মোবাইল এপ্লিকেশন তৈরির জন্য কিভি (Kivy) রয়েছে। কিন্তু মোবাইল এপের জন্য পাইথন খুব ভালো মানের নয়।

ডেস্কটপ এপ্লিকেশন তৈরির জন্য রয়েছে PyQT, Tkinter, Kivy, Bottle, wxPython

পাইথনের জনপ্রিয় কিছু লাইব্রেরীঃ

আর্টিফিশিয়াল ইন্টিলিজেন্স, মেশিন লার্নিং, ডেটা সাইন্স, ইমেজ প্রসেসিং এইসব নিয়ে কাজ করার জন্য জনপ্রিয় কিছু লাইব্রেরী হচ্ছে- TensorFlow, Numpy, Scipy, Keras, Pandas, Pillow, Scikit-Learn ইত্যাদি।

বাংলাদেশে পাইথন ল্যাঙ্গুয়েজ নিয়ে ক্যারিয়ারঃ

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

তবে শুধুমাত্র কোর পাইথন, জ্যাঙ্গো এইসব শিখে লাভ নেই। এগুলোর সাথে আপনাকে ডেটাবেজ, জাভাস্ক্রিপ্ট (JavaScript), react/vue এর মধ্যে যেকোনো একটা ফ্রেমওয়ার্ক শিখে নিতে হবে।

পাইথন শিখলেই হবে নাকি প্রবলেম সলভিং করতে হবে?

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

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

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

আপনি প্রোগ্রামিং জানেন বা নাই জানেন, একদম বেসিক থেকে শুরু করে ধীরে ধীরে এডভান্স লেভেলের কোড শিখা এবং প্রোজেক্ট করা সহ পূণাঙ্গ পাইথন কোর্স আমাদের MSB Academy-তে রয়েছে। কোর্সের লিঙ্কে ভিজিট করলে প্রজেক্ট বেইসড Python Course সম্পর্কে আরও বিস্তারিত জানাতে পারবেনঃ https://www.msbacademy.com/course/python-programming-masterclass

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

Comments

Leave a Reply