সফটওয়্যার ইঞ্জিনিয়ার হিসেবে ক্যারিয়ার
( টার্গেট অডিয়েন্সঃ সেকেন্ড ইয়ার/+ )
বুয়েট থেকে কম্পিউটার সায়েন্স পড়াশুনা করে সফটওয়্যার ইঞ্জিনিয়ারিং এ ক্যারিয়ার নেয় কতজন ? আমাদের ‘০৭ ব্যাচ যদি চিন্তা করি, তাহলে আমি একটা ঝটপট কাউন্ট দিলাম। যতটুকু জানি, তার উপর ভিত্তি করলে আপাতত আমাদের অনুপাতটা এখন এরকম –
নন আকাডেমিক চাকুরীজীবীঃ ৫০ জন ( সফটওয়্যার ইঞ্জিনিয়ার, সরকারী চাকুরী, কিংবা নিজের কোম্পানি )
মিসিং ডাটাঃ ২২ জন ( এদের ব্যাপারে আমি নিজে জানিনা দেখে বলতে পারতেছি না )
আকাডেমিকঃ ৪৮ জন ( পড়াশুনা কিংবা ইউনিভার্সিটী ফ্যাকাল্টি )
আমরা পাস করে বেরিয়েছি ২০১৩ সালের ফ্রেব্রুয়ারীতে। এই পাচ বছরে অনেকেই অনেক রকম কাজ করে ফেলছে। উপরে যেই অনুপাতটা আছে, তাতেও কিছু গড়মিল আছে। সময়ের সাথে সাথে কিংবা ব্যাচ-টু-ব্যাচ এইটা কিছু পরিবর্তন হয়। তারপরেও আমি অনুপাতটা বললাম এই জন্য যে অনেকের মনেই প্রশ্ন থাকে – “বুয়েট থেকে বের হয়ে কয়জন দেশে আছে?” বা “পাস করে অ্যাকাডেমিকস এ আছে কতজন?” । দেখতেই পাইতেছ “সফটওয়্যার ইঞ্জিনিয়ার” আর “আকাডেমিক” প্রাআআয় সমানে সমান। আসলে এই নাম্বার গুলা যতটা না গুরুত্বপুর্ন, তার থেকে গুরুত্বপুর্ন হল একজন নিজে কি চাচ্ছে। যেমন ধর অনেকেই পাস করে শুরুতে চাকরিতে ঢুকেছিল, কিন্তু এখন পড়াশুনা করতে বাইরে চলে গেছে। আবার অনেকেই যারা এখন পড়াশুনা করতেছে, কিছুদিন পর তাদের একটা অংশ বের হয়ে চাকরিতে ঢুকবে।
আমি নিজে যেহেতু বেশীদূর পড়াশুনা করিনি, তাই অ্যাকাডেমিকস এর ব্যাপারে খুব বেশী কিছু বলাটা মানাবে না। তাই আজকে সফটওয়্যার ইঞ্জিনিয়ারিং নিয়ে কিছু একটা বলি। বুয়েট থেকে পাস করে চাকুরী নিয়ে বাইরে যেতে হবে ব্যাপারটা এমন না। দেশেও এখন কিছু কিছু কোম্পানিতে ভাল ভাল কাজ হচ্ছে। আবার বাইরে এসেও কিছু অভিজ্ঞতা নিয়ে দেশে ফেরত গিয়ে কাজকর্মে সেগুলো প্রয়োগ করা যেতে পারে।
একজন ভাল ইঞ্জিনিয়ার হওয়ার জন্য সব থেকে দরকারি যে জিনিসটা লাগে সেটা হল, প্রবলেম সলভিং ক্যাপাবিলিটি। প্রবলেম সলভিং ক্যাপাবিলিটি বাড়ানোর জন্য একটা সহজ উপায় হল সমস্যগুলো নিয়ে বেশী বেশী কাজ করা। কেন, সে কারণটা এই পোস্টেই পরে বলছি। বেশী বেশী কাজ করার একটা উপায় হচ্ছে, প্রচুর পরিমাণে কোড করা। যেমন ধর শখের বসে মাথায় যে আইডিয়াগুলো থাকে, সেগুলোকে কোড করে ফেলা। একবার আমার মাথায় একটা আইডিয়া আসল, পথে ঘাটে বাংলা গান গুনগুন করে গাইতে গেলে তো হাতের কাছে লিরিক্স পাওয়া যায়না। আমার আবার এইসব এর মেমরি খুবই কম। তো একটা আপ্লিকেশন থাকলে মন্দ হয় না। ইন্টারনেট ঘেটে বাংলা গান এর লিরিক্স একটা সাইট পেলাম, java দিয়ে একটা crawler লিখে সব গানগুলোকে একটা ফাইলে সেইভ করলাম। তারপর আন্ড্রয়েড এ একটা আপ্লিকেশন বানিয়ে সেই ফাইল থেকে গানের ডাটা লোড করে দিলাম। ব্যস, ম্যাগী নুডুলস এর মত নিমিষেই “বাংলা গান লিরিক্স আন্ড্রয়েড আপ্লিকেশন” রেডি হয়ে গেল।
তো যেটা বলছিলাম, অনেক অনেক প্রোজেক্ট কোড করে ফেলতে হবে। অনেকেই বলে যে প্রফেশনাল প্রজেক্ট ছাড়া কাজ শিখা যায়না। কথাটা ঠিক, প্রফেশনাল প্রজেক্ট ছাড়া প্রফেশনাল কাজ শিখা যায় না। তবে তাই বলে যে Hobbist Project করা যাবে না, ব্যাপারটা তো তা না। একেবারে শুরুতে কিছু না কিছু দিয়ে তো শুরু করতে হবে। একটা লেভেল এর কনফিডেন্স চলে আসলে, পার্টটাইম কাজের জন্য খোজ করা যেতে পারে। আবার নিজের আপ্লিকেশন গুলা নিজে ব্যবহার শুরু করলে ইউজাবিলিটি, বাগ অনেক কিছু ফিক্স করার সুযোগ তৈরী হবে। দিনশেষে আসল কথা হল, একজন সফটওয়্যার ইঞ্জিনিয়ার হবার জন্য তুমি কি নিজেকে সুযোগ করে দিচ্ছ ?
এখন আসি ভাল সফটওয়্যার ইঞ্জিনিয়ার কিভাবে হব? ইঞ্জিনিয়ার হিসেবে ভাল সফটওয়্যার বানানোর কয়েকটা ধাপ হইতেছে –
১। বাস্তব জগতের সমস্যাগুলোর সাথে কম্পিউটার সায়েন্সের স্ট্যান্ডার্ড সমস্যার মিল খুজে বের করা।
২। তারপর সেই স্ট্যান্ডার্ড সমস্যার সমাধানটা কোন একটা প্রোগ্রামিং ল্যাঙ্গুয়েজে কোড করা।
৩। সবশেষে ইউজার এর বিভিন্ন রকম ইনপুটের জন্য, সমাধানটা কাজ করতেছে কিনা, সেটা যাচাই করা এবং সেই অনুযায়ী সমাধানটাকে অ্যাডজাষ্ট করা।
বড় বড় সফটওয়্যার কোম্পানিতে এন্ট্রি লেভেল ইঞ্জিনিয়ার নিয়োগ দেবার সময় এই ব্যাপারগুলোই মূলত যাচাই করে দেখে। সবসময় যে কম্পিউটার সায়েন্সের স্ট্যান্ডার্ড সমস্যার সাথে মিল খুজে পাওয়া যাবে এমন না, সেক্ষেত্রে অনেকে দেখে সমস্যাকে অন্তত ডিফাইন করা যাচ্ছে কিনা। একটু সিনিয়র লেভেলের লোকজনের ইন্টার্ভিউতে এগুলোর সাথে সাথে টীম লিড করতে পারে কিনা, স্ট্রাটেজিক ডিসিশন নিতে পারে কিনা, ফায়ারফাইটিং সিচুয়েশোন হ্যান্ডেল করতে পারে কিনা এরকম আরও অনেক কিছু দেখে।
তো আজকের পোষ্ট যেহেতু এন্ট্রি লেভেল ইঞ্জিনিয়ারদের নিয়ে, ভূমিকা দিয়েই দিন পার হয়ে যাচ্ছে, লাইনে আসি। উপরে যে তিনটা পয়েন্ট বললাম, খুব খেয়াল করলে দেখবা তিনটার জন্য তিন রকমের স্কিল লাগবে –
#১ এর জন্য সফওয়ার রিকোয়ারমেন্ট এনালাইসিস বুঝতে হবে। বেশ কিছু সফওয়ার বানানোর সময় ইউজাররা কেমন ফিচার চাচ্ছে, সেগুলোর ধাঁচ ধরতে হবে। কিছু ফিচার ধরে কোডিং করা শুরু করলে বুঝা যাবে প্রোজেক্ট ঠিক দিকে আগাচ্ছে কিনা।
#২ এর জন্য বুয়েটের আকাডেমিক কোর্সগুলা ভাল করে ফলো করতে হবে। আমাদের কোর্স কারিকুলাম এ অনেক ভাল কন্টেন্ট। কোন টিচার কেমন পড়াচ্ছে, সেটা নিয়ে মন খারাপ না করে টপিকগুলা বুঝার চেষ্টা করতে হবে।
#৩ জন্য প্রচুর কোডিং করতে হবে। হাবজাব যা মাথায় আসে, “TODO list”, “Personal Diary” , “Calendar manager” …etc. এরকম কত কি আছে…
আমার যেটা মনে হয়, আমাদের ডিপার্টমেন্ট থেকে যারা পাস করে বের হয়, বড় বড় কোম্পানিতে সুযোগ পাবার জন্য তাদের মোটামুটি সবারই ক্যাপাবিলিটী আছে। এখন অনেকের হয়ত এই ধরনের কাজ পছন্দ না, সেটা ভিন্ন ব্যাপার। কিন্তু অনেক সময় দেখা যায় ইন্টার্ভিউ পর্যন্ত গিয়েও হয়ত হয়না। এটার কারন কি ?
অনেক কারনই থাকতে পারে। একটা কারণ হইতেছে পর্যাপ্ত প্রাকটিস না থাকা। প্রাকটিস করার জন্য এখন অনলাইনে বেশ কিছু জায়গা আছে, যেগুলাতে ঢু মেরে কোডিং প্রাকটিস শিখা যাবে। তবে এখানে আর একটা গুরুত্বপুর্ন প্রশ্ন আছে। সেটা হল, সফটওয়ার ইঞ্জিনিয়ার হিসেবে ইন্টারভিউ দিতেছে এরকম একজন এর পর্যাপ্ত প্রাকটিস কেন থাকবে না ?
প্রাকটিস না থাকার একটা কারণ হচ্ছে যথেষ্ট পরিমাণ ডিটারমিনেশন না থাকা। কি করবে সেটা নিয়ে ঘোরপাক খাওয়া, দ্বিধা-দন্দে থাকা, অনেকটা “বাহির বলে দুরে থাকুক, ভিতর বলে আসুক” টাইপ :p বুয়েট থেকে পাস করে বেশিরভাগ এর ই হাতে বেশ কয়েকটা অপশন থাকে – হায়ার স্টাডি কিংবা সরাসরি চাকুরীতে যাওয়া এই দুইয়ের ইকুয়েশন পার করতেই তিন-চার বছর লেগে যায়। সবার এমনটা হয় তা না, মধ্যবিত্ত সিদ্বান্তওয়ালাদের একটু বেশি হয়।
সে যাই হোক, আমি ঠিক করছি, যারা সফটওয়ার ইঞ্জিনিয়ার হিসেবে ক্যারিয়ার নিতে ইচ্ছুক, তাদেরকে কোনভাবে গাইড করা যায় কিনা। অন্তত আমাদের আলামনাইদের জায়গা থেকে যতটুকু করা যায়, ততটুকু আর কি। কি ধরনের হেল্প, সেটা নিয়ে আরেকটা পোষ্ট দিব। ততদিন পর্যন্ত লাইক আর শেয়ার দিয়ে অ্যাকটিভ থাকুন।
Leave a Reply