সহজ ভাষায় পাইথন ৩ প্রোগ্রামিং একটি শৈল্পিক ব্যাপার, বিনোদনের অপর নাম। কিন্তু আমাদের দেশে প্রোগ্রামিংকে চিরতার মত তিক্ত করে তোলা হয়েছে। বিনোদনবিহীন একাডেমিক জীবন ও সিনট্যাক্সের গ্যারাকলে পড়ে নতুনদের অনেকেই প্রোগ্রামিং থেকে দূরে সরে যাচ্ছে। সেদিক থেকে বিবেচনা করলে, পাইথন বিগিনার ফ্রেন্ডলি ল্যাঙ্গুয়েজ। এটাকে এমনভাবে ডিজাইন করা হয়েছে যেন পাইথনে লেখা কোড সহজে বোঝা যায়। তাই পাইথন খুবই সহজবোধ্য প্রোগ্রামিং ল্যাঙ্গুয়েজ। পাইথন কোড পড়া আর ইংরেজি পড়া একই জিনিস। মনেই হয় না যে এটা কোনো প্রোগ্রামিং ল্যাঙ্গুয়েজ। সে জন্য পাইথনে কোড লেখা বিনোদনেরই অপর নাম। একটা কাজের সাথে যখন বিনোদন যোগ হয়, তখন সেই কাজটা আমাদের মস্তিষ্ক অনেক দ্রুত গ্রহণ করতে পারে। তাহলে আর ভয় কী? পাইথন দিয়ে প্রোগ্রামিং শেখা শুরু হোক নতুন উদ্যমে।
বইটির নামকরণ প্রসঙ্গে অনেকের কাছেই মনে হতে পারে বইটি হয়ত 'সহজ ভাষায় পাইথন' সিরিজের তৃতীয় বই। আসলে ব্যাপারটা তা নয়। খোলা বাজারে পাইথনের মেজর দুইটা ভার্সন পাওয়া যায় – পাইথন-২, পাইথন-৩। ভার্সন দুইটার ভিতরে মেজর পার্থক্য যথসামান্য। কিন্তু দুঃখের বিষয় হল, আসছে ২০২০ সালে পাইথন-২ এর জীবনাবসান ঘটবে। সুতরাং পাইথন-৩ হল পাইথনের বর্তমান ও ভবিষ্যত। এখন কেউ পাইথন শেখা শুরু করলে তার জন্য বুদ্ধিমানের কাজ হবে পাইথন-৩ শেখা। আর এই বইটি পাইথন-৩ এর উপর লেখা বলে এর নামকরণ করা হয়েছে 'সহজ ভাষায় পাইথন ৩'। “Python 2.x is legacy, Python 3.x is the present and future of the language.”
বইটি কাদের জন্য? • আমরা যারা প্রোগ্রামিংয়ের 'প'ও পারি না, কিন্তু শিখতে চাই। • আমরা যারা নিশ্চিত হয়ে গেছি এই ইহকালে আর যাই হোক প্রোগ্রামিংটা শেখা সম্ভব না। • আমরা যারা প্রোগ্রামিং পারি, কিন্তু পাইথন ল্যাঙ্গুয়েজটা পারি না। • আমরা যারা পাইথন শিখতে চাই। • আমরা যারা পাইথন-২ পারি, কিন্তু পাইথন-৩-এ মাইগ্রেট হতে চাই।
বইটি কাদের জন্য নয়? • আমরা যারা কম্পিউটারের মৌলিক ব্যবহার জানি না। • আমরা যারা পাইথন-৩ নয়, পাইথন-২ শিখতে চাই। • আমরা যারা ইতিমধ্যেই পাইথন-৩-এর সবকিছুই পারি।
বইটি কীভাবে ব্যবহার করতে হবে? • বইটি পড়ার সময় প্রতিটি টপিক বুঝে পড়তে হবে, মুখস্থ করার দরকার নেই। • বইটির চ্যাপ্টারগুলো এলোমেলোভাবে না পড়ে ধারাবাহিকভাবে পড়তে হবে। কারণ বোঝার সুবিধার জন্য অনেক বিষয় প্রথম দিকে আলোচনা না করে পরবর্তী সময়ে বিস্তারিতভাবে বোঝানো হয়েছে। • প্রোগ্রামিং হলো হাতেকলমে করার জিনিস। তাই প্রতিটি উদাহরণ দেখার পাশাপাশি নিজে নিজে রান করে দেখতে হবে। • প্রোগ্রামিং হলো চর্চা করার জিনিস। তাই প্রতিটি টপিকে দেওয়া সমস্যাগুলো নিজে নিজে অনুশীলন করতে হবে।
লেখকের কথা এই বইয়ের সূত্রপাত গত বছরের সেপ্টেম্বর মাসের শেষের দিকে। আদর্শ থেকে খাইরুল ইসলাম (পলাশ) ভাই আমার সাথে ক্ষুদে বার্তায় যোগাযোগ করে বলেন, ‘আসছে বইমেলায় আমরা আপনার একটি বই প্রকাশ করতে চাই।’ আমি একটু দ্বিধায় পড়ে গেলাম। কারণ বইমেলার তখন চার মাস বাকি। আর প্রকাশনীকে এক মাস সময় দিলে বই লেখার জন্য মাত্র তিন মাস সময় পাওয়া যাবে। তিন মাসে একটা বই লেখা ভয়ানক কঠিন ব্যাপার। এ রকম দ্বিধাদ্বন্দ্বের ভেতরেই অক্টোবর মাস থেকে গিটবুকে পাইথনের ওপর একটা ‘অনলাইন বই’ লেখা শুরু করি। বেশ কয়েকটা চ্যাপ্টার লেখা হয়ে গেলে বইয়ের ড্রাফট ভার্সন python.maateen.me-তে পাবলিশ করি। তখন পর্যন্ত ব্যক্তিগতভাবে বই ছাপানোর কোনো ইচ্ছা আমার ছিল না। আমার শুধু একটাই উদ্দেশ্য ছিল— পাইথনকে সহজ-সরল ও বিনোদনমূলক করে মানুষের কাছে তুলে ধরা। কীভাবে যেন অনলাইন বইটা রাতারাতি জনপ্রিয় হয়ে গেল। অনেক গুণী মানুষ বইয়ের মানোন্নয়নের জন্য খুদে বার্তা ও ই-মেইলে বিভিন্ন পরামর্শ দিলেন। পাঠকদের অনেকেই হার্ডকপি বের করার জন্য অনুরোধ করতে লাগলেন। তামিম শাহরিয়ার সুবিন ভাইও পরামর্শ দিলেন বইটা প্রকাশ করার জন্য; যাতে বইয়ের কপিরাইট বিপর্যয়ের মুখে না পড়ে। অবশেষে শুভাকাঙ্ক্ষীদের অনুরোধ উপেক্ষা করতে না পেরে ডিসেম্বরের শেষে আদর্শর কাছে পাণ্ডুলিপি হস্তান্তর করি। একটি বই লেখা সহজ কাজ নয়। নিজের ব্লগে বা ফেসবুক টাইমলাইনে যা খুশি তা-ই লেখা যায়, কিন্তু বইয়ে প্রতিটি শব্দ ভেবেচিন্তে লিখতে হয়। জানি না, আমি কতটুকু পেরেছি। অতি স্বল্প সময়ে হয়তো সবকিছু সেভাবে গুছিয়েও লিখতে পারিনি। সম্পাদনার সময়ে অনেক ভুলত্রুটি পরিমার্জন করা হলেও এখনো কিছু ত্রুটি থেকে যেতে পারে। তবে এসব ভুলত্রুটির দায়ভার সম্পাদক ও প্রকাশকের। তারপরও আশা করি পাঠক এগুলো ক্ষমাসুন্দর দৃষ্টিতে দেখবেন। বইটি পড়ে যদি একজন মানুষও উপকৃত হয়, তবে তার ক্রেডিট কাকে দেব সেটাই ভাবছি। মাকসুদুর রহমান মাটিন ২০ জানুয়ারি, ২০১৭
বইটির সূচীপত্র • শুরুর আগে • প্রথম পাইথন প্রোগ্রাম • ভ্যারিয়েবল, ডাটা টাইপ ও ডাটা ইনপুট • অপারেটর • কমেন্ট • স্ট্রিং ম্যানিপুলেশন • লিস্ট • টাপল • সেট • ডিকশনারি • কন্ডিশনাল লজিক • লুপ • কম্প্রিহেনশন • ফাংশন • ফাইল • এরর হ্যান্ডলিং • ক্লাস, অবজেক্ট এবং মেথড • ইনহেরিট্যান্স • ইটারেটর ও জেনারেটর • ম্যাজিক মেথড • মডিউল এবং প্যাকেজ • ডেকোরেটর • রেগুলার এক্সপ্রেশন • ইউনিট টেস্টিং • ডিবাগিং ও লগিং • কনভেনশন • সিস্টেম মডিউল • অপারেটিং সিস্টেম মডিউল • সাবপ্রসেস মডিউল • ডেটটাইম ও টাইম মডিউল • ভার্চুয়াল এনভায়রনমেন্ট • বেঞ্চমার্কিং • ডেটা স্ট্রাকচার ও অ্যালগরিদম • ওয়েব প্রোগ্রামিং • গুই প্রোগ্রামিং • সহায়কগ্রন্থ
বইটি সম্পর্কে মুনির হাসান যা বললেন এই লেখাটি যখন লিখছি তখন আমার পাশের টেবিলে চা খাচ্ছে আমার ছেলে। ও মোটামুটি পাইথন পারে। ওর স্কুলে ও একটা পাইথন ক্লাব চালায়। কথা বলতে বলতে বললো- পাইথনটা শিখে ফেলা কিন্তু খুবই সহজ। কাজের শুরুতে যদি পাইথন শেলকে ক্যালকুলেটর হিসাবে ব্যবহার করা যায়, তাহলে শুরু থেকে একটা মজার অনুভূতি থাকে। সেটি পুরোটা সময় জুড়েই থাকে। অর্থাৎ প্রতিটি ধারণা ও নিয়মকানুন জানার সঙ্গে সঙ্গে তা হাতে কলমে করে দেখার পদ্ধতি মাটিন বাতলে দিয়েছে। এ হচ্ছে লার্নিং বাই ডুইং। এই বইতে ধারাবাহিকভাবে আলোচনা করা হয়েছে পাইথনের ভিত্তি তথা মূল সিনট্যাক্স এবং পর্যায়ক্রমে লজিক, ফাংশন, ক্লাস, অবজেক্ট ইত্যাদি। কিছুটা ডেটা স্ট্রাকচার ও এলগরিদমও আলোচনা হয়েছে। মনে রাখা দরকার, কেবল ওয়েব প্রোগ্রামিং-এ নয় ডেটা সায়েন্স, ডীপ লার্নিং-এর মতো জায়গাতেও পাইথনের ব্যবহার বাড়ছে। কাজে যারা প্রোগ্রামিং আর পাইথন শিখতে আগ্রহী তাদের সবারই কাজে লাগবে এই বই। মুনির হাসান জেনারেল সেক্রেটারি, ম্যাথ অলিম্পিয়াড কোর্ডিনেটর, ইয়ুথ প্রোগ্রাম, প্রথম আলো
Maksudur Rahman Maateen মাকসুদুর রহমান মাটিন মুক্ত সফটওয়্যার আন্দোলনের একজন অতি উৎসাহী কর্মী। প্রায় ছয় বছর ধরে সাধ্যানুযায়ী সেবা দিয়ে যাচ্ছেন দেশীয় ওপেনসোর্স কমিউনিটিকে। কলেজ জীবনে যুক্ত ছিলেন বাংলাদেশ ওপেনসোর্স নেটওয়ার্ক (বিডিওএসএন)-এর সঙ্গে। এক সময় কন্ট্রিবিউট করেছেন মজিলা ফাউন্ডেশনের বিভিন্ন প্রজেক্টে। বর্তমানে পাইথন প্রোগ্রামিংকে আমাদের দেশের মানুষের কাছে জনপ্রিয় করে তোলার জন্য নিরন্তর কাজ করে যাচ্ছেন। দিনের বেশিরভাগ সময় ব্যয় করেন প্রোগ্রামিংয়ের পেছনে। অবদান রাখছেন বিভিন্ন জনপ্রিয় ওপেনসোর্স প্রজেক্টে। পাশাপাশি চলছে অণুগল্প, কবিতা ও প্রযুক্তি বিষয়ক লেখালেখি। অনারারি টেকনিকাল কো-অর্ডিনেটর হিসেবে যুক্ত হয়েছেন জাতীয় পুরস্কার প্রাপ্ত প্রোগ্রামিং কন্টেস্ট হোস্টিং প্লাটফর্ম কোডারজওয়্যারের সাথে। বর্তমানে এক্সনহোস্ট এলএলসি-তে লেভেল-টু সিস্টেম ইঞ্জিনিয়ার হিসেবে কর্মরত রয়েছেন। অবসর সময়ে বইপড়া, গরুর দুধের চা খাওয়া ও বিভিন্ন স্তরের মানুষের জীবন-দর্শন গভীরভাবে পর্যবেক্ষণ করা তার শখ।