কেন আমরা পাইথন শিখবো?
মাহমুদুর রহমান উচ্ছ্বাস
৪৯তম ব্যাচ, সি এস ই
বর্তমানে প্রোগ্রামিং জগতে পাইথন জনপ্রিয়তার শীর্ষে। যদি মনে প্রশ্ন জাগে যে, কেনো পাইথন এতো জনপ্রিয়? তাহলে উত্তর হবে, এর ডেভেলপমেন্টের গতি অনেক বেশি। ডেভেলপমেন্টের গতি আবার কী জিনিস? মানে, একটি প্রোগ্রাম জাভা প্রোগ্রামিং ল্যাঙ্গুয়েজ দিয়ে করতে যে পরিমান সময় নেয়, পাইথন প্রোগ্রামিং ল্যাঙ্গুয়েজ দিয়ে করতে আরো কম সময় লাগে। এর প্রধান কারণ, পাইথনের কোড অনেক সংক্ষিপ্ত হয়।
সংক্ষিপ্ত পরিচিতিঃ
নেদারল্যান্ডের বাসিন্দা গুইডো ভেন রু্যম(Guido Van Rossum) ১৯৯১ সালে এটি তৈরি করেন। ইংল্যান্ডের Monty Python নামের একটি কমেডি গ্রুপ থেকে অনুপ্রাণিত হয়ে তিনি এই ল্যাংগুয়েজের নামকরণ পাইথন করেন।
পাইথন একটি ইন্টারপ্রেটেড ল্যাঙ্গুয়েজ (Interpreted language)। প্রোগ্রামিং ল্যাঙ্গুয়েজগুলো সাধারনত দুই ধরনের হয়ে থাকে। কম্পাইলড ল্যাঙ্গুয়েজ (Compiled language) এবং ইন্টারপ্রেটেড ল্যাঙ্গুয়েজ(Interpreted language)। কম্পাইলড ল্যাঙ্গুয়েজে পুরো সোর্স কোড কম্পাইল করা শেষে তারপর এক্সিকিউট হয়(যেমনঃ সি) এবং ইন্টারপ্রেটেড ল্যাঙ্গুয়েজ একটি একটি করে লাইন এক্সিকিউট হয়(যেমনঃ পাইথন)।
এই প্রোগ্রামিং ল্যাঙ্গুয়েজ সহজে বোধগম্য। তাছাড়া এটি একটি হাই-লেভেল,পোর্টেবল, অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং ল্যাঙ্গুয়েজ।
পাইথন কোথায় ব্যবহার করা হয়?
ওয়েব ডেভেলপমেন্টে পাইথনের কিছু ফ্রেমওয়ার্ক ব্যবহৃত হয়। তার মধ্যে উল্লেখযোগ্য হচ্ছে Django এবং Pyramid। তাছাড়া কিছু মাইক্রো ফ্রেমওয়ার্ক আছে (যেমনঃ Flask এবং Bottle)। Kivi নামক ফ্রেমওয়ার্ক দিয়ে অ্যান্ড্রয়েড মোবাইল অ্যাপলিকেশন তৈরি করা যায়। এমনকি পাইথন দিয়ে গেম বানানো যায়। এছাড়া পাইথনের আরো ব্যবহার রয়েছে। যেমনঃ মেশিন লার্নিং,গ্রাফিক্স ইউজার ইন্টারফেস, বিজনেস অ্যাপলিকেশন, ডেটা সাইন্স, নিউমেরিকাল প্রোগ্রামিং, ডেটা অ্যানালাইসিস, সফটওয়্যার ডেভেলপমেন্ট ইত্যাদি। সফটওয়্যার ডেভেলপমেন্টে এর ব্যবহার দিন দিন বৃদ্ধি পাচ্ছে।
পাইথন শুধুমাত্র ছোট কোম্পানিতেই ব্যবহার হয়না। গুগুল সার্চ ইঞ্জিনে পাইথনের প্রোগ্রামিংয়ের ব্যবহার রয়েছে। তাছাড়াও ফেসবুকের প্রডাকশন ইঞ্জিনিয়ারিংয়ে,নাসার অটোমেশন টুল, ইয়াহু ম্যাপ, ড্রপবক্স, ইউটিউব ইত্যাদিতে ব্যবহার রয়েছে।
পাইথনের কিছু জনপ্রিয় ফ্রেমওয়ার্কঃপাইথনের বেশ কিছু ফ্রেমওয়ার্ক রয়েছে। সেগুলো হলোঃ NumPy, Pylons, Tornado, Pyramid, Flask, WEB2PY, Bottle, Django, SciPy ইত্যাদি।
কখন শুরু করবো?
যারা পাইথন প্রোগ্রামিং শুরু করতে চায় তাদের প্রতি আমার পরামর্শ হচ্ছে, পাইথন শেখা শুরু করার আগে অন্য কোনো প্রোগ্রামিং আগে ল্যাঙ্গুয়েজ (যেমন সি, সি++) শেখা শেষ করা। এতে আপনার ওই ল্যাঙ্গুয়েজ সম্পর্কে ধারণা হবেই সাথে এটা ভালো মতো শিখতে পারবেন।
পাইথন এর কি কোনো ফিউচার আছে?
আপনি যদি কোনো একটি বিষয় নিয়ে পরিশ্রম করতে থাকেন একসময় আপনি ঠিকই সফল হতে পারবেন। তবে ফিউচার এর কথা যেহেতু এখানে তুলছি তাহলে বলে, বাংলাদেশে বিভিন্ন কোম্পানিতে পাইথন প্রোগ্রামার কাজ করছেন। তবে এর জনপ্রিয়তা বাংলাদেশে তেমন একটা নেই। তবে বিদেশে পাইথন প্রোগ্রামারদের প্রচুর চাহিদা রয়েছে। একটা গবেষণা থেকে দেখা গিয়েছে যে, আমেরিকায় প্রায় চল্লিশ হাজার পাইথন প্রোগ্রামার প্রয়োজন। তাহলে, এর চাহিদা কতোটা ব্যাপক তা বুঝাই যাচ্ছে। তাছাড়াও বাইরের দেশে একজন পাইথন ডেভেলপারের বেতন কয়েক লাখ ডলার।
কিভাবে শিখবো?
বর্তমানে ইউটিউব এর প্রচুর টিউটোরিয়াল রয়েছে। ইংরেজি ভাষার ভিডিওর ক্ষেত্রে Programming with Mosh, freeCodeCamp এসব চ্যানেলের ভিডিও দেখে যেতে পারে। তাছাড়া বাংলা ভাষার ভিডিওর ক্ষেত্রে আনিসুল ইসলাম স্যার, তামিম শাহরিয়ার সুবিন স্যারের ভিডিও দেখে শেখা শুরু করতে পারেন। বইয়ের ক্ষেত্রে ইন্টারনেটে অনেক বই পাওয়া যায়। বাংলা ভাষার ক্ষেত্রে তামিম শাহরিয়ার সুবিন স্যারের বই দেখে শেখা শুরু করে দিতে পারেন।
প্রব্লেম সল্ভিং কি জরুরি?
এক কথায় বলতে গেলে, প্রব্লেম সল্ভিং করাটা খুব জরুরি। আপনি যদি একটা প্রোগ্রামিং ল্যাঙ্গুয়েজ ভালো মতো শিখলেন কিন্তু কোনো প্রব্লেম সল্ভিং করলেন না, তাহলে সেটা শেখা আর না শেখা একই কথা। কেননা প্রব্লেম সল্ভিং এর মাধ্যমে আপনি আপনার স্কিল যেমন বাড়াতে পারবেন, তেমনই আপনার প্রব্লেম সলভ করার ফলে অনেক জায়গায় প্রব্লেম সলভ করতে কম সময় লাগবে। তার মানে এই নয় যে, সেখানে আপনি যেখানে চাকুরী করতে যাবেন সেখানে আপনার একই প্রব্লেম দিবে? এটা ভাবাও বোকামি। আপনি যত বেশি প্রব্লেম সল্ভিং করবেন, আপনি তত বেশি শিখতে পারবেন। প্রথমে করতে গেলে হয়ত আপনার খারাপ লাগতেও পারে, তবে যত কষ্টই হোক আপনাকে সেটা শেষ করতেই হবে। আপনাকে অধৈর্য হলে হবেনা। কেননা প্রোগ্রামিং শিখতে গেলে ধৈর্য ও পরিশ্রম দুটোই খুব প্রয়োজন।
প্রব্লেম সল্ভিং কোথায় করবো?
অনলাইনে অনেক প্রব্লেম সল্ভিং করার জন্য ওয়েবসাইট রয়েছে। যেমন Hackerrank, codingbat ইত্যাদি। এছাড়াও বিভিন্ন কন্টেস্টেও আপনি অংশগ্রহণ করতে পারেন। এতে আপনি নিজের অবস্থান বুঝতে পারবেন।
No comments