সফটওয়্যার ইঞ্জিনিয়ার হতে চাই (পর্ব – ১)
- আরিফুল ইসলাম
সফটওয়্যার ইঞ্জিনিয়ার হতে চাইলে একজন বিশ্ববিদ্যালয়ের শিক্ষার্থীকে একাডেমিক পড়াশোনার পাশাপাশি কি ধরণের প্রস্তুতি নেওয়া উচিত। অনেক শিক্ষার্থীরা সিদ্ধান্তহীনতায় ভুগে কম্পিটিটিভ প্রোগ্রামিং প্রবলেম সল্ভিং কে বেশি গুরুত্ব দেওয়া উচিত, কমার্শিয়াল প্রজেক্ট করা উচিত নাকি PHP/.NET/Mobile App/Framework ইত্যাদি বিষয়ে বেশি গুরুত্ব দেওয়া উচিত। উদ্দেশ্য হচ্ছে, পড়ালেখা শেষ করেই ভাল জব পাওয়া এবং আল্টিমেটলি ক্যারিয়ারে ভাল করা। এটি আমাদের দেশের CSE/ICT পড়ুয়া শিক্ষার্থীদের কমন প্রশ্ন। এই প্রশ্নের উত্তর দিবেন আমাদের দেশের আইটি ইন্ড্রাস্ট্রির টপ লেভেল এক্সপার্টরা। এক্সপার্টদের উত্তর বোঝার সুবিধার্থে কিছু জিনিস জানা থাকা জরুরী। আপনারা নিশ্চয়ই অবগত আছেন যে, সফটওয়্যার ইঞ্জিনিয়ারিং এর ক্ষেত্র কত বিশাল। এই বিশাল ক্ষেত্র থেকে আপনাকে সঠিক লক্ষ্য স্থির করতে হবে। সবার লক্ষ্য যেহেতু এক নয় কাজেই প্রস্তুতির ধরনটাও অবশ্যই ভিন্ন হতে হবে। উদাহরণস্বরূপ, আপনি যদি গুগল, মাইক্রোসফট কিংবা ফেসবুকে জব করতে চান তাহলে প্রস্তুতি এক রকম হবে। আবার, উদ্যোক্তা কিংবা ফ্রিল্যান্সার হতে চাইলে অন্যরকম প্রস্তুতি নিতে হবে। আপনার যোগ্যতা, সামর্থ্য ও বাস্তবতাকে সামনে রেখে লক্ষ্য নির্ধারণ করতে হবে। এই লেখা আপনাকে সঠিক উপায়ে চিন্তা করতে সাহায্য করবে। একটি দূরদর্শী চিন্তাশীল সিদ্ধান্ত ভবিষ্যতের সম্ভাব্য ভূল থেকে আপনাকে রক্ষা করবে।
ওমর আল জাবির Head of Engineering, Consumer CRM & Billing – British Telecom, UK https://www.linkedin.com/in/oazabir যদি বিদেশে পড়াশুনা করার মতো যথেষ্ট টাকা থাকে, তাহলে রিসার্চ, প্রব্লেম সলভিং টাইপের প্রোগ্রামিং করা উচিত। আর যদি না থাকে, তাহলে যতসম্ভব বিজনেস এপ্লিকেশন ডেভেলপমেন্ট করা উচিত। সবসময় চেষ্টা করতে হবে যেটা করতে আগ্রহ পাওয়া যায়, যা করে আনন্দ পাওয়া যায়, সেটাই করার। জোর করে কাউকে দিয়ে প্রোগ্রামিং হয় না। নিজের পছন্দের বিরুদ্ধে কাজ করলে বেশিদূর আগানো যায় না। — তানজিম সাকিব সিটিও, ব্রেইনস্টেশন-২৩, প্রাক্তন প্রধান, ডেভেলপার এক্সপেরিএন্স, মাইক্রোসফট বাংলাদেশ https://www.linkedin.com/in/tanzimsaqib সফটওয়্যার ডেভেলপমেন্ট এবং এঞ্জিনিয়ারিং যদি সমার্থক ধরে নেই, এই জায়গাটিতে সবারই সফল হতে পারার সুযোগ আছে। চূড়ান্ত লক্ষ্য যদি এই ক্ষেত্রটিতেই বেছে নেয়া হয়, নানাভাবে সেখানে পৌঁছুতে পারা সম্ভব। তবে নিজের ব্যাপারে একটি বাস্তব অনুসন্ধান করে, তবেই কারও নিজের জন্য কর্মপদ্ধতি ঠিক করা উচিত। অতি বা স্বল্প আত্মবিশ্বাস দুটোই ক্ষতির কারণ হতে পারে। তাছাড়া, কেউই কাউকে এমন রেসিপি দিতে পারবেনা, যা ১০০% ভাগ অনুসরণ করে সফল হওয়া সম্ভব।
১) যদি গুগল, মাইক্রোসফট, ফেইসবুকের মত প্রতিষ্ঠানে কাজ করতে চানঃ প্রোগ্রামিং প্রতিযোগিতার অভিজ্ঞতা এখানে বেশ কাজে আসে। কেবল রীডলস বা পাজেল ধরনের প্রশ্নের সাথে পরিচিতিই নয়, প্রতিযোগিতার আবহ, স্পিরিট, সময়ের সঠিক ব্যবহার, চাপের মুখে সঠিক সমাধান বের করতে পারার অনুশীলন ইত্যাদি নানা জিনিস ইন্টারভিউ এবং কর্মক্ষেত্রে প্রযোগ হয়। আধুনিক বৈশ্বিক প্রযুক্তি চলগুলো সম্পর্কে ভালো ধারনা থাকা ভাল, বিশেষ করে কিভাবে এই প্রযুক্তিগুলো একসাথে কাজ করে এবং তা থেকে ব্যবসায় এবং মানুষের জীবনে অবদান রাখে। যেমন ইন্টারনেট অফ থিংগস, বা ডাটা সায়েন্স, ইত্যাদি। বড় বড় প্রশ্নের ব্যপারে নিজের দর্শন বা একটা ভিউ তৈরী করতে পারা ভাল। জব রোলের ওপর ভিত্তি করে, C/C++ এবং সিস্টেম-লেভেলে পারফরমেন্স, অ্যালগোরিদমিক অপটিমাইজেশন, প্রভৃতি বিষয়ে অত্যন্ত ভাল দখল থাকা জরুরী। এখানে সফটওয়্যার এঞ্জিনিয়ারিং কর্মক্ষেত্রেই শিখতে পারবেন। কম্পিউটার বিজ্ঞান বা সংশ্লিষ্ট ডিগ্রী না থাকলে সফলতার সম্ভাবনা বেশ কম।
২) স্থানীয় প্রতিষ্ঠানে বা আউটসোর্সিং কোম্পানিতে কাজ করতে চাইলেঃ এটা সেবা-কেন্দ্রিক চাকুরী, তাই সেবাদানের টুলসগুলো জানতে হবে। ফ্রেইমওয়ার্ক, লাইব্রেরী, টেম্পলেট, প্লাগিন এসব ব্যবহার করে কে কত দ্রুত, ফাটাফাটি ও নির্ভুলভাবে ব্যবসায় সমস্যার সমধান করতে পারে, মূলত এটাই দেখা হয়। ভাল প্রতিষ্ঠানে কাজ করতে হলে বৈশ্বিকভাবে প্রচলিত এঞ্জিনিয়ারিং চর্চাগুলো আত্মস্থ এবং প্রয়োগ করতে হবে। নিজেকে বাঁচানোর জন্য দেশীয় ও বিদেশী দলগুলোর রাজনীতি বুঝতে হবে, এবং অনেক সময় সাইকোলজীর ব্যবহারও দরকার হয়। বিশেষ করে প্রতিযোগিতার বাজারে প্রতিবেশী দেশগুলো প্রায়ই আপনার কাজ ও ক্রেডিট নিয়ে নিতে চাইবে। তবে এগুলোর জন্য পড়তে হয় না, চোখ/কান খোলা রাখলে অনেক কিছু শেখা যায়। দুনিয়ার নানা জায়গায় ছড়িয়ে ছিটিয়ে থাকা দলের সাথে কাজ করলে ফাঁকি মারার সুযোগ থাকে, যেটা কেবল নিজের জন্য ভবিষ্যতে সময় ও সুযোগের অপচয় হয়ে সামনে আসবে। অনেক সময় ইন্টারভিউতে যদি প্রশ্ন করা হয়, আপনার ক্যারিয়ারে সমাধান করা একটি জটিল প্রযুক্তিগত সমস্যার কথা বলুন, সেখানে যদি কোন উত্তর দিতে না পারেন, আপনি বিপদে পড়বেন। কম্পিউটার বিজ্ঞানে প্রাতিষ্ঠানিক পড়াশোনা জরুরী নয়।
৩) বিদেশে কাজ করতে চাইলেঃ (২) এর সাথে আরও যা যোগ হবে মূলত তাহল, ব্যবহারকারী আছে এমন সফটওয়্যার বানানোর অভিজ্ঞতা। যদি সম্ভব হয় শিক্ষার্থী থাকা অবস্থাতেই, এবং সব সময় নিজেকে ছাড়িয়ে যেতে চাওয়ার একটা রুচি লালন করবেন। মনস্টার, ইন্ডীড ইত্যাদি বিদেশি চাকুরী খোঁজার পোর্টালগুলো দেখে বুঝুন বাজারে কোনটার চাহিদা কেমন, এবং নিজের পছন্দের একটা স্ট্যাক বাছাই করুন। স্ট্যাকটা নিয়ে গভীরে যান, এবং এর খুঁটিনাটি আয়ত্ব করুন, কারণ বিদেশীরা কেবল একটা ব্যপারেই নিশ্চিত হতে চায়, যে আপনার রেসিউমিতে যতটা গর্যাচ্ছে ততটা বর্ষাবে কিনা বা অন্য কথায়, আপনি ব্লাফ দিচ্ছেন কিনা। সফটওয়্যার এঞ্জিনিয়ারিং শিখতে হবে।
৪) পিএইচডি করে কাজ শুরু করতে চানঃ এখানে প্রতিযোগিতামূলক প্রোগ্রামিংএর ভাল সুফল পাওয়া যায়। কম্পিউটার বিজ্ঞানের যেকোন একটি শাখায় ব্যাপক ভালোবাসা গড়ে তুলুন, এবং বৈশ্বিক প্রযুক্তিধারার সাথে মিল রেখে পারলে থিসিসটি করুন। চাকুরী পাওয়া কঠিন হবেনা। প্রকৃতপক্ষে, এখন পিএইচডিধারীদের বেশ কিছু শাখায় বাইরে বেশ কদর, এবং সেধরনের কাজ আমাদের দেশে এখনই আসার সম্ভাবনা অনেক কম। কম্পিউটার বিজ্ঞান বা সংশ্লিষ্ট ডিগ্রী থাকতে হবে।
৫) যদি উদ্যোগতা/সফটওয়্যার ইঞ্জিনিয়ার হতে চানঃ ব্যবসায়, এবং প্রযুক্তি কিভাবে মানুষের কাজে এসে একটা সফল উদ্যোগ হতে পারে, এ ব্যাপারে ব্যাপক ভালোবাসা গড়ে তুলতে হবে। পাশাপাশি উদ্যোগতা-বান্ধব প্রোগ্রামিং ল্যাঙ্গুয়েজ, ফ্রেইমওয়ার্ক ও প্ল্যাটফর্ম শিখতে পারেন, যেমন পাইথন, রুবী অন রেইলস, ওয়ার্ডপ্রেস, ইত্যাদি। সফটওয়্যার এঞ্জিনিয়ারিং ভুল করে করে শিখতে পারেন। কম্পিউটার বিজ্ঞানে প্রাতিষ্ঠানিক পড়াশোনা জরুরী নয়। এমনিতে একজন সফটওয়্যার ইঞ্জিনিয়ারের জন্য দুর্দান্ত বিনিয়োগঃ
১) সার্বক্ষনিক নিজের সক্ষমতা বৃদ্ধি অব্যাহত রাখা। প্রতিযোগিতামূলক প্রোগ্রামিংএ মাঝে মাঝে শখের বশে হলেও অংশ নেয়া যায়, তবে সেটা যে কেবল এসিএম হতে হবে, তা না। যেমনঃ ক্যাগলে ডাটা সায়েন্সের প্রতিযোগিতা। বিনামূল্যে MOOC কোর্সগুলো অনলাইনে করা। অনলাইনে সার্চ করতে শেখা। সফটওয়্যার ইঞ্জিনিয়ার হতে গিয়ে কম্পিউটার সায়েন্স ভুলে না যাওয়া। সফটওয়্যার ইঞ্জিনিয়ার হিসেবে অনলাইন ও অফলাইনে রেপুটেশন তৈরী এবং ধরে রাখা।
২) আপনি যে পথেই সফটওয়্যার ইঞ্জিনিয়ার হতে চান না কেন, মৌখিক ও লিখিত ইংলিশের পারদর্শীতা আপনাকে অনেকদুর নিয়ে যেতে পারে; কার্যকর যোগাযোগ একটি অত্যন্ত জরুরী দক্ষতা।
কৃতজ্ঞতায়: ওমর আল জাবির ও তানজিম সাকিব
আরিফুল ইসলাম
সহ-প্রতিষ্ঠাতা,
Wafi Solutions
www.wafisolutions.com