Categories
About Me

রিভার্স ইঞ্জিনিয়ারিং এবং আমার পথচলা – ১

আজ থেকে ১২/১৫ বছর আগের কথা। তখন মোবাইল ইন্টারনেট সহজলভ্য ছিল না। ইন্টারনেট মানে এক আশ্চর্যের বিষয়। বন্ধুদের মধ্যে যার মোবাইলে ইন্টারনেট সংযোগ থাকতো বিকেলে সবাই মিলে খেলা বাদ দিয়ে তাকে ঘিরে ধরতাম ইন্টারনেট ব্রাউজিং দেখার জন্য।

৯০ এর দশকে যাদের জন্ম তারা জানবেন মিগ৩৩(Mig33) নামে একটি মোবাইল চ্যাট অ্যাপ ছিল। ২০০৫ সালে এর যাত্রা শুরু হয়। তখন মূলত জাভা ফোন এ অ্যাপ চলতো এবং এটি বেশ জনপ্রিয় ছিল। রুম, গ্রুপ চ্যাট এর ফিচার ছিল। রুম চ্যাট এ কোন ইউজারকে কিক দিয়ে রুম থেকে বের করা যেত।

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

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

২০০৩ সালে আমার প্রথম কম্পিউটার পরিচিতি। আমার বাবা একজন প্রজুক্তিপ্রেমি। তার এই আগ্রহের কারনেই আমি আজ এ পর্যায়ে আসতে পেরেছি। আমার বাসায় যখন প্রথম কম্পিউটার আনলো তখন আশেপাশের ২/১ মহল্লায় হাতেগোনা ৪/৫ টা কম্পিউটার হবে।

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

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

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

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

জানিনা আমার কি হয়েছিল। শুধু ঘুম, নামাজ এর খাওয়া বাদে ১৪/১৬ ঘণ্টার দীর্ঘ ১ মাসের চেষ্টার পর আমি মিগ৩৩ সকেট ডাটা ক্যাপচার করে লগিন বট বানাতে সক্ষম হই। জাভা অ্যাপ ডাটা ক্যাপচার এর জন্য ডেক্সটপ কম্পিউটার এ SJBoy ইমুলেটর WepPro ব্যবহার হতো। এসব ডাটা আন্যলাইসিস করে উইনসক(Winsock) দিয়ে লগিন হ্যাশ বাইপাস করে একটি ডেক্সটপ সফটওয়্যার তৈরি করা ভালই ঝক্কি ঝামেলার কাজ ছিল। যদিও প্রথমদিকের ২/১ জন ডেভ্লপার লগিন হ্যাশ বাইপাস ওপেন সোর্স করে দিয়েছিলেন। ২০০৯ সালের ডিসেম্বর মাসে আমি আমার প্রথম মিগ৩৩ কিক সফটওয়্যার (F3r0cius F1ght3r) এর প্রথম ভার্সন লিরিজ করি।

আলহামদুলিল্লাহ্‌। এরপর থেকে মিগ৩৩ সম্পর্কিত যখন যে সফটওয়্যার লাগতো নিজেই বানাতাম। আর কারো কাছে সফটওয়্যার এর জন্য ধর্না দিতে হয়নি।

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

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

রসায়নের নাকি অনেক রস। কিন্তু আমি সেরকম কিছুই খুজে পেলাম না। ক্লাস এ বসে থাকলেও আমার মন থাকতো কম্পিউটার স্ক্রীন এ। কি আর করার কোনরকম TTP তে গ্রাজুয়েশন কমপ্লিট করলাম। TTP মানে টেনেটুনে পাস। এই সাথে আমার প্রোগ্রামিং এর পড়ালেখা থেমে নেই। নিজে নিজেই ঘেঁটে ঘেঁটে নতুন জিনিস শিখেছি। কখন ইউটিউব, কখনো ফোরাম, কখনোবা ব্লগ। এভাবেই অনলাইনে ঘুরে বেড়াতাম নতুন নতুন বিষয় শেখার জন্য।

২০১৪/২০১৫ সালের কথা। ডেক্সটপ এপ তৈরির দক্ষতা বেড়েছে। সেই সাথে ভিন্নতাও এসেছে। তখন ডেক্সটপ বেস ওয়েব অটোমেশন এর অনেক কাজ করেছি। যেমনঃ ইন্ডিয়া এবং মালেসিয়া ভিসা প্রসেসিং, বিভিন্ন সাইট এর রেজিস্ট্রেশান বট। তখন Http Request ওয়েব অটোমেশন টুল Gecko FX, Selenium এর ধারনা পেতে থাকি। সেলেনিয়াম যে ওয়েব টেস্টিং ফ্রেমওয়ার্ক সেটা অনেক পরে জানতে পেরেছি।

এভাবে কাজের প্রয়োজনে বিভিন্ন টেক সম্পর্কে জেনেছি এবং দক্ষতা অর্জন করেছি। ব্যপারটা এরকম না যে, কোথাও আটকে গেছি আর সিনিয়র কে জিজ্ঞেস করেই সমাধান পেয়েছি। আমি যেহেতু CSE ব্যাকগ্রাউন্ড এর না তাই এই রিলেটেড কোন বড় ভাই বা কমুউনিটি পাইনি। কোথাও আটকে গেছি। আলহামদুলিল্লাহ্‌ ৯০ ভাগ নিজেই সমস্যার সমাধান করেছি। আল্লাহ মেহেরবান। তার রহমত ছাড়া এতদূর আসা অসম্ভব।

২০১৬ সালে আমার এক বন্ধুর মাধ্যমে একটা আইটি ফার্ম ওয়েব ডেভ্লপার হিসেবে সিভি পাঠাই। ইন্টারভিউ ডাক পেলাম। ২/৩ টা প্রশ্ন করেছিল। ঠিকমত সবগুলা উত্তর দিতে পারিনি। যাইহোক তখন আমার মাস্টার্স প্রথমবর্ষ পরিক্ষা শেষ। সেই আইটি ফার্মে জয়েন করলাম।

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

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

আইটি ফার্ম এ জয়েন করার পর। প্রথম মাসেই আমি প্রোজেক্ট সাবমিট করি যদিও নেয়া হয়েছিল ট্রেনি জুনিয়ন হিসেবে। আলহামদুলিল্লাহ্‌ নিজে নিজেই করেছি সব। Codeigniter ফ্রেমওয়ার্ক এর হাতেখড়ি এখানেই। টানা ২ বছর এটা নিয়ে কাজ করি। ৪/৫ টা প্রোজেক্ট করেছি এ ফ্রেমওয়ার্ক ব্যবহার করে।

২০১৮ এর শেষের দিকে প্রথম লারাভেল এ কাজ করি। যদিও প্রথম ২০১৭ সালে এটার নাম শুনি। প্রথম প্রথম অনেক কষ্ট হয়েছে লারাভেল এর লাইফ সাইকেল বুজতে। কেমন যেন মাথায় চাপ লাগতো কোন কিছু না বুজলে। ধিরে ধিরে ৬ মাস চেষ্টার পর আয়ত্তে আসে।

আমি কিন্তু প্রোগ্রামিং প্রব্লেম সল্ভ এ অনেক কাঁচা কিন্তু তাও কিভাবে যেন প্রব্লেম সল্ভ হয়ে যায়। প্রব্লেম সল্ভ বলতে প্রোগ্রামিং কন্টেস্ট বুজাচ্ছি না একটি অ্যাপলিকেশন এর প্রব্লেম/লজিক বিল্ড আপ বুজাচ্ছি। তবে একটা বিষয় আমার আছে সেটা হচ্ছে যতক্ষন না সল্ভ হবে ততক্ষন আমি ওটাকে ছাড়িনা। সেটা যত দিন লাগুক। এমনো হয়েছে একটা সমস্যা/ইস্যু নিয়ে আমি ৭/১০ দিন কাটিয়েছি। তারপরও হাল ছাড়িনি। হয়তোবা এটাই আমাকে এতটুকু আসতে সবচেয়ে বেশি সাহায্য করেছে।

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

প্রথম প্রতিষ্ঠান এর প্রতি সবারই একটা সফট কর্নার কাজ করে। সে কারনেই আমি সবসময় চেয়েছি আমার প্রথম প্রতিষ্ঠান এ থাকতে।

কথায় আছে “প্রতিষ্ঠানকে নয় কাজকে ভালোবাসো কারন প্রতিষ্ঠান তোমাকে যেকোনো সময় বাতিল করে দিতে পারে কিন্তু কর্মদক্ষতা তোমাকে সারাজীবন আগলে রাখবে।

যদিও আমার প্রথম প্রতিষ্ঠান আমাকে বাতিল করে দেয়নি কিন্তু নিজের ক্যরিয়ারের কথা চিন্তা করে আমাকে আরও আগেই নতুন কর্মক্ষেত্রে যাওয়া উচিৎ ছিল।

দীর্ঘ ৬ মাস প্রস্তুতি নেয়ার পর ভালো একটি প্রতিষ্ঠান এ জব অফার পেয়েছি। সেই প্রস্তুতি এবং সবগুলো ভাইবা প্রসেস নিয়ে অন্য একদিন লিখবো।

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

আজ এখানেই শেষ করছি। আপনাদের কারো কোন জিজ্ঞাসা থাকলে কমেন্টে জানাতে পারেন। আমার সাধ্যমত উত্তর দেয়ার চেষ্টা করবো।

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.