কম্পিটিটিভ প্রোগ্রামিং অনেকটা জিমে যাওয়ার মত… 💪🏼
জিমে মানুষ কেন যায়? অনেকে বলবে বডি বিল্ড করার জন্য। কিন্তু প্রয়োজনের অতিরিক্ত মাস্কুলার শরীর নিয়ে লাইফে কোন প্র্যাকটিকাল ফায়দা আছে? প্রশ্ন থাকল। হয়ত সাময়িকভাবে নারীদের পটানো একটা লক্ষ্য হতে পারে। তবে সেটাও সবাই পছন্দ করে না।
জিমে যাওয়ার আসল লক্ষ্য হচ্ছে নিজের শরীর ফিট রাখা। শো-অফ করা না।
ঠিক তেমনি, নিয়মিত প্রোগ্রামিং কন্টেস্ট করা মানে হচ্ছে ব্রেইন চর্চা করা। রেগুলার প্রবলেম সল্ভিং করলে ব্রেইন শার্প থাকে। ব্রেইন শার্প থাকলে যে কোন প্রবলেম এর সমাধান খুব তাড়াতাড়ি মাথায় চলে আসে। তবে একটা সময় পরে, বিশেষ করে কর্মক্ষেত্রে ঢুকলে প্রয়োজনের অতিরিক্ত প্রবলেম সল্ভিং করার দরকার পরে না। কন্টেস্ট প্রোগ্রামিং করার সময় টপ প্রায়োরিটি থাকে টাইম আর স্পেস কমপ্লেক্সিটি। সেটা অ্যাচিভ করতে গিয়ে বেশীর ভাগ সময়ই কোডের রিডেবিলিটি আর মেইন্টেনেন্স তত ভাল হয় না। অনলাইন জাজে একবার কোড অ্যাক্সেপ্ট হয়ে গেলে সেই কোডের সাধারণত আর কোন ইম্প্রুভমেন্ট হয় না।
কিন্তু সফটওয়্যার ইঞ্জিনিয়ারিং জবে টপ প্রায়োরিটি থাকে কোডের রিডেবিলিটি আর মেইন্টেনেন্স। যাতে নতুন নতুন বিজনেজ ফিচার আসলে খুব সহজেই সেটা ইমপ্লেমেন্ট করা যায়। টীমের সবাই যাতে খুব সহজেই প্রোজেক্টে কন্ট্রিবিউট করতে পারে। রিয়েল লাইফ প্রোজেক্টে পারফর্মেন্স অবশ্যই একটা বড় ফ্যাক্টর। তবে বিটওয়াইজ অপারেটর অথবা ট্রাই ডাটা স্ট্রাকচার সহ আরও অন্যান্য ফ্যান্সি অ্যালগরিদমের তেমন ব্যাবহার হয়ই না। কোড যত সিম্পল আর রিডেবল রাখা যায়, টীমের জন্য ততই মঙ্গল।
আপনি চাইলে ফ্যান্সি ভাবে কোড লিখতে পারেন অথবা অনেক জটিলভাবে সিস্টেম ডিজাইন করতে পারেন। কিন্তু আপনার কোড বা বানানো সিস্টেম বেশী কমপ্লেক্স হয়ে গেলে দেখবেন টীমের অনেকেই কোড পড়ে তেমন কিছু বুঝতেছে না। তার মানে আপনার সিস্টেমে সহজভাবে নতুন কোন ফিচার ইমপ্লেমেন্ট করা যাচ্ছে না। ঠিক যেমন জিম করে প্রয়োজনের অতিরিক্ত পেশী বানিয়ে ফেললে শরীরের মুভমেন্ট করার ফেলিক্সিবিলিটি কমে যায়। আপনি চাইলে খুব কমপ্লেক্স কোড লিখে শো-অফ করতে পারেন। কিন্তু বেশীরভাগ ক্ষেত্রেই ওই কমপ্লেক্স কোডের কোন প্র্যাক্টিকাল ফায়দা নেই।
তাহলে কতটুকু প্রবলেম সল্ভিং বা স্পোর্টস প্রোগ্রামিং করতে হবে? উত্তর হচ্ছে জিমের মত। জিমে গিয়ে আপনি যেমন ওয়েইট লিফটিং, রানিং ও অন্যান্য বডি মুভমেন্ট করেন। কিন্তু জিম থেকে বের হলে রাস্তায় হাঁটার সময়, খাবার সময়, কারো সাথে দেখা করার সময় জিমের সেই মুভেমেন্টগুলো করেন না। ঠিক তেমনি, প্রবলেম সল্ভিংটাকে শুধুই ব্রেইনের ট্রেইনিং হিসেবে নেয়া উচিৎ। স্পোর্টস প্রোগ্রামিং এ করা কোড আর প্রোডাকশনে শিপ হওয়া কোডে আকাশ পাতাল তফাৎ।
ঘুরে ফিরে মন্ত্র একটাইঃ “কঠিন প্রশিক্ষণ, সহজ লড়াই!”