Failed to render content. Please refresh the page. Showing plain-text fallback.
"@/ਕੰਪੋਨੈਂਟਸ/ਸੀਟੀਏ" ਤੋਂ ਸੀਟੀਏ ਆਯਾਤ ਕਰੋ
ਸਾੱਫਟਵੇਅਰ ਇੰਜੀਨੀਅਰਿੰਗ ਇੰਟਰਵਿਊ ਪ੍ਰਸ਼ਨ: ਐਸਡੀਈ ਭੂਮਿਕਾਵਾਂ ਲਈ ਪੂਰੀ ਗਾਈਡ (2025)
ਆਖਰੀ ਅੱਪਡੇਟ: ਫਰਵਰੀ 7, 2025
ਮੁੱਖ ਟੇਕਵੇਅ
- ਸਾੱਫਟਵੇਅਰ ਇੰਜੀਨੀਅਰਿੰਗ ਇੰਟਰਵਿਊ ਕੋਡਿੰਗ, ਸਿਸਟਮ ਡਿਜ਼ਾਈਨ ਅਤੇ ਵਿਵਹਾਰਕ ਪ੍ਰਸ਼ਨਾਂ 'ਤੇ ਕੇਂਦ੍ਰਤ ਕਰਦੇ ਹਨ
- ਮਾਸਟਰ ਡਾਟਾ ਢਾਂਚੇ, ਐਲਗੋਰਿਦਮ ਅਤੇ ਡਿਜ਼ਾਈਨ ਪੈਟਰਨ
- ਹੱਲਾਂ ਅਤੇ ਵਪਾਰ ਨੂੰ ਸਪੱਸ਼ਟ ਰੂਪ ਵਿੱਚ ਸਮਝਾਉਣ ਦਾ ਅਭਿਆਸ ਕਰੋ
- ਡਿਸਟ੍ਰੀਬਿਊਟਿਡ ਸਿਸਟਮ ਅਤੇ ਸਕੇਲੇਬਿਲਟੀ ਸੰਕਲਪਾਂ ਨੂੰ ਸਮਝਣਾ
- ਵਿਅਕਤੀਗਤ ਯੋਗਦਾਨਕਰਤਾ ਅਤੇ ਟੀਮ ਦੇ ਸਹਿਯੋਗ ਸਵਾਲਾਂ ਦੋਨਾਂ ਵਾਸਤੇ ਤਿਆਰੀ ਕਰੋ
🎯 ਪ੍ਰੋ ਸੁਝਾਅ: ਸਾੱਫਟਵੇਅਰ ਇੰਜੀਨੀਅਰਿੰਗ ਇੰਟਰਵਿਊ ਕੋਡ ਲਿਖਣ, ਪ੍ਰਣਾਲੀਆਂ ਨੂੰ ਡਿਜ਼ਾਈਨ ਕਰਨ ਅਤੇ ਦੂਜਿਆਂ ਨਾਲ ਕੰਮ ਕਰਨ ਦੀ ਤੁਹਾਡੀ ਯੋਗਤਾ ਦੀ ਜਾਂਚ ਕਰਦੇ ਹਨ. ਬੁਨਿਆਦੀ ਸਿਧਾਂਤਾਂ 'ਤੇ ਧਿਆਨ ਕੇਂਦ੍ਰਤ ਕਰੋ, ਨਿਯਮਤ ਤੌਰ 'ਤੇ ਅਭਿਆਸ ਕਰੋ, ਅਤੇ ਪੂਰੀ ਪ੍ਰਕਿਰਿਆ ਦੌਰਾਨ ਸਪੱਸ਼ਟ ਸੋਚ ਅਤੇ ਸੰਚਾਰ ਦਾ ਪ੍ਰਦਰਸ਼ਨ ਕਰੋ.
ਸਾੱਫਟਵੇਅਰ ਇੰਜੀਨੀਅਰਿੰਗ ਇੰਟਰਵਿਊ ਢਾਂਚਾ
ਸਾੱਫਟਵੇਅਰ ਇੰਜੀਨੀਅਰਿੰਗ ਇੰਟਰਵਿਊਆਂ ਵਿੱਚ ਆਮ ਤੌਰ 'ਤੇ ਵੱਖੋ ਵੱਖਰੀਆਂ ਯੋਗਤਾਵਾਂ ਦਾ ਮੁਲਾਂਕਣ ਕਰਨ ਵਾਲੇ ਕਈ ਦੌਰ ਸ਼ਾਮਲ ਹੁੰਦੇ ਹਨ:
ਇੰਟਰਵਿਊ ਦੌਰ:
- ਫੋਨ ਸਕ੍ਰੀਨ: ਬੁਨਿਆਦੀ ਕੋਡਿੰਗ ਅਤੇ ਵਿਵਹਾਰਕ ਪ੍ਰਸ਼ਨ
- ਤਕਨੀਕੀ ਇੰਟਰਵਿਊ: ਕੋਡਿੰਗ ਸਮੱਸਿਆਵਾਂ ਅਤੇ ਸਿਸਟਮ ਡਿਜ਼ਾਈਨ
- ਆਨ-ਸਾਈਟ / ਪੈਨਲ: ਮਲਟੀਪਲ ਇੰਟਰਵਿਊਅਰ, ਵੱਖ-ਵੱਖ ਵਿਸ਼ੇ
- ਅੰਤਮ ਦੌਰ: ਸੀਨੀਅਰ ਲੀਡਰਸ਼ਿਪ ਅਤੇ ਸਭਿਆਚਾਰਕ ਫਿੱਟ
ਮੁਲਾਂਕਣ ਖੇਤਰ:
- ਕੋਡਿੰਗ ਹੁਨਰ: ਡੇਟਾ structuresਾਂਚੇ, ਐਲਗੋਰਿਦਮ, ਸਮੱਸਿਆ ਹੱਲ ਕਰਨਾ
- ਸਿਸਟਮ ਡਿਜ਼ਾਈਨ: ਸਕੇਲੇਬਿਲਟੀ, ਆਰਕੀਟੈਕਚਰ, ਟ੍ਰੇਡ-ਆਫ
- ਵਿਵਹਾਰਕ: ਟੀਮ ਵਰਕ, ਲੀਡਰਸ਼ਿਪ, ਸਮੱਸਿਆ ਹੱਲ ਕਰਨ ਦੀ ਪਹੁੰਚ
- ਡੋਮੇਨ ਗਿਆਨ: ਭਾਸ਼ਾ/ਫਰੇਮਵਰਕ ਵਿਸ਼ੇਸ਼ ਪ੍ਰਸ਼ਨ
ਕੋਡਿੰਗ ਇੰਟਰਵਿਊ ਪ੍ਰਸ਼ਨ
ਆਸਾਨ ਪੱਧਰ ਦੀਆਂ ਸਮੱਸਿਆਵਾਂ
1. ਵੈਧ ਬਰੈਕਟਾਂ
ਸਮੱਸਿਆ: ਸਿਰਫ ਅੱਖਰ '(', ')', '{', '}', '[' ਅਤੇ ']' ਵਾਲੇ ਅੱਖਰ ਵਾਲੀ ਸਤਰ ਦਿੱਤੀ ਗਈ ਹੈ, ਇਹ ਨਿਰਧਾਰਤ ਕਰੋ ਕਿ ਕੀ ਇਨਪੁੱਟ ਸਤਰ ਵੈਧ ਹੈ.
ਹੱਲ:
''ਪਾਈਥਨ
DEF isvalid(s):
ਸਟੈਕ = []
ਮੈਪਿੰਗ = {')': '(', '}': '{', ']': '['}
S ਵਿੱਚ ਚਾਰ ਲਈ:
ਜੇ ਮੈਪਿੰਗ ਵਿੱਚ ਚਾਰ:
# ਬੰਦ ਬਰੈਕਟ
topelement = stack.pop() ਜੇ ਸਟੈਕ ਹੋਰ '#'
ਜੇ ਮੈਪਿੰਗ[ਚਾਰ] != topelement:
ਵਾਪਸੀ ਝੂਠੀ
ਹੋਰ:
# ਓਪਨਿੰਗ ਬਰੈਕਟ
Stack.append(char)
ਰਿਟਰਨ ਨੌਟ ਸਟੈਕ
ਸਮਾਂ: ਓ (ਐਨ + ਐਮ), ਸਪੇਸ: ਓ (1)
ਮੁੱਖ ਧਾਰਨਾਵਾਂ: ਲਿੰਕ ਕੀਤੀਆਂ ਸੂਚੀਆਂ, ਐਲਗੋਰਿਦਮ ਨੂੰ ਮਿਲਾ ਦਿਓ
ਦਰਮਿਆਨੇ ਪੱਧਰ ਦੀਆਂ ਸਮੱਸਿਆਵਾਂ
1. LRU ਕੈਸ਼
ਸਮੱਸਿਆ: ਇੱਕ ਐਲਆਰਯੂ (ਘੱਟੋ ਘੱਟ ਹਾਲ ਹੀ ਵਿੱਚ ਵਰਤਿਆ ਗਿਆ) ਕੈਸ਼ ਨੂੰ ਡਿਜ਼ਾਈਨ ਕਰੋ ਅਤੇ ਲਾਗੂ ਕਰੋ.
ਹੱਲ:
''ਪਾਈਥਨ
ਕਲਾਸ LRUCache:
DEF init(ਸਵੈ, ਸਮਰੱਥਾ):
ਸਵੈ-ਸਮਰੱਥਾ = ਸਮਰੱਥਾ
self.cache = {} # ਕੁੰਜੀ -> ਨੋਡ
ਸੈਲਫ.ਹੈੱਡ = ਨੋਡ (0, 0)
ਸੈਲਫ.ਟੇਲ = ਨੋਡ (0, 0)
self.head.next = self.tail
self.tail.prev = self.head
ਡੈਫ remove(ਸੈਲਫ, ਨੋਡ):
ਪਿਛਲੇ, nxt = node.prev, node.next
prev.next, nxt.prev = nxt, prev
def add(ਸਵੈ, ਨੋਡ):
prev = self.tail.prev
prev.next = ਨੋਡ
self.tail.prev = ਨੋਡ
node.prev, node.next = prev, self.tail
ਡੈਫ ਗੇਟ (ਸਵੈ, ਕੁੰਜੀ):
ਜੇ self.cache ਵਿੱਚ ਕੁੰਜੀ ਹੈ:
ਨੋਡ = self.cache[ਕੁੰਜੀ]
self.remove(ਨੋਡ)
self.add(ਨੋਡ)
ਰਿਟਰਨ ਨੋਡ.ਵੈਲਯੂ
ਵਾਪਸੀ -1
def put (ਸੈਲਫ, ਕੁੰਜੀ, ਮੁੱਲ):
ਜੇ self.cache ਵਿੱਚ ਕੁੰਜੀ ਹੈ:
self.remove(self.cache[key])
ਨੋਡ = ਨੋਡ (ਕੁੰਜੀ, ਮੁੱਲ)
self.add(ਨੋਡ)
self.cache[key] = ਨੋਡ
ਜੇ len(self.cache) ਸੈਲਫ.ਕੈਪੇਸਿਟੀ > ਹੈ:
lru = self.head.next
self.remove(LRU)
del self.cache[lru.key]
ਸਮਾਂ: ਓ (ਐਨ), ਸਪੇਸ: ਓ (ਐਚ)
ਮੁੱਖ ਸੰਕਲਪ: ਰੁੱਖ ਦੀ ਯਾਤਰਾ , ਗਤੀਸ਼ੀਲ ਪ੍ਰੋਗਰਾਮਿੰਗ
ਸਿਸਟਮ ਡਿਜ਼ਾਈਨ ਇੰਟਰਵਿਊ ਪ੍ਰਸ਼ਨ
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)
ਵਾਪਸੀ cls.instance
ਡੈਫ init (ਸਵੈ):
ਜੇ ਹਸਾਟਰ ਨਹੀਂ (ਸਵੈ, 'ਸ਼ੁਰੂਆਤ'):
# ਕੇਵਲ ਇੱਕ ਵਾਰ ਸ਼ੁਰੂਆਤ ਕਰੋ
self.data = {}
self.initialized = ਸੱਚ
ਮੁੱਖ ਧਾਰਨਾਵਾਂ: ਐਬਸਟ੍ਰੈਕਸ਼ਨ, ਪੌਲੀਮੋਰਫਿਜ਼ਮ, ਐਨਕੈਪਸੂਲੇਸ਼ਨ
ਸਾੱਫਟਵੇਅਰ ਇੰਜੀਨੀਅਰਾਂ ਲਈ ਵਿਵਹਾਰਕ ਪ੍ਰਸ਼ਨ
ਟੀਮ ਵਰਕ ਅਤੇ ਸਹਿਯੋਗ
1. ਮੈਨੂੰ ਉਸ ਸਮੇਂ ਬਾਰੇ ਦੱਸੋ ਜਦੋਂ ਤਕਨੀਕੀ ਪਹੁੰਚ ਬਾਰੇ ਤੁਹਾਡੇ ਕਿਸੇ ਸਹਿਕਰਮੀ ਨਾਲ ਮਤਭੇਦ ਹੋਏ ਸਨ।
ਮਜ਼ਬੂਤ ਜਵਾਬ:
"ਮੇਰੀ ਪਿਛਲੀ ਭੂਮਿਕਾ ਵਿੱਚ, ਮੇਰਾ ਸਹਿਕਰਮੀ ਇੱਕ ਨਵੀਂ ਮਾਈਕ੍ਰੋਸਰਵਿਸ ਲਈ ਇੱਕ ਮੋਨੋਲਿਥਿਕ ਆਰਕੀਟੈਕਚਰ ਦੀ ਵਰਤੋਂ ਕਰਨਾ ਚਾਹੁੰਦਾ ਸੀ, ਜਦੋਂ ਕਿ ਮੈਂ ਇਸ ਨੂੰ ਛੋਟੀਆਂ ਸੇਵਾਵਾਂ ਵਿੱਚ ਤੋੜਨ ਦੀ ਵਕਾਲਤ ਕੀਤੀ. ਮੈਂ ਉਦਯੋਗ ਦੇ ਕੇਸ ਅਧਿਐਨਾਂ ਦੁਆਰਾ ਸਮਰਥਿਤ ਮਾਈਕਰੋਸਰਵਿਸਿਜ਼ ਦੇ ਸਕੇਲੇਬਿਲਟੀ ਲਾਭਾਂ ਅਤੇ ਰੱਖ-ਰਖਾਅ ਦੇ ਫਾਇਦਿਆਂ ਨੂੰ ਦਰਸਾਉਣ ਵਾਲੀਆਂ ਤਕਨੀਕੀ ਦਲੀਲਾਂ ਤਿਆਰ ਕੀਤੀਆਂ.
ਅਸੀਂ ਦੋਵਾਂ ਪਹੁੰਚਾਂ ਬਾਰੇ ਵਿਚਾਰ ਵਟਾਂਦਰੇ ਲਈ ਆਪਣੀ ਤਕਨੀਕੀ ਲੀਡ ਨਾਲ ਇੱਕ ਮੀਟਿੰਗ ਤਹਿ ਕੀਤੀ. ਮੈਂ ਵਿਕਾਸ ਦੀ ਗਤੀ ਅਤੇ ਤਾਇਨਾਤੀ ਬਾਰੰਬਾਰਤਾ ਸੁਧਾਰਾਂ ਬਾਰੇ ਅੰਕੜੇ ਪੇਸ਼ ਕੀਤੇ. ਮੇਰੇ ਸਹਿਕਰਮੀ ਨੇ ਮੋਨੋਲਿਥਿਕ ਪਹੁੰਚ ਦੇ ਸਾਦਗੀ ਦੇ ਫਾਇਦਿਆਂ ਬਾਰੇ ਦੱਸਿਆ.
ਤਕਨੀਕੀ ਲੀਡ ਨੇ ਇੱਕ ਹਾਈਬ੍ਰਿਡ ਪਹੁੰਚ ਦਾ ਫੈਸਲਾ ਕੀਤਾ - ਮੋਨੋਲਿਥਿਕ ਸ਼ੁਰੂ ਕਰਨਾ ਪਰ ਭਵਿੱਖ ਦੇ ਸੜਨ ਦੀ ਯੋਜਨਾ ਬਣਾਉਣਾ. ਇਸ ਤਜ਼ਰਬੇ ਨੇ ਮੈਨੂੰ ਡਾਟਾ-ਸੰਚਾਲਿਤ ਤਕਨੀਕੀ ਵਿਚਾਰ-ਵਟਾਂਦਰੇ ਅਤੇ ਸਮਝੌਤੇ ਦੇ ਹੱਲ ਲੱਭਣ ਦੀ ਕੀਮਤ ਸਿਖਾਈ ਹੈ. "
ਮੁੱਖ ਹੁਨਰ: ਤਕਨੀਕੀ ਸੰਚਾਰ, ਸਮਝੌਤਾ, ਡਾਟਾ-ਅਧਾਰਤ ਫੈਸਲਾ ਲੈਣਾ
ਸਮੱਸਿਆ ਹੱਲ ਕਰਨ ਦੀ ਪਹੁੰਚ
2. ਕਿਸੇ ਗੁੰਝਲਦਾਰ ਸਮੱਸਿਆ ਨੂੰ ਡੀਬੱਗ ਕਰਨ ਲਈ ਆਪਣੀ ਪ੍ਰਕਿਰਿਆ ਦਾ ਵਰਣਨ ਕਰੋ।
ਮਜ਼ਬੂਤ ਜਵਾਬ:
"ਗੁੰਝਲਦਾਰ ਮੁੱਦਿਆਂ ਨੂੰ ਡੀਬੱਗ ਕਰਦੇ ਸਮੇਂ, ਮੈਂ ਇੱਕ ਯੋਜਨਾਬੱਧ ਪਹੁੰਚ ਦੀ ਪਾਲਣਾ ਕਰਦਾ ਹਾਂ:
1. ਮੁੱਦੇ ਨੂੰ ਦੁਬਾਰਾ ਪੇਸ਼ ਕਰੋ: ਸਮੱਸਿਆ ਨੂੰ ਲਗਾਤਾਰ ਦੁਬਾਰਾ ਪੈਦਾ ਕਰਨ ਲਈ ਘੱਟੋ ਘੱਟ ਟੈਸਟ ਕੇਸ ਬਣਾਓ
2. ਜਾਣਕਾਰੀ ਇਕੱਠੀ ਕਰੋ: ਲੌਗ, ਮੈਟ੍ਰਿਕਸ ਅਤੇ ਸਿਸਟਮ ਦੀ ਸਥਿਤੀ ਦੀ ਜਾਂਚ ਕਰੋ
3. ਅਨੁਮਾਨ ਬਣਾਓ: ਲੱਛਣਾਂ ਦੇ ਅਧਾਰ ਤੇ, ਸੰਭਾਵੀ ਮੂਲ ਕਾਰਨਾਂ ਦੀ ਪਛਾਣ ਕਰੋ
4. ਟੈਸਟ ਅਨੁਮਾਨ: ਵਿਗਿਆਨਕ ਵਿਧੀ ਦੀ ਵਰਤੋਂ ਕਰੋ - ਇੱਕ ਸਮੇਂ ਵਿੱਚ ਇੱਕ ਵੇਰੀਏਬਲ ਨੂੰ ਬਦਲੋ
5. ਫਿਕਸ ਦੀ ਤਸਦੀਕ ਕਰੋ: ਇਹ ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਨਵੀਆਂ ਸਮੱਸਿਆਵਾਂ ਪੇਸ਼ ਕੀਤੇ ਬਿਨਾਂ ਸਮੱਸਿਆ ਨੂੰ ਹੱਲ ਕੀਤਾ ਜਾਵੇ
ਉਦਾਹਰਣ ਦੇ ਲਈ, ਜਦੋਂ ਸਾਡਾ ਏਪੀਆਈ ਪ੍ਰਤੀਕ੍ਰਿਆ ਸਮਾਂ 30 ਸਕਿੰਟ ਤੱਕ ਵਧ ਗਿਆ, ਤਾਂ ਮੈਂ ਪਹਿਲਾਂ ਸਟੇਜਿੰਗ ਵਿੱਚ ਇਸ ਮੁੱਦੇ ਨੂੰ ਦੁਬਾਰਾ ਪੇਸ਼ ਕੀਤਾ. ਲੌਗ ਵਿਸ਼ਲੇਸ਼ਣ ਨੇ ਡਾਟਾਬੇਸ ਪੁੱਛਗਿੱਛ ਟਾਈਮਆਉਟ ਦਿਖਾਇਆ. ਮੈਂ ਸਾਡੇ ਓਆਰਐਮ ਵਿੱਚ ਇੱਕ ਐਨ + 1 ਪੁੱਛਗਿੱਛ ਦੀ ਸਮੱਸਿਆ ਦੀ ਪਛਾਣ ਕੀਤੀ, ਉਤਸੁਕ ਲੋਡਿੰਗ ਨਾਲ ਪੁੱਛਗਿੱਛ ਨੂੰ ਅਨੁਕੂਲ ਬਣਾਇਆ, ਅਤੇ ਜਵਾਬ ਦੇ ਸਮੇਂ ਨੂੰ2ਸਕਿੰਟਾਂ ਤੋਂ ਘੱਟ ਕਰ ਦਿੱਤਾ. "
ਮੁੱਖ ਹੁਨਰ: ਯੋਜਨਾਬੱਧ ਸਮੱਸਿਆ-ਹੱਲ ਕਰਨਾ, ਡੀਬੱਗਿੰਗ ਵਿਧੀ, ਪ੍ਰਦਰਸ਼ਨ ਅਨੁਕੂਲਤਾ
ਸਿਖਲਾਈ ਅਤੇ ਵਿਕਾਸ
3. ਤੁਸੀਂ ਤਕਨਾਲੋਜੀ ਦੇ ਰੁਝਾਨਾਂ ਨਾਲ ਕਿਵੇਂ ਮੌਜੂਦਾ ਰਹਿੰਦੇ ਹੋ?
ਮਜ਼ਬੂਤ ਜਵਾਬ:
"ਮੈਂ ਨਿਰੰਤਰ ਸਿੱਖਣ ਲਈ ਇੱਕ ਢਾਂਚਾਗਤ ਪਹੁੰਚ ਬਣਾਈ ਰੱਖਦਾ ਹਾਂ:
- ਰੋਜ਼ਾਨਾ ਪੜ੍ਹਨਾ: ਤਕਨੀਕੀ ਬਲੌਗ, ਨਿ newsletਜ਼ਲੈਟਰ (ਹੈਕਰ ਨਿ Newsਜ਼, ਟੈਕਕਰੰਚ)
- ਹਫਤਾਵਾਰੀ ਡੂੰਘੀ ਗੋਤਾਖੋਰੀ: ਇੱਕ ਡੂੰਘਾਈ ਨਾਲ ਲੇਖ ਜਾਂ ਖੋਜ ਪੱਤਰ
- ਮਹੀਨਾਵਾਰ ਪ੍ਰੋਜੈਕਟ: ਨਵੀਆਂ ਤਕਨਾਲੋਜੀਆਂ ਦੇ ਨਾਲ ਨਿੱਜੀ ਪ੍ਰੋਜੈਕਟ
- ਕਾਨਫਰੰਸ ਦੀ ਹਾਜ਼ਰੀ: ਵਰਚੁਅਲ ਕਾਨਫਰੰਸਾਂ ਅਤੇ ਮੁਲਾਕਾਤਾਂ
- ਕਮਿ communityਨਿਟੀ ਸ਼ਮੂਲੀਅਤ: ਓਪਨ ਸੋਰਸ ਯੋਗਦਾਨ ਅਤੇ ਸਟੈਕ ਓਵਰਫਲੋ
ਹਾਲ ਹੀ ਵਿੱਚ, ਮੈਂ ਇੱਕ ਕਮਾਂਡ-ਲਾਈਨ ਟੂਲ ਬਣਾ ਕੇ ਜੰਗਾਲ ਸਿੱਖਿਆ, ਇੱਕ ਰਿਐਕਟ ਨੇਟਿਵ ਲਾਇਬ੍ਰੇਰੀ ਵਿੱਚ ਯੋਗਦਾਨ ਪਾਇਆ, ਅਤੇ ਮਾਈਕਰੋਸਰਵਿਸਿਜ਼ ਪੈਟਰਨਾਂ 'ਤੇ ਸਾਡੀ ਕੰਪਨੀ ਦੀ ਤਕਨੀਕੀ ਗੱਲਬਾਤ ਵਿੱਚ ਪੇਸ਼ ਕੀਤਾ. ਇਹ ਮੇਰੇ ਹੁਨਰਾਂ ਨੂੰ ਮੌਜੂਦਾ ਰੱਖਦਾ ਹੈ ਅਤੇ ਸਾਡੇ ਪ੍ਰੋਜੈਕਟਾਂ ਵਿੱਚ ਨਵੇਂ ਵਿਚਾਰ ਲਿਆਉਣ ਵਿੱਚ ਮੇਰੀ ਮਦਦ ਕਰਦਾ ਹੈ. "
ਮੁੱਖ ਹੁਨਰ: ਸਵੈ-ਨਿਰਦੇਸ਼ਿਤ ਸਿੱਖਿਆ, ਭਾਈਚਾਰਕ ਸ਼ਮੂਲੀਅਤ, ਗਿਆਨ ਸਾਂਝਾ ਕਰਨਾ
ਉੱਨਤ ਵਿਸ਼ੇ
ਡਿਸਟ੍ਰੀਬਿਊਟਿਡ ਸਿਸਟਮ
1. CAP ਥਿਊਰਮ ਅਤੇ ਇਸ ਦੇ ਪ੍ਰਭਾਵਾਂ ਦੀ ਵਿਆਖਿਆ ਕਰੋ।
ਜਵਾਬ:
"ਸੀਏਪੀ ਥਿਊਰਮ ਦੱਸਦਾ ਹੈ ਕਿ ਇੱਕ ਡਿਸਟ੍ਰੀਬਿਊਟਿਡ ਸਿਸਟਮ ਵਿੱਚ, ਤੁਸੀਂ ਤਿੰਨ ਵਿੱਚੋਂ ਸਿਰਫ ਦੋ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਦੀ ਗਰੰਟੀ ਦੇ ਸਕਦੇ ਹੋ:
- ਇਕਸਾਰਤਾ: ਸਾਰੇ ਨੋਡ ਇਕੋ ਜਿਹੇ ਡੇਟਾ ਨੂੰ ਇਕੋ ਸਮੇਂ ਵੇਖਦੇ ਹਨ
- ਉਪਲਬਧਤਾ: ਨੋਡ ਅਸਫਲਤਾਵਾਂ ਦੇ ਬਾਵਜੂਦ ਸਿਸਟਮ ਕਾਰਜਸ਼ੀਲ ਰਹਿੰਦਾ ਹੈ
- ਪਾਰਟੀਸ਼ਨ ਸਹਿਣਸ਼ੀਲਤਾ: ਨੈਟਵਰਕ ਪਾਰਟੀਸ਼ਨ ਦੇ ਬਾਵਜੂਦ ਸਿਸਟਮ ਕੰਮ ਕਰਨਾ ਜਾਰੀ ਰੱਖਦਾ ਹੈ
ਅਭਿਆਸ ਵਿੱਚ, ਵੰਡ ਸਹਿਣਸ਼ੀਲਤਾ ਵੰਡੇ ਗਏ ਪ੍ਰਣਾਲੀਆਂ ਲਈ ਗੈਰ-ਗੱਲਬਾਤ ਯੋਗ ਹੈ, ਇਸ ਲਈ ਤੁਸੀਂ ਇਕਸਾਰਤਾ (ਸੀਪੀ ਸਿਸਟਮ ਜਿਵੇਂ ਕਿ ਐਚਬੀ) ਜਾਂ ਉਪਲਬਧਤਾ (ਡਾਇਨਾਮੋਡੀਬੀ ਵਰਗੇ ਏਪੀ ਸਿਸਟਮ) ਦੇ ਵਿਚਕਾਰ ਚੋਣ ਕਰਦੇ ਹੋ. ਜ਼ਿਆਦਾਤਰ ਆਧੁਨਿਕ ਪ੍ਰਣਾਲੀਆਂ ਤਿੰਨਾਂ ਨੂੰ ਸੰਤੁਲਿਤ ਕਰਨ ਲਈ ਅੰਤਮ ਇਕਸਾਰਤਾ ਪ੍ਰਦਾਨ ਕਰਦੀਆਂ ਹਨ. "
ਮੁੱਖ ਸੰਕਲਪ: ਇਕਸਾਰਤਾ ਮਾਡਲ, ਵਪਾਰ-ਆਫ, ਸਿਸਟਮ ਡਿਜ਼ਾਈਨ
ਡਾਟਾਬੇਸ ਡਿਜ਼ਾਈਨ
2. ਤੁਸੀਂ ਇੱਕ ਸੋਸ਼ਲ ਮੀਡੀਆ ਪਲੇਟਫਾਰਮ ਲਈ ਇੱਕ ਡਾਟਾਬੇਸ ਸਕੀਮਾ ਨੂੰ ਕਿਵੇਂ ਡਿਜ਼ਾਈਨ ਕਰੋਗੇ?
ਜਵਾਬ:
"ਇੱਕ ਸੋਸ਼ਲ ਮੀਡੀਆ ਪਲੇਟਫਾਰਮ ਲਈ, ਮੈਂ ਵਿਚਾਰ ਕਰਾਂਗਾ:
ਵਰਤੋਂਕਾਰ ਸਾਰਣੀ: userid (PK), ਉਪਭੋਗਤਾ ਨਾਮ, ਈਮੇਲ, passwordhash, createdat
ਪੋਸਟਾਂ ਦੀ ਸਾਰਣੀ: postid (ਪੀਕੇ), userid (ਐਫਕੇ), ਸਮੱਗਰੀ, createdat, updatedat
ਟਿੱਪਣੀਆਂ ਸਾਰਣੀ: commentid (ਪੀਕੇ), postid (ਐਫਕੇ), userid (ਐਫਕੇ), ਸਮੱਗਰੀ, createdat
ਟੇਬਲ ਨੂੰ ਪਸੰਦ ਕਰਦਾ ਹੈ: likeid (ਪੀਕੇ), userid (ਐਫਕੇ), postid (ਐਫਕੇ), createdat (ਬਹੁਤ ਸਾਰੇ)
ਸਾਰਣੀ ਦੀ ਪਾਲਣਾ ਕਰਦਾ ਹੈ: followerid (FK), followingid (FK), createdat (ਬਹੁਤ ਸਾਰੇ)
ਡਿਜ਼ਾਈਨ ਫੈਸਲੇ:
- ਸਕੇਲੇਬਿਲਟੀ ਲਈ ਯੂਯੂਆਈਡੀ ਦੀ ਵਰਤੋਂ ਕਰੋ
- ਅਨੁਪਾਲਨ ਦੇ ਲਈ ਸੌਫਟ ਡਿਲੀਟ ਲਾਗੂ ਕਰਨਾ
- ਅਕਸਰ ਪੁੱਛੇ ਜਾਣ ਵਾਲੇ ਕਾਲਮਾਂ 'ਤੇ ਸੂਚਕਾਂਕ ਸ਼ਾਮਲ ਕਰੋ
- ਵੱਡੇ ਟੇਬਲ ਲਈ ਵੰਡਣ 'ਤੇ ਵਿਚਾਰ ਕਰੋ
- ਸਕੇਲੇਬਿਲਟੀ ਲਈ ਰੀਡ ਰੈਪਲੀਕੇਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕਰੋ"
ਮੁੱਖ ਸੰਕਲਪ: ਸਧਾਰਣਕਰਨ, ਸੂਚਕਾਂਕ, ਸਕੇਲੇਬਿਲਟੀ, ਰਿਸ਼ਤੇ
ਸੁਰੱਖਿਆ ਵਿਚਾਰ
3. ਤੁਸੀਂ ਸਾੱਫਟਵੇਅਰ ਡਿਜ਼ਾਈਨ ਵਿੱਚ ਸੁਰੱਖਿਆ ਤੱਕ ਕਿਵੇਂ ਪਹੁੰਚਦੇ ਹੋ?
ਜਵਾਬ:
"ਸੁਰੱਖਿਆ ਨੂੰ ਸ਼ੁਰੂ ਤੋਂ ਹੀ ਤਿਆਰ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ, ਬਾਅਦ ਵਿੱਚ ਸ਼ਾਮਲ ਨਹੀਂ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ:
ਪ੍ਰਮਾਣਿਕਤਾ ਅਤੇ ਪ੍ਰਮਾਣਿਕਤਾ:
- ਸਹੀ ਮਿਆਦ ਪੁੱਗਣ ਦੇ ਨਾਲ ਜੇਡਬਲਿਊਟੀ ਟੋਕਨ
- ਭੂਮਿਕਾ-ਅਧਾਰਤ ਪਹੁੰਚ ਨਿਯੰਤਰਣ (ਆਰਬੀਏਸੀ)
- ਮਲਟੀ-ਫੈਕਟਰ ਪ੍ਰਮਾਣਿਕਤਾ
ਡਾਟਾ ਸੁਰੱਖਿਆ:
• ਸੰਵੇਦਨਸ਼ੀਲ ਡੇਟਾ ਨੂੰ ਆਰਾਮ ਵਿੱਚ ਅਤੇ ਆਵਾਜਾਈ ਵਿੱਚ ਏਨਕ੍ਰਿਪਟ ਕਰੋ
- ਇਨਪੁਟ ਪ੍ਰਮਾਣਿਕਤਾ ਅਤੇ ਸੈਨੀਟਾਈਜ਼ੇਸ਼ਨ
- ਪੈਰਾਮੀਟਰਾਈਜ਼ਡ ਪ੍ਰਸ਼ਨਾਂ ਦੇ ਨਾਲ ਐਸਕਿਯੂਐਲ ਇੰਜੈਕਸ਼ਨ ਰੋਕਥਾਮ
ਬੁਨਿਆਦੀ ਢਾਂਚਾ ਸੁਰੱਖਿਆ:
- ਨਿਯਮਤ ਸੁਰੱਖਿਆ ਅਪਡੇਟ ਅਤੇ ਪੈਚ
- ਨੈਟਵਰਕ ਸੈਗਮੈਂਟੇਸ਼ਨ ਅਤੇ ਫਾਇਰਵਾਲ
- ਧਮਕੀਆਂ ਦੀ ਨਿਗਰਾਨੀ ਅਤੇ ਲੌਗਿੰਗ
ਸਰਬੋਤਮ ਅਭਿਆਸ:
- ਘੱਟੋ ਘੱਟ ਵਿਸ਼ੇਸ਼ ਅਧਿਕਾਰ ਦਾ ਸਿਧਾਂਤ
- ਡੂੰਘਾਈ ਪਹੁੰਚ ਵਿੱਚ ਰੱਖਿਆ
- ਨਿਯਮਿਤ ਸੁਰੱਖਿਆ ਆਡਿਟ ਅਤੇ ਪੈਨੇਟ੍ਰੇਸ਼ਨ ਟੈਸਟਿੰਗ"
ਮੁੱਖ ਧਾਰਨਾਵਾਂ: ਡਿਜ਼ਾਇਨ ਦੁਆਰਾ ਸੁਰੱਖਿਆ, OWASP ਸਿਧਾਂਤਾਂ, ਪਾਲਣਾ ਦੀਆਂ ਜ਼ਰੂਰਤਾਂ
ਇੰਟਰਵਿਊ ਦੀ ਤਿਆਰੀ ਦੀ ਰਣਨੀਤੀ
ਕੋਡਿੰਗ ਅਭਿਆਸ
ਰੋਜ਼ਾਨਾ ਰੁਟੀਨ:
- ਲੀਟਕੋਡ / ਹੈਕਰ ਰੈਂਕ 'ਤੇ 1-2 ਕੋਡਿੰਗ ਸਮੱਸਿਆਵਾਂ
- ਹਰ ਹਫ਼ਤੇ ਵੱਖੋ ਵੱਖਰੇ ਵਿਸ਼ਿਆਂ 'ਤੇ ਧਿਆਨ ਕੇਂਦ੍ਰਤ ਕਰੋ
- ਅਨੁਕੂਲ ਹੱਲਾਂ ਅਤੇ ਸਮੇਂ ਦੀ ਗੁੰਝਲਤਾ ਦੀ ਸਮੀਖਿਆ ਕਰੋ
- ਉੱਚੀ ਆਵਾਜ਼ ਵਿੱਚ ਹੱਲਾਂ ਦੀ ਵਿਆਖਿਆ ਕਰਨ ਦਾ ਅਭਿਆਸ ਕਰੋ
ਹਫਤਾਵਾਰੀ ਫੋਕਸ ਖੇਤਰ:
- ਸੋਮਵਾਰ: ਐਰੇਜ਼ ਐਂਡ ਸਟਰਿੰਗਜ਼
• ਮੰਗਲਵਾਰ: ਲਿੰਕਡ ਸੂਚੀਆਂ ਅਤੇ ਰੁੱਖ
- ਬੁੱਧਵਾਰ: ਡਾਇਨਾਮਿਕ ਪ੍ਰੋਗਰਾਮਿੰਗ
• ਵੀਰਵਾਰ: ਗ੍ਰਾਫ ਅਤੇ ਐਲਗੋਰਿਦਮ
- ਸ਼ੁੱਕਰਵਾਰ: ਸਿਸਟਮ ਡਿਜ਼ਾਈਨ
- ਵੀਕੈਂਡ: ਮੌਕ ਇੰਟਰਵਿਊ
ਸਿਸਟਮ ਡਿਜ਼ਾਈਨ ਅਭਿਆਸ
ਅਧਿਐਨ ਦੇ ਵਿਸ਼ੇ:
- ਸਕੇਲੇਬਿਲਟੀ ਪੈਟਰਨ (ਲੋਡ ਸੰਤੁਲਨ, ਕੈਸ਼ਿੰਗ, ਸ਼ੇਅਰਡਿੰਗ)
- ਡਾਟਾਬੇਸ ਡਿਜ਼ਾਈਨ (SQL ਬਨਾਮ NoSQL, ਸਧਾਰਣਕਰਨ)
- ਏਪੀਆਈ ਡਿਜ਼ਾਈਨ (REST, GraphQL)
- ਮਾਈਕਰੋ