কম্পিউটার নিয়ে আমার ইন্টারেস্ট ছিল অনেক ছোটবেলা থেকে, কিন্তু বুয়েটে ভর্তির আগ পর্যন্ত কখনো নিজের কম্পিউটার পাইনি। প্রোগ্রামিং এর শুরুও বুয়েটে ভর্তির পরবুয়েটে ১-১ এ আমাদের Python শেখানো হত। ভালোই লাগত Python এ কোড করতে। ১-২ তে ছিল C programming এর কোর্স। আমি Herbert Schildt এর বই পড়ি, এক্সারসাইজ সল্ভ করি, ওদিকে আমার কিছু ফ্রেন্ড ততদিনে অ্যালগরিদম ডাটা স্ট্রাকচার শিখে বিভিন্ন প্রোগ্রামিং সাইটে শখানেকের উপর প্রবলেম সল্ভ করে ফেলেছে। আমি মাঝে মাঝে ওদের আশেপাশে ঘুরাঘুরি করতাম, কিছু যদি শেখা যায় এই আশায়। এর আগে ১-১ এ একবার প্রবলেম সল্ভ করার চেষ্টা করেছিলাম, কিন্তু বারবার wrong answer খেয়ে হাল ছেড়ে দিয়েছিলাম। যাই হোক, কিছুদিন পর সাহস করে আবার UVa তে গেলাম প্রবলেম সল্ভ করার জন্য। ততদিনে C এর বেসিক মোটামুটি পারি, অন্যদের প্রবলেম সল্ভিং দেখে আমারও এসব নিয়ে খানিকটা ধারনা বেড়েছে। এবারও প্রথম দিকে wrong answer খাচ্ছিলাম প্রথম দিকে, কিন্তু ফোরাম ঘাটাঘাটি করে বুঝে নিতে পেরেছিলাম কি সমস্যা হচ্ছিল। একটা সল্ভ করার পর দেখলাম মজাই তো লাগে, আরেকটা সল্ভ করি। এভাবে একটা একটা করে ওইদিন মোট ১৪টা প্রবলেম সল্ভ করা হয়েছিল। পরের দিন আর ১৪টা। এরপর থেকে প্রবলেম সল্ভ করা অনেকটা নেশার মত হয়ে গেল। যদি কয়েকদিন পরই দেখা গেল প্রবলেমের ডিফিকাল্টি লেভেল বাড়ছে, অনেক বেশি সময় লাগছে একেকটা প্রবলেম সল্ভ করার জন্য, কিন্তু নিয়মিতই বেশ খানিকটা সময় দিতাম এর জন্য।
এরই মধ্যে টার্ম ফাইনালের ঠিক আগে আমার ডেস্কটপের ফোল্ডারগুলো ঘাটতে ঘাটতে জাভার উপর Dietel & Dietel এর একটা বই পেলাম। কম্পিউটার কেনার পর এক সিনিয়র ভাইয়ার কাছ থেকে অনেক বইপত্র জোগাড় করে এনেছিলাম, তার মধ্যে ছিল। বইটা খানিকটা পরার পর জাভার সিনট্যাক্স এবং OOP কনসেপ্ট আমার কাছে খুবই ভালো লেগে গেল। তাই টার্ম ফাইনাল শেষ হওয়ার পরপরই বন্ধের মধ্যে ভালোমত বইটা পড়লাম (এর জন্য মানুষজনের কাছ থেকে ভালোরকম পচানিও খাওয়া লেগেছিল)। ২-১ এর শুরুতেই আবার ‘০৭ এর ভাইয়ারা BSADD শুরু করেছিলেন। আমি আমার স্বল্প জাভা জ্ঞান নিয়ে সেসব সেশন এটেন্ড করতাম। মিডটার্ম এর সময় BSADD এর একটা সিস্টেম ডিজাইন কন্টেস্ট হয়। শামিম হাসনাত আর ফয়সালের সাথে ওই কন্টেস্টে এটেন্ড করি, এবং রানার্সআপ হই। তখন থেকেই কনফিডেন্স বাড়তে থাকে যে অভিজ্ঞতা কম হলেও পরিশ্রম করলে সফটওয়্যার ডেভেলপমেন্টে ভালো করা সম্ভব।
এরপরই আসলো থেরাপ জাভা ফেস্ট। জাভা বেসড একটা ওয়েব অ্যাপ বানানো লাগবে। আমি আর শামীম ঠিক করলাম অংশগ্রহন করব। শামীম এর আগে ওয়েবের কাজ কিছুটা করেছে, কিন্তু জাভাতে ওয়েবের কোনও এক্সপেরিয়েন্স ছিল না ওর। আর আমার দৌড় তখন ছোটোখাটো ডেস্কটপ অ্যাপ বানানো পর্যন্তই। সময় ছিল বোধহয় দুই মাসের মত, ফাইনাল সাবমিশন টার্ম ফাইনালের এক সপ্তাহ আগে। এর মধ্যে HTML, CSS, Javascript, JQuery, JSP, Servlet ইত্যাদি শিখে ভালো একটা অ্যাপ্লিকেশন বানানো লাগবে। ওই সময়টা রাতদিন খাটাখাটনি করেছিলাম দুইজন মিলে। ফাইনালের দিন গিয়ে দেখি ‘১০ ব্যাচ থেকে আমরাই একমাত্র টীম। বাকি সবাই সিনিয়র, ‘০৭ এর টীম পর্যন্ত আছে। যাহোক, ডেমো দিলাম, বাকি সবার ডেমো দেখার পর মনে হচ্ছিল তৃতীয় চতুর্থ কিছু একটা হব। ডেমোর পর ছিল কোড ইভালুয়েশন, এখানেই আমরা এগিয়ে যাই। জাজরা আমাদের কোড কোয়ালিটি দেখে খুবই অবাক হয়েছিলেন। ফাইনালি, বাকি সব টিমকে হারিয়ে আমরাই চ্যাম্পিয়ন হই।থেরাপের ওই কন্টেস্টটা ছিল আমার আন্ডারগ্র্যাড লাইফের সবচেয়ে বড় অর্জন। ২-১ এ থাকা অবস্থায় একটা ন্যাশনাল কন্টেস্টে সব সিনিয়র টিমকে হারিয়ে আমরা চ্যাম্পিয়ন হব, তাও সম্পূর্ণ নতুন কিছু টেকনোলজিতে কাজ করে, এটা ছয় মাস আগেও আমাকে কেউ বললে বিশ্বাস করতাম না। তখন থেকেই আমার চ্যালেঞ্জিং কিছু করার বা ব্যাতিক্রমী কিছু করার ভয়টা কেটে যায়। এরপর বেশ কয়েকবার অনেককিছু করতে গিয়েও ব্যর্থ হয়েছি, কিন্তু কখনো সাহস হারাই নি।
২-২ থেকে আমি ফ্রিল্যান্সিং করা শুরু করি নিজের খরচ চালানোর জন্য। ফ্রিল্যান্সিং করতে গিয়ে টেকনোলজিক্যালি আমার খুব বেশি কিছু শেখা হয়নি। কিন্তু প্রোডাক্ট রিকোয়্যারমেন্ট বোঝা এবং মানুষের সাথে কমিউনিকেট করা, এই দুই দিক থেকে অনেক উন্নতি হয়েছে। Competitive Programming ও শুরু করি একই সময়ে। শাকিব, মুকুট, আর আমার টীমটার পারফর্মেন্স শুরুর দিকে ভালোই ছিল। কিন্তু কিছুদিন পরেই বুঝতে পারি যে Competitve Programming Contest এ ভালো করতে হলে আমার ১০০% দেওয়া লাগবে এখানে, পড়াশোনা বা ফ্রিল্যান্সিং-এ সময় দেওয়া সম্ভব হবে না। তাই ৩-১ এ কন্টেস্ট ছেড়ে দেই। কিন্তু Codeforces, Hackerrank এ মাঝে মাঝেই প্রবলেম সল্ভ করতাম।
৩-২ এর টার্ম ফাইনালের মাঝামাঝি সময়ে জয়েন করি ব্যাকপ্যাকে, ওদের প্রথম কয়েকজন হায়ার এর মধ্যে একজন হিসেবে। ব্যাকপ্যাকে আমি ছিলাম চার মাসেরও কম সময়। আমার মনে হয় ওই সময়টাই আমার জীবনের সবচেয়ে intense learning period. স্টার্টআপ জিনিসটা যে কি, বা সত্যিকার একটা প্রোডাক্ট বানিয়ে সেটা সাধারন ইউজারদের কাছে পৌঁছানোর প্রসেস যে কতটা কঠিন, ব্যাকপ্যাকে থাকার সময়ই প্রথম এ জিনিসগুলো শিখতে পেরেছিলাম। কিন্তু একই সাথে স্টার্টআপে চাকরি করা আর ঠিকমত পড়াশোনা চালিয়ে যাওয়া মোটামুটি অসম্ভব একটা কাজ। তাই পরে চাকরি ছেড়ে দিয়ে পড়াশোনা, থিসিস, আর প্রবলেম সল্ভিং এ মনোযোগ দেওয়া শুরু করি।
সত্যি কথা বলতে কি ৪-২ পর্যন্ত আমি কখনই ঠিক করতে পারিনি যে ভবিষ্যতে কি করব। কখনো মনে হত খুব ভালো মত প্রবলেম সল্ভিং করে বড় কোনও সফটওয়্যার কোম্পানিতে ঢুকব, পরেক্ষনেই মনে হত বাংলাদেশ থেকে ২-৩ টার বেশি বড় কোম্পানি সরাসরি আন্ডারগ্রেড হায়ার করে না, তাই রিসার্চ ভালোমত করে MS/PhD করব। তারপরই আবার মনে হত বাইরে পড়াশোনা করা কষ্টে না গিয়ে দেশেই জব করি। ৪-১/৪-২ অনেকবার ভেবেছি যে রেজাল্ট ভালো করে টিচার হিসেবে জয়েন করব কোথাও। ৪-২ এর শেষে গিয়ে ঠিক করলাম প্রোগ্রামিং যেহেতু আমার প্যাশন, সফটওয়্যার ইঞ্জিনিয়ারিং এই থাকব আমি। আর হোক আর না হোক খুব ভালমত চেষ্টা করব ভালও কোনও সফটওয়্যার কোম্পানিতে জয়েন করতে। মাঝে মাঝে প্রবলেম সল্ভ করার অভ্যাসটা সবসময়ই ধরে রেখেছিলাম, তখন থেকে প্রতিদিন InterviewBit এ বেশ খানিকটা সময় ধরে ইন্টারভিউ প্রবলেম সল্ভ করা শুরু করলাম। আর একই সাথে বাইরের ছোটো বড় বিভিন্ন কোম্পানিতে অ্যাপ্লাই করা শুরু করলাম। কিন্তু পজিটিভ রিপ্লাই পাচ্ছিলাম না কোনো জায়গা থেকেই। আশা যখন মোটামুটি ছেড়ে দিয়েছি, তখন গুগল অস্ট্রেলিয়া থেকে ডাক পেলাম ফোন ইন্টারভিউ জন্য। রিক্রুটার জানালো যে আমার একাডেমিক রেজাল্ট আর সফটওয়্যার ইঞ্জিনিয়ারিং এক্সপেরিয়েন্স দেখে আমার সিভি ওদের পছন্দ হয়েছে। টার্ম ফাইনালের পরপরই প্রথম ফোন ইন্টারভিউ দিলাম। বেশ ভালো হয়েছিল সেটা, পরের দিন সকালেই রিক্রুটার ফোন করে জানালো যে আমি অনসাইট ইন্টারভিউের জন্য সিলেক্টেড হয়েছি।
ততদিনে iPay Systems এর মোবাইল টিমে জয়েন করে ফেলেছি। অফিস থেকে ছুটি নিয়ে গেলাম সিডনীতে ইন্টারভিউ দিতে। একদিনে পাঁচটা ইন্টারভিউ, তিনটা প্রবলেম সল্ভিং এর উপর, একটা জাভার উপর (ইন্টারভিউ প্রসেসের শুরুতে বলেছিলাম যে জাভা ভালো পারি), আর শেষের টা সিস্টেম ডিজাইনের উপর। জাভার ইন্টারভিউ ছাড়া মোটামুটি সবগুলোই ভালো হয়েছিল। মজার ব্যাপার হলো সবগুলো ইন্টারভিউএর প্রবলেমই অ্যাডহক টাইপ ছিল, একটা ইন্টারভিউ তে শুধু DFS লেগেছিল। তাই নিয়মিত ব্যাসিক কিছু অ্যালগরিদম জানা থাকলেই এই ইন্টারভিউগুলোতে ভালো করা সম্ভব যদি নিয়মিত প্রবলেম সল্ভ করার অভ্যাস থাকে। ইন্টারভিউ শেষে ঘুরাঘুরি করে দেশে ফেরত আসলাম, সপ্তাহ দুয়েক পর রিক্রুটার কনফিরম করল যে অফার পেয়েছি। ভিসা, রিলোকেশন, ব্যাকগ্রাউন্ড চেকিং, সব ঝামেলা শেষ হওয়ার পর গত বছরের অগাস্টে জয়েন করলাম গুগল সিডনীতে।
গুগলে আছি ছয় মাসের মত হতে চলল। ছয় মাস খুব বেশি সময় না, কিন্তু এখন পর্যন্ত আমার গুগলের অভিজ্ঞতা খুবই পজিটিভ। প্রথমত এখানে প্রত্যেকেই যেমন বুদ্ধিমান তেমন হেল্পফুল, দ্বিতীয়ত কাজের পরিবেশ খুবই ফ্লেক্সিবল। আমি কখন অফিসে আসলাম, কখন গেলাম, সারাদিন ডেস্কে থাকলাম নাকি টেবিল টেনিস খেললাম, কারোরই এসব নিয়ে মাথাব্যাথা নেই যতক্ষন পর্যন্ত আমি আমার কাজ ঠিকঠাকভাবে করে যেতে পারছি। আর ভালো বেতন, ফ্রি খাবার দাবার এসব তো আছেই। নেগেটিভ দিক বলতে একটা জিনিসই চোখে পড়েছে, কোড করার সময় অনেক প্রসেসের মধ্যে দিয়ে যেতে হয়। কোড কোয়ালিটি বজায় রাখার জন্য এটা খুবই দরকার, কিন্তু স্টার্টআপ থেকে আসলে প্রথম প্রথম একটু কষ্ট হয় মানিয়ে নিতে।