Failed to render content. Please refresh the page. Showing plain-text fallback.
"@/components/CTA" থেকে CTA আমদানি করুন
সফ্টওয়্যার ইঞ্জিনিয়ারিং সাক্ষাত্কার প্রশ্ন: এসডিই ভূমিকার জন্য সম্পূর্ণ গাইড (2025)
সর্বশেষ আপডেট: ফেব্রুয়ারী 7, 2025
কী টেকওয়ে
- সফ্টওয়্যার ইঞ্জিনিয়ারিং সাক্ষাত্কারগুলি কোডিং, সিস্টেম ডিজাইন এবং আচরণগত প্রশ্নগুলির উপর দৃষ্টি নিবদ্ধ করে
- মাস্টার ডেটা স্ট্রাকচার, অ্যালগরিদম এবং ডিজাইন প্যাটার্ন
- সমাধান এবং ট্রেড-অফগুলি স্পষ্টভাবে ব্যাখ্যা করার অনুশীলন করুন
- বিতরণ সিস্টেম এবং স্কেলেবিলিটি ধারণাগুলি বুঝুন
- স্বতন্ত্র অবদানকারী এবং দলের সহযোগিতা উভয় প্রশ্নের জন্য প্রস্তুত করুন
🎯 প্রো টিপ: সফ্টওয়্যার ইঞ্জিনিয়ারিং সাক্ষাত্কারগুলি আপনার কোড লিখতে, সিস্টেম ডিজাইন করার এবং অন্যদের সাথে কাজ করার ক্ষমতা পরীক্ষা করে। মৌলিক বিষয়গুলিতে ফোকাস করুন, নিয়মিত অনুশীলন করুন এবং পুরো প্রক্রিয়া জুড়ে পরিষ্কার চিন্তাভাবনা এবং যোগাযোগ প্রদর্শন করুন।
সফটওয়্যার ইঞ্জিনিয়ারিং ইন্টারভিউ স্ট্রাকচার
সফ্টওয়্যার ইঞ্জিনিয়ারিং সাক্ষাত্কারে সাধারণত বিভিন্ন দক্ষতা মূল্যায়নের একাধিক রাউন্ড অন্তর্ভুক্ত থাকে:
ইন্টারভিউ রাউন্ড:
- ফোন স্ক্রিন: বেসিক কোডিং এবং আচরণগত প্রশ্ন
- প্রযুক্তিগত সাক্ষাত্কার: কোডিং সমস্যা এবং সিস্টেম ডিজাইন
- অন-সাইট/প্যানেল: একাধিক সাক্ষাত্কারকারী, বিভিন্ন বিষয়
- ফাইনাল রাউন্ড: সিনিয়র নেতৃত্ব এবং সাংস্কৃতিক ফিট
মূল্যায়ন ক্ষেত্র:
- কোডিং দক্ষতা: ডেটা স্ট্রাকচার, অ্যালগরিদম, সমস্যা সমাধান
- সিস্টেম ডিজাইন: স্কেলেবিলিটি, আর্কিটেকচার, ট্রেড-অফস
- আচরণগত: টিমওয়ার্ক, নেতৃত্ব, সমস্যা সমাধানের পদ্ধতি
- ডোমেন জ্ঞান: ভাষা/ফ্রেমওয়ার্ক নির্দিষ্ট প্রশ্ন
কোডিং ইন্টারভিউ প্রশ্ন
সহজ স্তরের সমস্যা
1. বৈধ বন্ধনী
সমস্যা: কেবল '(', ')', '{', '}', '[' এবং ']' অক্ষরগুলি সমন্বিত একটি স্ট্রিং দেওয়া হয়েছে, ইনপুট স্ট্রিংটি বৈধ কিনা তা নির্ধারণ করুন।
সমাধান:
'''পাইথন
ডিএফ isvalid (গুলি):
স্ট্যাক = []
ম্যাপিং = {')': '(', '}': '{', ']': '['}
S এ চরের জন্য:
ম্যাপিংয়ে যদি অক্ষর:
# বন্ধনী বন্ধ করে
topelement = স্ট্যাক.পপ () যদি স্ট্যাক অন্য '#'
যদি ম্যাপিং[চর] != topelement:
রিটার্ন মিথ্যা
অন্য:
# ওপেনিং ব্র্যাকেট
স্ট্যাক.অ্যাপেন্ড (অক্ষর)
রিটার্ন নট স্ট্যাক
সময়: O(n + m), স্থান: O(1)
মূল ধারণা: লিঙ্কযুক্ত তালিকা, অ্যালগরিদম মার্জ করুন
মাঝারি স্তরের সমস্যা
1. এলআরইউ ক্যাশে
সমস্যা: একটি এলআরইউ (কমপক্ষে সম্প্রতি ব্যবহৃত) ক্যাশে ডিজাইন এবং প্রয়োগ করুন।
সমাধান:
'''পাইথন
ক্লাস এলআরইউকেচ:
ডিইএফ init(স্ব, ক্ষমতা):
স্ব.ক্ষমতা = ক্ষমতা
self.cache = {} # কী -> নোড
সেলফ হেড = নোড (0, 0)
self.tail = নোড (0, 0)
self.head.next = self.tail
self.tail.prev = self.head
ডিএফ remove(স্ব, নোড):
পূর্ববর্তী, nxt = node.prev, node.next
prev.next, nxt.prev = nxt, পূর্ববর্তী
ডিএফ add(স্ব, নোড):
পূর্ববর্তী = self.tail.prev
prev.next = নোড
self.tail.prev = নোড
node.prev, node.next = prev, self.tail
ডিএফ গেট (স্ব, কী):
যদি সেলফ.ক্যাশে কী থাকে:
নোড = self.cache[key]
self.remove(নোড)
self.add(নোড)
রিটার্ন নোড.ভ্যালু
রিটার্ন -1
ডিএফ পুট (স্ব, কী, মান):
যদি সেলফ.ক্যাশে কী থাকে:
self.remove(self.cache[key])
নোড = নোড (কী, মান)
self.add(নোড)
self.cache[key] = নোড
যদি লেন (সেলফ.ক্যাশে) > স্ব.ক্ষমতা হয়:
এলআরইউ = সেলফ.হেড.নেক্সট
self.remove(এলআরইউ)
ডেল সেলফ.ক্যাশ[lru.key]
সময়: O(n), স্থান: O(h)
মূল ধারণা: ট্রি ট্র্যাভার্সাল, ডায়নামিক প্রোগ্রামিং
সিস্টেম ডিজাইন ইন্টারভিউ প্রশ্ন
1. একটি URL সংক্ষিপ্তকরণ পরিষেবা ডিজাইন করুন (TinyURL)
প্রয়োজনীয়তা:
- দীর্ঘ ইউআরএলগুলিকে সংক্ষিপ্ত কোডে সংক্ষিপ্ত করুন
- সংক্ষিপ্ত ইউআরএলগুলি মূল ইউআরএলগুলিতে পুনর্নির্দেশ করুন
- উচ্চ ট্র্যাফিক পরিচালনা করুন (লক্ষ লক্ষ অনুরোধ / দিন)
- স্বতন্ত্রতা নিশ্চিত করুন এবং সংঘর্ষ রোধ করুন
- ইউআরএল ব্যবহারের উপর বিশ্লেষণ সরবরাহ করুন
ডিজাইন বিবেচনা:
- এনকোডিং: ইউআরএল কোডের জন্য বেস 62 এনকোডিং
- স্টোরেজ: ইউআরএল ম্যাপিং সংরক্ষণের জন্য ডাটাবেস
- স্কেলেবিলিটি: বিতরণ করা ডাটাবেস এবং ক্যাশিং
- স্বতন্ত্রতা: অনন্য কোড তৈরি করুন
- মেয়াদোত্তীর্ণ: ইউআরএল মেয়াদোত্তীর্ণ হ্যান্ডেল করুন
স্থাপত্য:
- লোড ব্যালেন্সার → এপিআই সার্ভার → ডাটাবেস (শার্ডেড) + ক্যাশে (রেডিস)
- আলাদা পঠন/লেখার ডাটাবেস
- বিশ্বব্যাপী বিতরণের জন্য সিডিএন
- নজরদারি এবং বিশ্লেষণ
মূল উপাদানসমূহ:
- হ্যাশ ফাংশন: কোড জেনারেশনের জন্য MD5/SHA-256
- ডাটাবেস স্কিমা: urlcode (পিকে), originalurl, createddate, expiresdate, clickcount
- ক্যাশিং কৌশল: রেডিসে ক্যাশে জনপ্রিয় ইউআরএল
- হার সীমাবদ্ধকরণ: অপব্যবহার রোধ করুন
2. একটি বিজ্ঞপ্তি সিস্টেম ডিজাইন করুন
প্রয়োজনীয়তা:
- একাধিক চ্যানেলের মাধ্যমে বিজ্ঞপ্তি প্রেরণ করুন (ইমেল, এসএমএস, পুশ)
- প্রতিদিন লক্ষ লক্ষ বিজ্ঞপ্তি পরিচালনা করুন
- বিভিন্ন বিজ্ঞপ্তির ধরণ এবং অগ্রাধিকার সমর্থন করুন
পুনরায় চেষ্টা করে নির্ভরযোগ্য ডেলিভারি নিশ্চিত করতে হবে।
- ব্যবহারকারীর পছন্দ এবং অপ্ট-আউটের অনুমতি দিন
ডিজাইন বিবেচনা:
- স্কেলেবিলিটি: উচ্চ ভলিউম এবং স্পাইকগুলি পরিচালনা করুন
- নির্ভরযোগ্যতা: বার্তা বিতরণ নিশ্চিত করুন
- চ্যানেল: একাধিক ডেলিভারি পদ্ধতি সমর্থন করে
- ব্যক্তিগতকরণ: ব্যবহারকারীর পছন্দ এবং কাস্টমাইজেশন
- অ্যানালিটিক্স: ট্র্যাক ডেলিভারি এবং এনগেজমেন্ট
স্থাপত্য:
- এপিআই গেটওয়ে → বার্তা সারি (কাফকা) চ্যানেল কর্মী → বহিরাগত এপিআই →
- ব্যবহারকারীর পছন্দ এবং বিজ্ঞপ্তি ইতিহাসের জন্য ডাটাবেস
- এক্সপোনেনশিয়াল ব্যাকঅফের সাথে প্রক্রিয়াটি পুনরায় চেষ্টা করুন
- ব্যর্থ বার্তাগুলির জন্য মৃত চিঠির সারি
মূল উপাদানসমূহ:
- বার্তা সারি: লোড পরিচালনা করার জন্য অ্যাসিঙ্ক প্রসেসিং
- কর্মী পরিষেবা: প্রতিটি চ্যানেলের জন্য পৃথক কর্মী
- টেমপ্লেট ইঞ্জিন: ডায়নামিক কন্টেন্ট জেনারেশন
- পছন্দের ইঞ্জিন: ব্যবহারকারী সেটিংস এবং অপ্ট-আউট হ্যান্ডলিং
3. একটি সোশ্যাল মিডিয়া ফিড ডিজাইন করুন
প্রয়োজনীয়তা:
- লক্ষ লক্ষ ব্যবহারকারীর জন্য ব্যক্তিগতকৃত ফিড তৈরি করুন
- পোস্ট, লাইক, মন্তব্য, অনুসরণ করুন হ্যান্ডেল করুন
- রিয়েল-টাইম আপডেট এবং বিজ্ঞপ্তি
বিলিয়ন বিলিয়ন আলাপ-আলোচনার প্রসার
কম বিলম্ব এবং উচ্চ প্রাপ্যতা নিশ্চিত করতে হবে।
ডিজাইন বিবেচনা:
- ব্যক্তিগতকরণ: ব্যবহারকারী প্রতি সামগ্রী র্যাঙ্ক এবং ফিল্টার করুন
- রিয়েল-টাইম: সক্রিয় ব্যবহারকারীদের জন্য লাইভ আপডেট
- স্কেলেবিলিটি: বিশাল পড়া / লেখার লোড পরিচালনা করুন
- ধারাবাহিকতা: কিছু অপারেশনের জন্য চূড়ান্ত ধারাবাহিকতা
- গোপনীয়তা: ব্যবহারকারীর গোপনীয়তাকে সম্মান করুন এবং অবরোধ করুন
স্থাপত্য:
- লেখার পথ: API → বার্তা সারি → ডাটাবেস + ক্যাশে
- পড়ার পথ: ক্যাশ → ডাটাবেস → ফিড সার্ভিস
- রিয়েল-টাইম: লাইভ আপডেটের জন্য ওয়েবসকেট সংযোগ
- ফ্যান-আউট: ছোট অনুসরণকারীদের জন্য মডেল পুশ করুন, বড় জন্য টানুন
মূল উপাদানসমূহ:
- ফিড র ্যাঙ্কিং: সামগ্রী র্যাঙ্কিংয়ের জন্য মেশিন লার্নিং
- ক্যাশিং লেয়ারস: মাল্টি-লেভেল ক্যাশিং (সিডিএন, রেডিস, স্থানীয়)
- ডাটাবেস শেয়ারিং: একাধিক ডাটাবেস জুড়ে ডেটা বিতরণ করুন
- রিয়েল-টাইম পাইপলাইন: লাইভ আপডেটের জন্য স্ট্রিম প্রসেসিং
ডিজাইন প্যাটার্ন এবং ওওপি প্রশ্ন
1. সিঙ্গেলটন প্যাটার্ন
প্রশ্ন: একটি থ্রেড-নিরাপদ সিঙ্গেলটন প্যাটার্ন প্রয়োগ করুন।
সমাধান:
'''পাইথন
ক্লাস সিঙ্গেলটন:
instance = কিছুই নয়
lock = থ্রেডিং। লক ()
ডিইএফ new(সিএলএস):
যদি cls.instance কিছুই না হয়:
cls.lock সহ:
যদি cls.instance কিছু না হয়: # ডাবল-চেক লকিং
cls.instance = সুপার ().new(সিএলএস)
রিটার্ন cls.instance
ডিএফ init(স্ব):
যদি হাসাত্র না হয় (স্ব, 'আরম্ভ'):
# শুধুমাত্র একবার শুরু করুন
self.data = {}
স্ব.ইনিশিয়ালাইজড = সত্য
মূল ধারণা: বিমূর্ততা, পলিমরফিজম, এনক্যাপসুলেশন
সফটওয়্যার ইঞ্জিনিয়ারদের জন্য আচরণগত প্রশ্ন
দলবদ্ধভাবে কাজ এবং সহযোগিতা
1. আমাকে এমন একটি সময় সম্পর্কে বলুন যখন প্রযুক্তিগত পদ্ধতির বিষয়ে আপনার সহকর্মীর সাথে মতবিরোধ হয়েছিল।
শক্তিশালী উত্তর:
"আমার পূর্ববর্তী ভূমিকায়, আমার সহকর্মী একটি নতুন মাইক্রোসার্ভিসের জন্য একটি মনোলিথিক আর্কিটেকচার ব্যবহার করতে চেয়েছিলেন, যখন আমি এটিকে ছোট পরিষেবাগুলিতে বিভক্ত করার পক্ষে ছিলাম। আমি শিল্প কেস স্টাডি দ্বারা সমর্থিত মাইক্রোসার্ভিসের স্কেলেবিলিটি বেনিফিট এবং রক্ষণাবেক্ষণের সুবিধাগুলি দেখানোর প্রযুক্তিগত যুক্তি প্রস্তুত করেছি।
উভয় পদ্ধতির বিষয়ে আলোচনা করার জন্য আমরা আমাদের টেক লিডের সাথে একটি বৈঠকের সময় নির্ধারণ করেছি। আমি বিকাশের বেগ এবং স্থাপনা ফ্রিকোয়েন্সি উন্নতির তথ্য উপস্থাপন করেছি। আমার সহকর্মী একচেটিয়া পদ্ধতির সরলতা সুবিধাগুলি ব্যাখ্যা করেছিলেন।
টেক লিড একটি হাইব্রিড পদ্ধতির সিদ্ধান্ত নিয়েছিল - মনোলিথিক শুরু করে তবে ভবিষ্যতের পচনের পরিকল্পনা করে। এই অভিজ্ঞতা আমাকে ডেটা-চালিত প্রযুক্তিগত আলোচনা এবং আপস সমাধান খুঁজে বের করার মূল্য শিখিয়েছে।
মূল দক্ষতা: প্রযুক্তিগত যোগাযোগ, আপস, ডেটা-চালিত সিদ্ধান্ত গ্রহণ
সমস্যা সমাধানের পদ্ধতি
2. একটি জটিল সমস্যা ডিবাগ করার জন্য আপনার প্রক্রিয়াটি বর্ণনা করুন।
শক্তিশালী উত্তর:
"জটিল সমস্যাগুলি ডিবাগ করার সময়, আমি একটি পদ্ধতিগত পদ্ধতি অনুসরণ করি:
1. সমস্যাটি পুনরুত্পাদন করুন: সমস্যাটি ধারাবাহিকভাবে পুনরুত্পাদন করার জন্য একটি ন্যূনতম পরীক্ষার কেস তৈরি করুন
2. তথ্য সংগ্রহ করুন: লগ, মেট্রিক্স এবং সিস্টেমের অবস্থা পরীক্ষা করুন
3. ফর্ম হাইপোথিসিস: লক্ষণগুলির উপর ভিত্তি করে, সম্ভাব্য মূল কারণগুলি সনাক্ত করুন
4. পরীক্ষা হাইপোথিসিস: বৈজ্ঞানিক পদ্ধতি ব্যবহার করুন - একবারে একটি ভেরিয়েবল পরিবর্তন করুন
5. সমাধান যাচাই করুন: নতুন সমস্যা প্রবর্তন না করে সমস্যার সমাধান নিশ্চিত করুন
উদাহরণস্বরূপ, যখন আমাদের এপিআই প্রতিক্রিয়ার সময় 30 সেকেন্ডে বৃদ্ধি পেয়েছিল, তখন আমি প্রথমে স্টেজিংয়ে সমস্যাটি পুনরুত্পাদন করেছি। লগ বিশ্লেষণ ডাটাবেস কোয়েরি টাইমআউট দেখায়। আমি আমাদের ওআরএম-এ একটি এন + 1 কোয়েরি সমস্যা সনাক্ত করেছি, আগ্রহী লোডিংয়ের সাথে কোয়েরিটি অপ্টিমাইজ করেছি এবং প্রতিক্রিয়া সময়কে 2 সেকেন্ডের মধ্যে কমিয়ে এনেছি।
মূল দক্ষতা: পদ্ধতিগত সমস্যা সমাধান, ডিবাগিং পদ্ধতি, পারফরম্যান্স অপ্টিমাইজেশন
শিক্ষা ও বৃদ্ধি
3. আপনি কীভাবে প্রযুক্তির প্রবণতার সাথে বর্তমান থাকবেন?
শক্তিশালী উত্তর:
"আমি ক্রমাগত শেখার জন্য একটি কাঠামোগত দৃষ্টিভঙ্গি বজায় রাখি:
- দৈনিক পড়া: প্রযুক্তিগত ব্লগ, নিউজলেটার (হ্যাকার নিউজ, টেকক্রাঞ্চ)
- সাপ্তাহিক ডিপ ডাইভ: একটি গভীর নিবন্ধ বা গবেষণা পত্র
- মাসিক প্রকল্প: নতুন প্রযুক্তি সহ ব্যক্তিগত প্রকল্প
- কনফারেন্স উপস্থিতি: ভার্চুয়াল কনফারেন্স এবং মিটআপ
- কমিউনিটি এনগেজমেন্ট: ওপেন সোর্স অবদান এবং স্ট্যাক ওভারফ্লো
সম্প্রতি, আমি একটি কমান্ড-লাইন সরঞ্জাম তৈরি করে মরিচা শিখেছি, একটি প্রতিক্রিয়া নেটিভ লাইব্রেরিতে অবদান রেখেছি এবং মাইক্রোসার্ভিসেস প্যাটার্নগুলিতে আমাদের কোম্পানির টেক টকে উপস্থাপন করেছি। এটি আমার দক্ষতাকে বর্তমান রাখে এবং আমাদের প্রকল্পগুলিতে নতুন ধারণা আনতে সহায়তা করে।
মূল দক্ষতা: স্ব-নির্দেশিত শিক্ষা, সম্প্রদায় ব্যস্ততা, জ্ঞান ভাগ করে নেওয়া
উন্নত বিষয়
বিতরণ সিস্টেম
1. সিএপি উপপাদ্যটি এবং এর প্রভাবগুলি ব্যাখ্যা করুন।
উত্তর:
"সিএপি উপপাদ্যটি বলে যে একটি বিতরণ সিস্টেমে, আপনি তিনটি বৈশিষ্ট্যের মধ্যে কেবল দুটি গ্যারান্টি দিতে পারেন:
- ধারাবাহিকতা: সমস্ত নোড একই ডেটা একই সাথে দেখে
- প্রাপ্যতা: নোড ব্যর্থতা সত্ত্বেও সিস্টেম চালু রয়েছে
- পার্টিশন টলারেন্স: নেটওয়ার্ক পার্টিশন সত্ত্বেও সিস্টেম কাজ করে চলেছে
বাস্তবে, পার্টিশন সহনশীলতা বিতরণ সিস্টেমগুলির জন্য অ-আলোচনাযোগ্য, তাই আপনি ধারাবাহিকতা (এইচবেসের মতো সিপি সিস্টেম) বা প্রাপ্যতা (ডায়নামোডিবি এর মতো এপি সিস্টেম) এর মধ্যে চয়ন করুন। বেশিরভাগ আধুনিক সিস্টেমগুলি তিনটি ভারসাম্য বজায় রাখার জন্য চূড়ান্ত ধারাবাহিকতা সরবরাহ করে।
মূল ধারণা: ধারাবাহিকতা মডেল, ট্রেড-অফ, সিস্টেম ডিজাইন
ডাটাবেস ডিজাইন
2. আপনি কীভাবে একটি সোশ্যাল মিডিয়া প্ল্যাটফর্মের জন্য একটি ডাটাবেস স্কিমা ডিজাইন করবেন?
উত্তর:
"একটি সোশ্যাল মিডিয়া প্ল্যাটফর্মের জন্য, আমি বিবেচনা করব:
ব্যবহারকারীদের সারণী: userid (পিকে), ব্যবহারকারীর নাম, ইমেল, passwordhash, createdat
পোস্ট টেবিল: postid (পিকে), userid (এফকে), সামগ্রী, createdat, updatedat
মন্তব্য সারণী: commentid (পিকে), postid (এফকে), userid (এফকে), বিষয়বস্তু, createdat
টেবিল পছন্দ করে: likeid (PK), userid (FK), postid (FK), createdat (অনেক-থেকে-অনেক)
সারণী অনুসরণ করে: followerid (এফকে), followingid (এফকে), createdat (অনেক-থেকে-অনেক)
নকশা সিদ্ধান্ত:
- স্কেলেবিলিটির জন্য ইউইউআইডি ব্যবহার করুন।
- সম্মতির জন্য সফট ডিলিট প্রয়োগ করুন
- ঘন ঘন জিজ্ঞাসাবাদী কলামে সূচক যুক্ত করুন
- বড় টেবিলের জন্য পার্টিশন বিবেচনা করুন
- স্কেলেবিলিটির জন্য রিড রেপ্লিকা ব্যবহার করুন"
মূল ধারণা: নরমালাইজেশন, ইনডেক্সিং, স্কেলেবিলিটি, সম্পর্ক
নিরাপত্তা বিবেচনা
3. সফ্টওয়্যার ডিজাইনে আপনি কীভাবে সুরক্ষার কাছে যান?
উত্তর:
"সিকিউরিটি শুরু থেকেই ডিজাইন করা উচিত, পরে যোগ করা উচিত নয়:
প্রমাণীকরণ এবং অনুমোদন:
- যথাযথ মেয়াদ উত্তীর্ণ জেডাব্লুটি টোকেন
- ভূমিকা-ভিত্তিক অ্যাক্সেস কন্ট্রোল (আরবিএসি)
- মাল্টি-ফ্যাক্টর প্রমাণীকরণ
তথ্য সুরক্ষা:
- বিশ্রামে এবং ট্রানজিটে সংবেদনশীল ডেটা এনক্রিপ্ট করুন
• ইনপুট বৈধতা এবং স্যানিটাইজেশন
- প্যারামিটারাইজড প্রশ্নের সাথে এসকিউএল ইনজেকশন প্রতিরোধ
অবকাঠামো সুরক্ষা:
- নিয়মিত নিরাপত্তা আপডেট এবং প্যাচ
- নেটওয়ার্ক সেগমেন্টেশন এবং ফায়ারওয়াল
- হুমকির জন্য পর্যবেক্ষণ এবং লগিং
সর্বোত্তম অনুশীলন:
- ন্যূনতম সুবিধার নীতি
- গভীর পদ্ধতির মধ্যে প্রতিরক্ষা
- নিয়মিত সুরক্ষা নিরীক্ষা এবং অনুপ্রবেশ পরীক্ষা"
মূল ধারণা: নকশা দ্বারা সুরক্ষা, ওডাব্লুএএসপি নীতি, সম্মতির প্রয়োজনীয়তা
ইন্টারভিউ প্রস্তুতির কৌশল