পাইথন প্রোগ্রামিং · বিভাগহহীন

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

কোন ভার্সন ব্যবহার করবো? ২ না ৩?

পাইথন ২ কে এখন মৃত ভেবে পাইথন ৩ দিয়ে শুরু করতে হবে । অনেক বড় বড় প্রজেক্ট পাইথন ২ সাপোর্ট বাদ দিয়ে দিয়েছে । পাইথন ৩-ই বর্তমান এবং ভবিষ্যত । এই নিয়ে এখন আর কোন কনফিউশনের সুযোগ নেই ।

কিভাবে সামনে আাগাবো?

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

এডিটর বা আইডিই নির্বাচন

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

বইপত্রের খোজঁ

নতুনদের জন্য বই হিসেবে “Automate The Boring Stuff with Python” খুবই ভালো । বইটি অনলাইনে ফ্রী পড়া যায় । “Learn Python The Hard Way” বইটি এক সময় পাইথন ২ এর জন্য জনপ্রিয় ছিলো কিন্তু বহুদিন ধরে এটি পাইথন ৩ এর জন্য আপডেট করা হয়নি এবং লেখক পাইথন ৩ এর বিপক্ষে নানা হাস্যকর প্রচারনা চালানোর ফলে কমিউনিটি এই বইটি অনুসরন করতে নিরুৎসাহিত করে । বইটি রিসেন্টলি পাইথন ৩ এর জন্য আপডেট করা হচ্ছে ।
এ্যাডভান্সড টপিক শেখার জন্য “Pro Python” এবং “Fluent Python” চমৎকার ।
পাইথন শেখার জন্য বাংলা বইয়ের সন্ধান পাওয়া যাবে এই ডকুমেন্ট এ – http://bit.ly/2AWRZUA

কোথায়, কিভাবে কোড লিখে প্র্যাক্টিস করবো?

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

আটকে গেলে বা সমস্যায় পড়লে কি করবো?

স্ট্যাক ওভারফ্লো বা এই গ্রুপে পোস্ট করবেন । পোস্ট করার সময় যত বেশী ডিটেইলস দেওয়া যায় তত ভালো । যিনি আপনার পোস্ট পড়বেন উনার মাইন্ড রিডিং সুপার পাওয়ার নেই । তাই উনাকে বোঝানোর জন্য আপনি কি করতে চেয়েছেন, কি কোড লিখেছেন, কি আউটপুট এসেছে, আপনি কি চেয়েছিলেন – বিস্তারিত উল্লেখ করুন । নাহলে সাহায্য পাওয়ার সম্ভাবনা কম । সেই সাথে মাথায় রাখুন যারা উত্তর দিবে তারা আপনার সমস্যার উত্তর দিতে বাধ্য নয় । কেউ সাহায্য করলে ধন্যবাদ দিন, কৃতজ্ঞতা জ্ঞাপন করুন । কেউ উত্তর দিতে দেরী করলে বা কোন উত্তর না পেলে অপেক্ষা করুন, ধৈর্য্য ধরুন । রাগ বা ক্ষোভ দেখালে কেউ এসে দ্রুত সমাধান দিবে না বরং উল্টোটা ঘটার সম্ভাবনা বেশী ।
কোড সরাসরি ফেইসবুকে পোস্ট করবেন না । পাইথনে ইন্ডেন্টেশন টা জরুরী, ফেইসবুক হোয়াইট স্পেইস রিমুভ করে ফেলে তাই ফেইসবুকে সরাসরি পোস্ট করলে কোড পড়া খুবই মুশকিল । কোড এর স্ক্রীনশটও দিবেন না, তাহলে যিনি উত্তর দিবেন, উনি কপি পেস্ট করে নিজে রান করে দেখতে পারবেন না । কোড শেয়ার করার জন্য pastie.org, gist.github.com, pastebin.com এর মত সাইট ব্যবহার করুন ।

পছন্দের ট্র্যাক নির্বাচন করা

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

পলিগ্লট ডেভেলপার হওয়া

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

জব মার্কেট ও চাকরির সন্ধান

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

কোন ভার্সন ব্যবহার করবো? ২ না ৩?

পাইথন ২ কে এখন মৃত ভেবে পাইথন ৩ দিয়ে শুরু করতে হবে । অনেক বড় বড় প্রজেক্ট পাইথন ২ সাপোর্ট বাদ দিয়ে দিয়েছে । পাইথন ৩-ই বর্তমান এবং ভবিষ্যত । এই নিয়ে এখন আর কোন কনফিউশনের সুযোগ নেই ।

কিভাবে সামনে আাগাবো?

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

এডিটর বা আইডিই নির্বাচন

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

বইপত্রের খোজঁ

নতুনদের জন্য বই হিসেবে “Automate The Boring Stuff with Python” খুবই ভালো । বইটি অনলাইনে ফ্রী পড়া যায় । “Learn Python The Hard Way” বইটি এক সময় পাইথন ২ এর জন্য জনপ্রিয় ছিলো কিন্তু বহুদিন ধরে এটি পাইথন ৩ এর জন্য আপডেট করা হয়নি এবং লেখক পাইথন ৩ এর বিপক্ষে নানা হাস্যকর প্রচারনা চালানোর ফলে কমিউনিটি এই বইটি অনুসরন করতে নিরুৎসাহিত করে । বইটি রিসেন্টলি পাইথন ৩ এর জন্য আপডেট করা হচ্ছে ।
এ্যাডভান্সড টপিক শেখার জন্য “Pro Python” এবং “Fluent Python” চমৎকার ।
পাইথন শেখার জন্য বাংলা বইয়ের সন্ধান পাওয়া যাবে এই ডকুমেন্ট এ – http://bit.ly/2AWRZUA

কোথায়, কিভাবে কোড লিখে প্র্যাক্টিস করবো?

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

আটকে গেলে বা সমস্যায় পড়লে কি করবো?

স্ট্যাক ওভারফ্লো বা এই গ্রুপে পোস্ট করবেন । পোস্ট করার সময় যত বেশী ডিটেইলস দেওয়া যায় তত ভালো । যিনি আপনার পোস্ট পড়বেন উনার মাইন্ড রিডিং সুপার পাওয়ার নেই । তাই উনাকে বোঝানোর জন্য আপনি কি করতে চেয়েছেন, কি কোড লিখেছেন, কি আউটপুট এসেছে, আপনি কি চেয়েছিলেন – বিস্তারিত উল্লেখ করুন । নাহলে সাহায্য পাওয়ার সম্ভাবনা কম । সেই সাথে মাথায় রাখুন যারা উত্তর দিবে তারা আপনার সমস্যার উত্তর দিতে বাধ্য নয় । কেউ সাহায্য করলে ধন্যবাদ দিন, কৃতজ্ঞতা জ্ঞাপন করুন । কেউ উত্তর দিতে দেরী করলে বা কোন উত্তর না পেলে অপেক্ষা করুন, ধৈর্য্য ধরুন । রাগ বা ক্ষোভ দেখালে কেউ এসে দ্রুত সমাধান দিবে না বরং উল্টোটা ঘটার সম্ভাবনা বেশী ।
কোড সরাসরি ফেইসবুকে পোস্ট করবেন না । পাইথনে ইন্ডেন্টেশন টা জরুরী, ফেইসবুক হোয়াইট স্পেইস রিমুভ করে ফেলে তাই ফেইসবুকে সরাসরি পোস্ট করলে কোড পড়া খুবই মুশকিল । কোড এর স্ক্রীনশটও দিবেন না, তাহলে যিনি উত্তর দিবেন, উনি কপি পেস্ট করে নিজে রান করে দেখতে পারবেন না । কোড শেয়ার করার জন্য pastie.org, gist.github.com, pastebin.com এর মত সাইট ব্যবহার করুন ।

পছন্দের ট্র্যাক নির্বাচন করা

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

পলিগ্লট ডেভেলপার হওয়া

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

জব মার্কেট ও চাকরির সন্ধান

দেশের ভিতরে ও বাইরে পাইথনের জব মার্কেট ভালো । ইদানীং বাংলাদেশে অনেক কোম্পানিই পাইথন ব্যবহার করা শুরু করেছে । তবে বেশীরভাগ ক্ষেত্রেই শুধু পাইথন শিখে জব পাওয়া যাবে না । ডাটা স্ট্রাকচার ও এ্যালগরিদমের ভালো জ্ঞান থাকতে হবে । সফটওয়্যার ডেভেলপমেন্ট এর সাথে রিলেটেড নানা টুল (যেমন: ভার্সন কন্ট্রোল) ও টেকনিক (যেমন: ইউনিট টেস্টিং বা কন্টিনিউয়াস ডেপ্লয়মেন্ট) শিখতে হবে । অনেক কোম্পানিই নির্দিষ্ট কোন ফ্রেমওয়ার্কের অভিজ্ঞতা চাইবে । একজন ভালো প্রফেশনাল ডেভেলপার হওয়া সময় সাপেক্ষ ব্যাপার । সময় নিয়ে ধীরে ধীরে নিজেকে প্রস্তত করতে হবে । ৩ মাসে কিংবা ২১ দিনে পাইথন শিখে চাকরি পাওয়া যাবে না । তাই পাইথন (বা অন্য কোন ল্যাঙ্গুয়েজ) শেখার আগেই জব মার্কেট নিয়ে চিন্তা ভাবনা করা মানে গাছে কাঠাল পাকার আগেই গোফে তেল দেওয়া ।
ABU ASHRAF MASNUN
Advertisements

মন্তব্য

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s