Microsoft जैसी अधिकांश बड़ी तकनीकी कंपनियां मुख्य रूप से डेटा संरचनाओं पर ध्यान केंद्रित करती हैं। ऐसा प्रतीत होता है कि डेटा संरचनाएं केवल एक चीज है जो वे स्नातक से उम्मीद करते हैं।
नहीं, और भी है। उदाहरण के लिए, हम यह भी उम्मीद करते हैं कि आप एक त्वरित शिक्षार्थी हों जो कम समय के भीतर नए ढांचे, एपीआई या प्रोग्रामिंग भाषा सीख सकते हैं। यह एक नंगे न्यूनतम बार है। कोई व्यक्ति जो एक नया ढांचा सीखने में लंबा समय लेता है, एपीआई या भाषा Microsoft की अधिकांश टीमों में एक सफल डेवलपर नहीं होगी।
और निश्चित रूप से कई और पहलू हैं जो हम डेटा संरचनाओं के कच्चे ज्ञान के अलावा अन्य साक्षात्कारों पर ध्यान केंद्रित करते हैं। अस्पष्ट विनिर्देशों से निपटने की क्षमता, उदाहरण के लिए, या कोडिंग पैटर्न को पहचानने की क्षमता जो असुरक्षित कोड या एक दर्जन अन्य चीजों का उत्पादन करती है। लेकिन डेटा संरचनाओं को समझने की क्षमता निश्चित रूप से बहुत बड़ी है।
यह विशेष रूप से मामला है कि साक्षात्कार हाल ही में सीएस स्नातकों के लिए डेटा संरचनाओं के ज्ञान का परीक्षण करने के लिए पक्षपाती हैं। हाल के स्नातकों, जिनमें से अधिकांश के पास वास्तविक-दुनिया का बहुत अनुभव नहीं है, एक ही तरह की चीजों के अच्छे होने की उम्मीद नहीं है, जो कि पंद्रह साल के उद्योग के अनुभव वाले किसी व्यक्ति के लिए अच्छा होगा।
मुझे यह स्वीकार करना चाहिए कि मैं डेटा संरचनाओं में इतना मजबूत नहीं था
यह अच्छा है कि आप अपने बारे में जानते हैं। यदि आप अपने बारे में बदलने में असमर्थ हैं या अनिच्छुक हैं तो मेरी सिफारिश है कि आप ऐसी नौकरी के लिए आवेदन न करें जिसके लिए डेटा संरचनाओं के साथ सुविधा की आवश्यकता हो।
यह सामान्य दृष्टिकोण है कि एक अच्छा प्रोग्रामर आवश्यक रूप से डेटा संरचनाओं के बारे में अच्छे ज्ञान वाला है।
यह एक वैज्ञानिक है कि एक अच्छा प्रोग्रामर एक प्रोग्रामर है जो उन कार्यक्रमों के प्रकार का निर्माण करने में अच्छा है जिन्हें बनाने की आवश्यकता है। प्रोग्रामर के बहुत सारे कार्य उन कार्यों पर काम करते हैं जिनमें डेटा संरचनाओं के गहन ज्ञान की आवश्यकता नहीं होती है। उनमें से कुछ ऐसे कार्यों पर काम करते हैं जिनके लिए उपयोगकर्ता इंटरफ़ेस डिज़ाइन के गहन ज्ञान की आवश्यकता होती है, उदाहरण के लिए। या डेटाबेस सामान्यीकरण। जो कुछ भी। वे लोग अभी भी अपने डोमेन में "अच्छे प्रोग्रामर" हो सकते हैं।
यह सब डेटा स्ट्रक्चर्स पर क्यों जोर देता है?
मैं डेटा संरचनाओं के बारे में साक्षात्कार के सवाल पूछता हूं क्योंकि मेरी टीम पर डेवलपर्स हर दिन पूरे दिन जटिल डेटा संरचनाओं को डिज़ाइन, कार्यान्वित और हेरफेर करते हैं। कल हमारे पास चार घंटे की बैठक थी जिसमें एक आधा दर्जन डेवलपर्स ने एकल बूलियन फ़ील्ड को एक विशेष ट्री नोड में जोड़ने के पेशेवरों और विपक्षों का तर्क दिया। डेटा स्तर को गहराई से समझने की क्षमता से अधिक महत्वपूर्ण मेरी टीम में कोई कौशल नहीं है। इसके बारे में साक्षात्कार के सवाल न पूछना मूर्खता होगी, क्योंकि हम यही करते हैं।
क्या डेटा स्ट्रक्चर्स में ज्ञान नहीं होना वास्तव में प्रोग्रामिंग में किसी के करियर को प्रभावित करता है?
वैसे यह निश्चित रूप से आपको मेरी टीम में नौकरी करने से रोकेगा। लेकिन जैसा मैंने पहले कहा, प्रोग्रामिंग एक बहुत बड़ा क्षेत्र है। कंप्यूटर प्रोग्रामिंग के बहुत सारे प्रकार हैं जिन्हें डेटा संरचनाओं के ज्ञान की आवश्यकता नहीं है।
क्या इस विषय में ज्ञान वास्तव में एक अच्छे और बुरे प्रोग्रामर को अलग करने का पर्याप्त आधार है?
नहीं, लेकिन लगभग हमेशा उन डेवलपर्स का पता लगाना पर्याप्त है जो Microsoft में सफल होने की संभावना नहीं रखते हैं। चूँकि मुझे मुख्य रूप से यह पता लगाने में दिलचस्पी है कि डेटा संरचनाओं का ज्ञान उन कारकों में से एक है जिनका मैं साक्षात्कार में परीक्षण करता हूँ।