আমি যদি কম্পিউটারের প্রোগ্রামিং শুরু করে থাকেন এবং লজিক Build কিভাবে করবেন সেটা জানেন না, বা চেষ্টা করার পরে আপনি লজিক বিল্ড করতে পারছেন না, তাহলে এই পোস্ট আপনার জন্য |
প্রতিটা জিনিস শেখার এবং করার জন্য একটা স্টেপ বাই স্টেপ প্রসেস থাকে আমাদের সমস্যা হচ্ছে যা আমরা প্রথম দিকে যখন শেখা শুরু করি তখন আমরা একদিন অনেক কিছু জিনিস চাই বা Tutorial ভিডিও আমরা অনেক দূর টেনে টেনে দেখার চেষ্টা করি বা একবারেই একজন প্রো লেভেলে coder হয়ে যাব চেষ্টা করি .. এটা কি আসলেই পসিবল ? উত্তর হলো না |
এই কাজের জন্য পরবর্তীতে যে সমস্যাটা হয় সেটা হলো যে যখন আপনি ভিডিও ফলো করে প্রোগ্রামিং বা কোডিং করতে যাবেন বা প্রবলেম সলভ করতে যাবেন, তখন আপনি অনেক সহজে করতে পারবেন | কিন্তু যখন আপনি নিজে থেকে বিল্ড লজিক বিল্ড করার চেষ্টা করবেন তখন দেখবেন যে আপনার ব্রেইন আপনার কাজে সাহায্য করছে না, তখন আপনার মাথার মধ্যে চিনতে আসবে যে, আমি কি আসলে লজিক বিল্ড করতে পারতেছিনা ? আমাকে দিয়ে কি প্রবলেম সলভিং হবে না ? প্রোগ্রামিং এ ভয় আপনাকে পেয়ে বসবে... আপনি সিপি করা ছেড়ে দিবেন |
প্রোগ্রামিং নিয়ে মোটামুটি আমি একটা সিরিজ লিখেছি ফেসবুক এ যেখানে আমি বলেছি যে প্রোগ্রামিং কিভাবে আপনি শুরু করবেন, আপনি কম্পিটিটিভ প্রোগ্রামিং কিভাবে করবেন এবং সি পাইথন থেকে শুরু করে ডাটা স্ট্রাকচারের অ্যালগরিদম নিয়ে আমি অনেক কথা বলেছি | আপনার পোস্টগুলো কিন্তু পড়বেন অবশ্যই আমি মনে করি |
তো আসেন কথা না বাড়িয়ে কিভাবে আপনি লজিক্যাল থিঙ্কিং করবেন সেটা একটা স্টেপ বাই স্টেপ গাইডলাইন আমি আপনাদের এখন দিয়ে দেবো এবং আমার মনে হয় যেটা প্রসেসটা আপনি যদি ফলো করেন তাহলে আপনার উপকার হবে |
Step 1: মাইন্ডসেট : জার্নি শুরু করার আগে মাইন্ডসেট ব্যাপারটা অনেক জরুরী কারণ পুরো জার্নিতে আপনার মাথার মধ্যে এটা বারবার আসবে যে প্রোগ্রামিং আমার জন্য না আমাকে দিয়ে হবে না | তাই মাইন্ডসেট স্ট্রং করে নেন |
Step 2 Learn a Programming Language : আপনাকে অবশ্যই একটা প্রোগ্রামিং ল্যাঙ্গুয়েজ ভালো করে শিখতে হবে এবং সেটার জন্য আমি সবসময় সাজেস্ট করেছি C/C++ . এ দুটোই অনেক পুরাতন প্রোগ্রামিং ল্যাঙ্গুয়েজ কিন্তু আমার মনে হয় যদি সিনটেক্স এবং বেসিক কনসেপ্ট অনেক ভালো করে বুঝতে চান তাহলে এই দুটো প্রোগ্রামিং ল্যাঙ্গুয়েজের কোন জুড়ি নাই | আপনি যদি ভালো করে নাই জানান যে একটা প্রোগ্রামিং এর ভিতরে সেটা কিভাবে কাজ করতেছে, সেটা Compile স্টেপ বাই স্টেপ ডিটেলস যদি আপনি না বুঝেন তাহলে আপনি কিভাবে লজিক make করবেন ?
আমি জানি অনেকে java এবং Python কথা বলবেন আমি এটা বিরোধী না বাট আমার মনে হয় যে জাভা দিয়ে শুরু করাটা অনেকখানি কঠিন হবে আপনাদের জন্য, Python Easy. কিন্তু জাভা মানে কিন্তু জাভায এটার অনেক ডিমান্ড |
Step 3 Understand Data Structures and Algorithms: এটা খুবই গুরুত্বপূর্ণ প্রবলেম সলভিং এর জন্য | আমি এটা নিয়ে পুরোপুরি একটা পোস্ট লিখেছি, গাইডলাইন গুলো ফলো করার চেষ্টা করেন |
Step 4: Solve Basic Problems: প্রথমদিকে বেসিক প্রবলেম গুলো সলভ করার চেষ্টা করেন যেগুলো আমরা বিভিন্ন প্রোগ্রামিং প্রবলেম ওয়েবসাইটে Like LeetCode, Codeforces, or HackerRank মধ্যে পেয়ে থাকি |
Step 5 Analyze Existing Code: বিভিন্ন প্রবলেম সলভিং ওয়েবসাইটের কিন্তু কমিউনিটি ট্যাব থাকে সেখানে এক্সপেরিয়েন্স প্রোগ্রামাররা নিজেদের প্রোগ্রাম বা কোডগুলো শেয়ার করে | তাদের কোডগুলো পড়েন, বোঝার চেষ্টা করেন যে আপনার কোডটা ভালো না তার কোডটা বেশি এফিশিয়েন্ট | Github যে ওপেন সোর্স প্রজেক্ট গুলো আছে সেগুলো কোড পড়ার চেষ্টা করো |
Step 6 Break Down Problems: যখন এরকম কোন লজিক বা এরকম কোন প্রোগ্রাম সামনে আসবে যেটা কিছুতেই মাথার মধ্যে সলভ করা যাচ্ছে না তখন খাতা নিয়ে ওটাকে সলভ করার চেষ্টা করতে হবে | সেটাকে ছোট ছোট টুকরা বা ছোট ছোট অংশে বিভক্ত করে ভাবতে হবে যে কিভাবে আমি টুকরোগুলো একসাথে করতে পারি, কোনভাবে করলে আমার প্রোগ্রামটা খুব অল্প সময়ের মধ্যে রান হয়ে যাবে |
Step 7 Use Pseudocode: ক্লাস নাইনের আইসিটি বইয়ে কিন্তু এটা নিয়ে পুরোপুরি একটা চ্যাপ্টার ছিল অনেকেই এই ব্যাপারটাকে মাথায় রাখে না কিন্তু সত্যি কথা এটা আসলেই আপনাকে লজিক্যাল থিঙ্কিং এবং ভিজুয়ালাইজেশন করতে গুরুত্বপূর্ণ সাহায্য করবে |
Step 8 Practice Regularly: উপরের সবগুলো আপনি কমপ্লিট করতে পারলে, এই স্টেপটা আপনাকে পূরণ করতে অনেক কষ্ট করতে হবে | প্রতিদিন আপনাকে একটা সময় বের করে প্রবলেম সলভিং এর প্র্যাকটিস করতে হবে | এই জিনিসটা যদি করতে পারেন তাহলে অটোমেটিকলি আপনার ব্রেন কিন্তু একটিভ হয়ে যাবে |
Step 9 Debug and Optimize: বলা হয় প্রোগ্রামিং লাইফে গার্লফ্রেন্ড না থাকলেও Bug থাকে অবশ্যই | তাই আপনার প্রোগ্রামিং এর ইরর গুলো সলভ করতে হবে, একটা জিনিস আমি বলবো ইউজ ChatGPT, অনেক টাইম বেঁচে যাবে আমি এটার উপরে একটা ইউটিউব ভিডিও নিয়ে আসব খুব দ্রুত |
Step 10 Read Books and Take Courses: অনেকগুলো অনলাইন এবং অফলাইন প্ল্যাটফর্ম রয়েছে যারা কোর্স এবং বই প্রোভাইড করে থাকে অবশ্যই তাদের গুলা আপনার নেওয়া উচিত |
Step 11: Compete in Coding Contests: বিভিন্ন অনলাইন এবং অফলাইন কোডিং কম্পিটিশন হয় সেগুলোতে পার্টিসিপেট করান | দেখেন যে অন্য প্রোগ্রামাররা কিভাবে প্রবলেম সলভ করতেছে আপনার প্রবলেম কেন আপনার সলভ করতে পারলেন না, আপনি কি কি ভুল ছিল |
Step 12 Learn Math: ম্যাথ কে ব্রেন এক্সারসাইজ বলা হয় এটা করলে হবে কি যা আপনার ব্রেন মাল্টিপল ওয়েতে চিন্তা করা শিখা যাবে |
যাহোক মোটামুটি গাইডলাইন আমি আপনাদের দিয়ে দিলাম স্টেপ বাই স্টেপ কাজ আপনাদের করে যেতে হবে আস্তে আস্তে ফোকাস করেন, সময় দেন হয়ে যাবে এতটাও কঠিন না, এতটাও কঠিন হলে অন্য মানুষরা কিভাবে করতেছে ? ওই মানুষদের সাথে যোগাযোগ করার চেষ্টা করেন বা ওই সমস্ত মানুষের সাথে থাকেন যারা আসলে এগুলো বিষয়ে Expart | আড্ডাবাজি করে, ফাঁকিবাজি করে সময় কাটালে নিজের দিন শেষ বাকি হয়ে যাবেন ... Good Luck
কোন প্রশ্ন থাকলে আমার ইনবক্সে নক দিতে পারেন