सॉफ़्टवेयर इंजीनियरिंग की नौकरी पाने की कोशिश करते समय, आपको व्यवहार और सिस्टम डिज़ाइन सहित कई साक्षात्कारों से गुज़रना पड़ सकता है। लेकिन दिन के अंत में, यह सब एक चीज के लिए नीचे आता है: आपके कोडिंग कौशल। कोडिंग में आपकी दक्षता महत्वपूर्ण कारक है जो यह निर्धारित करेगी कि आप भूमिका के लिए एकदम सही हैं या नहीं।
आपके अनुभव के स्तर के बावजूद - चाहे आप एक अनुभवी डेवलपर हों या विश्वविद्यालय से बाहर हों - एक कोडिंग साक्षात्कार को प्राप्त करना कठिन हो सकता है, लेकिन दृढ़ता और कड़ी मेहनत का भुगतान करें। एक ऐसे व्यक्ति के रूप में जिसने पूरे एक साल की तैयारी के बाद फेसबुक से एक प्रस्ताव प्राप्त किया, मैं इसे पहले से जानता हूं। इस लेख में, मैं आपके साथ कुछ टिप्स और रणनीतियाँ साझा करना चाहता हूँ जो मैंने रास्ते में सीखीं।
चलो गोता लगाएँ।
एक सॉफ्टवेयर इंजीनियर के रूप में अपने दिन-प्रतिदिन के काम में, हो सकता है कि आप एल्गोरिदम और डेटा का अधिक उपयोग नहीं कर रहे हों। फिर भी, वे आवश्यक मूल बातें हैं जिन्हें आपको जानना आवश्यक है। तो आप उन पर कैसे अच्छे हो जाते हैं? एल्गोरिदम और डेटा संरचना सीखना चुनौतीपूर्ण हो सकता है, लेकिन यह कोई रॉकेट साइंस या गुप्त कला नहीं है। मुख्य मुद्दा उन्हें सीखने में लगने वाला समय है, इसलिए योजना बनाना और अभ्यास करना महत्वपूर्ण है।
अपनी मांसपेशियों को बनाने जैसे अपने कोडिंग कौशल में सुधार करने के बारे में सोचें। आप गहन अभ्यास के कुछ ही हफ्तों में पूरी तरह से फटे और टोंड होने की उम्मीद नहीं कर सकते। इसी तरह, आप कुछ ही दिनों में एल्गोरिदम में महारत हासिल नहीं कर पाएंगे। वांछित परिणाम प्राप्त करने के लिए लंबी अवधि में लगातार और स्थिर प्रयास करना महत्वपूर्ण है।
2019 में वापस, जब मैंने कोडिंग इंटरव्यू की तैयारी शुरू की, तो मुझे इस बारे में कोई जानकारी नहीं थी कि बाइनरी सर्च जैसे सबसे बुनियादी एल्गोरिदम को कैसे लिखा जाए। Google के साथ अपना पहला ऑनसाइट साक्षात्कार प्राप्त करने के लिए मुझे लगभग छह महीने का निरंतर अभ्यास करना पड़ा। यह कैसे हुआ? में विफल रहा है।
लेकिन क्या मैंने हार मान ली? नहीं, मैं एक और साल तक अभ्यास करता रहा जब तक कि मुझे अंततः फेसबुक (जिसे अब हम मेटा के रूप में जानते हैं) से एक प्रस्ताव नहीं मिला। तो, लब्बोलुआब यह है कि इन कौशलों को सीखने में समय और मेहनत लगती है, लेकिन अदायगी जीवन बदलने वाली हो सकती है!
जब आप पहली बार कोडिंग समस्याओं पर काम करना शुरू करते हैं, तो थोड़ा अभिभूत महसूस करना बिल्कुल सामान्य है। आप अपने आप को यह सोचते हुए भी पकड़ सकते हैं, "मेरे साथ क्या गलत है? मैं सबसे सरल समस्या का समाधान क्यों नहीं कर सकता?" यह सीखने की प्रक्रिया का एक स्वाभाविक हिस्सा है। आप समय के साथ बेहतर होते जाएंगे।
अभिभूत होने की भावना से निपटने के लिए एक सहायक और समय-परीक्षणित रणनीति एक बड़े कार्य को प्रबंधनीय विखंडू में विभाजित करना और प्राप्त करने योग्य लक्ष्य निर्धारित करना है।
मैं प्रत्येक दिन 1-2 आसान या मध्यम स्तर की समस्याओं से शुरू करने और प्रत्येक पर लगभग 15-30 मिनट खर्च करने की सलाह देता हूं। यह आपकी समस्या को सुलझाने के कौशल को धीरे-धीरे विकसित करने में मदद करेगा और अभिभूत होने से बचाएगा। एक बार जब आप अधिक आत्मविश्वास महसूस करने लगते हैं, तो आप प्रति दिन 3-4 समस्याओं से निपटकर तीव्रता बढ़ा सकते हैं।
लगातार अभ्यास से क्या संभव है, इसका अंदाज़ा देने के लिए, मैंने एक बड़ी टेक कंपनी से अपना पहला प्रस्ताव मिलने से पहले एक साल में लगभग 200 समस्याओं (50% मध्यम, 40% आसान, 10% कठिन) को व्यक्तिगत रूप से हल किया। ध्यान रखें कि हर कोई अपनी गति से सीखता है, इसलिए अभ्यास की मात्रा निर्धारित करना सुनिश्चित करें जो आपके लिए सबसे अच्छा काम करता है। महत्वपूर्ण बात यह है कि ध्यान केंद्रित रहें और उस पर टिके रहें।
यदि आप कोडिंग का अभ्यास करने और अपने साक्षात्कार कौशल को तेज करने के लिए उत्कृष्ट संसाधन खोजना चाहते हैं, तो ऐसे कई विकल्प हैं जिन पर आप विचार कर सकते हैं। कुछ सर्वश्रेष्ठ हैं Leetcode , Hackerran , और Codeforces - ये प्लेटफ़ॉर्म विभिन्न प्रकार की चुनौतीपूर्ण समस्याएं प्रदान करते हैं जो आपकी कोडिंग क्षमताओं को सुधारने में आपकी सहायता कर सकते हैं।
लेकिन अगर आपको अधिक संरचना या मार्गदर्शन की आवश्यकता है, तो साक्षात्कार जैसे संसाधन भी हैं। स्कूल या Algoexpert.io जैसे सशुल्क पाठ्यक्रम। ये विशेष रूप से मददगार हो सकते हैं यदि आप अभी शुरुआत कर रहे हैं या यदि आप इस बारे में अनिश्चित हैं कि कहां से शुरू करें।
मैंने साक्षात्कार की तैयारी की अपनी यात्रा के दौरान इन सभी संसाधनों का उपयोग किया है और उनकी गुणवत्ता की पुष्टि कर सकता हूं।
जिस भाषा का आप उपयोग कर रहे हैं, उस पर आपकी पकड़ मजबूत होनी चाहिए ताकि आप अपने तकनीकी कौशल और समस्या को सुलझाने की क्षमता को पूरी तरह प्रदर्शित कर सकें। आमतौर पर, आप अपने एल्गोरिथम कोडिंग के लिए भाषा का चयन करते हैं, लेकिन कभी-कभी साक्षात्कारकर्ता की विशिष्ट भाषा आवश्यकताएं हो सकती हैं। इसे पहले ही जांच लें।
उस भाषा का उपयोग करें जिसके साथ आप सबसे अधिक सहज हैं, भले ही वह आपकी प्राथमिक भाषा न हो। सुनिश्चित करें कि आप इसकी सामान्य डेटा संरचनाओं, शॉर्टकट्स और मेमोरी प्रबंधन को जानते हैं। इंटरव्यू कोडिंग के लिए मेरी पसंद पायथन है, हालांकि मैं रोजाना PHP के साथ काम करता हूं। पायथन का आसान सिंटैक्स मुझे प्रोटोटाइप समाधानों को जल्दी से मदद करता है, और मुझे $ संकेत, कोष्ठक या अर्धविराम जैसी चीजों के बारे में चिंता करने की ज़रूरत नहीं है।
अपनी प्रोग्रामिंग भाषा में अपने कौशल को बेहतर बनाने के लिए, इसके मूल सिद्धांतों को सीखने, कोडिंग का अभ्यास करने और अन्य प्रोग्रामर के समाधानों का अध्ययन करने में समय व्यतीत करें। मैं Leetcode की जाँच करने की सलाह देता हूँ - इसके टिप्पणियों और चर्चा अनुभाग में, आप सीखने के लिए कुछ बेहतरीन उदाहरण और तकनीकें पा सकते हैं।
पहले प्रश्न पूछे बिना किसी समस्या को हल करने में जल्दबाजी न करें। यह एक सामान्य गलती है जो साक्षात्कारकर्ताओं के लिए खतरे की घंटी हो सकती है। कुछ स्पष्ट प्रश्न पूछें भले ही आपको विश्वास हो कि आप समस्या को सही ढंग से समझते हैं।
कोडिंग की समस्याएं जानबूझकर अस्पष्ट हैं, और साक्षात्कारकर्ता सभी आवश्यक विवरण अग्रिम रूप से प्रदान नहीं करेंगे।
इसके बजाय, साक्षात्कारकर्ता आपसे विवरणों को स्पष्ट करने की अपेक्षा करते हैं, इसलिए यह सुनिश्चित करने के लिए कुछ प्रश्न पूछें कि आप और साक्षात्कारकर्ता एक ही पृष्ठ पर हैं।
इसके अलावा, इस तरह से आप एज केस को पहचानने और स्पष्ट करने में सक्षम होंगे। उदाहरण के लिए, हो सकता है कि आप इनपुट के प्रारूप, शामिल डेटा प्रकारों, या क्या समस्या में कोई बाधाएँ हैं, के बारे में पूछना चाहें। विशिष्ट विवरण जानने से आपका समय बच सकता है और आपको कार्य पर ध्यान केंद्रित करने की अनुमति मिल सकती है।
जब आप एक साक्षात्कार में किसी समस्या को हल कर रहे हों, तो कोडिंग शुरू करने में जल्दबाजी न करें। पहले अपने समाधान के बारे में बात करने के लिए कुछ समय निकालें। इससे आपको समस्या को स्पष्ट करने में मदद मिलेगी और यह सुनिश्चित करने में मदद मिलेगी कि आपके पास गोता लगाने से पहले एक ठोस योजना है। इस पर बात करने से आपका समय भी बच सकता है और आपको अनावश्यक गलतियाँ करने से रोका जा सकता है।
मैं खुद लगभग इस जाल में फंस चुका हूं। एक साक्षात्कार में, मुझे स्ट्रिंग उपसर्ग मिलान लागू करने के लिए कहा गया था। मैंने तुरंत एक जटिल समाधान के बारे में सोचा जिसमें एक ट्री शामिल था। लेकिन एक बार जब मैंने अपने विचार का जोर से वर्णन करना शुरू किया, तो साक्षात्कारकर्ता ने मुझे रोक दिया और एक सरल तरीका पूछा जिसमें सिर्फ दो तारों पर पुनरावृत्ति करना शामिल था।
अगर मैंने तुरंत कोडिंग शुरू कर दी होती, तो मैं एक जटिल समाधान पर समय बर्बाद कर देता जो साक्षात्कारकर्ता पूछ भी नहीं रहा था।
एक बार जब आप समाधान के बारे में बात कर लेते हैं और साक्षात्कारकर्ता इससे संतुष्ट हो जाता है, तभी आप इसे लागू करना शुरू कर सकते हैं।
एक कोडिंग साक्षात्कार के दौरान, साक्षात्कारकर्ता को इस बात में कोई दिलचस्पी नहीं होती है कि आप वास्तव में समाधान पर पहुंचते हैं या नहीं।
वे देखना चाहते हैं कि आप समस्या-समाधान प्रक्रिया को कैसे अपनाते हैं।
अपनी सोच को स्पष्ट करना सुनिश्चित करें और जाते ही अपने तर्क की व्याख्या करें।
याद रखें कि साक्षात्कारकर्ता आपकी तरफ है और आपको सफल होने में मदद करने के लिए है। साक्षात्कार को एक टीम प्रयास के रूप में सोचें, जहां आप और साक्षात्कारकर्ता समाधान खोजने के लिए मिलकर काम कर रहे हैं। हालाँकि, आपको ज़्यादातर बातें करनी चाहिए (लगभग 70-80% समय)। साक्षात्कारकर्ता कभी-कभी प्रतिक्रिया दे सकता है या आपको सही कर सकता है। अपने लाभ के लिए साक्षात्कारकर्ता की प्रतिक्रिया से सीखने के लिए खुले दिमाग और इच्छुक रहें।
साक्षात्कार के दौरान दोस्ताना और उत्तरदायी रहें। यदि आपको ध्यान केंद्रित करने के लिए एक क्षण की आवश्यकता है, तो साक्षात्कारकर्ता को बताएं। अपने विचारों को एकत्र करने के लिए एक संक्षिप्त विराम लें, लेकिन इसे बहुत अधिक समय तक न खींचे।
एक बार जब आप समाप्त कर लें तो अपने कोड का कड़ाई से परीक्षण करना न भूलें। आपसे छूटी हुई किसी भी गलती या समस्या का पता लगाने में सहायता के लिए परीक्षण महत्वपूर्ण है।
यह सुनिश्चित करने के लिए कि आपका कोड अपेक्षित आउटपुट उत्पन्न करता है, साक्षात्कारकर्ता द्वारा प्रदान किए गए उदाहरण इनपुट का उपयोग करें। इनपुट सीमाओं, स्वरूपण या इनपुट के प्रकार, खाली, शून्य, या नकारात्मक मान, और इनपुट जो बहुत छोटे या बहुत बड़े हैं, सहित किनारे के मामलों का परीक्षण करने पर विचार करें।
जब आप परीक्षण कर रहे हों, तो अपने कोड को लाइन दर लाइन देखें और वेरिएबल्स और एक्सप्रेशंस के मूल्यों की जांच करें। इस तरह आप उन त्रुटियों को पकड़ लेंगे जो केवल कोड पर एक नज़र डालने के लिए चुनौतीपूर्ण हैं।
हर चीज का परीक्षण करने के बाद, एक कदम पीछे हटें और सोचें कि आप अपने कोड को और बेहतर कैसे बना सकते हैं। हो सकता है कि समस्या को हल करने का एक अधिक कुशल तरीका हो, या आप कोड को पढ़ने और समझने में आसान बना सकते हैं।
कोडिंग साक्षात्कार एक चुनौती है लेकिन पूरी तैयारी और अभ्यास से आप अपनी सफलता की संभावनाओं को काफी बढ़ा सकते हैं।
आइए मुख्य टेकअवे को दोबारा दोहराएं:
शांत रहें और साक्षात्कार को सहयोगी समस्या-समाधान प्रक्रिया के रूप में देखें।
आपके भावी कोडिंग साक्षात्कारों के लिए शुभकामनाएँ!
हैकरनून के स्टेबल डिफ्यूजनएआई इमेज जेनरेटर फीचर का उपयोग करते हुए लीड इमेज को "फेसबुक पर एक कोडिंग इंटरव्यू" के माध्यम से तैयार किया गया था।