Mokhlesur Mahin
এই লেখাটা কাউকেই হেয় করা বা অপমান করার উদ্দেশ্যে লেখা হয়নি।
আমি প্রতিমাসেই প্রায় কয়েকটা মেসেজ এমন পাই, "ভাই আমি সিএসই নিয়ে অনার্স/ডিপ্লোমা কমপ্লিট করেছি। সেরকম ভাবে প্রোগ্রামিং করিনি। আবার ফ্যামিলির অবস্থা ভালোনা, বাবা অসুস্থ তাই এখন আমার জরুরীভাবে জব দরকার। আমি কীভাবে আগামী ৩/৬/৯
মাসের মধ্যে একটা জব পাবো, প্লিজ কিছু গাইডলাইন দেন।"
সব মেসেজ যে এরকমই হয় তা নয় তবে মেসেজের মুলকথা থাকে "এতদিন তেমন কিছু করা না হলেও এই মুহুর্তে বেশ ঝামেলা হচ্ছে তাই আমার আর্জেন্ট জব লাগবে"। এখানে বলে রাখা ভালো আমি যেহেতু সফটওয়্যার ইন্ডাস্ট্রিতে কাজ করছি তাই সব মেসেজ এই ফিল্ডের জব নিয়েই করা হয়ে থাকে।
এইরকম মেসেজ দেখলে আমার আসলে মন খারাপ হয়ে যায় একই সাথে আমি খুব অপ্রস্তুত হয়ে যাই কী বলবো তা নিয়ে। কারন এই সেইম জায়গাটায় আমিও একসময় ছিলাম। আমিও অনেককে মেসেজ করেছিলাম। সবার কাছে আমি সেসময়ে যেরকম গাইডলাইন পেয়েছিলাম কিংবা ৪ বছরের অধিক সময় ধরে কাজ করার অভিজ্ঞতার আলোকে যতটুকুন বুঝতে পেরেছি তার উপর বেইজ করে কিছু গাইডলাইন নিচে দিলাম।
প্রথমত, আপনি দীর্ঘ চার বছরের একটা লম্বা জার্নি শেষ করে ডিগ্রি অর্জন করেছেন বা করার দ্বারপ্রান্তে আছেন। এই চার বছরে আপনি কিছুই করেননি কিন্তু এই সময়ে এসে ফ্যামিলি প্রেশার, বা অন্যান্য নানাবিধ ব্যক্তিগত কারণে আপনার খুব দ্রুত এবং মোস্ট অফ দ্য টাইম তা একটা ধরাবাধা সময়ের মধ্যে আপনার জব লাগবে। একটু ভাবুন ভাই, ব্যাপারটা কি আসলেই সোজা? আপনাকে এই জব পাওয়ার জন্য ভার্সিটিতে ৪ বছর পড়ানো হয়েছে। সেই চার বছর আপনি নষ্ট করেছেন। তাই খুব স্বাভাবিকভাবে আগামী ৪ মাসের টার্গেট নিয়ে শুরু করলেও তার অনেকটা সময় আপনি নষ্টই করবেন। ধরে নিলাম করলেন না, তবুও এত অল্প সময়ে আপনি যাইই করেন না কেন, আপনি জব পাবেন না। সোজা কথা। আর পেলেও সেটা কখনোই খুব জাতের কোন জব হবেনা।
তাই যদি ভালো কিছু করতেই চান, আর অতীতের নষ্ট করা সময়টা নিয়ে না ভেবে সামনে আগাতে চান, তাইলে সবার আগে আপনার ধরাবাধা টাইমফ্রেম থেকে বের হয়ে আসেন। আপনার ক্যাপাবিলিটির উপর নির্ভর করবে আপনি কত দ্রুত জব পাওয়ার জন্য রেডি হবেন। ধরাবাধা টাইমে জাস্ট স্ট্রেসই বাড়বে, আর কিছুনা।
এবার আসেন কথা বলি প্রিপারেশনটা কীভাবে নিবেন তার উপর_
১. ৪ বছর কিছুই করেননাই, তার মানে আপনার ফান্ডামেন্টাল কনসেপ্ট খুবই খারাপ। তাই সবার আগে ফান্ডামেন্টাল ক্লিয়ার করেন। বেসিক কম্পিটিং মেকানিজম, কম্পিউটার কীভাবে চলে, OS কী, কীভাবে কাজ করে, প্রোগ্রামিং কী, কেন করা হয়, কীভাবে কোড লিখে, নেটওয়ার্কিং নিয়ে ব্যাসিক আইডিয়াগুলো ক্লিয়ার করতে হবে।
২. যেকোন একটা প্রোগ্রামিং ল্যাংগুয়েজ চুজ করেন। ব্যাসিক সিন্ট্যাক্স আর ইউজকেইসগুলো শিখেন এবং বুঝেন। টুকটুক করে ছোট ছোট কোড লেখা শুরু করেন।
৩. ল্যাংগুয়েজে মোটামুটি কম্ফোর্টেবল হয়ে গেলে যেকোন একটা অনলাইন জাজে গিয়ে একদম ইজি লেভেল প্রবলেমগুলো সলভ করার ট্রাই করেন। না পারলে হাল ছাড়া যাবেনা। এইটা খুব খুব খুব জরুরী। আপনি ফ্রন্টেন্ট, ব্যাকেন্ড, নেটওয়ার্ক বা যেই ইঞ্জিনিয়ারই হোন না কেন, আপনি কাজ করবেন কম্পিউটার নিয়ে। আর কম্পিউটার চলে লজিকালি। সো, লজিক বুঝতে গেলে আপনাকে এইটা করতেই হবে।
৪. প্রবলেম সলভিং এর পাশাপাশি আপনি শিখতে থাকেন অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং কন্সেপ্ট। এর ব্যাসিক পিলার্সগুলো নিয়ে পড়াশোনা করেন। কেন, কখন এবং কীভাবে এইগুলো ব্যবহার করা হয় তা শিখেন। এই প্রশ্নগুলো চ্যাটজিপিটিকে জিজ্ঞেস করলেই খুব সুন্দর উত্তর পাবেন।
৫. আপনি পড়াশোনা করেন ওয়েবের বিভিন্ন প্রটোকল নিয়ে। HTTP
, UDP
, TCP/IP
কিংবা HTTPs
ইত্যাদি প্রটোকল কী, কীভাবে কাজ করে তা শিখুন। ওয়েব কীভাবে কাজ করে জানুন।
৬. মোটামুটি কম্ফোর্টেবল হয়ে গেলে আপনার সেই চুজ করা ল্যংগুয়েজ দিয়ে একটা সিম্পল ওয়েব সার্ভার তৈরী করে ফেলেন। আপনার সার্ভার রান করলে ব্রাউজার হিট করলে ইন্টারফেইস পাবেন। এইবার নিজেকে প্রশ্ন করেন এটা কীভাবে হলো?
৭. এইবার পড়াশোনা করেন ডাটাবেইজ নিয়ে। আমি প্রেফার করবো যেকোন একটা সিকোয়েল ডিবি (MySQL/PostgreSQL)
নিয়ে জানুন। ডিবি, টেবিল, ফিল্ড ইত্যাদি জানুন। কোয়েরিগুলো ব্যবহার করুন। তারপর একটা সিম্পল ডিবি স্কিমা রেডি করে ফেলুন।
৮. এই পর্যন্ত যতগুলো ধাপ বলেছি, দয়া করে এই পর্যন্ত কোন ফ্রেইমওয়ার্ক ইউজ করবেন না। একদম Raw
কোড দিয়ে সার্ভার তৈরী করবেন। তারপর আপনার ডাটাবেইজ সার্ভারের সাথে আপনার অ্যাপ্লিকেশন সার্ভার কানেক্ট করুন।
৯. CRUD
নিয়ে পড়াশোনা করেন। তারপর আপনার ডাটাবেইজ টেবিলে CRUD
অ্যাপ্লাই করেন আপনার অ্যাপ্লিকেশনের মাধ্যমে। কিছু লজিক ইম্পলিমেন্ট করবেন। ডাটা ভেরিফিকেশন টাইপ সহজ কিছু দিয়ে শুরু করতে পারেন। যেমন নামের ফিল্ডে কেউ যেন নাম্বার ইনপুট দিতে না পারে কারন কারো নাম নাম্বার দিয়ে হয়না, এরকম।
১০. API
নিয়ে পড়াশোনা করেন। এইটা কী, কেন লাগে এইসব জানেন। উপকারিতা কী এইসব জেনে নিবেন।
১১. সফটওয়্যার বিভিন্ন আর্কিটেকচারে ডেভেলপ করা যায়। আপনি আপাতত মনোলিথিক আর মাইক্রোসার্ভিস আর্কিটেকচার নিয়ে পড়াশোনা করবেন।
১২. এই ধাপে এসে একটা সিম্পল প্রজেক্ট প্ল্যান করুন। হোক সেটা একটা Todo
অ্যাপ্লিকেশন। তারপর সেই প্রজেক্ট স্পেসিফিক ডাটাবেইজ ডিজাইন করুন, আপনার অ্যাপ্লিকেশন কোড লিখুন। CRUD
অ্যাপ্লাই করুন। গিট নিয়ে পড়াশোনা করে কোড গিটে রাখুন।
১৩. অ্যাপ্লিকেশন রেডি হয়ে গেলে, ডকার নিয়ে পড়ুন। কন্টেইনারাইজশন ইদানীং কালে ভীষন জনপ্রিয় হয়েছে। এইটা জানলে আপনি জব ইন্টারভিউতে অবশ্যই আলাদা প্রেফারেন্স পাবেন। শিখে ফেলে আপনার সফটওয়্যার টা ডকারে ডেপ্লয় করুন।
১৪. এই সময়ে এসে আপনি মোটামুটি বুঝতে শুরু করবেন হাউ থিংস আর ওয়ার্কিং অলটুগেদার। এখন আপনি আপনার পছন্দমতো ইউনিক কোন আইডিয়ার একটা প্রজেক্ট চুজ করেন। এইটা একটু কমপ্লেক্স প্রজেক্ট হতে হবে নইলে ডেপথ-এ যেতে পারবেন না। কাজ শুরু করুন। এই ধাপে আপনি চাইলে যেকোন একটা ফ্রেইমওয়ার্ক ইউজ করতে পারেন।
উপরে যতগুলো স্টেপ দেওয়া আছে সবগুলোই করবেন কিন্তু পাশাপাশি প্রবলেম সলভিংটা অবশ্যই কন্টিনিউ করবেন। এইটা ছাড়া যাবেনা।
যখন এইগুলোতে মোটামুটি কনফিডেন্ট হবেন তখন জব অ্যাপ্লাই শুরু করেন, সিনিয়রদের নক দেন রেফারেলের জন্য। এখানে রেফারেলের জন্য যখন নক দিবেন তখন একটা কমন কার্টেসী হলো, আপনি যে জব রেফারেল চাচ্ছেন তার জন্য আপনি কতটুকু প্রস্তুত তা অবশ্যই মেসেজে ইনক্লুড করা। আপনি আপনার স্কিলস সাথে প্রজেক্ট লিংকগুলো দিয়ে দিবেন।
এইবার চিন্তা করেন এইক্ষেত্রে আপনার কতদিন লাগবে। আপনি ক্যাপবল হলে ৬ মাস নইলে ৬ বছর।
নোট: এই লেখাটা এক বসায় লেখা, তাই অনেক প্রয়োজনীয় জিনিস মিস হয়ে যেতে পারে। এক্সপার্ট রা তা কমেন্টে বলে দিতে পারেন কিংবা আমার মনে পড়লে আপডেট করে দিবো।
Mokhlesur Mahin
28th Aug, 2024
✕