সবার প্রথমেই যে উত্তরটা মাথায় আসে তা হলো: Why not both?
আবার দেখা যায় অনেকেই বলে যে প্রবলেম সলভ করতে গেলে কিছুই পারেনা, তাহলে তাদের কি করা উচিৎ।
প্রথম প্রথম প্রবলেম সলভ করতে গেলে এমন মনে হবেই যে আমি তো কিছুই পারিনা। তোমাকে আসলে অনেক প্র্যাক্টিস করতে হবে। রাতারাতি প্রবলেম সলভিংয়ে এক্সপার্ট হওয়া সম্ভব না, এর পেছনে অনেক সময় দিতে হবে।
ধরো অনেক প্রবলেম আছে যেগুলো হয়তো কিছু স্পেসিফিক ওয়েতে সলভ করতে হবে যেটা তুমি এখনও শেখনি। কোনোটা না পারলে ঘাটাঘাটি করে অন্যরা কিভাবে সলভ করেছে সেটা বুঝতে হবে। জাস্ট কপি পেস্ট করলে হবেনা।
তবে তার জন্যে আগে তোমাকে অ্যালগরিদম ও ডাটা স্ট্রাকচার ভালো করে জানতে হবে। এই দুইটা না জেনেই নিজেকে প্রোগ্রামার বলা মনে ঝার ফুক জেনে নিজেকে ডাক্তার বলার মতো।
এখন ইন্ডাস্ট্রিতে কোথায় প্রবলেম সলভিং লাগে আর কোথায় লাগেনা সেটা বলা কঠিন। বড় মাপের কোম্পানিগুলোতে দেখা যায় যে তারা প্রবলেম সলভিংটা কে বেশি গুরুত্ব দেয়, কারণ যে এটা ভালো পারে তাকে দিয়ে কোনো স্পেসিফিক টেকনোলজি শেখানো খুব কঠিন কিছু না। তাদের কাছে কারো পেছনে সেই টাইম ওয়েস্ট করার মত পর্যাপ্ত রিসোর্স আছে।
তবে ছোট কোম্পানির ক্ষেত্রে দেখা যায় যে, অনেকে হয়তো কিছুদিন চাকরি করেই চাকরি ছেড়ে দেয়। তাই কাওকে ট্রেইন করতে সময় নষ্ট করার কোনো মানে হয় না। একারণে তারা কে কোন specific technology যেমন ওয়েব/অ্যান্ড্রয়েড ডেভেলপমেন্ট জানে সেদিকে বেশি গুরুত্ব দেয়।
তবে ছোট বড় নির্বিশেষে কোনো কোম্পানিই তোমাকে বলবেনা যে ভাই তুমি প্রবলেম সলভিংয়ে ভালো জন্যে তোমাকে নিব না। বরং তুমি যত ভালো প্রবলেম সলভার হবা সেটা যেকোনো কোম্পানির লং টার্ম এর জন্যে ভালো।
অপরদিকে বিভিন্ন টেকনোলজি যেমন ওয়েব, অ্যান্ড্রয়েড ইত্যাদি হল extra curricular activities এর মতো। যত বেশি জানবে তত বেশি ভালো। তবে জানতেই হবে এমন কিছু না।
এখন তুমি নিজেকে ভালো প্রোগ্রামার হিসেবে গড়ে তুলতে চাও, নাকি শর্ট টার্মে কোনোভাবে একটা চাকরি জোগাড় করতে যা প্রয়োজন সেটা শিখতে চাও সেই ডিসিশন তোমার।