12/08/2021
পাইথন শেখার সবচেয়ে সহজ উপায় কী?
যেকোন জিনিস — সেটা পাইথন হোক আর ম্যারাথন হোক, সেটা শেখার ক্ষেত্রে; সেটাতে ভালো করতে হলে প্রথমেই কয়েকটা জিনিস মাথায় রাখতে হবে —
১. দৃঢ়প্রতিজ্ঞ হও
যেকোন জিনিস শুরু করার আগে দৃঢ়প্রতিজ্ঞ হওয়া অনেক অনেক গুরুত্বপূর্ণ। নচেৎ দুইদিন গেলে হয়তো কোড মিলবে না বা অন্য কেউ অন্য কিছু বলবে। কিংবা পিঠে চুলকানি আসবে। ফোনে নোটিফিকেশন আসবে। তখন আর খুঁজে পাওয়া যাবে না। তাই সবার আগে ডিটারমাইন্ড হতে হবে।
২. টার্গেট সেট করো
কেন শিখছি সেটা নিজের কাছে পরিষ্কার থাকতে হবে। একটা নির্দিষ্ট টার্গেট থাকতে হবে। কবের মধ্যে শেষ করবো, কতটুকু শেষ করবো, প্রতিদিন কতটুকু সময় দেবো — সেই টাইমলাইন সেট করা থাকতে হবে। প্রতিদিন ন্যূনতম ৩ ঘন্টা। সম্ভব হলে ৫ ঘন্টা টাইম দেয়ার প্রতিজ্ঞা করতে হবে।
৩. কোথা থেকে শিখবে
একটা নির্দিষ্ট জায়গা খুঁজে বের করে ফেলো। সেটা হতে পারে ইউটিউব ভিডিও প্লেলিস্ট বা কোন ওয়েব সাইট অথবা একটা মোবাইল অ্যাপ। সেটা যেটাই হোক না কেন, শুরু করার আগে একটু ঘেঁটেঘুঁটে দেখো সেখানে বিস্তারিত জিনিস আছে কিনা —আউটলাইনটা ভালো কিনা আর একটু কমপ্লিট কমপ্লিট মনে হচ্ছে কিনা।
৪. হেল্প পাওয়ার জায়গা
কোড করতে গেলে তুমি আটকে যাবেই। সুতরাং আগেই একটা জায়গা খুঁজে বের করে ফেলো। সেটা হতে পারে stackoverflow কিংবা কোন ফেইসবুক গ্রূপ কিংবা whatsapp গ্রূপ বা discord সার্ভার। তবে সেটা যেটাই হোক না কেন। তেমন একটা জায়গা তোমার লাগবে।
৫. জাস্ট শুরু করে দাও
খুব বেশি প্ল্যান করতে যাবে না। বেশি চিন্তা করতে যাবে না। কত লাভ হবে, কত লস হবে, চাকরি পাবো কিনা, মার্কেট ডিমান্ড কি হবে, মামা-চাচা-খালু কানেকশন একটিভ কিনা — এতো কিছু চিন্তা করতে যাবে না। জাস্ট শুরু করে দাও। বাকি সব ফরফর করে চলতে থাকবে।
এখন কথা হচ্ছে পাইথন শিখবে কোথা থেকে।
১. মোবাইল অ্যাপ: তুমি যদি মোবাইল অ্যাপ থেকে শিখতে চাও, আমার প্রথম সাজেশন হচ্ছে প্রোগ্রামিং হিরো। সেখানে তুমি একটা গেম বানাতে বানাতে একটু একটু করে শিখতে পারবে। এছাড়াও তুমি আটকে গেলে সেখানে ফোরামে প্রশ্ন করতে পারবে। এবং কোর্স শেষে সার্টিফিকেট পাবে।
২. ওয়েবসাইট: তুমি যদি ওয়েবসাইট থেকে শিখতে চাও, সেক্ষেত্রে আমার সাজেশন হচ্ছে datacamp. ওদের কোর্স ভালো এবং গুছিয়ে সুন্দর করে দেওয়া আছে।
৩. আর যদি ইউটিউব থেকে শিখতে চাও, বেশ কিছু কোর্স আছে —তবে সেক্ষেত্রে আমার সাজেশন হচ্ছে এই প্লেলিস্ট। [Please see comment box]
লাস্ট প্রশ্ন হচ্ছে কি কি জিনিস শিখবো।
১. বেসিক কনসেপ্ট
প্রথমেই শুরু করবে বেসিক কনসেপ্ট দিয়ে। তাই ভেরিয়েবল, কন্ডিশন, লুপ, লিস্ট, ফাংশন শিখবে।
২. প্রবলেম সলভিং
বেসিক কনসেপ্ট দিয়ে কিছু প্রোগ্রামিংয়ের সমস্যা সমাধান করার চেষ্টা করবে। তাহলে তুমি বুঝতে পারবে কোন জায়গায় প্রোগ্রামিংয়ের কোন ধারণা কিভাবে কাজে লাগাতে হয়। এতে একই জিনিস বিভিন্নভাবে করার সিস্টেমটা তোমার কাছে খোলসা হবে।
৩. ডাটা স্ট্রাকচার
এর পর ধরবে ডাটা স্ট্রাকচার। এই ডাটা স্ট্রাকচারের মধ্যে স্ট্যাক, কিউ, লিংকডলিস্ট, ট্রি, ডিকশনারি, ম্যাপ সম্পর্কে কিছু ধারণা তোমাকে নিতেই হবে।
৪. অ্যালগোরিদম
অ্যালগোরিদম সম্পর্কে ধারণা না নিলে তুমি পরিপূর্ন প্রোগ্রামার হয়ে উঠতে পারবে না। সেজন্য তোমাকে অন্তত ২ টা সার্চ অ্যালগোরিদম আর ৫ টা সর্টিং অ্যালগোরিদম সম্পর্কে জানতেই হবে। নিজে নিজে কোড করতে পারতে হবে। আর এছাড়াও 'টাইম কমপ্লেক্সিটি' সম্পর্কে ধারণা নিতেই হবে।
৫. অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং
এইটা খুবই গুরুত্বপূর্ণ একটা ধাপ। এই ধাপে অবজেক্ট কি, ক্লাস কি, কন্সট্রাক্টর, মেথড সম্পর্কে জানবে। এছাড়াও OOP এর কিছু ফান্ডামেন্টাল জিনিস আছে —যেমন ইনহেরিটেন্স, পলিমরফিজম, এনক্যাপ্সুলেশন — এগুলোর কনসেপ্ট পরিষ্কার থাকতে হবে। কিভাবে কোন একটা প্রজেক্টে এই ধারণাগুলো ব্যবহার করবে সেগুলো জানতে হবে।
৬. প্রোজেক্ট
তোমাকে বেশ কয়েকটা প্রজেক্ট করতে হবে। প্রজেক্ট করতে পারলে তোমার পাইথন সম্পর্কে ধারণা পরিষ্কার হয়ে যাবে। কিছু পাইথন লাইব্রেরি ব্যবহার করতে জানতে হবে — জানতে হবে সেগুলো দিয়ে কী কী হয়। কিছু চার্ট ড্র করা বা ডাটা হ্যান্ডেল করা বিষয়ক প্রোজেক্ট করার চেষ্টা করো।
৭. ডাটাবেজ
মিনিমাম জানতে হবে কিভাবে ডাটা কন্ট্রোল করতে হয়। কিভাবে স্টোর করতে হয়। কিভাবে প্রয়োজনে সেই ডাটা বের করে নিয়ে আসতে হয়। কিভাবে অর্গানাইজ করতে হয় ডাটা কোন একটা প্রজেক্টের জন্য।