Failed to render content. Please refresh the page. Showing plain-text fallback.
"@/components/CTA" இலிருந்து CTA ஐ இறக்குமதி செய்யவும்
மென்பொருள் பொறியியல் நேர்காணல் கேள்விகள்: SDE பாத்திரங்களுக்கான முழுமையான வழிகாட்டி (2025)
கடைசியாக புதுப்பிக்கப்பட்டது: பிப்ரவரி 7, 2025
முக்கிய குறிப்புகள்
- மென்பொருள் பொறியியல் நேர்காணல்கள் குறியீட்டு முறை, கணினி வடிவமைப்பு மற்றும் நடத்தை கேள்விகளில் கவனம் செலுத்துகின்றன
- மாஸ்டர் தரவு கட்டமைப்புகள், வழிமுறைகள் மற்றும் வடிவமைப்பு வடிவங்கள்
- தீர்வுகள் மற்றும் பரிமாற்றங்களை தெளிவாக விளக்கும் பயிற்சி
- விநியோகிக்கப்பட்ட அமைப்புகள் மற்றும் அளவிடுதல் கருத்துக்களைப் புரிந்துகொள்ளுங்கள்
- தனிப்பட்ட பங்களிப்பாளர் மற்றும் குழு ஒத்துழைப்பு கேள்விகள் இரண்டிற்கும் தயாராகுங்கள்
🎯 ப்ரோ உதவிக்குறிப்பு: மென்பொருள் பொறியியல் நேர்காணல்கள் குறியீட்டை எழுதுவதற்கும், அமைப்புகளை வடிவமைப்பதற்கும் மற்றவர்களுடன் வேலை செய்வதற்கும் உங்கள் திறனை சோதிக்கின்றன. அடிப்படைகளில் கவனம் செலுத்துங்கள், தவறாமல் பயிற்சி செய்யுங்கள் மற்றும் செயல்முறை முழுவதும் தெளிவான சிந்தனை மற்றும் தகவல்தொடர்புகளை நிரூபிக்கவும்.
மென்பொருள் பொறியியல் நேர்காணல் அமைப்பு
மென்பொருள் பொறியியல் நேர்காணல்கள் பொதுவாக வெவ்வேறு திறன்களை மதிப்பிடும் பல சுற்றுகளை உள்ளடக்குகின்றன:
நேர்காணல் சுற்றுகள்:
- தொலைபேசி திரை: அடிப்படை குறியீட்டு மற்றும் நடத்தை கேள்விகள்
- தொழில்நுட்ப நேர்காணல்: குறியீட்டு சிக்கல்கள் மற்றும் கணினி வடிவமைப்பு
- ஆன்-சைட்/பேனல்: பல நேர்காணல்கள், பல்வேறு தலைப்புகள்
- இறுதி சுற்று: மூத்த தலைமை மற்றும் கலாச்சார பொருத்தம்
மதிப்பீட்டு பகுதிகள்:
- குறியீட்டு திறன்கள்: தரவு கட்டமைப்புகள், வழிமுறைகள், சிக்கல் தீர்க்கும்
- கணினி வடிவமைப்பு: அளவிடுதல், கட்டிடக்கலை, வர்த்தகம்
- நடத்தை: குழுப்பணி, தலைமைத்துவம், சிக்கல் தீர்க்கும் அணுகுமுறை
- டொமைன் அறிவு: மொழி/கட்டமைப்பு குறிப்பிட்ட கேள்விகள்
குறியீட்டு நேர்காணல் கேள்விகள்
எளிதான நிலை சிக்கல்கள்
1. செல்லுபடியாகும் அடைப்புக்குறிகள்
சிக்கல்: '(', ')', '{', '}', '[' மற்றும் ']' என்ற எழுத்துக்களைக் கொண்ட ஒரு சரம் கொடுக்கப்பட்டால், உள்ளீட்டு சரம் செல்லுபடியாகுமா என்பதை தீர்மானிக்கவும்.
தீர்வு:
மலைப்பாம்பு
DEF isvalid(கள்):
அடுக்கு = []
வரைபடம் = {')': '(', '}': '{', ']': '['}
S இல் உள்ள char க்கு:
வரைபடத்தில் சார் என்றால்:
# மூடும் அடைப்புக்குறி
topelement = stack.pop() வேறு '#' அடுக்கி இருந்தால்
வரைபடமாக்குதல் என்றால் != topelement:
திரும்ப தவறு
வேறு:
# திறப்பு அடைப்புக்குறி
Stack.append(char)
திரும்ப அடுக்கி இல்லை
நேரம்: O(n + m), விண்வெளி: O(1)
முக்கிய கருத்துகள்: இணைக்கப்பட்ட பட்டியல்கள், வழிமுறைகளை இணைக்கவும்
நடுத்தர அளவிலான பிரச்சினைகள்
1. LRU கேச்
சிக்கல்: LRU (குறைந்தது சமீபத்தில் பயன்படுத்தப்பட்ட) தற்காலிக சேமிப்பை வடிவமைத்து செயல்படுத்தவும்.
தீர்வு:
மலைப்பாம்பு
வகுப்பு LRUCache:
DEF init(சுய, திறன்):
சுய.திறன் = திறன்
self.cache = {} # விசை -> முனை
self.head = முனை(0, 0)
self.tail = முனை(0, 0)
self.head.next = self.tail
self.tail.prev = self.head
DEF remove(சுய, முனை):
முன்பு, nxt = node.prev, node.next
prev.next, nxt.prev = nxt, முன்
DEF add(சுய, முனை):
முன் = self.tail.prev
prev.next = முனை
self.tail.prev = முனை
node.prev, node.next = prev, self.tail
DEF get(self, key):
self.cache இல் விசை இருந்தால்:
முனை = self.cache[key]
self.remove(முனை)
self.add(முனை)
திரும்பும் முனை.மதிப்பு
திரும்ப -1
def put (self, key, value):
self.cache இல் விசை இருந்தால்:
self.remove(self.cache[key])
முனை = முனை (விசை, மதிப்பு)
self.add(முனை)
self.cache[key] = முனை
லென் (self.cache) > self.capacity என்றால்:
lru = self.head.next
self.remove(LRU)
del self.cache[lru.key]
நேரம்: O(n), விண்வெளி: O(h)
முக்கிய கருத்துகள்: மர பயணம், டைனமிக் நிரலாக்கம்
கணினி வடிவமைப்பு நேர்காணல் கேள்விகள்
1. URL சுருக்கச் சேவையை வடிவமைக்கவும் (TinyURL)
தேவைகள்:
- குறுகிய குறியீடுகளுக்கு நீண்ட URL களை சுருக்கவும்
- அசல் URL களுக்கு குறுகிய URL களை திருப்பி விடவும்
- அதிக போக்குவரத்தைக் கையாளுங்கள் (மில்லியன் கணக்கான கோரிக்கைகள் / நாள்)
- தனித்துவத்தை உறுதி செய்து மோதல்களைத் தடுக்கவும்
- URL பயன்பாடு குறித்த பகுப்பாய்வுகளை வழங்கவும்
வடிவமைப்பு பரிசீலனைகள்:
- குறியாக்கம்: URL குறியீடுகளுக்கான Base62 குறியாக்கம்
- சேமிப்பு: URL வரைபடங்களைச் சேமிக்க தரவுத்தளம்
- அளவிடுதல்: விநியோகிக்கப்பட்ட தரவுத்தளம் மற்றும் தற்காலிக சேமிப்பு
- தனித்துவம்: தனித்துவமான குறியீடுகளை உருவாக்கவும்
- காலாவதி: URL காலாவதியை கையாளவும்
கட்டிடக்கலை:
- ஏற்ற சமநிலை → API சேவையகங்கள் → தரவுத்தளம் (துண்டிக்கப்பட்ட) + தற்காலிக சேமிப்பு (Redis)
- தனி படிக்க / எழுத தரவுத்தளங்கள்
- உலகளாவிய விநியோகத்திற்கான CDN
- கண்காணிப்பு மற்றும் பகுப்பாய்வு
முக்கிய கூறுகள்:
- ஹாஷ் செயல்பாடு: குறியீடு உருவாக்கத்திற்கான MD5 / SHA-256
- தரவுத்தள திட்டம்: urlcode (PK), originalurl, createddate, expiresdate, clickcount
- கேச்சிங் உத்தி: Redis இல் கேச் பிரபலமான URL கள்
- விகித வரம்பு: துஷ்பிரயோகத்தைத் தடுக்கவும்
2. அறிவிப்பு அமைப்பை வடிவமைக்கவும்
தேவைகள்:
- பல சேனல்கள் வழியாக அறிவிப்புகளை அனுப்பவும் (மின்னஞ்சல், எஸ்எம்எஸ், புஷ்)
- தினமும் மில்லியன் கணக்கான அறிவிப்புகளைக் கையாளுங்கள்
- வெவ்வேறு அறிவிப்பு வகைகள் மற்றும் முன்னுரிமைகளை ஆதரிக்கவும்
- மறுமுயற்சிகளுடன் நம்பகமான விநியோகத்தை உறுதி செய்யவும்
- பயனர் விருப்பத்தேர்வுகள் மற்றும் விலகல்களை அனுமதிக்கவும்
வடிவமைப்பு பரிசீலனைகள்:
- அளவிடுதல்: அதிக அளவு மற்றும் கூர்முனைகளைக் கையாளவும்
- நம்பகத்தன்மை: செய்தி விநியோகத்தை உறுதி செய்யவும்
- சேனல்கள்: பல விநியோக முறைகளை ஆதரிக்கவும்
- தனிப்பயனாக்கம்: பயனர் விருப்பத்தேர்வுகள் மற்றும் தனிப்பயனாக்கம்
- பகுப்பாய்வு: விநியோகம் மற்றும் நிச்சயதார்த்தத்தைக் கண்காணிக்கவும்
கட்டிடக்கலை:
- API நுழைவாயில் → செய்தி வரிசை (Kafka) → சேனல் தொழிலாளர்கள் → வெளிப்புற API கள்
- பயனர் விருப்பத்தேர்வுகள் மற்றும் அறிவிப்பு வரலாறு தரவுத்தளம்
- அதிவேக பின்வாங்கலுடன் பொறிமுறையை மீண்டும் முயற்சிக்கவும்
- தோல்வியுற்ற செய்திகளுக்கு இறந்த கடிதம் வரிசை
முக்கிய கூறுகள்:
- செய்தி வரிசை: சுமையைக் கையாள ஒத்திசைவு செயலாக்கம்
- தொழிலாளர் சேவைகள்: ஒவ்வொரு சேனலுக்கும் தனித்தனி தொழிலாளர்கள்
- டெம்ப்ளேட் இயந்திரம்: டைனமிக் உள்ளடக்க உருவாக்கம்
- விருப்ப இயந்திரம்: பயனர் அமைப்புகள் மற்றும் விலகல் கையாளுதல்
3. சமூக ஊடக ஊட்டத்தை வடிவமைக்கவும்
தேவைகள்:
- மில்லியன் கணக்கான பயனர்களுக்கு தனிப்பயனாக்கப்பட்ட ஊட்டங்களை உருவாக்கவும்
- இடுகைகள், விருப்பங்கள், கருத்துகள், பின்தொடர்க கையாளவும்
- நிகழ்நேர புதுப்பிப்புகள் மற்றும் அறிவிப்புகள்
- கோடிக்கணக்கான கலந்துரையாடல்களுக்கு அளவீடு
- குறைந்த தாமதம் மற்றும் அதிக கிடைக்கும் தன்மையை உறுதி செய்யவும்
வடிவமைப்பு பரிசீலனைகள்:
- தனிப்பயனாக்கம்: ஒரு பயனருக்கு தரவரிசை மற்றும் வடிகட்டி உள்ளடக்கம்
- நிகழ்நேரம்: செயலில் உள்ள பயனர்களுக்கான நேரடி புதுப்பிப்புகள்
- அளவிடுதல்: பாரிய வாசிப்பு/எழுதும் சுமையைக் கையாளவும்
- நிலைத்தன்மை: சில செயல்பாடுகளுக்கான இறுதி நிலைத்தன்மை
- தனியுரிமை: பயனர் தனியுரிமை மற்றும் தடுப்பை மதிக்கவும்
கட்டிடக்கலை:
- எழுதும் பாதை: API → செய்தி வரிசை → தரவுத்தளம் + தற்காலிக சேமிப்பு
- பாதையைப் படிக்கவும்: ஊட்ட சேவை → தற்காலிக சேமிப்பு → தரவுத்தளம்
- நிகழ்நேரம்: நேரடி புதுப்பிப்புகளுக்கான WebSocket இணைப்புகள்
- ரசிகர்-அவுட்: சிறிய பின்தொடர்பவர்களுக்கு மாதிரியை தள்ளவும், பெரியதாக இழுக்கவும்
முக்கிய கூறுகள்:
- ஊட்ட தரவரிசை: உள்ளடக்க தரவரிசைக்கான இயந்திர கற்றல்
- கேச்சிங் அடுக்குகள்: பல நிலை கேச்சிங் (CDN, Redis, உள்ளூர்)
- தரவுத்தள பகிர்வு: பல தரவுத்தளங்களில் தரவை விநியோகிக்கவும்
- நிகழ்நேர பைப்லைன்: நேரடி புதுப்பிப்புகளுக்கான ஸ்ட்ரீம் செயலாக்கம்
வடிவமைப்பு வடிவங்கள் & OOP கேள்விகள்
1. சிங்கிள்டன் பேட்டர்ன்
கேள்வி: நூல்-பாதுகாப்பான சிங்கிள்டன் வடிவத்தை செயல்படுத்தவும்.
தீர்வு:
மலைப்பாம்பு
வகுப்பு சிங்கிள்டன்:
instance = எதுவுமில்லை
lock = த்ரெடிங். பூட்டு()
DEF new(cls):
cls.instance எதுவுமில்லை என்றால்:
cls.lock உடன்:
cls.instance எதுவுமில்லை என்றால்: # இருமுறை சரிபார்க்கப்பட்ட பூட்டுதல்
cls.instance = சூப்பர்().new(cls)
cls.instance திரும்பவும்
DEF init(self):
இல்லையென்றால் ஹசாட்டர் (சுய, 'துவக்கப்பட்டது'):
# ஒரு முறை மட்டுமே துவக்கவும்
self.data = {}
self.initialized = உண்மை
முக்கிய கருத்துகள்: சுருக்கம், பாலிமார்பிசம், என்கேப்சுலேஷன்
மென்பொருள் பொறியாளர்களுக்கான நடத்தை கேள்விகள்
குழுப்பணி மற்றும் ஒத்துழைப்பு
1. தொழில்நுட்ப அணுகுமுறை குறித்து சக ஊழியருடன் உங்களுக்கு கருத்து வேறுபாடு ஏற்பட்ட ஒரு நேரத்தைப் பற்றி சொல்லுங்கள்.
வலுவான பதில்:
"எனது முந்தைய பாத்திரத்தில், எனது சக ஊழியர் ஒரு புதிய மைக்ரோசர்வீஸுக்கு ஒரு ஒற்றைக்கல் கட்டமைப்பைப் பயன்படுத்த விரும்பினார், அதே நேரத்தில் நான் அதை சிறிய சேவைகளாக உடைக்க பரிந்துரைத்தேன். தொழில் வழக்கு ஆய்வுகளின் ஆதரவுடன், மைக்ரோசர்வீசஸின் அளவிடுதல் நன்மைகள் மற்றும் பராமரிப்பு நன்மைகளைக் காட்டும் தொழில்நுட்ப வாதங்களை நான் தயாரித்தேன்.
இரண்டு அணுகுமுறைகளையும் விவாதிக்க எங்கள் தொழில்நுட்ப தலைவருடன் ஒரு சந்திப்பை நாங்கள் திட்டமிட்டோம். வளர்ச்சி வேகம் மற்றும் வரிசைப்படுத்தல் அதிர்வெண் மேம்பாடுகள் குறித்த தரவை நான் வழங்கினேன். ஒற்றைக்கல் அணுகுமுறையின் எளிமை நன்மைகளை எனது சக ஊழியர் விளக்கினார்.
தொழில்நுட்ப முன்னணி ஒரு கலப்பின அணுகுமுறையை முடிவு செய்தது - ஒற்றைக்கல் தொடங்குகிறது, ஆனால் எதிர்கால சிதைவைத் திட்டமிடுகிறது. இந்த அனுபவம் தரவு உந்துதல் தொழில்நுட்ப விவாதங்கள் மற்றும் சமரச தீர்வுகளைக் கண்டுபிடிப்பதன் மதிப்பை எனக்குக் கற்றுக் கொடுத்தது.
முக்கிய திறன்கள்: தொழில்நுட்ப தொடர்பு, சமரசம், தரவு சார்ந்த முடிவெடுத்தல்
சிக்கல் தீர்க்கும் அணுகுமுறை
2. ஒரு சிக்கலான சிக்கலை பிழைத்திருத்தம் செய்வதற்கான உங்கள் செயல்முறையை விவரிக்கவும்.
வலுவான பதில்:
"சிக்கலான சிக்கல்களை பிழைத்திருத்தம் செய்யும் போது, நான் ஒரு முறையான அணுகுமுறையைப் பின்பற்றுகிறேன்:
1. சிக்கலை மீண்டும் உருவாக்கவும்: சிக்கலை தொடர்ந்து இனப்பெருக்கம் செய்ய குறைந்தபட்ச சோதனை வழக்கை உருவாக்கவும்
2. தகவல்களைச் சேகரிக்கவும்: பதிவுகள், அளவீடுகள் மற்றும் கணினி நிலையைச் சரிபார்க்கவும்
3. கருதுகோள்களை உருவாக்கவும்: அறிகுறிகளின் அடிப்படையில், சாத்தியமான மூல காரணங்களை அடையாளம் காணவும்
4. சோதனை கருதுகோள்கள்: அறிவியல் முறையைப் பயன்படுத்தவும் - ஒரு நேரத்தில் ஒரு மாறியை மாற்றவும்
5. சரிபார்க்கவும் சரிபார்ப்பு: புதிய சிக்கல்களை அறிமுகப்படுத்தாமல் சிக்கலை தீர்க்கிறது என்பதை உறுதிப்படுத்தவும்
எடுத்துக்காட்டாக, எங்கள் API மறுமொழி நேரங்கள் 30 வினாடிகளாக அதிகரித்தபோது, நான் முதலில் ஸ்டேஜிங்கில் சிக்கலை மீண்டும் உருவாக்கினேன். பதிவு பகுப்பாய்வு தரவுத்தள வினவல் காலக்கெடுகளைக் காட்டியது. எங்கள் ORM இல் ஒரு N+1 வினவல் சிக்கலை நான் அடையாளம் கண்டேன், ஆர்வத்துடன் ஏற்றுவதன் மூலம் வினவலை மேம்படுத்தினேன், மேலும் மறுமொழி நேரத்தை 2 வினாடிகளுக்குள் குறைத்தேன்.
முக்கிய திறன்கள்: முறையான சிக்கல் தீர்க்கும், பிழைத்திருத்த முறை, செயல்திறன் தேர்வுமுறை
கற்றல் மற்றும் வளர்ச்சி
3. தொழில்நுட்ப போக்குகளுடன் தற்போதைய நிலையில் இருப்பது எப்படி?
வலுவான பதில்:
"தொடர்ச்சியான கற்றலுக்கு நான் ஒரு கட்டமைக்கப்பட்ட அணுகுமுறையை பராமரிக்கிறேன்:
- தினசரி வாசிப்பு: தொழில்நுட்ப வலைப்பதிவுகள், செய்திமடல்கள் (ஹேக்கர் செய்திகள், TechCrunch)
- வாராந்திர ஆழமான டைவ்: ஒரு ஆழமான கட்டுரை அல்லது ஆராய்ச்சி கட்டுரை
- மாதாந்திர திட்டங்கள்: புதிய தொழில்நுட்பங்களுடன் தனிப்பட்ட திட்டங்கள்
- மாநாட்டு வருகை: மெய்நிகர் மாநாடுகள் மற்றும் சந்திப்புகள்
- சமூக ஈடுபாடு: திறந்த மூல பங்களிப்புகள் மற்றும் ஸ்டேக் ஓவர்ஃப்ளோ
சமீபத்தில், நான் ஒரு கட்டளை வரி கருவியை உருவாக்குவதன் மூலம் ரஸ்டைக் கற்றுக்கொண்டேன், ஒரு ரியாக்ட் நேட்டிவ் நூலகத்திற்கு பங்களித்தேன், மேலும் மைக்ரோசர்வீசஸ் வடிவங்களில் எங்கள் நிறுவனத்தின் தொழில்நுட்ப பேச்சில் வழங்கினேன். இது எனது திறன்களை தற்போதைய நிலையில் வைத்திருக்கிறது மற்றும் எங்கள் திட்டங்களுக்கு புதிய யோசனைகளைக் கொண்டு வர உதவுகிறது.
முக்கிய திறன்கள்: சுய-இயக்கப்பட்ட கற்றல், சமூக ஈடுபாடு, அறிவு பகிர்வு
மேம்பட்ட தலைப்புகள்
விநியோகிக்கப்பட்ட அமைப்புகள்
1. CAP தேற்றம் மற்றும் அதன் தாக்கங்களை விளக்கவும்.
பதில்:
"ஒரு விநியோகிக்கப்பட்ட அமைப்பில், நீங்கள் மூன்று பண்புகளில் இரண்டுக்கு மட்டுமே உத்தரவாதம் அளிக்க முடியும் என்று CAP தேற்றம் கூறுகிறது:
- நிலைத்தன்மை: அனைத்து முனைகளும் ஒரே தரவை ஒரே நேரத்தில் பார்க்கின்றன
- கிடைக்கும் தன்மை: முனை தோல்விகள் இருந்தபோதிலும் கணினி செயல்பாட்டில் உள்ளது
- பகிர்வு சகிப்புத்தன்மை: நெட்வொர்க் பகிர்வுகள் இருந்தபோதிலும் கணினி தொடர்ந்து வேலை செய்கிறது
நடைமுறையில், பகிர்வு சகிப்புத்தன்மை விநியோகிக்கப்பட்ட அமைப்புகளுக்கு பேச்சுவார்த்தைக்கு உட்படாது, எனவே நீங்கள் நிலைத்தன்மை (HBase போன்ற CP அமைப்புகள்) அல்லது கிடைக்கும் தன்மை (DynamoDB போன்ற AP அமைப்புகள்) இடையே தேர்வு செய்கிறீர்கள். பெரும்பாலான நவீன அமைப்புகள் மூன்றையும் சமநிலைப்படுத்த இறுதி நிலைத்தன்மையை வழங்குகின்றன.
முக்கிய கருத்துகள்: நிலைத்தன்மை மாதிரிகள், வர்த்தகம், கணினி வடிவமைப்பு
தரவுத்தள வடிவமைப்பு
2. ஒரு சமூக ஊடக தளத்திற்கான தரவுத்தள திட்டத்தை எவ்வாறு வடிவமைப்பீர்கள்?
பதில்:
"ஒரு சமூக ஊடக தளத்திற்கு, நான் கருத்தில் கொள்கிறேன்:
பயனர்கள் அட்டவணை: userid (PK), பயனர்பெயர், மின்னஞ்சல், passwordhash, createdat
இடுகைகள் அட்டவணை: postid (PK), userid (FK), உள்ளடக்கம், createdat, updatedat