Saturday, March 5, 2016

Programming Interview - Sheikh Moinul Hasan


এইটা প্রোগ্রামিং ইন্টাভিউ সিরিজের দ্বিতীয় লিখা , আজকের অতিথি বুয়েটের পরিচিত মুখ মইনুল । যারা নতুন নতুন প্রোগ্রামিং স্টার্ট করতেছে , কনটেস্ট এ আগ্রহী হচ্ছে তাদের অনেক উপকারে আসবে আশা রাখি :)
প্রশ্নঃ 
 প্রোগ্রামিং প্রোগ্রামিং কনটেস্ট এর ব্যাপারে কিভাবে জানছ প্রথমে ?
-- প্রথম প্রোগ্রামিং কনটেস্ট এর ব্যাপারে জানসি, বুয়েট ভর্তি হবার পর. অনেক বন্ধুরাই আগে থেকেই কন্টেস্ট এর বাপারে জানত. ওদের মাধ্যমেই জানতে পারি. আমারও কৌতূহল জাগল. এছাড়াও সিনিওর অনেক ভাই দের সাথেও কথা হয় ব্যাপারে. এভাবেই আস্তে আস্তে কন্টেস্ট এর জগতে এসে যাই.
প্রশ্নঃ  লাইফের প্রথম কনটেস্ট কবে করছিলা মনে আছে ? কোথায় করছ ?
-- প্রথম কন্টেস্ট করসিলাম বুয়েট এর একটা প্রাকটিস কন্টেস্ট . শান্ত ভাই অ্যারেঞ্জ করসিলেন কন্টেস্ট টা. আর ন্যাশনাল লেভেল এর প্রথম কন্টেস্ট করসিলাম হল ঢাকা রেজিওনাল ২০১২, ড্যাফোডিল ইউনিভার্সিটি এর আন্ডার , অ্যাট রেডিসন.
প্রশ্নঃ  কি টাইপের প্রবলেম সল্ভ করতে বেশি ভাল লাগে ?
-- নতুন কিছু, সেটা যতই সিম্পল হোক না কেন. কিন্তু ক্যাটাগরি যদি বলতে হয় তাহলে তো ডিপি কেই ফেবারেট বলতে হয়. কারন এই ক্যাটাগরিতেই সবচেয়ে ভ্যারিড প্রবলেম থাকে.
প্রশ্নঃ  সবার একটা সাধারন প্রশ্ন থাকে কিভাবে ডিপি প্রবলেম ভাল সল্ভ করা যায় , তুমি ডিপি অনেক ভাল সল্ভ কর এইটা কিভাবে এর ইম্প্রুভ করলা ?
-- ডিপি তে ভাল করার ওয়ে হোলও বেশি ডিপি প্রবলেম সল্ভ করা এবং রিকারেন্স রিলেশান বুঝা. বেশির ভাগ সময় ডিপি এর প্রবলেম ইউনিক থাকে. তোমাকে ওটাকেই চিন্তা করে রিকারেন্স রিলেশান বের করতে হবে. প্রাকটিস এর জন্য আমি বরাবর সাজেস্ট করি LOJ এর ডিপি প্রবলেম সল্ভ করতে.
প্রশ্নঃ  কোন প্রবলেম সল্ভ এর সময় "Thinking Process" কি থাকে প্রবলেম পড়ার পর ? কিভাবে প্রবেলম সল্ভ কর ?
-- প্রবলেম পরার সময় mindset ওপেন থাকা উচিত. আগে থেকেই ডিসাইড করা উচিত না এটা কোন ক্যাটাগরির অথবা এটা segment tree এর প্রবলেম, হয়ত এটা আরও সহজে করা যাবে. প্রবলেম পড়ার পর প্রথম চিন্তা থাকে আমি এই রকম প্রবলেম আগে করসি নাকি. আর বড় কোড করার আগে অবশ্যই খেয়াল করে নেয়া উচিত যে এটা আরও সহজে হয় কিনা এই প্রবলেম লিমিট . প্রব্লেম অ্যাপ্রচ করার সময় অবশ্যই লিমিট এর দিকে খেয়াল রাখা উচিত. অনেক সময় লিমিট এর উপর বেইস করেই বুঝা যায় কোন ক্যাটাগরি.
প্রশ্নঃ  WA হইলে কোন প্রবলেম কিভাবে attempt নেও ? 
-- WA হলে প্রথম কাজ হল কোড recheck করা, overflow, case printing, type casting, faulty or implicit double comparison, logical etc. কোড ভুল না হলে, চেক করতে হবে corner case and special case. তারপর কিছু নিজের নরমাল case সিমুলেট করে দেখতে হবে ঠিক রেসাল্ট আশে নাকি. কিছুই না হলে Idea  ঠিক আসে নাকি আবার দেখতে হবে. 
প্রশ্নঃ   প্রোগ্রামিং কনটেস্ট কাউকে ফলো কর বা ইন্সপারেশন এর কেউ আছে ?
-- ফলো তো অনেকেই করি, শান্ত ভাই, রিয়াদ ভাই, জেহাদ ভাই, লিন্কিন ভাই, সাকিব ভাই, সাদিয়া আপু, কায়সার ভাই, কিন্তু শেষ পর্যন্ত আসলে নিজেকেই decide করতে হয় যে কার কোনটা ফলো করব.
প্রশ্নঃ  অনেক সময় দেখা যায় কয়েকদিন কারো কনটেস্ট ভাল না হইলে অনেক হতাশ হয়ে কনটেস্ট ছেড়ে দেয় বা অন্যভাবেও বলা হয় সব কনটেস্টেন এর লাইফে হতাশার একটা পিরিয়ড থাকে , এই সময় কিভাবে নিজেকে মোটিভেট করা উচিত ?
-- কনটেস্ট জগতে টিকে থাকতে হলে সবাইকেই এই হতাশার পিরিয়ড দিয়ে  যেতে হয়. এই সময় push through করা উচিত, বেশি চিন্তা না করে, just দিন রাত practice করা উচিত. সবাই এই পিরিয়ড দিয়ে গেসে, যারা push through করতে পারসে তারাই ভাল করতে পারসে success এর দিকে না তাকিয়ে নিজের improvement করার জন্য practice করে জেতে হবে.  
প্রশ্নঃ জুনিওরদের জন্য কোন সাজেশন , কিভাবে ভাল হওয়া যাবে ?
-- প্রোগ্রামিং কনটেস্ট ভাল করার কোনও shortcut নাই। practice ছাড়া কিছুই হবে না. প্রাকটিস চালায়ে যাও, দেখবা তুমিও এই রকম সাজেশান দিতেসো একদিন :p.
প্রশ্নঃ   প্রোগ্রামিং বাদে কোন হবি আছে ?
-- আমি প্রচুর পিসি গেমস খেলি mostly role playing games. এছারাও আনিমে দেখি, টিভি সিরিজ দেখি অ্যান্ড মুভি দেখি. অনেকের প্রশ্ন থাকতে পারে প্রোগ্রামিং কনটেস্ট এর টাইম পাই কাম্নে তাইলে. আমার মনে হয়, কোনও কিসুতে নেশা না হইলে তেমন কোনও প্রবলেম হয় না.
বিদ্রঃ মইনুল আমার ব্যাচম্যাট । অনেক প্রবলেম ও সবসময়ই ওর কাছ থেকে অনেক কিছু শিখার সুযোগ হইছিল আমার । নিজের টাইম নস্ট করে প্রশ্নগুলার উত্তর দেওয়ার জন্য অনেক ধন্যবাদ :) 

No comments:

Post a Comment