Go Back to All Articles একজন সফটওয়্যার ইঞ্জিনিয়ারের ক্যারিয়ারের ধাপসমূহ

দেশী বিদেশী অনেক নামকরা সফটওয়্যার ইঞ্জিনিয়াররা লিখেছেন কিভাবে ভালো সফটওয়্যার ইঞ্জিনিয়ার হওয়া যায়। তাদের তুলনায় আমি নিজেকে সাধারণ মানুষ মনে করি। তবে নিজের অভিজ্ঞতা থেকে মনে করি যে আমি যেটুকু অর্জন করতে পেরেছি সেটুকু আসতে পারলেও মোটামুটি সন্তোষজনক অর্জন বলা যায়। যেহেতু নিজেকে নিজে ভালো জানি, তাই নিজের অভিজ্ঞতাই শেয়ার করবো যে কিভাবে একজন ভালো সফটওয়্যার ইঞ্জিনিয়ার হওয়ার চেষ্টা করেছি ও আমার জীবনে সেটা কিভাবে ঘটেছে।

ধাপ ১

আমি মনে করি সব ধরণের জ্ঞানের উৎস আল্লাহ্‌ তাআলা। কাজেই প্রথমে যেটা করা উচিৎ সেটা হল আল্লাহ্‌ তাআলার কাছে জ্ঞানের জন্য প্রার্থনা করা। তার সাহায্য ও পথনির্দেশনা চাওয়া। যাকে আল্লাহ্‌ পথ দেখান তার আর কোন সাহায্যের প্রয়োজন হয় না, আর যাকে তিনি পথভ্রষ্ট করেন, সে অনেক জ্ঞানের সাগরে নিমজ্জিত থেকেও গণ্ডমূর্খ হয়ে জীবন শেষ করে।

এর সাথে জ্ঞান ও জ্ঞানী মানুষকে সম্মান করতে হবে। যে জ্ঞানকে সম্মান করে না, বা জ্ঞানী মানুষকে সম্মান করে না তার মধ্যে জ্ঞান প্রবেশ করার কথা না। জ্ঞান অর্জনের মাধ্যম যেমন বই, শিক্ষক এদেরকেও সম্মান বা সমীহ করতে হবে। অনেকে বই ছিরে ফেলে, টেবিল ময়লা করে রাখে এসব জ্ঞান বিরোধী ব্যাবহার। এগুলো করা ঠিক হবে না।

ধাপ ২

প্রোগ্রামিং ও সফটওয়্যার তৈরি করা ভালোবাসতে হবে। চাকরি ও টাকার কথা চিন্তা করে প্রোগ্রামিং করার ইচ্ছা করলে হবে না, বরং প্রোগ্রামিং ভালো লাগে এই কারণে প্রোগ্রামিং করতে হবে। এটা জোর করে করার বিষয় নয়। অনেকেই আছে যারা সফটওয়্যার ডেভেলপমেন্টে অনেক ভালো ক্যারিয়ার এটা শুনে প্রোগ্রামিং শিখতে আসে বা সফটওয়্যার ইঞ্জিনিয়ার হতে চায়। কিন্তু যারা ভালো প্রোগ্রামার তাদের সবার ক্ষেত্রেই দেখা যায় যে আসলে কম্পিউটার ও প্রোগ্রামিং এর প্রতি তাদের আগে থেকেই অনেক আগ্রহ ছিল এবং সেই আগ্রহে আসলে ক্যারিয়ার, টাকা এসবের মোহ ছিল না, বরং তারা প্রোগ্রামিং ভালোবাসত তাই প্রোগ্রামিং নিয়ে সময় দিত।

ধাপ ৩

ভালো কোডিং স্কিল তৈরি করতে হবে। প্রোগ্রামিং ল্যাঙ্গুয়েজ ও কোডিং এর উপর ভালো দক্ষতা অর্জন করতে হবে। এমন দক্ষতা যাতে যেকোনো কোড লিখতে দিলে আঁটকে না যেতে হয়। এর সাথে যদি ডাটা স্ট্রাকচার ও এলগোরিদম বিষয়ে মোটামুটি ধারণা থাকে তাহলে ভালো হয়। কারণ বেসিক ডাটা স্ট্রাকচার ও এলগোরিদমের জ্ঞান, কোডিং করতে গেলে কাজে লাগে। এ সম্পর্কে ধারণা থাকলে ভালোভাবে কোডিং করা যায়। তবে এর বাইরেও কোডিং স্কিল তৈরি করার জন্য অনেক কোডিং করতে হবে। কোডিং এ ভালো না হলে আর অন্য কিছু দিয়ে সামনে আগানো যাবে না।

ধাপ ৪

বেসিক কোডিং এ ভালো হয়ে গেলে এরপর ফ্রেমওয়ার্ক সম্পর্কে মোটামুটি ভালো ধারণা অর্জন করতে হবে ও বিভিন্ন রিয়েল প্রজেক্টে সেগুলো ব্যাবহার করা শিখতে হবে। শিক্ষা জীবনেই এর শুরু হতে পারে এবং জুনিয়র ডেভেলপার হিসাবে এটা ১-২ বছরের ভিতরে আয়ত্ত করতে হবে। অর্থাৎ চাকরি জীবনের ২ বছরের মধ্যে ফ্রেমওয়ার্ক ব্যাবহার করে যেকোনো মাঝারী লেভেলের সফটওয়্যারে যেসব ফিচার থাকে সেগুলো তৈরি করা জানতে হবে। এখানে টিমে কাজ করা শিখতে হবে ও সময় মত কাজ শেষ করা শিখতে হবে। এই ধাপের শেষ চাকরি জীবনের ২য় বছরে হলেও শুরু হচ্ছে শিক্ষা জীবনের ৩য় বছরে। নিজে শিখা ও ট্রেইনিং নেয়া যেতে পারে। অফিসে কাজ করতে করতে অনেক কিছুই শিখা হয়, তবে অতিরিক্ত শিখতে পারলে দ্রুত অগ্রগতি হবে।

উল্লেখ্য ফ্রেশার হিসাবে এই ৪টি ধাপ অর্জন করতে হয়। এই পর্যন্ত আসতে পারলে ধরে নেয়া যায় যে আপনি একটি ভালো জব পেয়ে যাবেন এবং জুনিয়র ডেভেলপার হিসাবে ক্যারিয়ার শুরু করতে পারবেন।

কিন্তু এখানেই দেখা যায় অনেকে গাফিলতি করে ফেলে। তারা ধাপ ৩ সম্পূর্ণ করে না, অর্থাৎ তাদের কোডিং স্কিল যাচ্ছেতাই অবস্থায় রেখে তারা অনেক কিছু শিখার চেষ্টা করে অর্থাৎ ধাপ ৪ এ আসার চেষ্টা করে। এর একটি কারণ কোডিং স্কিল তৈরি করা বেশ সময় সাপেক্ষ ও কষ্টকর। এর জন্য অনেক চেষ্টা ও একাগ্রতা দরকার এবং অনেক সময় ধরে কোডিং প্র্যাকটিস করতে হয়। ধরা যায় ২ বছর লেগে যেতে পারে এটা তৈরি করতে। কাজেই যারা শিক্ষা জীবনে গাফিলতি করে এবং শুধু ক্লাস করে ও পরীক্ষা দিয়েই নিশ্চিন্তভাবে ২ বছর পার করে, তারা ৩য় বর্ষে এসে যখন ধাপ ৪ শুরু করা দরকার তখন দেখে যে তাদের ধাপ ৩ করা হয়নি। তখন তারা সেটা এড়িয়ে গিয়ে সরাসরি ধাপ ৪ এ আসার চেষ্টা করে। কারণ তাদের হাতে তখন ধাপ ৩ এর জন্য যথেষ্ট সময় থাকে না। কিন্তু ধাপ ৩ না শেষ করে ধাপ ৪ এ আসার চেষ্টা ভালমত কাজ করবে না।

আবার দেখা যায় যারা ধাপ ৩ শেষ করে সময় মত তারা আবার ধাপ ৩ নিয়েই বসে থাকে। তারা ধাপ ৩ এ যতটুকু দক্ষতা অর্জন করার করে ফেলে এরপর সেটা নিয়েই এত মুগ্ধ হয়ে যায় যে আর ধাপ ৪ নিয়ে মাথা ঘামায় না। মূলত ধাপ ৩ থেকে তারা ওভার কনফিডেন্ট হয়ে যায়। কিন্তু এটাও ঠিক নয়। ধাপ ৩ ও ধাপ ৪ উভয়ই গুরুত্বপূর্ণ।

ধাপ ৫

এই ধাপটি হচ্ছে নিজেকে সাধারণ প্রোগ্রামার থেকে অসাধারণ লেভেলে নিয়ে যাওয়ার জন্য প্রস্তুতি। এই ধাপে অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং ও ডিজাইন নিয়ে বেশ সময় দেয়া দরকার। সফটওয়্যার টেস্টিং ও আর্কিটেকচার নিয়ে লেখাপড়া ও কাজে প্রয়োগ করার শুরু করতে হবে। ধরে নেয়া যায় এই ধাপ শুরু হতে পারে জবের ২ বছরের পর থেকে।

কিন্তু অনেককেই দেখা যায় যে তারা জবে ২ বছর চলে যাওয়ার পর নিজেকে এই বিষয়ে এগিয়ে না নিয়ে যেমন চলছে তেমনভাবেই কোড করে কাজ শেষ করতে ব্যস্ত থাকে। তারা অফিসের কাজের প্রেসারে এবং নিজেদের রিলেক্স লাইফের প্রভাবে গতানুগতিক কাজের প্রসেসের বাইরে গিয়ে নতুন কিছু শিখার চেষ্টা করে না। আর যদি শিখেও তবে সেটা কাজে প্রয়োগ করার চেষ্টা করে না।

এর একটি কারণ, এভাবে চিন্তা করে নতুন কিছু শিখা ও সেটা কাজে প্রয়োগ করার চেষ্টা করার জন্য অনেক শ্রম দিতে হয়। দেখা যায় অফিসের কাজের প্রেসার সামাল দিয়ে এই বিষয়ে আগ্রহ ধরে রাখার জন্য অতিরিক্ত পরিশ্রম ও সময় দিতে হয়। আর প্রথম প্রথম চেষ্টাগুলো একের পর এক ফেইল হতে থাকে। কোন সমাধান পাওয়া যায় না। সময় নিয়ে এত টানাটানির মধ্যে কষ্ট করে সময় বের করে নতুন কিছু শিখে সেটা এপ্লাই করতে গিয়ে ফেইল হওয়ার পর সবাই হাল ছেড়ে দেয়। এর পিছনে আদাজল খেয়ে লেগে থেকে সেটা আয়ত্ত করা অতি কষ্টকর বলে অনেকেই এর থেকে বিনোদনে মনযোগী হয়। আফটার অল জব তো আছেই, বেতন আসছে, বছর গেলে সেলারি বাড়বে। আর কি দরকার? ঘাড়ের উপর বিপদ আসার আগে তাই তারা বুঝতে পারে না কি ভুল করতে চলেছে।

তাই ধাপ ৫ অনেক কষ্টের একটি ধাপ। এখানে আমাদের এমন কিছু আয়ত্ত করা শুরু করতে হবে যেটা আয়ত্ত করা কঠিন এবং এই ধাপে সেটার রেজাল্টও পাওয়া যাবে না। ধরা যায় ধাপ ৫ শেষ হবে জব লাইফে ৫টি বছর পার করে।

ধাপ ৬

এই ধাপে অভিজ্ঞতা অর্জন করে আপনি টিম লিডের ভূমিকা নিতে চেষ্টা করবেন। আপনার বুদ্ধিমত্তা ও বিচক্ষণ সিদ্ধান্ত এখানে গুরুত্বপূর্ণ। পারলে কিছু সার্টিফিকেশন এক্সাম দিতে পারেন। দায়িত্ব নিয়ে প্রোজেক্ট সামাল দেয়া, সব সময় সঠিক সিদ্ধান্ত নেয়া ইত্যাদি গুনাগুণ এখানে দরকার পরবে। এখানে ধাপ ৫ থেকে আপনি সাহায্য পাবেন। যদি ধাপ ৫ আপনি ঠিক মত করে থাকেন, তাহলে দেখবেন ধাপ ৬ আপনার জন্য সহজ হয়ে যাচ্ছে। ধাপ ৫ এ আপনি যে কষ্ট করেছেন ও যে রেজাল্ট বাকি ছিল, সেটা এখন এক সাথে ধাপ ৬ এ আপনি দেখতে পাবেন।

ধাপ ৬ এ আপনাকে বড় মাপের সফটওয়্যার নিয়ে চিন্তা ভাবনা করতে হবে। বিদেশী বড় বড় সফটওয়্যার ও বিদেশী বড় বড় সফটওয়্যার ইঞ্জিনিয়ারদের কাজ নিয়ে আপনাকে গবেষণা শুরু করতে হবে। এর সাথে একদম লেটেস্ট প্রযুক্তি নিয়ে লেখাপড়া ও গবেষণা শুরু করে দিতে হবে। যেমন এখনকার ক্ষেত্রে হতে পারে মেশিন লার্নিং, ব্লক চেইন ইত্যাদি। ধাপ ৬ জব লাইফের ৫ বছরের পর থেকে ১০ বছর পর্যন্ত চলতে পারে। আর এই ধাপে ক্লায়েন্ট মেনেজ করা ও অন্যান্য ম্যানেজারিয়াল কাজ করতে হবে। সেখানে ফোকাস দিয়ে সেই কাজে দক্ষতা অর্জন করতে হবে।

ধাপ ৭

এই ধাপে আমি মনে করি আপনি নিজেকে অন্য লেভেলে নিয়ে যেতে চেষ্টা করবেন। হয় আপনি দেশে একজন এক্সপার্ট হিসাবে নিজেকে গড়ে তুলতে পারেন। বিভিন্ন সেমিনার, ট্রেইনিং, কনসাল্টেন্সি ইত্যাদিতে যুক্ত হতে পারেন। বড় বড় সফটওয়্যার আর্কিটেক্টদের কাজ নিয়ে গবেষণা করতে পারেন। তাদের সাথে তাল মিলিয়ে কাজ করতে পারেন। বই লিখতে পারেন। মানুষকে শিখানো, তাদের গাইড করা ও দেশের জন্য কাজ করা আপনার জন্য একটি লক্ষ্য হতে পারে।

কারণ সাদামাটা কোডিং বা সফটওয়্যার ডেভেলপমেন্ট করে এখন আর আপনি নিজেকে আলাদা করতে পারবেন না। এখন আপনাকে অন্য উচ্চতায় উঠতে হবে।

এছাড়া যদি জবে আরও ১০ বছর পার করতে চান, তাহলে আপনাকে বড় কোন কোম্পানির টপ লেভেলে যেতে হবে। সেখানে আপনি আর্কিটেক্ট বা CTO রোল প্লে করতে পারেন।

বর্তমানে যারা এই লেভেলে আসছে তারা দেশের বাইরে চলে যাচ্ছে। আমি সেটা করতে বলবো না, তবে দেশের বাইরে বড় কোন কোম্পানিতে কাজ করলে অনেক কিছু শিখতে পারবেন। কাজেই সেটা সাময়িকভাবে করা যেতে পারে। তবে নিজের দেশের জন্য কাজ করার থেকে বড় কিছু হতে পারে না। যারা সেটা করতে পারবেন, তারা অন্যদের থেকে নিজেকে আলাদা করে রাখতে পারবেন। এটা হয়ত অর্থ দিয়ে পরিমাপ করা যাবে না, তবে এটা অবশ্যই গৌরবের কাজ।

ধাপ ৮

এই ধাপ বা এরপরের যে ধাপগুলো থাকবে সেগুলো সম্পর্কে আমার তেমন ধারণা নেই, কারণ সেখানে আমার এখনো যাওয়া হয়নি বা যারা গিয়েছেন, তারা কিভাবে গিয়েছেন সেটা জানা হয়নি। আমার মনে হয়, এই ধাপগুলো আসলে প্ল্যান করে করা যায় না। ধাপ ৭ এ যারা আসতে পারবেন, তাদের মধ্যে কেউ কেউ আরও সামনে এগিয়ে যাবেন, তাদের নিজেদের যোগ্যতা ও সামর্থ্য দিয়ে।

ধরা যেতে পারে, এই ধরণের মানুষরা দেশ ও পৃথিবীতে বড় রকমের পরিবর্তন আনার সামর্থ্য রাখেন। তারা এমন কিছু ভাবেন বা চিন্তা করেন যা অন্য কেউ করতে পারে না। যেমন গুগোলের প্রতিষ্ঠাতা লেরি পেজ যিনি গুগোল এর সার্চ এলগোরিদম তৈরি করেছেন। তাদের ভাগ্য অন্যদের থেকে আলাদা। তারা জন্মান এই পৃথিবীকে নতুন কিছু উপহার দেয়ার জন্য। শেষ পর্যন্ত তাই ধাপ ১ এর সেই প্রার্থনাই এখানে কাজে লাগতে পারে অথবা আল্লাহ্‌ যেটা যার জন্য লিখে রেখেছেন সেটাই হবে।

মোঃ জালাল উদ্দিন

প্রতিষ্ঠাতা ও সিইও, ডেভস্কীল.কম